Просмотр исходного кода

卡片数据持久化到数据库

chendeben 1 год назад
Родитель
Сommit
75c530baa8

+ 0 - 35
entry/src/main/ets/common/service/UnifiedPlayerService.ets

@@ -12,7 +12,6 @@ import { PlaylistModel } from './PlaylistModel';
 import { IjkMediaPlayer, LogUtils, InterruptEvent, InterruptHintType } from '@ohos/ijkplayer';
 import { common } from '@kit.AbilityKit';
 import { PreferencesUtil as PuraPreferencesUtil, StrUtil } from '@pura/harmony-utils';
-import { PreferencesUtil } from '../utils/PreferencesUtil';
 import {
   DataPersistenceService,
   PlaylistSyncService,
@@ -31,7 +30,6 @@ import { AvSessionController } from '../../controller/AvSessionController';
 import { avSession } from '@kit.AVSessionKit';
 import { formProvider, formBindingData } from '@kit.FormKit';
 import { fileIo } from '@kit.CoreFileKit';
-import { BusinessError } from '@kit.BasicServicesKit';
 import { http } from '@kit.NetworkKit';
 import { util } from '@kit.ArkTS';
 import json from '@ohos.util.json';
@@ -446,9 +444,7 @@ export class UnifiedPlayerService implements IPlayerService, PlaylistSyncListene
   private context: common.UIAbilityContext | null = null;
   // 防重复调用机制
   private isUpdatingForms: boolean = false;
-  private lastUpdateTime: number = 0;
   private lastAvSessionUpdateTime: number = 0;
-  private readonly UPDATE_THROTTLE_MS: number = 100; // 100ms内只允许一次更新
   private progressTimer: number = -1;
   private isInitialized: boolean = false;
   private isDataRestored: boolean = false; // 新增:数据恢复完成标识
@@ -3027,37 +3023,6 @@ export class UnifiedPlayerService implements IPlayerService, PlaylistSyncListene
     }
   }
 
-  /**
-   * 处理新卡片添加事件。
-   * 此方法专为 FormExtensionAbility 的 onAddForm 调用。
-   * 它会确保在获取卡片数据前,服务的数据状态(如播放列表,当前歌曲)已从持久化存储中恢复,
-   * 从而避免新添加的卡片显示默认的“未知歌曲”信息。
-   * @param formId 新创建的卡片的ID
-   * @returns FormBindingData 实例,包含了正确的初始歌曲信息。
-   */
-  public async onFormAdded(formId: string): Promise<formBindingData.FormBindingData> {
-    try {
-      LogUtils.getInstance().LOGI(`UnifiedPlayerService: Form [${formId}] added. Preparing initial data.`);
-
-      // 1. 强制数据恢复,这是解决新卡片显示默认信息的关键步骤。
-      await this.forceDataRestoration();
-
-      // 2. 获取完整的卡片数据(包括图片)
-      const widgetData = await this.getWidgetFormData(true);
-      if (!widgetData) {
-        LogUtils.getInstance().LOGI(`UnifiedPlayerService onFormAdded: Failed to get widget data after restoration.`);
-        // 即使失败,也返回一个空的绑定数据,避免卡片创建失败
-        return formBindingData.createFormBindingData({});
-      }
-
-      // 3. 创建并返回 FormBindingData
-      return formBindingData.createFormBindingData(widgetData);
-    } catch (error) {
-      LogUtils.getInstance().LOGI(`UnifiedPlayerService onFormAdded: Error preparing data for form [${formId}]: ${error}`);
-      return formBindingData.createFormBindingData({});
-    }
-  }
-
   public async getWidgetFormData(loadImage: boolean = true): Promise<widgeData | undefined> {
     this.updatePlaylistStateInModelSync();
     const formData: VideoItem = this.getCurrentSong()!; // VideoItem

+ 1 - 18
entry/src/main/ets/entryformability/EntryFormAbility.ets

@@ -90,7 +90,7 @@ export default class EntryFormAbility extends FormExtensionAbility {
     }
 
     // 异步获取真实数据并更新卡片
-    this.updateFormWithRealData(formId);
+    // this.updateFormWithRealData(formId);
 
     // 尝试从数据库获取已保存的widget数据
     this.loadWidgetDataFromDatabase(formId);
@@ -114,23 +114,6 @@ export default class EntryFormAbility extends FormExtensionAbility {
     return formBindingData.createFormBindingData(loadingData);
   }
 
-  /**
-   * 异步更新卡片真实数据
-   * @param formId 卡片ID
-   */
-  private updateFormWithRealData(formId: string): void {
-    // 使用setTimeout确保此操作在当前事件循环之后执行
-    setTimeout(async () => {
-      try {
-        hilog.info(0x0000, TAG, `[${formId}] Starting async data fetch for new form.`);
-        const realBindingData = await this.unifiedPlayerService.onFormAdded(formId);
-        await formProvider.updateForm(formId, realBindingData);
-        hilog.info(0x0000, TAG, `[${formId}] Successfully updated form with real data.`);
-      } catch (error) {
-        hilog.error(0x0000, TAG, `[${formId}] Failed to update form with real data: ${error}`);
-      }
-    }, 100); // 延迟100ms,给服务一点初始化时间
-  }
 
   /**
    * 从数据库加载widget数据并更新卡片