From 76feb60182f21dc791c584391a439beab7f8be3f Mon Sep 17 00:00:00 2001 From: Jonathan Perry-Houts Date: Sun, 22 Nov 2020 19:37:44 -0800 Subject: [PATCH] Minor improvement to preference migrations --- background.js | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/background.js b/background.js index 8cca39f8..9283ea63 100644 --- a/background.js +++ b/background.js @@ -444,6 +444,10 @@ const SendLater = { }; } + const prefDefaults = await fetch( + "/utils/defaultPrefs.json" + ).then((ptxt) => ptxt.json()); + // Load legacy preferences if (currentMigrationNumber === 0) { // Merge any existing legacy preferences into the new storage system @@ -451,9 +455,6 @@ const SendLater = { let legacyValuePromises = []; // Load values from legacy storage, substitute defaults if not defined. - let prefDefaults = await fetch( - "/utils/defaultPrefs.json" - ).then((ptxt) => ptxt.json()); for (let prefName of Object.getOwnPropertyNames(prefDefaults)) { prefKeys.push(prefName); let dtype = prefDefaults[prefName][0]; @@ -462,14 +463,12 @@ const SendLater = { let pp; // Promise that resolves to this preference value. const isquickopt = prefName.match(/quickOptions(\d)Label/); if (isquickopt) { - const localizedDelayLabel = [ - `${(new Sugar.Date(Date.now() + 60000 * 15)).relative()}`, - `${(new Sugar.Date(Date.now() + 60000 * 30)).relative()}`, - `${(new Sugar.Date(Date.now() + 60000 * 120)).relative()}` - ][+isquickopt[1] - 1]; - pp = new Promise((resolve, reject) => + const delayMins = (+prefDefaults[`quickOptions${isquickopt[1]}Args`][1])|0; + const localizedDelayLabel = + `${(new Sugar.Date(Date.now() + 60000 * delayMins)).relative()}`; + pp = new Promise((resolve, reject) => { resolve(localizedDelayLabel) - ); + }); } else if (legacyKey === null) { pp = new Promise((resolve, reject) => resolve(defVal)); } else { @@ -501,6 +500,17 @@ const SendLater = { }); } + SLStatic.logConsoleLevel = (preferences.logConsoleLevel||"info").toLowerCase(); + + // Pick up any new properties from defaults + for (let prefName of Object.getOwnPropertyNames(prefDefaults)) { + if (preferences[prefName] === undefined) { + const prefValue = prefDefaults[prefName][1]; + SLStatic.debug(`Added new preference ${prefName}: ${prefValue}`); + preferences[prefName] = prefValue; + } + } + //if (currentMigrationNumber < 4) if (preferences.instanceUUID) { SLStatic.info(`This instance's UUID: ${preferences.instanceUUID}`); @@ -724,7 +734,6 @@ const SendLater = { const { preferences } = await browser.storage.local.get({ preferences: {} }); SendLater.prefCache = preferences; - SLStatic.logConsoleLevel = preferences.logConsoleLevel.toLowerCase(); // This listener should be added *after* all of the storate-related // setup is complete. It makes sure that subsequent changes to storage