diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiActivitySummaryParser.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiActivitySummaryParser.java
index 4e4b346d8..cd6ad2629 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiActivitySummaryParser.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiActivitySummaryParser.java
@@ -181,7 +181,7 @@ public class HuamiActivitySummaryParser implements ActivitySummaryParser {
averageStride = buffer.getShort();
maxHR = buffer.getShort();
- if (activityKind == ActivityKind.TYPE_CYCLING || activityKind == ActivityKind.TYPE_RUNNING) {
+ if (activityKind == ActivityKind.TYPE_CYCLING || activityKind == ActivityKind.TYPE_RUNNING || activityKind == ActivityKind.TYPE_HIKING) {
// this had nonsense data with treadmill on bip s, need to test it with running
// for cycling it seems to work... hmm...
// 28 bytes
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/ActivityKind.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/ActivityKind.java
index de50eb27f..5c6295c8b 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/ActivityKind.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/ActivityKind.java
@@ -51,8 +51,9 @@ public class ActivityKind {
public static final int TYPE_PINGPONG = 0x00080000;
public static final int TYPE_BADMINTON = 0x00100000;
public static final int TYPE_STRENGTH_TRAINING = 0x00200000;
+ public static final int TYPE_HIKING = 0x00400000;
- private static final int TYPES_COUNT = 24;
+ private static final int TYPES_COUNT = 25;
public static final int TYPE_SLEEP = TYPE_LIGHT_SLEEP | TYPE_DEEP_SLEEP;
public static final int TYPE_ALL = TYPE_ACTIVITY | TYPE_SLEEP | TYPE_NOT_WORN;
@@ -78,6 +79,9 @@ public class ActivityKind {
if ((types & ActivityKind.TYPE_WALKING) != 0) {
result[i++] = provider.toRawActivityKind(TYPE_WALKING);
}
+ if ((types & ActivityKind.TYPE_HIKING) != 0) {
+ result[i++] = provider.toRawActivityKind(TYPE_HIKING);
+ }
if ((types & ActivityKind.TYPE_SWIMMING) != 0) {
result[i++] = provider.toRawActivityKind(TYPE_SWIMMING);
}
@@ -143,6 +147,8 @@ public class ActivityKind {
return context.getString(R.string.activity_type_running);
case TYPE_WALKING:
return context.getString(R.string.activity_type_walking);
+ case TYPE_HIKING:
+ return context.getString(R.string.activity_type_hiking);
case TYPE_SWIMMING:
return context.getString(R.string.activity_type_swimming);
case TYPE_CYCLING:
@@ -193,6 +199,7 @@ public class ActivityKind {
case TYPE_RUNNING:
return R.drawable.ic_activity_running;
case TYPE_WALKING:
+ case TYPE_HIKING:
return R.drawable.ic_activity_walking;
case TYPE_CYCLING:
return R.drawable.ic_activity_biking;
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSportsActivityType.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSportsActivityType.java
index 271e6cb19..e98d2820d 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSportsActivityType.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSportsActivityType.java
@@ -28,6 +28,7 @@ public enum HuamiSportsActivityType {
OpenWaterSwimming(7),
IndoorCycling(8),
EllipticalTrainer(9),
+ OutdoorHiking(15),
Soccer(0x12),
JumpRope(0x15),
RowingMachine(0x17),
@@ -49,6 +50,8 @@ public enum HuamiSportsActivityType {
switch (this) {
case OutdoorRunning:
return ActivityKind.TYPE_RUNNING;
+ case OutdoorHiking:
+ return ActivityKind.TYPE_HIKING;
case Treadmill:
return ActivityKind.TYPE_TREADMILL;
case Cycling:
@@ -100,6 +103,8 @@ public enum HuamiSportsActivityType {
switch (activityKind) {
case ActivityKind.TYPE_RUNNING:
return OutdoorRunning;
+ case ActivityKind.TYPE_HIKING:
+ return OutdoorHiking;
case ActivityKind.TYPE_TREADMILL:
return Treadmill;
case ActivityKind.TYPE_CYCLING:
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/operations/FetchSportsDetailsOperation.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/operations/FetchSportsDetailsOperation.java
index b7e87096c..7e5728974 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/operations/FetchSportsDetailsOperation.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/operations/FetchSportsDetailsOperation.java
@@ -102,6 +102,9 @@ public class FetchSportsDetailsOperation extends AbstractFetchOperation {
case ActivityKind.TYPE_WALKING:
trackType = getContext().getString(R.string.activity_type_walking);
break;
+ case ActivityKind.TYPE_HIKING:
+ trackType = getContext().getString(R.string.activity_type_hiking);
+ break;
case ActivityKind.TYPE_SWIMMING:
trackType = getContext().getString(R.string.activity_type_swimming);
break;
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 53662dfce..fffc81ee0 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -826,6 +826,7 @@
Device not worn
Running
Walking
+ Hiking
Swimming
Swimming (Open water)
Indoor Cycling