优化表情下载ui显示
authorluozheng <1732036298@qq.com>
Mon, 20 Oct 2025 03:08:28 +0000 (11:08 +0800)
committerluozheng <1732036298@qq.com>
Mon, 20 Oct 2025 03:08:28 +0000 (11:08 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdModel.cpp
code/sdk/zhihui/leiniao/imsl_ln/ln_api_emoji.c

index cf779e3..99b6537 100644 (file)
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleDownloadFile: OTA正在升级,跳过下载");
             return;
         }
+        NativeAbility::GetInstance().ChangeSlice(VIEW_OTA);
         // 根据下载类型进行不同的处理
         switch (type) {
             case DOWNLOAD_FILE_TYPE_SCREEN_IMAGE: // 屏保下载
index 7f4f791..c527355 100644 (file)
@@ -391,6 +391,26 @@ static void ln_emoji_download(void *arg)
         }
     }
 
+    /* 初始统计已缓存数量,并上报一次初始进度,避免重下发时UI显示0% */
+    int cached_count = 0;
+    for (int ci = 0; ci < pkg->emojiCount; ci++)
+    {
+        if (ln_emoji_is_cached(pkg, &pkg->emojis[ci]))
+        {
+            cached_count++;
+        }
+    }
+    downloaded_count = cached_count;
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[DOWNLOAD] 初始统计已下载数量,downloaded_count=%d", downloaded_count);
+    if (pkg->emojiCount > 0)
+    {
+        int init_progress = (int)(((double)downloaded_count / pkg->emojiCount) * 100);
+        if (init_progress > 0)
+        {
+            push_download_progress_notification(init_progress);
+        }
+    }
+
     // 遍历下载所有表情
     for (int i = 0; i < pkg->emojiCount; i++)
     {
@@ -398,7 +418,6 @@ static void ln_emoji_download(void *arg)
         if (ln_emoji_is_cached(pkg, &pkg->emojis[i]))
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[DOWNLOAD] emoji %s 已缓存", pkg->emojis[i].emotion);
-            downloaded_count++;
             continue;
         }