forked from upstream-mirrors/OpenTracks
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a7398d43e3 | |||
| 59b016a4a3 | |||
| 78aa5d51c6 | |||
| 95f584b554 | |||
| cf759d526d |
@@ -38,10 +38,6 @@ However, often only one value is provided.
|
||||
|
||||
We only support _Instantaneous Power_.
|
||||
|
||||
_WARNING_: we only support physically movements with valid GPS coordinates.
|
||||
Using a device indoors (no GPS available) will only show the current power values, but won't store anything.
|
||||
Also the distance is not computed.
|
||||
|
||||
For cycling:
|
||||
* Assioma Duo Powermeter
|
||||
* Elite drivo II
|
||||
|
||||
+3
-2
@@ -59,8 +59,8 @@ android {
|
||||
|
||||
defaultConfig {
|
||||
applicationId "de.dennisguse.opentracks"
|
||||
versionCode 4981
|
||||
versionName "v4.0.4"
|
||||
versionCode 4986
|
||||
versionName "v4.0.5"
|
||||
|
||||
buildConfigField "String", "VERSION_NAME_FULL", "\"${getVersionName()}\""
|
||||
|
||||
@@ -100,6 +100,7 @@ android {
|
||||
releasePlayStore {
|
||||
applicationIdSuffix ".playstore"
|
||||
versionNameSuffix "-PlayStore"
|
||||
signingConfig signingConfigs.debug
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
v4.0.5: OpenTracks
|
||||
|
||||
Changes:
|
||||
- PlayStore relase get's another logo
|
||||
|
||||
Bugfix:
|
||||
- Interval list shows "-" if gain/loss is not present
|
||||
|
||||
@@ -13,6 +13,14 @@ public class Distance {
|
||||
return new Distance(distance_m);
|
||||
}
|
||||
|
||||
public static Distance of(Double distance_m) {
|
||||
if (distance_m == null) {
|
||||
return Distance.of(Double.NaN);
|
||||
} else {
|
||||
return Distance.of((double) distance_m);
|
||||
}
|
||||
}
|
||||
|
||||
public static Distance of(String distance_m) {
|
||||
return of(Float.parseFloat(distance_m));
|
||||
}
|
||||
|
||||
@@ -42,12 +42,13 @@ public class DistanceFormatter {
|
||||
*/
|
||||
public Pair<String, String> getDistanceParts(Distance distance) {
|
||||
if (distance.isInvalid()) {
|
||||
String valueUnknown = resources.getString(R.string.value_unknown);
|
||||
switch (unitSystem) {
|
||||
case METRIC:
|
||||
return new Pair<>(null, resources.getString(R.string.unit_meter));
|
||||
return new Pair<>(valueUnknown, resources.getString(R.string.unit_meter));
|
||||
case IMPERIAL:
|
||||
case NAUTICAL_IMPERIAL:
|
||||
return new Pair<>(null, resources.getString(R.string.unit_feet));
|
||||
return new Pair<>(valueUnknown, resources.getString(R.string.unit_feet));
|
||||
default:
|
||||
throw new RuntimeException("Not implemented");
|
||||
}
|
||||
|
||||
@@ -254,13 +254,14 @@ public class StringUtils {
|
||||
/**
|
||||
* @return the formatted altitude_m (or null) and it's unit as {@link Pair}
|
||||
*/
|
||||
//TODO altitude_m should be double or a value object
|
||||
public static Pair<String, String> getAltitudeParts(Context context, Float altitude_m, UnitSystem unitSystem) {
|
||||
DistanceFormatter formatter = DistanceFormatter.Builder()
|
||||
.setDecimalCount(1)
|
||||
.setUnit(unitSystem)
|
||||
.build(context);
|
||||
|
||||
Distance distance = altitude_m != null ? Distance.of(altitude_m) : Distance.of(Double.NaN); //TODO Refactor Double.NaN
|
||||
Distance distance = altitude_m != null ? Distance.of(altitude_m) : Distance.of((Double) null);
|
||||
return formatter.getDistanceParts(distance);
|
||||
}
|
||||
|
||||
|
||||
@@ -559,4 +559,36 @@ limitations under the License.
|
||||
<string name="settings_public_api_dashboard_enabled_summary_on">Một ứng dụng bắt đầu ghi hình cũng có thể truy cập vào dữ liệu ghi lại.</string>
|
||||
<string name="settings_public_api_dashboard_enabled_summary_off">Ghi lại dữ liệu sẽ không được miễn phí tự động với các ứng dụng khác.</string>
|
||||
<string name="settings_public_api_dashboard_enabled_title">Chuyển dữ liệu tự động</string>
|
||||
<string name="settings_export_filename_title">Định dạng tên tệp</string>
|
||||
<string name="show_on_dashboard_not_installed">Không có ứng dụng hỗ trợ API OpenTracks Dashboard nào được cài đặt.</string>
|
||||
<string name="description_pace_nautical">Nhịp độ (phút/dặm hải lý)</string>
|
||||
<string name="image_discard">Bỏ</string>
|
||||
<string name="settings_announcements_average_heart_rate">Nhịp tim trung bình</string>
|
||||
<string name="settings_announcements_lap_heart_rate">Nhịp tim vòng</string>
|
||||
<string name="settings_announcements_average_speed_pace">Tốc độ trung bình/nhịp độ</string>
|
||||
<string name="settings_stats_units_nautical">Hải lý (dặm hải lý, ft)</string>
|
||||
<string name="settings_public_api_package_title">Tên gói cho API công khai</string>
|
||||
<plurals name="voiceDistanceNauticalMiles">
|
||||
<item quantity="other">%1$.2f dặm hải lý</item>
|
||||
</plurals>
|
||||
<string name="select_show_on_map_behavior">Chọn hành vi \"hiện trên bản đồ\"</string>
|
||||
<string name="settings_announcements_lap_speed_pace">Tốc độ vòng/nhịp độ</string>
|
||||
<string name="track_discarding">Đang bỏ đoạn đường</string>
|
||||
<plurals name="voiceSpeedMKnots">
|
||||
<item quantity="other">%1$.1f nút</item>
|
||||
</plurals>
|
||||
<string name="voice_per_nautical_mile">trên dặm hải lý</string>
|
||||
<string name="description_speed_nautical">Tốc độ (nút)</string>
|
||||
<string name="unit_nautical_mile">Dặm hải lý</string>
|
||||
<string name="unit_knots">nút</string>
|
||||
<string name="unit_minute_per_nautical_mile">phút/dặm hải lý</string>
|
||||
<string name="value_integer_knots">%1$d nút</string>
|
||||
<string name="value_float_knots">%1$.1f nút</string>
|
||||
<string name="value_float_knots_recommended">%1$.1f nút (khuyên dùng)</string>
|
||||
<string name="error_crash_title">%1$s đã dừng đột ngột</string>
|
||||
<string name="share_crash_report">Chia sẻ báo cáo dừng đột ngột</string>
|
||||
<string name="report_bug">Báo cáo lỗi</string>
|
||||
<string name="show_on_map_format_ask">Hỏi</string>
|
||||
<string name="show_on_dashboard">API OpenTracks Dashboard</string>
|
||||
<string name="always">Luôn luôn</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_launcher_background" />
|
||||
<foreground>
|
||||
<inset
|
||||
android:inset="20dp"
|
||||
android:drawable="@drawable/ic_logo_24dp" />
|
||||
</foreground>
|
||||
<monochrome>
|
||||
<inset
|
||||
android:inset="20dp"
|
||||
android:drawable="@drawable/ic_logo_24dp" />
|
||||
</monochrome>
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<inset xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:drawable="@drawable/ic_logo_24dp" />
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="ic_launcher_background">#FFFF6D00</color>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user