Skip to content
Permalink
Browse files
Merge pull request #9079 from JosJuice/android-permissions-check
Android: Check for granted permission when returning to MainActivity
  • Loading branch information
lioncash committed Sep 13, 2020
2 parents b1fecbb + 8bd7043 commit a481a52
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 4 deletions.
@@ -25,7 +25,7 @@ public void onCreate()
Java_GCAdapter.manager = (UsbManager) getSystemService(Context.USB_SERVICE);
Java_WiimoteAdapter.manager = (UsbManager) getSystemService(Context.USB_SERVICE);

if (PermissionsHandler.hasWriteAccess(getApplicationContext()))
if (DirectoryInitialization.shouldStart(getApplicationContext()))
DirectoryInitialization.start(getApplicationContext());
}

@@ -80,7 +80,16 @@ protected void onCreate(Bundle savedInstanceState)
protected void onResume()
{
super.onResume();

if (DirectoryInitialization.shouldStart(this))
{
DirectoryInitialization.start(this);
new AfterDirectoryInitializationRunner()
.run(this, false, this::setPlatformTabsAndStartGameFileCacheService);
}

mPresenter.addDirIfNeeded(this);

if (sShouldRescanLibrary)
{
GameFileCacheService.startRescan(this);
@@ -63,7 +63,15 @@ protected void onCreate(Bundle savedInstanceState)
protected void onResume()
{
super.onResume();

if (DirectoryInitialization.shouldStart(this))
{
DirectoryInitialization.start(this);
GameFileCacheService.startLoad(this);
}

mPresenter.addDirIfNeeded(this);

if (sShouldRescanLibrary)
{
GameFileCacheService.startRescan(this);
@@ -53,16 +53,16 @@

public static void start(Context context)
{
if (!isDolphinDirectoryInitializationRunning.compareAndSet(false, true))
return;

// Can take a few seconds to run, so don't block UI thread.
//noinspection TrivialFunctionalExpressionUsage
((Runnable) () -> init(context)).run();
}

private static void init(Context context)
{
if (!isDolphinDirectoryInitializationRunning.compareAndSet(false, true))
return;

if (directoryState != DirectoryInitializationState.DOLPHIN_DIRECTORIES_INITIALIZED)
{
if (PermissionsHandler.hasWriteAccess(context))
@@ -196,6 +196,12 @@ private static void deleteDirectoryRecursively(@NonNull final File file)
}
}

public static boolean shouldStart(Context context)
{
return !isDolphinDirectoryInitializationRunning.get() &&
getDolphinDirectoriesState(context) == DirectoryInitializationState.NOT_YET_INITIALIZED;
}

public static boolean areDolphinDirectoriesReady()
{
return directoryState == DirectoryInitializationState.DOLPHIN_DIRECTORIES_INITIALIZED;

0 comments on commit a481a52

Please sign in to comment.