diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsScreen.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsScreen.java index 006cb8215..63d0a3d3e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsScreen.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsScreen.java @@ -27,6 +27,7 @@ public enum DeviceSpecificSettingsScreen { CONNECTION("pref_screen_connection", R.xml.devicesettings_root_connection), DEVELOPER("pref_screen_developer", R.xml.devicesettings_root_developer), DISPLAY("pref_screen_display", R.xml.devicesettings_root_display), + LOCATION("pref_screen_location", R.xml.devicesettings_root_location), NOTIFICATIONS("pref_screen_notifications", R.xml.devicesettings_root_notifications), DATE_TIME("pref_screen_date_time", R.xml.devicesettings_root_date_time), WORKOUT("pref_screen_workout", R.xml.devicesettings_root_workout), diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/banglejs/BangleJSCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/banglejs/BangleJSCoordinator.java index c1a84c99f..249ad367b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/banglejs/BangleJSCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/banglejs/BangleJSCoordinator.java @@ -36,7 +36,9 @@ import java.util.regex.Pattern; import nodomain.freeyourgadget.gadgetbridge.BuildConfig; import nodomain.freeyourgadget.gadgetbridge.R; +import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettings; import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettingsCustomizer; +import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettingsScreen; import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; @@ -172,33 +174,47 @@ public class BangleJSCoordinator extends AbstractBLEDeviceCoordinator { } @Override - public int[] getSupportedDeviceSpecificSettings(final GBDevice device) { - final List settings = new ArrayList<>(); + public DeviceSpecificSettings getDeviceSpecificSettings(final GBDevice device) { + final DeviceSpecificSettings deviceSpecificSettings = new DeviceSpecificSettings(); - settings.add(R.xml.devicesettings_banglejs_location); + deviceSpecificSettings.addRootScreen( + DeviceSpecificSettingsScreen.LOCATION, + R.xml.devicesettings_banglejs_location + ); - settings.add(R.xml.devicesettings_header_notifications); - settings.add(R.xml.devicesettings_text_bitmaps); - settings.add(R.xml.devicesettings_transliteration); + deviceSpecificSettings.addRootScreen( + DeviceSpecificSettingsScreen.NOTIFICATIONS, + R.xml.devicesettings_text_bitmaps, + R.xml.devicesettings_transliteration + ); - settings.add(R.xml.devicesettings_header_calendar); - settings.add(R.xml.devicesettings_sync_calendar); + deviceSpecificSettings.addRootScreen( + DeviceSpecificSettingsScreen.CALENDAR, + R.xml.devicesettings_sync_calendar + ); - settings.add(R.xml.devicesettings_header_connection); - settings.add(R.xml.devicesettings_high_mtu); - if (BuildConfig.INTERNET_ACCESS) - settings.add(R.xml.devicesettings_device_internet_access); + final List connection = deviceSpecificSettings.addRootScreen( + DeviceSpecificSettingsScreen.CONNECTION, + R.xml.devicesettings_high_mtu + ); + if (BuildConfig.INTERNET_ACCESS) { + connection.add(R.xml.devicesettings_device_internet_access); + } - settings.add(R.xml.devicesettings_banglejs_activity); + deviceSpecificSettings.addRootScreen( + DeviceSpecificSettingsScreen.ACTIVITY_INFO, + R.xml.devicesettings_banglejs_activity + ); - settings.add(R.xml.devicesettings_header_apps); - settings.add(R.xml.devicesettings_loyalty_cards); + deviceSpecificSettings.addRootScreen(R.xml.devicesettings_loyalty_cards); - settings.add(R.xml.devicesettings_header_developer); - settings.add(R.xml.devicesettings_banglejs_apploader); - settings.add(R.xml.devicesettings_device_intents); + deviceSpecificSettings.addRootScreen( + DeviceSpecificSettingsScreen.DEVELOPER, + R.xml.devicesettings_banglejs_apploader, + R.xml.devicesettings_device_intents + ); - return ArrayUtils.toPrimitive(settings.toArray(new Integer[0])); + return deviceSpecificSettings; } @Override diff --git a/app/src/main/res/xml/devicesettings_banglejs_activity.xml b/app/src/main/res/xml/devicesettings_banglejs_activity.xml index e9b277b66..d0d761f86 100644 --- a/app/src/main/res/xml/devicesettings_banglejs_activity.xml +++ b/app/src/main/res/xml/devicesettings_banglejs_activity.xml @@ -1,23 +1,19 @@ - - + - - - + + diff --git a/app/src/main/res/xml/devicesettings_banglejs_location.xml b/app/src/main/res/xml/devicesettings_banglejs_location.xml index d65017c12..546a66ada 100644 --- a/app/src/main/res/xml/devicesettings_banglejs_location.xml +++ b/app/src/main/res/xml/devicesettings_banglejs_location.xml @@ -1,28 +1,24 @@ - - - - - + + + diff --git a/app/src/main/res/xml/devicesettings_root_location.xml b/app/src/main/res/xml/devicesettings_root_location.xml new file mode 100644 index 000000000..2a936edaa --- /dev/null +++ b/app/src/main/res/xml/devicesettings_root_location.xml @@ -0,0 +1,9 @@ + + + + +