Merge pull request 'cherry picks from #5946' (#6237)

Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/6237
This commit is contained in:
José Rebelo
2026-06-06 21:35:50 +02:00
4 changed files with 17 additions and 9 deletions
@@ -138,7 +138,7 @@ public abstract class AbstractActivityChartFragment<D extends ChartsData> extend
akLightSleep = new ActivityConfig(ActivityKind.LIGHT_SLEEP, getString(R.string.abstract_chart_fragment_kind_light_sleep), AK_LIGHT_SLEEP_COLOR);
akDeepSleep = new ActivityConfig(ActivityKind.DEEP_SLEEP, getString(R.string.abstract_chart_fragment_kind_deep_sleep), AK_DEEP_SLEEP_COLOR);
akRemSleep = new ActivityConfig(ActivityKind.REM_SLEEP, getString(R.string.abstract_chart_fragment_kind_rem_sleep), AK_REM_SLEEP_COLOR);
akAwakeSleep = new ActivityConfig(ActivityKind.REM_SLEEP, getString(R.string.abstract_chart_fragment_kind_awake_sleep), AK_AWAKE_SLEEP_COLOR);
akAwakeSleep = new ActivityConfig(ActivityKind.AWAKE_SLEEP, getString(R.string.abstract_chart_fragment_kind_awake_sleep), AK_AWAKE_SLEEP_COLOR);
akNotWorn = new ActivityConfig(ActivityKind.NOT_WORN, getString(R.string.abstract_chart_fragment_kind_not_worn), AK_NOT_WORN_COLOR);
}
@@ -471,4 +471,3 @@ public abstract class AbstractActivityChartFragment<D extends ChartsData> extend
return sample;
}
}
@@ -1465,6 +1465,7 @@ public class GBDeviceAdapterv2 extends ListAdapter<GBDevice, GBDeviceAdapterv2.V
int sleepGoalMinutes = activityUser.getSleepDurationGoal();
int distanceGoal = activityUser.getDistanceGoalMeters() * 100;
int stepLength = activityUser.getStepLengthCm();
int distanceForChart = distanceCm > 0 ? distanceCm : steps * stepLength;
double distanceMeters = (distanceCm > 0 ? distanceCm : steps * stepLength) * 0.01;
String distanceFormatted = FormatUtils.getFormattedDistanceLabel(distanceMeters);
@@ -1472,7 +1473,7 @@ public class GBDeviceAdapterv2 extends ListAdapter<GBDevice, GBDeviceAdapterv2.V
setChartsData(holder.TotalStepsChart, steps, stepGoal, context.getString(R.string.steps), NumberFormat.getInstance().format(steps), context);
setUpChart(holder.TotalDistanceChart);
setChartsData(holder.TotalDistanceChart, steps * stepLength, distanceGoal, context.getString(R.string.distance), distanceFormatted, context);
setChartsData(holder.TotalDistanceChart, distanceForChart, distanceGoal, context.getString(R.string.distance), distanceFormatted, context);
setUpChart(holder.SleepTimeChart);
setChartsData(holder.SleepTimeChart, sleep, sleepGoalMinutes, context.getString(R.string.prefs_activity_in_device_card_sleep_title), String.format("%1s", getHM(sleep)), context);
@@ -1486,7 +1487,7 @@ public class GBDeviceAdapterv2 extends ListAdapter<GBDevice, GBDeviceAdapterv2.V
Hashtable<PieChart, Pair<Boolean, Integer>> activitiesStatusMiniCharts = new Hashtable<>();
activitiesStatusMiniCharts.put(holder.TotalStepsChart, new Pair<>(showActivitySteps && steps > 0, ActivityChartsActivity.getChartsTabIndex("stepsweek", device, context)));
activitiesStatusMiniCharts.put(holder.SleepTimeChart, new Pair<>(showActivitySleep && sleep > 0, ActivityChartsActivity.getChartsTabIndex("sleep", device, context)));
activitiesStatusMiniCharts.put(holder.TotalDistanceChart, new Pair<>(showActivityDistance && steps > 0, ActivityChartsActivity.getChartsTabIndex("activity", device, context)));
activitiesStatusMiniCharts.put(holder.TotalDistanceChart, new Pair<>(showActivityDistance && distanceForChart > 0, ActivityChartsActivity.getChartsTabIndex("activity", device, context)));
for (Map.Entry<PieChart, Pair<Boolean, Integer>> miniCharts : activitiesStatusMiniCharts.entrySet()) {
PieChart miniChart = miniCharts.getKey();
@@ -99,12 +99,19 @@ public class OpenTracksController extends Activity {
moveTaskToBack(true);
}
public static void sendIntent(Context context, String className, String category, OpenTracksActivityType openTracksActivityType) {
public static void sendIntent(Context context, String actionClassSuffix, String category, OpenTracksActivityType openTracksActivityType) {
Prefs prefs = GBApplication.getPrefs();
String packageName = prefs.getString("opentracks_packagename", "de.dennisguse.opentracks");
String classPackageBase = packageName;
if (packageName.startsWith("de.dennisguse.opentracks")) {
classPackageBase = "de.dennisguse.opentracks";
} else if (packageName.startsWith("de.storchp.opentracks")) {
classPackageBase = "de.storchp.opentracks";
}
Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClassName(packageName, className);
intent.setClassName(packageName, classPackageBase + actionClassSuffix);
intent.putExtra("STATS_TARGET_PACKAGE", context.getPackageName());
intent.putExtra("STATS_TARGET_CLASS", OpenTracksController.class.getName());
if (category != null) {
@@ -121,7 +128,7 @@ public class OpenTracksController extends Activity {
}
public static void startRecording(Context context) {
sendIntent(context, "de.dennisguse.opentracks.publicapi.StartRecording", null, null);
sendIntent(context, ".publicapi.StartRecording", null, null);
}
public static void startRecording(Context context, ActivityKind activityKind) {
@@ -131,11 +138,11 @@ public class OpenTracksController extends Activity {
LOG.warn("Unmapped activity kind icon for {}", activityKind);
}
sendIntent(context, "de.dennisguse.opentracks.publicapi.StartRecording", category, openTracksActivityType);
sendIntent(context, ".publicapi.StartRecording", category, openTracksActivityType);
}
public static void stopRecording(Context context) {
sendIntent(context, "de.dennisguse.opentracks.publicapi.StopRecording", null, null);
sendIntent(context, ".publicapi.StopRecording", null, null);
OpenTracksContentObserver openTracksObserver = GBApplication.app().getOpenTracksObserver();
if (openTracksObserver != null) {
saveToGpx(openTracksObserver.getActivityTrack());
@@ -99,6 +99,7 @@ public class AppNotificationType extends HashMap<String, NotificationType> {
put("org.telegram.messenger.beta", NotificationType.TELEGRAM);
put("org.telegram.messenger.web", NotificationType.TELEGRAM);
put("org.telegram.plus", NotificationType.TELEGRAM); // "Plus Messenger"
put("org.forkgram.messenger", NotificationType.TELEGRAM);
put("org.thunderdog.challegram", NotificationType.TELEGRAM);
put("nekox.messenger", NotificationType.TELEGRAM);
put("tw.nekomimi.nekogram", NotificationType.TELEGRAM);