From b4277e7bd29e1f4f620f7c9ede1260eb1d4940fd Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Fri, 4 Jul 2025 02:34:47 +0200 Subject: [PATCH] ATC_BLE_OEPL: Support black/white/yellow displays --- .../atcbleoepl/ATCBLEOEPLDeviceSupport.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/atcbleoepl/ATCBLEOEPLDeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/atcbleoepl/ATCBLEOEPLDeviceSupport.java index 47ed245705..0030fe2a86 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/atcbleoepl/ATCBLEOEPLDeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/atcbleoepl/ATCBLEOEPLDeviceSupport.java @@ -66,7 +66,7 @@ public class ATCBLEOEPLDeviceSupport extends AbstractBTLESingleDeviceSupport { private int epaper_width = 0; private int epaper_height = 0; private int epaper_colors = 0; - + private boolean is_bwy = false; private byte[] image_payload = null; private byte[] block_data = null; private int blocks_total = -1; @@ -248,10 +248,26 @@ public class ATCBLEOEPLDeviceSupport extends AbstractBTLESingleDeviceSupport { buf.position(41); int ble_adv_interval = buf.getShort() & 0xffff; + // check for black/white/yellow models + switch (model) { + case 1: + case 2: + case 3: + case 5: + case 6: + case 31: + case 35: + is_bwy = true; + break; + default: + is_bwy = false; + } + 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={} ble_adv_interval={}, oepl_enabled={}", version, epaper_width, epaper_height, epaper_colors, is_wh_swapped, model, ble_adv_interval, oepl_enabled); SharedPreferences.Editor editor = GBApplication.getDeviceSpecificSharedPrefs(gbDevice.getAddress()).edit(); @@ -341,7 +357,7 @@ public class ATCBLEOEPLDeviceSupport extends AbstractBTLESingleDeviceSupport { // FIXME: different models with different colors int[] colors = new int[]{ 0x000000, // black - 0xff0000, // red + is_bwy ? 0xffff00 : 0xff0000, // yellow or red 0xffff00, // yellow };