diff --git a/native/data/sqlite-data-handler.js b/native/data/sqlite-data-handler.js --- a/native/data/sqlite-data-handler.js +++ b/native/data/sqlite-data-handler.js @@ -30,6 +30,15 @@ import { isTaskCancelledError } from '../utils/error-handling.js'; import { useStaffCanSee } from '../utils/staff-utils.js'; +async function clearSensitiveData() { + await commCoreModule.clearSensitiveData(); + try { + await filesystemMediaCache.clearCache(); + } catch { + throw new Error('clear_media_cache_failed'); + } +} + function SQLiteDataHandler(): React.Node { const storeLoaded = useSelector(state => state.storeLoaded); @@ -88,12 +97,7 @@ if (staffCanSee || staffUserHasBeenLoggedIn) { Alert.alert('Starting SQLite database deletion process'); } - await commCoreModule.clearSensitiveData(); - try { - await filesystemMediaCache.clearCache(); - } catch { - throw new Error('clear_media_cache_failed'); - } + await clearSensitiveData(); if (staffCanSee || staffUserHasBeenLoggedIn) { Alert.alert( 'SQLite database successfully deleted', @@ -228,4 +232,4 @@ return null; } -export { SQLiteDataHandler }; +export { SQLiteDataHandler, clearSensitiveData }; diff --git a/native/utils/crash-utils.js b/native/utils/crash-utils.js --- a/native/utils/crash-utils.js +++ b/native/utils/crash-utils.js @@ -5,6 +5,7 @@ import sleep from 'lib/utils/sleep.js'; import { featureFlagsStorageKey } from '../components/feature-flags-provider.react.js'; +import { clearSensitiveData } from '../data/sqlite-data-handler.js'; import { commCoreModule } from '../native-modules.js'; import { navStateAsyncStorageKey } from '../navigation/persistance.js'; import { getPersistor } from '../redux/persist.js'; @@ -15,6 +16,7 @@ __DEV__ ? AsyncStorage.removeItem(navStateAsyncStorageKey) : null, AsyncStorage.removeItem('ANDROID_REFERRER'), AsyncStorage.removeItem(featureFlagsStorageKey), + clearSensitiveData(), ]); await sleep(50); commCoreModule.terminate();