From 48ee259d8939cdd1d1cbff0292bb61d9414a165a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Thu, 27 Jul 2023 18:38:15 +0100 Subject: [PATCH] Bangle.js: Reorganize device settings --- .../DeviceSpecificSettingsFragment.java | 2 + .../devices/banglejs/BangleJSCoordinator.java | 38 +++++++++-------- app/src/main/res/values/strings.xml | 8 ++-- .../main/res/xml/devicesettings_banglejs.xml | 42 ------------------- .../xml/devicesettings_banglejs_apploader.xml | 9 ++++ .../xml/devicesettings_banglejs_location.xml | 28 +++++++++++++ .../res/xml/devicesettings_text_bitmaps.xml | 17 ++++++++ 7 files changed, 81 insertions(+), 63 deletions(-) delete mode 100644 app/src/main/res/xml/devicesettings_banglejs.xml create mode 100644 app/src/main/res/xml/devicesettings_banglejs_apploader.xml create mode 100644 app/src/main/res/xml/devicesettings_banglejs_location.xml create mode 100644 app/src/main/res/xml/devicesettings_text_bitmaps.xml 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 944d7b0d1..636a9f96f 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 @@ -819,6 +819,8 @@ public class DeviceSpecificSettingsFragment extends AbstractPreferenceFragment i setInputTypeFor(DeviceSettingsPreferenceConst.PREF_RESERVER_ALARMS_CALENDAR, InputType.TYPE_CLASS_NUMBER); setInputTypeFor(DeviceSettingsPreferenceConst.PREF_RESERVER_REMINDERS_CALENDAR, InputType.TYPE_CLASS_NUMBER); setInputTypeFor(DeviceSettingsPreferenceConst.PREF_INACTIVITY_THRESHOLD, InputType.TYPE_CLASS_NUMBER); + setInputTypeFor(DeviceSettingsPreferenceConst.PREF_DEVICE_GPS_UPDATE_INTERVAL, InputType.TYPE_CLASS_NUMBER); + setInputTypeFor(DeviceSettingsPreferenceConst.PREF_BANGLEJS_TEXT_BITMAP_SIZE, InputType.TYPE_CLASS_NUMBER); new PasswordCapabilityImpl().registerPreferences(getContext(), coordinator.getPasswordCapability(), this); new HeartRateCapability().registerPreferences(getContext(), coordinator.getHeartRateMeasurementIntervals(), this); 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 fc9641fde..159c12611 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 @@ -17,27 +17,23 @@ along with this program. If not, see . */ package nodomain.freeyourgadget.gadgetbridge.devices.banglejs; -import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_DEVICE_GPS_UPDATE; -import static nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSettingsPreferenceConst.PREF_DEVICE_INTENTS; - -import android.annotation.TargetApi; import android.app.Activity; import android.bluetooth.le.ScanFilter; import android.content.Context; import android.net.Uri; -import android.os.Build; import android.os.ParcelUuid; import androidx.annotation.NonNull; +import org.apache.commons.lang3.ArrayUtils; + +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.Vector; +import java.util.List; import nodomain.freeyourgadget.gadgetbridge.BuildConfig; -import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.R; -import nodomain.freeyourgadget.gadgetbridge.activities.appmanager.AppManagerActivity; import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; @@ -47,7 +43,6 @@ import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; -import nodomain.freeyourgadget.gadgetbridge.util.Prefs; public class BangleJSCoordinator extends AbstractBLEDeviceCoordinator { @@ -193,19 +188,28 @@ public class BangleJSCoordinator extends AbstractBLEDeviceCoordinator { return true; } - public int[] getSupportedDeviceSpecificSettings(GBDevice device) { - Vector settings = new Vector(); - settings.add(R.xml.devicesettings_banglejs); + public int[] getSupportedDeviceSpecificSettings(final GBDevice device) { + final List settings = new ArrayList<>(); + + settings.add(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); + + settings.add(R.xml.devicesettings_header_calendar); + settings.add(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); + + settings.add(R.xml.devicesettings_header_developer); + settings.add(R.xml.devicesettings_banglejs_apploader); settings.add(R.xml.devicesettings_device_intents); - settings.add(R.xml.devicesettings_sync_calendar); - // must be a better way of doing this? - int[] settingsInt = new int[settings.size()]; - for (int i=0; iText as Bitmaps If a word cannot be rendered with the watch\'s font, render it to a bitmap in Gadgetbridge and display the bitmap on the watch Text Bitmaps Size - If \'Text as Bitmaps\' enabled, what size should text be rendered? + Size to use for bitmap text rendering Use phone gps data Use the gps data of the phone to overwrite the gps data of the bangle device Only use network to determine location - This option is only active, if the gps data of the phone is being used. This option can be used to use only the network provider to determine the location. This reduces the power consumption for the cost of accuracy. A reconnection of the device is needed. - GPS data update interval in ms - This option is only active, if the gps data of the phone is being used. This option sets the interval in ms how often the gps position is being updated + Use only the network provider to determine the location. This reduces the power consumption at the cost of accuracy. A reconnection is needed. + GPS data update interval + The interval for how often the gps position is being updated, in ms App loader URL If you want a custom app loader put your https://…/android.html URL here. Otherwise leave blank for https://banglejs.com/apps Right-To-Left diff --git a/app/src/main/res/xml/devicesettings_banglejs.xml b/app/src/main/res/xml/devicesettings_banglejs.xml deleted file mode 100644 index e4fac2ab2..000000000 --- a/app/src/main/res/xml/devicesettings_banglejs.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - diff --git a/app/src/main/res/xml/devicesettings_banglejs_apploader.xml b/app/src/main/res/xml/devicesettings_banglejs_apploader.xml new file mode 100644 index 000000000..d8a332097 --- /dev/null +++ b/app/src/main/res/xml/devicesettings_banglejs_apploader.xml @@ -0,0 +1,9 @@ + + + + diff --git a/app/src/main/res/xml/devicesettings_banglejs_location.xml b/app/src/main/res/xml/devicesettings_banglejs_location.xml new file mode 100644 index 000000000..00eb5fd70 --- /dev/null +++ b/app/src/main/res/xml/devicesettings_banglejs_location.xml @@ -0,0 +1,28 @@ + + + + + + + + diff --git a/app/src/main/res/xml/devicesettings_text_bitmaps.xml b/app/src/main/res/xml/devicesettings_text_bitmaps.xml new file mode 100644 index 000000000..2bfbe538e --- /dev/null +++ b/app/src/main/res/xml/devicesettings_text_bitmaps.xml @@ -0,0 +1,17 @@ + + + + +