|
|
@@ -7,6 +7,11 @@ export default class MyAbilityStage extends AbilityStage {
|
|
|
try {
|
|
|
// 保存当前颜色模式到 AppStorage
|
|
|
AppStorage.setOrCreate('currentColorMode', this.context.config.colorMode);
|
|
|
+ hilog.info(0x0000, 'Heanup', '当前 colorMode'+this.context.config.colorMode);
|
|
|
+ // 确保 themeMode 有初始值(0: 跟随系统)
|
|
|
+ if (AppStorage.get('themeMode') === undefined) {
|
|
|
+ AppStorage.setOrCreate('themeMode', 0);
|
|
|
+ }
|
|
|
} catch (err) {
|
|
|
hilog.error(0x0000, 'Heanup', 'Failed to initialize color mode: %{public}s', err.message);
|
|
|
}
|
|
|
@@ -14,9 +19,14 @@ export default class MyAbilityStage extends AbilityStage {
|
|
|
|
|
|
async onConfigurationUpdate(newConfig: import('@ohos.app.ability.Configuration').Configuration): Promise<void> {
|
|
|
try {
|
|
|
- // 更新颜色模式到 AppStorage
|
|
|
- AppStorage.setOrCreate('currentColorMode', newConfig.colorMode);
|
|
|
- hilog.info(0x0000, 'Heanup', 'the newConfig.colorMode is %{public}s', JSON.stringify(newConfig.colorMode) ?? '');
|
|
|
+ // 只有 themeMode 为 0(跟随系统)时才更新颜色模式到 AppStorage
|
|
|
+ const themeMode = AppStorage.get<number>('themeMode') ?? 0;
|
|
|
+ if (themeMode === 0) {
|
|
|
+ AppStorage.setOrCreate('currentColorMode', newConfig.colorMode);
|
|
|
+ hilog.info(0x0000, 'Heanup', 'the newConfig.colorMode is %{public}s', JSON.stringify(newConfig.colorMode) ?? '');
|
|
|
+ } else {
|
|
|
+ hilog.info(0x0000, 'Heanup', 'themeMode != 0, skip updating colorMode');
|
|
|
+ }
|
|
|
} catch (err) {
|
|
|
hilog.error(0x0000, 'Heanup', 'Failed to update color mode: %{public}s', err.message);
|
|
|
}
|