|
|
@ -275,16 +275,22 @@ export const PlatformServiceMixin = { |
|
|
|
|
|
|
|
// Convert SQLite integer booleans to JavaScript booleans
|
|
|
|
if ( |
|
|
|
// settings
|
|
|
|
column === "isRegistered" || |
|
|
|
column === "finishedOnboarding" || |
|
|
|
column === "filterFeedByVisible" || |
|
|
|
column === "filterFeedByNearby" || |
|
|
|
column === "hasBackedUpSeed" || |
|
|
|
column === "hideRegisterPromptOnNewContact" || |
|
|
|
column === "showContactGivesInline" || |
|
|
|
column === "showGeneralAdvanced" || |
|
|
|
column === "showShortcutBvc" || |
|
|
|
column === "warnIfProdServer" || |
|
|
|
column === "warnIfTestServer" |
|
|
|
column === "warnIfTestServer" || |
|
|
|
// contacts
|
|
|
|
column === "iViewContent" || |
|
|
|
column === "registered" || |
|
|
|
column === "seesMe" |
|
|
|
) { |
|
|
|
if (value === 1) { |
|
|
|
value = true; |
|
|
@ -294,13 +300,9 @@ export const PlatformServiceMixin = { |
|
|
|
// Keep null values as null
|
|
|
|
} |
|
|
|
|
|
|
|
// Handle JSON fields like contactMethods
|
|
|
|
if (column === "contactMethods" && typeof value === "string") { |
|
|
|
try { |
|
|
|
value = JSON.parse(value); |
|
|
|
} catch { |
|
|
|
value = []; |
|
|
|
} |
|
|
|
// Convert SQLite JSON strings to objects/arrays
|
|
|
|
if (column === "contactMethods" || column === "searchBoxes") { |
|
|
|
value = this._parseJsonField(value, []); |
|
|
|
} |
|
|
|
|
|
|
|
obj[column] = value; |
|
|
@ -310,10 +312,13 @@ export const PlatformServiceMixin = { |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
* Self-contained implementation of parseJsonField |
|
|
|
* Safely parses JSON strings with fallback to default value |
|
|
|
* Safely parses JSON strings with fallback to default value. |
|
|
|
* Handles different SQLite implementations: |
|
|
|
* - Web SQLite (wa-sqlite/absurd-sql): Auto-parses JSON strings to objects |
|
|
|
* - Capacitor SQLite: Returns raw strings that need manual parsing |
|
|
|
* |
|
|
|
* Consolidate this with src/libs/util.ts parseJsonField |
|
|
|
* See also src/db/databaseUtil.ts parseJsonField |
|
|
|
* and maybe consolidate |
|
|
|
*/ |
|
|
|
_parseJsonField<T>(value: unknown, defaultValue: T): T { |
|
|
|
if (typeof value === "string") { |
|
|
|