summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.kt15
1 files changed, 14 insertions, 1 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.kt
index 4b363ce008..4735b506dd 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.kt
@@ -56,6 +56,7 @@ import org.dolphinemu.dolphinemu.overlay.InputOverlayPointer
import org.dolphinemu.dolphinemu.ui.main.MainPresenter
import org.dolphinemu.dolphinemu.ui.main.ThemeProvider
import org.dolphinemu.dolphinemu.utils.AfterDirectoryInitializationRunner
+import org.dolphinemu.dolphinemu.utils.DirectoryInitialization
import org.dolphinemu.dolphinemu.utils.FileBrowserHelper
import org.dolphinemu.dolphinemu.utils.ThemeHelper
import kotlin.math.roundToInt
@@ -201,7 +202,19 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider {
super.onResume()
- updateDisplaySettings()
+ // If the whole app process was recreated, directory initialization might not be done yet.
+ // If that's the case, we can't read settings, so skip reading the settings for now and do
+ // it once onTitleChanged runs instead.
+ if (DirectoryInitialization.areDolphinDirectoriesReady()) {
+ updateDisplaySettings();
+ } else {
+ // If the process was recreated and DolphinApplication.onStart didn't think it should
+ // start directory initialization, we have to start it, otherwise emulation will never
+ // start. Technically it would be nicer to ask the user for write permission first,
+ // but because this problem can only happen in very convoluted situations, this code is
+ // going to get essentially no testing, so let's go with the simplest possible fix.
+ DirectoryInitialization.start(this);
+ }
DolphinSensorEventListener.setDeviceRotation(windowManager.defaultDisplay.rotation)
}