Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #11659 from JosJuice/android-after-dirinit-runner-…
…cleanup

Android: Clean up AfterDirectoryInitializationRunner
  • Loading branch information
JosJuice committed Mar 16, 2023
2 parents d623871 + fe8be90 commit 6b545ea
Showing 1 changed file with 13 additions and 31 deletions.
Expand Up @@ -2,7 +2,7 @@

package org.dolphinemu.dolphinemu.utils;

import androidx.core.app.ComponentActivity;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.Observer;

import org.dolphinemu.dolphinemu.utils.DirectoryInitialization.DirectoryInitializationState;
Expand All @@ -12,25 +12,16 @@
private Observer<DirectoryInitializationState> mObserver;

/**
* Executes a Runnable after directory initialization has finished.
* Executes a Runnable once directory initialization finishes.
*
* If this is called when directory initialization already is done,
* the Runnable will be executed immediately. If this is called before
* directory initialization is done, the Runnable will be executed
* after directory initialization finishes successfully, or never
* in case directory initialization doesn't finish successfully.
* If this is called when directory initialization already has finished, the Runnable will
* be executed immediately. If this is called before directory initialization has finished,
* the Runnable will be executed after directory initialization finishes.
*
* Calling this function multiple times per object is not supported.
*
* If abortOnFailure is true and external storage was not found, a message
* will be shown to the user and the Runnable will not run. If it is false,
* the attempt to run the Runnable will never be aborted, and the Runnable
* is guaranteed to run if directory initialization ever finishes.
*
* If the passed-in activity gets destroyed before this operation finishes,
* it will be automatically canceled.
* If the passed-in LifecycleOwner gets destroyed before this operation finishes,
* the operation will be automatically canceled.
*/
public void runWithLifecycle(ComponentActivity activity, Runnable runnable)
public void runWithLifecycle(LifecycleOwner lifecycleOwner, Runnable runnable)
{
if (DirectoryInitialization.areDolphinDirectoriesReady())
{
Expand All @@ -39,25 +30,16 @@ public void runWithLifecycle(ComponentActivity activity, Runnable runnable)
else
{
mObserver = createObserver(runnable);
DirectoryInitialization.getDolphinDirectoriesState().observe(activity, mObserver);
DirectoryInitialization.getDolphinDirectoriesState().observe(lifecycleOwner, mObserver);
}
}

/**
* Executes a Runnable after directory initialization has finished.
*
* If this is called when directory initialization already is done,
* the Runnable will be executed immediately. If this is called before
* directory initialization is done, the Runnable will be executed
* after directory initialization finishes successfully, or never
* in case directory initialization doesn't finish successfully.
*
* Calling this function multiple times per object is not supported.
* Executes a Runnable once directory initialization finishes.
*
* If abortOnFailure is true and external storage was not found, a message
* will be shown to the user and the Runnable will not run. If it is false,
* the attempt to run the Runnable will never be aborted, and the Runnable
* is guaranteed to run if directory initialization ever finishes.
* If this is called when directory initialization already has finished, the Runnable will
* be executed immediately. If this is called before directory initialization has finished,
* the Runnable will be executed after directory initialization finishes.
*/
public void runWithoutLifecycle(Runnable runnable)
{
Expand Down

0 comments on commit 6b545ea

Please sign in to comment.