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 @@
+
+
+
+
+
+
+