Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #9266 from JosJuice/android-startup-illegalstate
Android: Fix IllegalStateException on startup
  • Loading branch information
leoetlino committed Nov 20, 2020
2 parents 17da28f + 730f9cb commit 33f15f2
Showing 1 changed file with 7 additions and 14 deletions.
Expand Up @@ -39,6 +39,7 @@
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);
Expand Down Expand Up @@ -74,6 +75,8 @@ private static void init(Context context)
NativeLibrary.Initialize();
NativeLibrary.ReportStartToAnalytics();

areDirectoriesAvailable = true;

if (wiimoteIniWritten)
{
// This has to be done after calling NativeLibrary.Initialize(),
Expand Down Expand Up @@ -229,32 +232,22 @@ public static DirectoryInitializationState getDolphinDirectoriesState(Context co

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)
Expand Down

0 comments on commit 33f15f2

Please sign in to comment.