解决#1268,手表,使用手机音乐播发歌曲,先暂停音乐后切换歌曲,手表上的暂停状态不会更随变动bug 1632/2
authorluozheng <1732036298@qq.com>
Wed, 15 Jan 2025 07:37:02 +0000 (15:37 +0800)
committerluozheng <1732036298@qq.com>
Wed, 15 Jan 2025 07:37:02 +0000 (15:37 +0800)
code/sdk/application/wearable/fd230app/nativeui/player/src/PlayersPresenter.cpp

index 70c45b4..2bfc060 100644 (file)
@@ -683,19 +683,25 @@ void ButtonOnClickListener::PlayerButtonOnClick()
 /*下一首按钮被点击时调用*/\r
 void ButtonOnClickListener::NextButtonOnClick()\r
 {\r
+    PlayersView *playersView = PlayersView::GetInstance();\r
+    if (playersView == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::GetInstance");\r
+        return;\r
+    }\r
     /* -------------------------- 若ct或tg端是已连接状态且当前为手机音乐 ------------------------- */\r
     if(PlayersModel::GetInstance()->get_avrcp_ct_or_tg_is_connected() && PlayersModel::GetInstance()->GetMusicSource())\r
     {\r
         PlayersModel::GetInstance()->set_phone_music_play_state(AVRCP_KEY_FORWARD); //控制手机音乐下一首\r
+        uint8_t state = UICheckBox::UICheckBoxState::MAX_STATUS_NUM;\r
+        state = playersView->GetPlayerButtonState();\r
+        if (PlayersModel::GetInstance()->get_a2dp_sink_playing_state() && state == UICheckBox::UICheckBoxState::UNSELECTED) \r
+        {\r
+            playersView->SetPlayerButtonState(UICheckBox::UICheckBoxState::SELECTED);\r
+        }\r
         return;\r
     }\r
     else\r
     {\r
-        PlayersView *playersView = PlayersView::GetInstance();\r
-        if (playersView == nullptr) {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::GetInstance");\r
-            return;\r
-        }\r
         if (PlayersModel::GetInstance()->get_avrcp_ct_or_tg_is_connected() && \r
                 PlayersModel::GetInstance()->get_a2dp_sink_playing_state()) //若ct或tg端是已连接状态且当前a2dp_sink是已播放状态\r
         {\r
@@ -712,19 +718,25 @@ void ButtonOnClickListener::NextButtonOnClick()
 /*上一首按钮被点击时调用*/\r
 void ButtonOnClickListener::PreButtonOnClick()\r
 {\r
+    PlayersView *playersView = PlayersView::GetInstance();\r
+    if (playersView == nullptr) {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::GetInstance");\r
+        return;\r
+    }\r
     /* -------------------------- 若ct或tg端是已连接状态且当前为手机音乐 ------------------------- */\r
     if(PlayersModel::GetInstance()->get_avrcp_ct_or_tg_is_connected() && PlayersModel::GetInstance()->GetMusicSource())\r
     {\r
         PlayersModel::GetInstance()->set_phone_music_play_state(AVRCP_KEY_BACKWARD); //控制手机音乐上一首\r
+        uint8_t state = UICheckBox::UICheckBoxState::MAX_STATUS_NUM;\r
+        state = playersView->GetPlayerButtonState();\r
+        if (PlayersModel::GetInstance()->get_a2dp_sink_playing_state() && state == UICheckBox::UICheckBoxState::UNSELECTED) \r
+        {\r
+            playersView->SetPlayerButtonState(UICheckBox::UICheckBoxState::SELECTED);\r
+        }\r
         return;\r
     }\r
     else\r
     {\r
-        PlayersView *playersView = PlayersView::GetInstance();\r
-        if (playersView == nullptr) {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::GetInstance");\r
-            return;\r
-        }\r
         if (PlayersModel::GetInstance()->get_avrcp_ct_or_tg_is_connected() && \r
                 PlayersModel::GetInstance()->get_a2dp_sink_playing_state()) //若ct或tg端是已连接状态且当前a2dp_sink是已播放状态\r
         {\r