diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qhybrid/QHybridCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qhybrid/QHybridCoordinator.java index 03aada28b..b071bce9a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qhybrid/QHybridCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qhybrid/QHybridCoordinator.java @@ -30,6 +30,8 @@ import androidx.annotation.Nullable; import java.util.Collection; import java.util.Collections; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.GBException; @@ -43,8 +45,7 @@ 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.model.ItemWithDetails; -import nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport; +import nodomain.freeyourgadget.gadgetbridge.util.Version; public class QHybridCoordinator extends AbstractDeviceCoordinator { @NonNull @@ -192,6 +193,16 @@ public class QHybridCoordinator extends AbstractDeviceCoordinator { @Override public int[] getSupportedDeviceSpecificSettings(GBDevice device) { + if (isHybridHR() && getFirmwareVersion() != null && getFirmwareVersion().compareTo(new Version("1.0.2.20")) < 0) { + return new int[]{ + R.xml.devicesettings_fossilhybridhr_pre_fw20, + R.xml.devicesettings_fossilhybridhr, + R.xml.devicesettings_autoremove_notifications, + R.xml.devicesettings_canned_dismisscall_16, + R.xml.devicesettings_pairingkey, + R.xml.devicesettings_custom_deviceicon + }; + } if (isHybridHR()) { return new int[]{ R.xml.devicesettings_fossilhybridhr, @@ -214,4 +225,16 @@ public class QHybridCoordinator extends AbstractDeviceCoordinator { } return false; } + + private Version getFirmwareVersion() { + String firmware = GBApplication.app().getDeviceManager().getSelectedDevice().getFirmwareVersion(); + if (firmware != null) { + Matcher matcher = Pattern.compile("[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+").matcher(firmware); // DN1.0.2.19r.v5 + if (matcher.find()) { + firmware = matcher.group(0); + return new Version(firmware); + } + } + return null; + } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6211728db..03efb0c93 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1170,4 +1170,6 @@ Configure the functionality of the physical buttons on the watch Upload and download files Calibrate the watch hands + Send the messages configured below to your device + Dismiss calls from the watch with an SMS message \ No newline at end of file diff --git a/app/src/main/res/xml/devicesettings_canned_dismisscall_16.xml b/app/src/main/res/xml/devicesettings_canned_dismisscall_16.xml index f516cdd47..248c3fb48 100644 --- a/app/src/main/res/xml/devicesettings_canned_dismisscall_16.xml +++ b/app/src/main/res/xml/devicesettings_canned_dismisscall_16.xml @@ -4,10 +4,12 @@ + android:title="@string/pref_title_canned_messages_dismisscall" + android:summary="@string/pref_summary_canned_messages_dismisscall"> + android:title="@string/pref_title_canned_messages_set" + android:summary="@string/pref_summary_canned_messages_set"/> - - - - + + + diff --git a/app/src/main/res/xml/devicesettings_fossilhybridhr_pre_fw20.xml b/app/src/main/res/xml/devicesettings_fossilhybridhr_pre_fw20.xml new file mode 100644 index 000000000..54242c160 --- /dev/null +++ b/app/src/main/res/xml/devicesettings_fossilhybridhr_pre_fw20.xml @@ -0,0 +1,15 @@ + + + + + + +