@@ -43,6 +43,11 @@ const FindMyPhone::LabelState FindMyPhone::alertingLabelState {
4343 .color = LV_COLOR_RED,
4444};
4545
46+ const FindMyPhone::LabelState FindMyPhone::sendFailedLabelState {
47+ .text = " Communication fail" ,
48+ .color = LV_COLOR_WHITE,
49+ };
50+
4651FindMyPhone::FindMyPhone (Pinetime::Controllers::ImmediateAlertClient& immediateAlertClient) : immediateAlertClient {immediateAlertClient} {
4752 container = lv_cont_create (lv_scr_act (), nullptr );
4853
@@ -92,7 +97,11 @@ void FindMyPhone::OnImmediateAlertEvent(lv_obj_t* obj, lv_event_t event) {
9297 ASSERT (false );
9398 return ;
9499 }
95- immediateAlertClient.SendImmediateAlert (*lastUserInitiatedLevel);
100+ if (immediateAlertClient.SendImmediateAlert (*lastUserInitiatedLevel)) {
101+ lastSendFailed = false ;
102+ } else {
103+ lastSendFailed = true ;
104+ }
96105 }
97106}
98107
@@ -106,6 +115,9 @@ const FindMyPhone::LabelState& FindMyPhone::GetLabelState() const {
106115 case Pinetime::Controllers::ImmediateAlertClient::State::Connected:
107116 break ;
108117 }
118+ if (lastSendFailed) {
119+ return sendFailedLabelState;
120+ }
109121 // Conntected state handling.
110122 if (!lastUserInitiatedLevel.has_value ()) {
111123 return defaultLabelState;
@@ -132,6 +144,7 @@ void FindMyPhone::Refresh() {
132144 lv_obj_add_state (btnStop, LV_STATE_DISABLED);
133145 lv_obj_add_state (btnRing, LV_STATE_DISABLED);
134146 lastUserInitiatedLevel = std::nullopt ;
147+ lastSendFailed = false ;
135148 }
136149 const auto & label_state = GetLabelState ();
137150 lv_obj_set_style_local_text_color (lblTitle, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, label_state.color );
0 commit comments