mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Fix OpenTracks icon mapping
This commit is contained in:
+137
@@ -0,0 +1,137 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.externalevents.opentracks;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
|
||||
|
||||
/**
|
||||
* As per <a href="https://codeberg.org/OpenTracksApp/OpenTracks/src/branch/main/src/main/java/de/dennisguse/opentracks/data/models/ActivityType.java">ActivityType.java</a>
|
||||
*/
|
||||
public enum OpenTracksActivityType {
|
||||
AIRPLANE("airplane"),
|
||||
ATV("ATV"),
|
||||
BIKING("biking"),
|
||||
BLIMP("blimp"),
|
||||
BOAT("boat"),
|
||||
CLIMBING("climbing"),
|
||||
COMMERCIAL_AIRPLANE("commercial airplane"),
|
||||
CROSS_COUNTRY_SKIING("cross-country skiing"),
|
||||
CYCLING("cycling"),
|
||||
DIRT_BIKE("dirt bike"),
|
||||
DONKEY_BACK_RIDING("donkey back riding"),
|
||||
DRIVING("driving"),
|
||||
DRIVING_BUS("driving bus"),
|
||||
DRIVING_CAR("driving car"),
|
||||
ESCOOTER("escooter"),
|
||||
FERRY("ferry"),
|
||||
FRISBEE("frisbee"),
|
||||
GLIDING("gliding"),
|
||||
HANG_GLIDING("hang gliding"),
|
||||
HELICOPTER("helicopter"),
|
||||
HIKING("hiking"),
|
||||
HORSE_BACK_RIDING("horse back riding"),
|
||||
HOT_AIR_BALLOON("hot air balloon"),
|
||||
ICE_SAILING("ice sailing"),
|
||||
INLINE_SKATING("inline skating"),
|
||||
KAYAKING("kayaking"),
|
||||
KITE_SURFING("kite surfing"),
|
||||
LAND_SAILING("land sailing"),
|
||||
MIXED_TYPE("mixed type"),
|
||||
MOTOR_BIKE("motor bike"),
|
||||
MOTOR_BOATING("motor boating"),
|
||||
MOUNTAIN_BIKING("mountain biking"),
|
||||
OFF_TRAIL_HIKING("off trail hiking"),
|
||||
OTHER("other"),
|
||||
PADDLING("paddling"),
|
||||
PARA_GLIDING("para gliding"),
|
||||
RC_AIRPLANE("RC airplane"),
|
||||
RC_BOAT("RC boat"),
|
||||
RC_HELICOPTER("RC helicopter"),
|
||||
RIDING("riding"),
|
||||
ROAD_BIKING("road biking"),
|
||||
ROLLER_SKIING("roller skiing"),
|
||||
ROWING("rowing"),
|
||||
RUNNING("running"),
|
||||
SAILING("sailing"),
|
||||
KICKSCOOTER("kickscooter"),
|
||||
SEAPLANE("seaplane"),
|
||||
SKATE_BOARDING("skateboarding"),
|
||||
SKATING("skating"),
|
||||
SKIING("skiing"),
|
||||
SKY_JUMPING("sky jumping"),
|
||||
SLED("sled"),
|
||||
SNOW_BOARDING("snowboarding"),
|
||||
SNOW_SHOEING("snow shoeing"),
|
||||
SPEED_WALKING("speed walking"),
|
||||
STREET_RUNNING("street running"),
|
||||
SURFING("surfing"),
|
||||
TRACK_CYCLING("track cycling"),
|
||||
TRACK_RUNNING("track running"),
|
||||
TRAIL_HIKING("trail hiking"),
|
||||
TRAIL_RUNNING("trail running"),
|
||||
TRAIN("train"),
|
||||
ULTIMATE_FRISBEE("ultimate frisbee"),
|
||||
WAKEBOARDING("wakeboarding"),
|
||||
WALKING("walking"),
|
||||
WATER_SKIING("water skiing"),
|
||||
WIND_SURFING("wind surfing"),
|
||||
SWIMMING("swimming"),
|
||||
SWIMMING_OPEN("swimming in open water"),
|
||||
WORKOUT("workout"),
|
||||
UNKNOWN("unknown"),
|
||||
;
|
||||
|
||||
private final String id;
|
||||
|
||||
OpenTracksActivityType(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public static OpenTracksActivityType fromActivityKind(final ActivityKind activityKind) {
|
||||
return switch (activityKind) {
|
||||
case ATV -> ATV;
|
||||
case CYCLING, INDOOR_CYCLING, OUTDOOR_CYCLING, HANDCYCLING -> BIKING;
|
||||
case BOATING, DRAGON_BOAT, POWERBOATING -> BOAT;
|
||||
case CLIMBING -> CLIMBING;
|
||||
case CROSS_COUNTRY_SKIING -> CROSS_COUNTRY_SKIING;
|
||||
case DRIVING -> DRIVING;
|
||||
case FRISBEE -> FRISBEE;
|
||||
case HANG_GLIDING -> HANG_GLIDING;
|
||||
case HIKING -> HIKING;
|
||||
case HORSE_RIDING -> HORSE_BACK_RIDING;
|
||||
case ICE_SKATING -> ICE_SAILING;
|
||||
case INLINE_SKATING -> INLINE_SKATING;
|
||||
case KAYAKING -> KAYAKING;
|
||||
case KITESURFING -> KITE_SURFING;
|
||||
case MOTORCYCLING -> MOTOR_BIKE;
|
||||
case MOUNTAIN_BIKE -> MOUNTAIN_BIKING;
|
||||
case PADDLING -> PADDLING;
|
||||
case PARAGLIDING -> PARA_GLIDING;
|
||||
case ROAD_BIKE -> ROAD_BIKING;
|
||||
case ROWING -> ROWING;
|
||||
case RUNNING -> RUNNING;
|
||||
case SAILING -> SAILING;
|
||||
case SKATEBOARDING -> SKATE_BOARDING;
|
||||
case SKATING -> SKATING;
|
||||
case SKIING -> SKIING;
|
||||
case SKY_DIVING -> SKY_JUMPING;
|
||||
case SLEDDING -> SLED;
|
||||
case SNOWBOARDING -> SNOW_BOARDING;
|
||||
case SNOWSHOE -> SNOW_SHOEING;
|
||||
case SURFING -> SURFING;
|
||||
case TRACK_RUN -> TRACK_RUNNING;
|
||||
case TRAIL_RUN -> TRAIL_RUNNING;
|
||||
case TRAINING -> TRAIN;
|
||||
case ULTIMATE_DISC -> ULTIMATE_FRISBEE;
|
||||
case WAKEBOARDING -> WAKEBOARDING;
|
||||
case WALKING -> WALKING;
|
||||
case WATER_SKIING -> WATER_SKIING;
|
||||
case WINDSURFING -> WIND_SURFING;
|
||||
case SWIMMING -> SWIMMING;
|
||||
case SWIMMING_OPENWATER -> SWIMMING_OPEN;
|
||||
default -> UNKNOWN;
|
||||
};
|
||||
}
|
||||
}
|
||||
+10
-22
@@ -54,7 +54,7 @@ public class OpenTracksController extends Activity {
|
||||
* their documentation here: https://github.com/OpenTracksApp/OpenTracks#api
|
||||
* `startRecording()` sends an explicit Intent to OpenTracks signalling it
|
||||
* to start recording. It passes along the package name and class name of
|
||||
* our `OpenTracksController` which OpenTracks will use to send the
|
||||
* our `OpenTracksController` which OpenTracks will use to send the
|
||||
* statistics URIs to. After starting the recording service, OpenTracks
|
||||
* uses a new explicit Intent to start our `OpenTracksController` and passes
|
||||
* along the URIs and the read permissions for those URIs (using
|
||||
@@ -86,8 +86,8 @@ public class OpenTracksController extends Activity {
|
||||
}
|
||||
Uri tracksUri = uris.get(0);
|
||||
Uri trackpointsUri = uris.get(1);
|
||||
LOG.info("Registering OpenTracksContentObserver with tracks URI: " + tracksUri);
|
||||
LOG.info("Registering OpenTracksContentObserver with trackpoints URI: " + trackpointsUri);
|
||||
LOG.info("Registering OpenTracksContentObserver with tracks URI: {}", tracksUri);
|
||||
LOG.info("Registering OpenTracksContentObserver with trackpoints URI: {}", trackpointsUri);
|
||||
gbApp.setOpenTracksObserver(new OpenTracksContentObserver(this, tracksUri, trackpointsUri, protocolVersion));
|
||||
try {
|
||||
getContentResolver().registerContentObserver(tracksUri, false, gbApp.getOpenTracksObserver());
|
||||
@@ -99,7 +99,7 @@ public class OpenTracksController extends Activity {
|
||||
moveTaskToBack(true);
|
||||
}
|
||||
|
||||
public static void sendIntent(Context context, String className, String category, String icon) {
|
||||
public static void sendIntent(Context context, String className, String category, OpenTracksActivityType openTracksActivityType) {
|
||||
Prefs prefs = GBApplication.getPrefs();
|
||||
String packageName = prefs.getString("opentracks_packagename", "de.dennisguse.opentracks");
|
||||
Intent intent = new Intent();
|
||||
@@ -110,8 +110,8 @@ public class OpenTracksController extends Activity {
|
||||
if (category != null) {
|
||||
intent.putExtra("TRACK_CATEGORY", category);
|
||||
}
|
||||
if (icon != null) {
|
||||
intent.putExtra("TRACK_ICON", icon);
|
||||
if (openTracksActivityType != null) {
|
||||
intent.putExtra("TRACK_ICON", openTracksActivityType.getId());
|
||||
}
|
||||
try {
|
||||
context.startActivity(intent);
|
||||
@@ -126,24 +126,12 @@ public class OpenTracksController extends Activity {
|
||||
|
||||
public static void startRecording(Context context, ActivityKind activityKind) {
|
||||
final String category = activityKind.getLabel(context);
|
||||
final String icon;
|
||||
switch (activityKind) {
|
||||
case CYCLING:
|
||||
icon = "BIKE";
|
||||
break;
|
||||
case HIKING:
|
||||
case WALKING:
|
||||
icon = "WALK";
|
||||
break;
|
||||
case RUNNING:
|
||||
icon = "RUN";
|
||||
break;
|
||||
default:
|
||||
LOG.warn("Unmapped activity kind icon for {}", activityKind);
|
||||
icon = null;
|
||||
final OpenTracksActivityType openTracksActivityType = OpenTracksActivityType.fromActivityKind(activityKind);
|
||||
if (openTracksActivityType == OpenTracksActivityType.UNKNOWN) {
|
||||
LOG.warn("Unmapped activity kind icon for {}", activityKind);
|
||||
}
|
||||
|
||||
sendIntent(context, "de.dennisguse.opentracks.publicapi.StartRecording", category, icon);
|
||||
sendIntent(context, "de.dennisguse.opentracks.publicapi.StartRecording", category, openTracksActivityType);
|
||||
}
|
||||
|
||||
public static void stopRecording(Context context) {
|
||||
|
||||
Reference in New Issue
Block a user