From c0fc87aa70d44ac307b9cc68a546b0f4f14cc955 Mon Sep 17 00:00:00 2001 From: Joseph Hale Date: Sun, 17 Aug 2025 20:06:01 -0700 Subject: [PATCH] fix: Run migration only once The existing migration has a bug -- changes to AsyncStorage settings are always overridden on boot. Now, if the migration has run once it won't ever run again. --- src/migrations/DefaultPreference_to_AsyncStorage.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/migrations/DefaultPreference_to_AsyncStorage.ts b/src/migrations/DefaultPreference_to_AsyncStorage.ts index f77a756..18f381f 100644 --- a/src/migrations/DefaultPreference_to_AsyncStorage.ts +++ b/src/migrations/DefaultPreference_to_AsyncStorage.ts @@ -8,6 +8,15 @@ import DefaultPreference from 'react-native-default-preference'; import AsyncStorage from '@react-native-async-storage/async-storage'; export default async function migrate() { + const migrationDate = await DefaultPreference.get("migrationDate"); + + if (migrationDate === null || migrationDate === undefined) { + await executeMigration(); + await DefaultPreference.set("migrationDate", new Date().toISOString()); + } +} + +async function executeMigration() { const brightness = (await DefaultPreference.get("brightness")) ?? "1" const roundness = (await DefaultPreference.get("roundness")) ?? "1" const showHints = (await DefaultPreference.get("showHints")) ?? "false" -- 2.51.2