Skip to content

Commit

Permalink
Put back the legacy instanceUUID preference for Mail Merge compat
Browse files Browse the repository at this point in the history
The author of the Mail Merge add-on can't immediately modify his
add-on to read the UUID from Send Later the new way, so for the time
being to maintain compatibility with Mail Merge I'm putting that one
legacy Send Later preference back.
  • Loading branch information
jikamens committed Sep 5, 2023
1 parent 7fe2a2c commit 71f381b
Show file tree
Hide file tree
Showing 3 changed files with 92 additions and 0 deletions.
7 changes: 7 additions & 0 deletions background.js
Original file line number Diff line number Diff line change
Expand Up @@ -905,6 +905,13 @@ const SendLater = {
preferences.instanceUUID = instance_uuid;
}

// Needed for the time being for the Mail Merge add-on
messenger.SL3U.setLegacyPref(
"instance.uuid",
"string",
preferences.instanceUUID,
);

if (preferences.checkTimePref_isMilliseconds) {
preferences.checkTimePref /= 60000;
delete preferences.checkTimePref_isMilliseconds;
Expand Down
62 changes: 62 additions & 0 deletions experiments/sl3u.js
Original file line number Diff line number Diff line change
Expand Up @@ -350,6 +350,68 @@ var SL3U = class extends ExtensionCommon.ExtensionAPI {

return {
SL3U: {
async setLegacyPref(name, dtype, value) {
const prefName = `extensions.sendlater3.${name}`;

switch (dtype) {
case "bool": {
const prefValue = value === "true";
try {
Services.prefs.setBoolPref(prefName, prefValue);
return true;
} catch (err) {
SendLaterFunctions.error(
"SL3U.setLegacyPref.dtype=" + dtype,
err,
);
return false;
}
}
case "int": {
const prefValue = Number(value) | 0;
try {
Services.prefs.setIntPref(prefName, prefValue);
return true;
} catch (err) {
SendLaterFunctions.error(
"SL3U.setLegacyPref.dtype=" + dtype,
err,
);
return false;
}
}
case "char": {
const prefValue = value;
try {
Services.prefs.setCharPref(prefName, prefValue);
return true;
} catch (err) {
SendLaterFunctions.error(
"SL3U.setLegacyPref.dtype=" + dtype,
err,
);
return false;
}
}
case "string": {
const prefValue = value;
try {
Services.prefs.setStringPref(prefName, prefValue);
return true;
} catch (err) {
SendLaterFunctions.error(
"SL3U.setLegacyPref.dtype=" + dtype,
err,
);
return false;
}
}
default: {
throw new Error("Unexpected pref type");
}
}
},

async queueSendUnsentMessages() {
if (Utils.isOffline) {
SendLaterFunctions.debug(
Expand Down
23 changes: 23 additions & 0 deletions experiments/sl3u.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,29 @@
}
]
},
{
"name": "setLegacyPref",
"type": "function",
"description": "Sets a preference.",
"async": true,
"parameters": [
{
"name": "name",
"type": "string",
"description": "The preference name."
},
{
"name": "dtype",
"type": "string",
"description": "Data type of the preference."
},
{
"name": "value",
"type": "string",
"description": "Preference value as a string."
}
]
},
{
"name": "setHeader",
"type": "function",
Expand Down

0 comments on commit 71f381b

Please sign in to comment.