diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java index 3691ff41c5..0da2751719 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsPreferenceConst.java @@ -650,5 +650,6 @@ public class DeviceSettingsPreferenceConst { public static final String PREF_DEVICE_STRESS_TEST_CONNECT_PARALLEL = "pref_device_stress_test_connect_parallel"; public static final String PREF_DEVICE_STRESS_TEST_DISPOSE = "pref_device_stress_test_dispose"; - public static final String PREF_ATC_TSLR_PAPER_MODEL = "pref_atc_tslr_paper_model"; + public static final String PREF_ATC_TLSR_PAPER_MODEL = "pref_atc_tlsr_paper_model"; + public static final String PREF_ATC_TLSR_PAPER_BLE_ADV_INTERVAL = "pref_atc_tlsr_ble_adv_interval"; } 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 5481ed5ec0..533f5972a1 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 @@ -967,7 +967,8 @@ public class DeviceSpecificSettingsFragment extends AbstractPreferenceFragment i addPreferenceHandlerFor(PREF_CALENDAR_MAX_DESC_LENGTH); addPreferenceHandlerFor(PREF_CALENDAR_TARGET_APP); - addPreferenceHandlerFor(PREF_ATC_TSLR_PAPER_MODEL); + addPreferenceHandlerFor(PREF_ATC_TLSR_PAPER_MODEL); + addPreferenceHandlerFor(PREF_ATC_TLSR_PAPER_BLE_ADV_INTERVAL); final Preference dischargeIntervalsSet = findPreference(PREF_BATTERY_DISCHARGE_INTERVALS_SET); if (dischargeIntervalsSet != null) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/atctlsrpaper/ATCTLSRPaperDeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/atctlsrpaper/ATCTLSRPaperDeviceSupport.java index b64ff019bb..340368c585 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/atctlsrpaper/ATCTLSRPaperDeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/atctlsrpaper/ATCTLSRPaperDeviceSupport.java @@ -240,14 +240,18 @@ public class ATCTLSRPaperDeviceSupport extends AbstractBTLESingleDeviceSupport { buf.position(32); epaper_colors = buf.get(); + buf.position(41); + int ble_adv_interval = buf.getShort() & 0xffff; + if (epaper_width == 200 && epaper_height == 200 && model == 0x26) { model = 10000; //HACK for unsupported HS 154 BWRY JD } - LOG.info("decoded data: version={}, width={}, height={}, nr_colors={}, w/h swapped={}, model={}", version, epaper_width, epaper_height, epaper_colors, is_wh_swapped, model); + LOG.info("decoded data: version={}, width={}, height={}, nr_colors={}, w/h swapped={}, model={} ble_adv_interval={}", version, epaper_width, epaper_height, epaper_colors, is_wh_swapped, model, ble_adv_interval); SharedPreferences.Editor editor = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).edit(); - editor.putString(DeviceSettingsPreferenceConst.PREF_ATC_TSLR_PAPER_MODEL, String.valueOf(model)); + editor.putString(DeviceSettingsPreferenceConst.PREF_ATC_TLSR_PAPER_MODEL, String.valueOf(model)); + editor.putString(DeviceSettingsPreferenceConst.PREF_ATC_TLSR_PAPER_BLE_ADV_INTERVAL, String.valueOf(ble_adv_interval)); editor.apply(); final TransactionBuilder builder = new TransactionBuilder("set initialized"); @@ -257,22 +261,31 @@ public class ATCTLSRPaperDeviceSupport extends AbstractBTLESingleDeviceSupport { @Override public void onSendConfiguration(String config) { - TransactionBuilder builder; - try { - builder = performInitialized("Sending configuration for option: " + config); - if (DeviceSettingsPreferenceConst.PREF_ATC_TSLR_PAPER_MODEL.equals(config)) { - SharedPreferences sharedPrefs = GBApplication.getDeviceSpecificSharedPrefs(getDevice().getAddress()); - String display_model = sharedPrefs.getString(DeviceSettingsPreferenceConst.PREF_ATC_TSLR_PAPER_MODEL, "1"); - int model = Integer.parseInt(display_model); - if (model == 10000) {// HACK: this is for the HS 213 BWRY JD type - builder.write(getCharacteristic(UUID_CHARACTERISTIC_MAIN), COMMAND_CONFIGURE_HS_154_BWRY_JD); - } else { - builder.write(getCharacteristic(UUID_CHARACTERISTIC_MAIN), new byte[]{0x00, 0x04, 0x00, (byte) model}); + if (DeviceSettingsPreferenceConst.PREF_ATC_TLSR_PAPER_MODEL.equals(config) + || DeviceSettingsPreferenceConst.PREF_ATC_TLSR_PAPER_BLE_ADV_INTERVAL.equals(config) + ) { + TransactionBuilder builder; + SharedPreferences sharedPrefs = GBApplication.getDeviceSpecificSharedPrefs(getDevice().getAddress()); + try { + builder = performInitialized("Sending configuration for option: " + config); + if (DeviceSettingsPreferenceConst.PREF_ATC_TLSR_PAPER_MODEL.equals(config)) { + String display_model = sharedPrefs.getString(DeviceSettingsPreferenceConst.PREF_ATC_TLSR_PAPER_MODEL, "1"); + int model = Integer.parseInt(display_model); + if (model == 10000) {// HACK: this is for the HS 213 BWRY JD type + builder.write(getCharacteristic(UUID_CHARACTERISTIC_MAIN), COMMAND_CONFIGURE_HS_154_BWRY_JD); + } else { + builder.write(getCharacteristic(UUID_CHARACTERISTIC_MAIN), new byte[]{0x00, 0x04, 0x00, (byte) model}); + } } + if (DeviceSettingsPreferenceConst.PREF_ATC_TLSR_PAPER_BLE_ADV_INTERVAL.equals(config)) { + String bt_adv_interval = sharedPrefs.getString(DeviceSettingsPreferenceConst.PREF_ATC_TLSR_PAPER_BLE_ADV_INTERVAL, "1000"); + int interval = Integer.parseInt(bt_adv_interval); + builder.write(getCharacteristic(UUID_CHARACTERISTIC_MAIN), new byte[]{0x00, 0x08, (byte) (interval & 0xff), (byte) ((interval >> 8) & 0xff)}); + } + builder.queue(getQueue()); + } catch (IOException e) { + GB.toast("Error setting configuration", Toast.LENGTH_LONG, GB.ERROR, e); } - builder.queue(getQueue()); - } catch (IOException e) { - GB.toast("Error setting configuration", Toast.LENGTH_LONG, GB.ERROR, e); } } diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index af71b89aa4..a2d95b2ab7 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -5090,4 +5090,26 @@ 36 39 + + + 625ms + 2000ms + 2500ms + 3125ms + 3750ms + 4375ms + 5000ms + 6250ms + + + + 1000 + 3200 + 4000 + 5000 + 6000 + 7000 + 8000 + 10000 + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fbf31d2aac..90085f84a3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -4086,4 +4086,5 @@ same image already on device sending image Display Model + BLE Advertising Interval diff --git a/app/src/main/res/xml/devicesettings_atc_trsr_paper.xml b/app/src/main/res/xml/devicesettings_atc_trsr_paper.xml index 94040cbc52..39be99837c 100644 --- a/app/src/main/res/xml/devicesettings_atc_trsr_paper.xml +++ b/app/src/main/res/xml/devicesettings_atc_trsr_paper.xml @@ -4,7 +4,14 @@ android:defaultValue="1" android:entries="@array/atc_tlsr_paper_models" android:entryValues="@array/atc_tlsr_paper_models_values" - android:key="pref_atc_tslr_paper_model" + android:key="pref_atc_tlsr_paper_model" android:summary="%s" android:title="@string/pref_atc_tlsr_model_title" /> +