summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2020-11-20 17:52:45 +0100
committerJosJuice <josjuice@gmail.com>2020-11-20 18:33:00 +0100
commit730f9cb7bd9fef13b5220081cd3ce41e7930fe71 (patch)
tree99c5943ed3bf73ed911a9e08e5a5d78436ce11ae /Source/Android/app/src/main/java
parent17da28ff07d1a98aaaac0fe212804a5e90125b27 (diff)
Android: Fix IllegalStateException on startup
See https://github.com/dolphin-emu/dolphin/pull/9095#pullrequestreview-535576465
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/DirectoryInitialization.java21
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)