diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimeConstants.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimeConstants.java index c9be5f54d..791cbd2b2 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimeConstants.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimeConstants.java @@ -174,6 +174,12 @@ public class ZeTimeConstants { public static final String PREF_LOW_POWER_SIGNALING = "zetime_vibration_profile_lowpower"; public static final String PREF_ANTI_LOSS_SIGNALING = "zetime_vibration_profile_antiloss"; + public static final String PREF_USER_FITNESS_GOAL = "mi_fitness_goal"; + public static final String PREF_USER_SLEEP_GOAL = "activity_user_sleep_duration"; + public static final String PREF_USER_CALORIES_GOAL = "activity_user_calories_burnt"; + public static final String PREF_USER_DISTANCE_GOAL = "activity_user_distance_kmeters"; + public static final String PREF_USER_ACTIVETIME_GOAL = "activity_user_activetime_minutes"; + public static final String PREF_SHOCK_STRENGTH = "zetime_shock_strength"; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimePreferenceActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimePreferenceActivity.java index 825e88de9..f5f3f1ad6 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimePreferenceActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimePreferenceActivity.java @@ -18,6 +18,9 @@ public class ZeTimePreferenceActivity extends AbstractSettingsActivity { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.zetime_preferences); + addPreferencesFromResource(R.xml.preferences); + + GBApplication.deviceService().onReadConfiguration("do_it"); //addTryListeners(); @@ -358,7 +361,71 @@ public class ZeTimePreferenceActivity extends AbstractSettingsActivity { } }); - GBApplication.deviceService().onReadConfiguration("do_it"); + final Preference heartrateAlarm = findPreference(ZeTimeConstants.PREF_ZETIME_HEARTRATE_ALARM); + heartrateAlarm.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newVal) { + GBApplication.deviceService().onSendConfiguration(ZeTimeConstants.PREF_ZETIME_HEARTRATE_ALARM); + return true; + } + }); + final Preference heartrateAlarmMax = findPreference(ZeTimeConstants.PREF_ZETIME_MAX_HEARTRATE); + heartrateAlarmMax.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newVal) { + GBApplication.deviceService().onSendConfiguration(ZeTimeConstants.PREF_ZETIME_MAX_HEARTRATE); + return true; + } + }); + final Preference heartrateAlarmMin = findPreference(ZeTimeConstants.PREF_ZETIME_MIN_HEARTRATE); + heartrateAlarmMin.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newVal) { + GBApplication.deviceService().onSendConfiguration(ZeTimeConstants.PREF_ZETIME_MIN_HEARTRATE); + return true; + } + }); + + final Preference fitnessGoal = findPreference(ZeTimeConstants.PREF_USER_FITNESS_GOAL); + fitnessGoal.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newVal) { + GBApplication.deviceService().onSendConfiguration(ZeTimeConstants.PREF_USER_FITNESS_GOAL); + return true; + } + }); + final Preference sleepGoal = findPreference(ZeTimeConstants.PREF_USER_SLEEP_GOAL); + sleepGoal.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newVal) { + GBApplication.deviceService().onSendConfiguration(ZeTimeConstants.PREF_USER_SLEEP_GOAL); + return true; + } + }); + final Preference caloriesGoal = findPreference(ZeTimeConstants.PREF_USER_CALORIES_GOAL); + caloriesGoal.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newVal) { + GBApplication.deviceService().onSendConfiguration(ZeTimeConstants.PREF_USER_CALORIES_GOAL); + return true; + } + }); + final Preference distanceGoal = findPreference(ZeTimeConstants.PREF_USER_DISTANCE_GOAL); + distanceGoal.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newVal) { + GBApplication.deviceService().onSendConfiguration(ZeTimeConstants.PREF_USER_DISTANCE_GOAL); + return true; + } + }); + final Preference activeTimeGoal = findPreference(ZeTimeConstants.PREF_USER_ACTIVETIME_GOAL); + activeTimeGoal.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newVal) { + GBApplication.deviceService().onSendConfiguration(ZeTimeConstants.PREF_USER_ACTIVETIME_GOAL); + return true; + } + }); } /** diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/zetime/ZeTimeDeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/zetime/ZeTimeDeviceSupport.java index e12a5d33b..267153e8b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/zetime/ZeTimeDeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/zetime/ZeTimeDeviceSupport.java @@ -129,7 +129,6 @@ public class ZeTimeDeviceSupport extends AbstractBTLEDeviceSupport { requestBatteryInfo(builder); setUserInfo(builder); setUserGoals(builder); - setHeartRateLimits(builder); requestActivityInfo(builder); synchronizeTime(builder); initMusicVolume(builder); @@ -188,6 +187,17 @@ public class ZeTimeDeviceSupport extends AbstractBTLEDeviceSupport { break; case ZeTimeConstants.PREF_SHOCK_STRENGTH: setShockStrength(builder); + case ZeTimeConstants.PREF_ZETIME_HEARTRATE_ALARM: + case ZeTimeConstants.PREF_ZETIME_MAX_HEARTRATE: + case ZeTimeConstants.PREF_ZETIME_MIN_HEARTRATE: + setHeartRateLimits(builder); + break; + case ZeTimeConstants.PREF_USER_FITNESS_GOAL: + case ZeTimeConstants.PREF_USER_SLEEP_GOAL: + case ZeTimeConstants.PREF_USER_CALORIES_GOAL: + case ZeTimeConstants.PREF_USER_DISTANCE_GOAL: + case ZeTimeConstants.PREF_USER_ACTIVETIME_GOAL: + setUserGoals(builder); break; } builder.queue(getQueue());