优化提醒逻辑
authorxue <2144439972@qq.com>
Thu, 18 Dec 2025 10:07:41 +0000 (18:07 +0800)
committerxue <2144439972@qq.com>
Thu, 18 Dec 2025 10:07:41 +0000 (18:07 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdReminderView.cpp
code/sdk/zhihui/leiniao/imsl_ln/ln_api_schedule.c

index 6f45149..a82e443 100644 (file)
@@ -160,7 +160,7 @@ namespace OHOS
                 // 图标位置:整体居中的左侧
                 RemindIcon->SetPosition(62, 66, 36, 36);
                 RemindIcon->SetSrc("/user/res/notification.bin");
-                RemindIcon->SetVisible(true);
+                RemindIcon->SetVisible(false);
             }
             if (TextLabel)
             {
index 8768053..9bca13d 100644 (file)
@@ -214,6 +214,14 @@ void ln_parse_schedule_reminder(const char *json_buf, int json_len)
     }
     #endif
 
+    // 先推送通知,触发界面切换到 THUNDERBIRD_REMINDERVIEW_TASK_REMINDER
+    // 这样可以在界面切换完成后再开始下载
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[SCHEDULE_REMINDER] push text and schedule reminder content to ui (before download)\n");
+    push_schedule_reminder_notification(g_schedule_reminder.scheduleName, g_schedule_reminder.reminderContent);
+    
+    // 延迟一段时间,确保界面切换完成
+    LOS_Msleep(300);
+    
     int status  = uapi_ln_get_audio_play_status();
     if(status)
     {
@@ -234,7 +242,7 @@ void ln_parse_schedule_reminder(const char *json_buf, int json_len)
         AudioServiceSetVolume(AUDIO_STREAM_ALARM_CLOCK, uiVolume);
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[SCHEDULE_REMINDER] Set ALARM_CLOCK volume to %d%% (from UI volume) before reminder\n", uiVolume);
         
-        // ç\9b®å\89\8dæ\98¯ç«\8bå\8d³æ\8f\90é\86\92ç\9a\84æ\89\80以ç\9b´æ\8e¥下载并播放
+        // ç\95\8cé\9d¢å\88\87æ\8d¢å®\8cæ\88\90å\90\8eå\86\8då¼\80å§\8b下载并播放
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[JSON_PARSE] download audio:执行下载并播放\n");
         uapi_delete_files(LN_REMINDER_AUDIO_FILE);
 
@@ -253,9 +261,7 @@ void ln_parse_schedule_reminder(const char *json_buf, int json_len)
         if (ret == ERRCODE_SUCC)
         {
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[JSON_PARSE] download audio:下载成功\n");
-            // 推送文本和日程提醒内容数据给ui
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[SCHEDULE_REMINDER] push text and schedule reminder content to ui\n");
-            push_schedule_reminder_notification(g_schedule_reminder.scheduleName,g_schedule_reminder.reminderContent);
+            // 通知已经在下载前推送,这里不再重复推送
 
             // 震动
             if (g_schedule_reminder.enableVibration)
@@ -277,9 +283,7 @@ void ln_parse_schedule_reminder(const char *json_buf, int json_len)
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[JSON_PARSE] download audio:下载失败\n");
             /* -------------------------------------------------------------------------- */
-            // 推送文本和日程提醒内容数据给ui
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[SCHEDULE_REMINDER] push text and schedule reminder content to ui\n");
-            push_schedule_reminder_notification(g_schedule_reminder.scheduleName,g_schedule_reminder.reminderContent);
+            // 通知已经在下载前推送,这里不再重复推送
 
             // 震动
             if (g_schedule_reminder.enableVibration)
@@ -305,9 +309,7 @@ void ln_parse_schedule_reminder(const char *json_buf, int json_len)
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[JSON_PARSE] download audio:不执行下载\n");
         /* -------------------------------------------------------------------------- */
-        // 推送文本和日程提醒内容数据给ui
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[SCHEDULE_REMINDER] push text and schedule reminder content to ui\n");
-        push_schedule_reminder_notification(g_schedule_reminder.scheduleName,g_schedule_reminder.reminderContent);
+        // 通知已经在前面推送,这里不再重复推送
 
         // 震动
         if (g_schedule_reminder.enableVibration)