Fix settings being reset after refreshing page

This commit is contained in:
redphx 2024-05-30 07:04:01 +07:00
parent f2dc102996
commit ef14c78941
2 changed files with 7 additions and 7 deletions

View File

@ -1,5 +1,4 @@
import { ControllerShortcut } from "@/modules/controller-shortcut"; import { ControllerShortcut } from "@/modules/controller-shortcut";
import { GameBar } from "@modules/game-bar/game-bar";
import { BxEvent } from "@utils/bx-event"; import { BxEvent } from "@utils/bx-event";
import { STATES } from "@utils/global"; import { STATES } from "@utils/global";
import { getPref, PrefKey } from "@utils/preferences"; import { getPref, PrefKey } from "@utils/preferences";

View File

@ -344,11 +344,10 @@ export class Preferences {
migrate: function(savedPrefs: any, value: any) { migrate: function(savedPrefs: any, value: any) {
try { try {
value = parseInt(value); value = parseInt(value);
if (value < 100) { if (value !== 0 && value < 100) {
value *= 1024 * 1000; value *= 1024 * 1000;
} }
this.set(PrefKey.BITRATE_VIDEO_MAX, value, true);
this.set(PrefKey.BITRATE_VIDEO_MAX, value);
savedPrefs[PrefKey.BITRATE_VIDEO_MAX] = value; savedPrefs[PrefKey.BITRATE_VIDEO_MAX] = value;
} catch (e) {} } catch (e) {}
}, },
@ -701,11 +700,13 @@ export class Preferences {
for (let settingId in Preferences.SETTINGS) { for (let settingId in Preferences.SETTINGS) {
const setting = Preferences.SETTINGS[settingId]; const setting = Preferences.SETTINGS[settingId];
setting.ready && setting.ready.call(this, setting);
if (setting.migrate && settingId in savedPrefs) { if (setting.migrate && settingId in savedPrefs) {
setting.migrate.call(this, savedPrefs, savedPrefs[settingId]); setting.migrate.call(this, savedPrefs, savedPrefs[settingId]);
delete setting.migrate;
} }
setting.ready && setting.ready.call(this, setting);
} }
for (let settingId in Preferences.SETTINGS) { for (let settingId in Preferences.SETTINGS) {
@ -783,11 +784,11 @@ export class Preferences {
return this.#prefs[key]; return this.#prefs[key];
} }
set(key: PrefKey, value: any): any { set(key: PrefKey, value: any, skipSave?: boolean): any {
value = this.#validateValue(key, value); value = this.#validateValue(key, value);
this.#prefs[key] = value; this.#prefs[key] = value;
this.#updateStorage(); !skipSave && this.#updateStorage();
return value; return value;
} }