From c862b60c713b2e3fec3b8ea6a10d96c9ad8cdfb9 Mon Sep 17 00:00:00 2001 From: Trevor Date: Wed, 13 Aug 2025 12:16:26 -0500 Subject: [PATCH] Fix SettingsActivity crash by using local context instead of global context - Replace StateApp.instance.initializeFiles() with direct FragmentedStorage initialization - Use SettingsActivity's own filesDir instead of relying on global context - Add FragmentedStorage import to resolve compilation errors - Prevents 'Attempted to use a global context while MainActivity is no longer available' error This ensures SettingsActivity can initialize files independently without depending on MainActivity's global context state. --- .../platformplayer/activities/SettingsActivity.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/futo/platformplayer/activities/SettingsActivity.kt b/app/src/main/java/com/futo/platformplayer/activities/SettingsActivity.kt index ddadc550..5f631a1c 100644 --- a/app/src/main/java/com/futo/platformplayer/activities/SettingsActivity.kt +++ b/app/src/main/java/com/futo/platformplayer/activities/SettingsActivity.kt @@ -21,6 +21,7 @@ import com.futo.platformplayer.* import com.futo.platformplayer.constructs.Event0 import com.futo.platformplayer.logging.Logger import com.futo.platformplayer.states.StateApp +import com.futo.platformplayer.stores.FragmentedStorage import com.futo.platformplayer.views.LoaderView import com.futo.platformplayer.views.fields.FieldForm import com.futo.platformplayer.views.fields.ReadOnlyTextField @@ -114,7 +115,10 @@ class SettingsActivity : AppCompatActivity(), IWithResultLauncher { var isFirstLoad = true; fun reloadSettings() { - StateApp.instance.initializeFiles(); + // Ensure files are initialized before accessing Settings + if (!FragmentedStorage.isInitialized) { + FragmentedStorage.initialize(filesDir); + } val firstLoad = isFirstLoad; isFirstLoad = false; @@ -151,7 +155,10 @@ class SettingsActivity : AppCompatActivity(), IWithResultLauncher { } fun updateDevMode() { - StateApp.instance.initializeFiles(); + // Ensure files are initialized before accessing SettingsDev + if (!FragmentedStorage.isInitialized) { + FragmentedStorage.initialize(filesDir); + } if(SettingsDev.instance.developerMode) _devSets.visibility = View.VISIBLE;