From 3440485a51d2111ed3d2c874bb4bc615bceab6c3 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Thu, 23 May 2019 21:33:35 +0200 Subject: [PATCH] Mi Band 2: move settings to per-device settings --- .../activities/SettingsActivity.java | 17 ---------------- .../DeviceSpecificSettingsFragment.java | 16 +++++++++++++++ .../devices/huami/HuamiCoordinator.java | 6 +++--- .../service/devices/huami/HuamiSupport.java | 4 ++-- app/src/main/res/drawable/ic_access_time.xml | 10 ++++++++++ .../main/res/drawable/ic_font_download.xml | 10 ++++++++++ .../main/res/xml/devicesettings_miband2.xml | 20 ++++++++++++++++++- app/src/main/res/xml/preferences.xml | 18 ----------------- 8 files changed, 60 insertions(+), 41 deletions(-) create mode 100644 app/src/main/res/drawable/ic_access_time.xml create mode 100644 app/src/main/res/drawable/ic_font_download.xml diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/SettingsActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/SettingsActivity.java index f78ca603d..90cbcbfed 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/SettingsActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/SettingsActivity.java @@ -63,8 +63,6 @@ import nodomain.freeyourgadget.gadgetbridge.util.GB; import nodomain.freeyourgadget.gadgetbridge.util.GBPrefs; import nodomain.freeyourgadget.gadgetbridge.util.Prefs; -import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MI2_DATEFORMAT; -import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MI2_ENABLE_TEXT_NOTIFICATIONS; import static nodomain.freeyourgadget.gadgetbridge.model.ActivityUser.PREF_USER_HEIGHT_CM; import static nodomain.freeyourgadget.gadgetbridge.model.ActivityUser.PREF_USER_SLEEP_DURATION; import static nodomain.freeyourgadget.gadgetbridge.model.ActivityUser.PREF_USER_STEPS_GOAL; @@ -359,20 +357,6 @@ public class SettingsActivity extends AbstractSettingsActivity { autoFetchInterval); pref.setSummary(summary); - final Preference setDateFormat = findPreference(PREF_MI2_DATEFORMAT); - setDateFormat.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - @Override - public boolean onPreferenceChange(Preference preference, Object newVal) { - invokeLater(new Runnable() { - @Override - public void run() { - GBApplication.deviceService().onSendConfiguration(PREF_MI2_DATEFORMAT); - } - }); - return true; - } - }); - // Get all receivers of Media Buttons Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON); @@ -501,7 +485,6 @@ public class SettingsActivity extends AbstractSettingsActivity { PREF_USER_WEIGHT_KG, PREF_USER_SLEEP_DURATION, PREF_USER_STEPS_GOAL, - PREF_MI2_ENABLE_TEXT_NOTIFICATIONS, "weather_city", }; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java index 8b3e8a593..bb66596c1 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java @@ -17,6 +17,7 @@ import nodomain.freeyourgadget.gadgetbridge.util.XTimePreferenceFragment; import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DISCONNECT_NOTIFICATION; import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DISCONNECT_NOTIFICATION_END; import static nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst.PREF_DISCONNECT_NOTIFICATION_START; +import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MI2_DATEFORMAT; import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MI2_DO_NOT_DISTURB_OFF; import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MI2_DO_NOT_DISTURB_SCHEDULED; import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_NIGHT_MODE; @@ -234,6 +235,21 @@ public class DeviceSpecificSettingsFragment extends PreferenceFragmentCompat { } }); } + final Preference setDateFormat = findPreference(PREF_MI2_DATEFORMAT); + if (setDateFormat != null) { + setDateFormat.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newVal) { + invokeLater(new Runnable() { + @Override + public void run() { + GBApplication.deviceService().onSendConfiguration(PREF_MI2_DATEFORMAT); + } + }); + return true; + } + }); + } } static DeviceSpecificSettingsFragment newInstance(String settingsFileSuffix, @NonNull int[] supportedSettings) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiCoordinator.java index 0914b5d40..7f7276d88 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/HuamiCoordinator.java @@ -131,10 +131,10 @@ public abstract class HuamiCoordinator extends AbstractDeviceCoordinator { return new MiBand2SampleProvider(device, session); } - public static DateTimeDisplay getDateDisplay(Context context) throws IllegalArgumentException { - Prefs prefs = GBApplication.getPrefs(); + public static DateTimeDisplay getDateDisplay(Context context, String deviceAddress) throws IllegalArgumentException { + SharedPreferences sharedPrefs = GBApplication.getDeviceSpecificSharedPrefs(deviceAddress); String dateFormatTime = context.getString(R.string.p_dateformat_time); - if (dateFormatTime.equals(prefs.getString(MiBandConst.PREF_MI2_DATEFORMAT, dateFormatTime))) { + if (dateFormatTime.equals(sharedPrefs.getString(MiBandConst.PREF_MI2_DATEFORMAT, dateFormatTime))) { return DateTimeDisplay.TIME; } return DateTimeDisplay.DATE_TIME; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSupport.java index ec6a9291e..8e4eb5df9 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSupport.java @@ -347,7 +347,7 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport { return new Mi2NotificationStrategy(this); } } - if (GBApplication.getPrefs().getBoolean(MiBandConst.PREF_MI2_ENABLE_TEXT_NOTIFICATIONS, true)) { + if (GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).getBoolean(MiBandConst.PREF_MI2_ENABLE_TEXT_NOTIFICATIONS, true)) { return new Mi2TextNotificationStrategy(this); } return new Mi2NotificationStrategy(this); @@ -1580,7 +1580,7 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport { } private HuamiSupport setDateDisplay(TransactionBuilder builder) { - DateTimeDisplay dateTimeDisplay = HuamiCoordinator.getDateDisplay(getContext()); + DateTimeDisplay dateTimeDisplay = HuamiCoordinator.getDateDisplay(getContext(), gbDevice.getAddress()); LOG.info("Setting date display to " + dateTimeDisplay); switch (dateTimeDisplay) { case TIME: diff --git a/app/src/main/res/drawable/ic_access_time.xml b/app/src/main/res/drawable/ic_access_time.xml new file mode 100644 index 000000000..e2de53bbd --- /dev/null +++ b/app/src/main/res/drawable/ic_access_time.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_font_download.xml b/app/src/main/res/drawable/ic_font_download.xml new file mode 100644 index 000000000..03a9a260a --- /dev/null +++ b/app/src/main/res/drawable/ic_font_download.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/xml/devicesettings_miband2.xml b/app/src/main/res/xml/devicesettings_miband2.xml index 9f7374621..6a4c7cec5 100644 --- a/app/src/main/res/xml/devicesettings_miband2.xml +++ b/app/src/main/res/xml/devicesettings_miband2.xml @@ -1,12 +1,30 @@ + + + + + diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 726a37769..03f4e8552 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -271,24 +271,6 @@ android:icon="@drawable/ic_device_miband" android:key="pref_key_miband" android:title="@string/preferences_miband_settings" /> - - - -