diff options
| author | Léo Lam <leo@leolam.fr> | 2020-11-20 22:13:30 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-20 22:13:30 +0100 |
| commit | 33f15f22e21a808314d19f41290a73d2fb014ea7 (patch) | |
| tree | 99c5943ed3bf73ed911a9e08e5a5d78436ce11ae /Source/Android/app/src/main/java | |
| parent | 17da28ff07d1a98aaaac0fe212804a5e90125b27 (diff) | |
| parent | 730f9cb7bd9fef13b5220081cd3ce41e7930fe71 (diff) | |
Merge pull request #9266 from JosJuice/android-startup-illegalstate
Android: Fix IllegalStateException on startup
Diffstat (limited to 'Source/Android/app/src/main/java')
| -rw-r--r-- | Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java index 75ff4e700f..712d4aa707 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java @@ -39,6 +39,7 @@ public final class DirectoryInitialization private static final int WiimoteNewVersion = 5; // Last changed in PR 8907 private static volatile DirectoryInitializationState directoryState = DirectoryInitializationState.NOT_YET_INITIALIZED; + private static volatile boolean areDirectoriesAvailable = false; private static String userPath; private static String internalPath; private static AtomicBoolean isDolphinDirectoryInitializationRunning = new AtomicBoolean(false); @@ -74,6 +75,8 @@ public final class DirectoryInitialization NativeLibrary.Initialize(); NativeLibrary.ReportStartToAnalytics(); + areDirectoriesAvailable = true; + if (wiimoteIniWritten) { // This has to be done after calling NativeLibrary.Initialize(), @@ -229,32 +232,22 @@ public final class DirectoryInitialization public static String getUserDirectory() { - if (directoryState == DirectoryInitializationState.NOT_YET_INITIALIZED) - { - throw new IllegalStateException("DirectoryInitialization has to run at least once!"); - } - else if (isDolphinDirectoryInitializationRunning.get()) + if (!areDirectoriesAvailable) { throw new IllegalStateException( - "DirectoryInitialization has to finish running first!"); + "DirectoryInitialization must run before accessing the user directory!"); } return userPath; - } public static String getDolphinInternalDirectory() { - if (directoryState == DirectoryInitializationState.NOT_YET_INITIALIZED) - { - throw new IllegalStateException("DirectoryInitialization has to run at least once!"); - } - else if (isDolphinDirectoryInitializationRunning.get()) + if (!areDirectoriesAvailable) { throw new IllegalStateException( - "DirectoryInitialization has to finish running first!"); + "DirectoryInitialization must run before accessing the internal directory!"); } return internalPath; - } private static void sendBroadcastState(DirectoryInitializationState state, Context context) |
