Browse Source

stop OLED powering on every message if connected to phone

liquidraver 9 tháng trước cách đây
mục cha
commit
397d280c3b

+ 8 - 1
examples/companion_radio/ui-new/UITask.cpp

@@ -596,9 +596,16 @@ void UITask::newMsg(uint8_t path_len, const char* from_name, const char* text, i
   setCurrScreen(msg_preview);
 
   if (_display != NULL) {
-    if (!_display->isOn()) _display->turnOn();
+    // Only turn on display if it's off AND not connected to phone via BLE
+    // If connected to phone, user will see messages there, so don't wake the OLED
+    if (!_display->isOn() && !hasConnection()) {
+      _display->turnOn();
+    }
+    // Always extend auto-off timer and trigger refresh if display is on
+    if (_display->isOn()) {
     _auto_off = millis() + AUTO_OFF_MILLIS;  // extend the auto-off timer
     _next_refresh = 100;  // trigger refresh
+    }
   }
 }
 

+ 8 - 1
examples/companion_radio/ui-orig/UITask.cpp

@@ -136,9 +136,16 @@ void UITask::newMsg(uint8_t path_len, const char* from_name, const char* text, i
   StrHelper::strncpy(_msg, text, sizeof(_msg));
 
   if (_display != NULL) {
-    if (!_display->isOn()) _display->turnOn();
+    // Only turn on display if it's off AND not connected to phone via BLE
+    // If connected to phone, user will see messages there, so don't wake the OLED
+    if (!_display->isOn() && !hasConnection()) {
+      _display->turnOn();
+    }
+    // Always extend auto-off timer and trigger refresh if display is on
+    if (_display->isOn()) {
     _auto_off = millis() + AUTO_OFF_MILLIS;  // extend the auto-off timer
     _need_refresh = true;
+    }
   }
 }