chendeben пре 1 година
родитељ
комит
2d7c1a23c6
2 измењених фајлова са 25 додато и 5 уклоњено
  1. 0 3
      entry/src/main/ets/pages/SettingPage.ets
  2. 25 2
      entry/src/main/ets/view/LocalMusic.ets

+ 0 - 3
entry/src/main/ets/pages/SettingPage.ets

@@ -50,7 +50,6 @@ export struct SettingPage {
   static readonly iS_MUSIC_BG_COVER: string = 'isMusicBGCover';
   static readonly iS_SAVE_PLAY_MODE: string = 'isSavePlayMode';
   static readonly IS_COVER_RECTANGLE: string = 'isCoverRectangle'; //封面圆形或者方形
-  static readonly IS_DARK_MODE: string = 'isDarkMode'; // 深色模式设置
 
   static readonly IS_SHOW_SIMI: string = 'isShowSimi';
   static readonly IS_SHOW_FAV: string = 'isShowFAV';
@@ -150,14 +149,12 @@ export struct SettingPage {
     // 只用 themeMode 控制主题
     this.themeMode = PreferencesUtil.getNumberSync(SettingPage.THEME_MODE, 0)
     this.applyThemeMode(this.themeMode)
-    AppStorage.setOrCreate('themeMode', this.themeMode)
   }
 
   // 监听颜色模式变化
   onColorModeChange(): void {
     this.isDarkMode = this.currentMode === ConfigurationConstant.ColorMode.COLOR_MODE_DARK;
     AppStorage.setOrCreate('isDarkMode', this.isDarkMode);
-    // 不再持久化 IS_DARK_MODE
   }
 
   // 组件生命周期

+ 25 - 2
entry/src/main/ets/view/LocalMusic.ets

@@ -134,6 +134,7 @@ interface GeneratedObjectLiteralInterface_1 {
 @Preview
 @Component
 export struct LocalMusic {
+  themeMode: number=0;
   @State titleName: string = '首页'
   @State textStr: string = ''
   // static readonly STR_MUSIC_VIDEO: string = 'Audios';
@@ -170,13 +171,13 @@ export struct LocalMusic {
   @State isShowHistory:boolean = true //是否显示最近播放
   @State isCustomizeBg: boolean = false //自定义背景界面
   @State customizeBgPath: string | undefined = '';
-  @State isDarkMode: boolean = AppStorage.get<number>('currentColorMode')===ConfigurationConstant.ColorMode.COLOR_MODE_DARK
+  @State isDarkMode: boolean = false
   @StorageProp('currentColorMode') @Watch('onColorModeChange') currentMode: number =
     ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT;
 
 
   onColorModeChange() {
-    this.isDarkMode=AppStorage.get<number>('currentColorMode')===ConfigurationConstant.ColorMode.COLOR_MODE_DARK
+    // this.isDarkMode=colorMode===ConfigurationConstant.ColorMode.COLOR_MODE_DARK
 
   }
 
@@ -448,6 +449,28 @@ export struct LocalMusic {
 
     });
     this.isCoverRectangle = PreferencesUtil.getBooleanSync(SettingPage.IS_COVER_RECTANGLE, false)
+
+
+    // 读取 themeMode 并同步 currentColorMode
+    this.themeMode = PreferencesUtil.getNumberSync(SettingPage.THEME_MODE, 0)
+    this.applyThemeMode(this.themeMode)
+
+  }
+
+  applyThemeMode(mode: number) {
+    let colorMode = ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET
+    if (mode === 1) {
+      colorMode = ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT
+    } else if (mode === 2) {
+      colorMode = ConfigurationConstant.ColorMode.COLOR_MODE_DARK
+    }
+    AppStorage.setOrCreate('currentColorMode', colorMode)
+    AppStorage.setOrCreate('isDarkMode', colorMode === ConfigurationConstant.ColorMode.COLOR_MODE_DARK)
+    PreferencesUtil.putSync(SettingPage.THEME_MODE, mode)
+    AppStorage.setOrCreate('themeMode', mode)
+    // 只有强制浅色/深色时才主动设置
+    const context = getContext(this) as common.UIAbilityContext
+    context.getApplicationContext().setColorMode(colorMode)
   }
 
   doChangeSetting(){