diff options
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.java')
-rw-r--r-- | src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.java | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.java b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.java deleted file mode 100644 index 6464c2286..000000000 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.java +++ /dev/null @@ -1,72 +0,0 @@ -package org.yuzu.yuzu_emu.utils; - -import android.content.Context; -import android.content.Intent; -import androidx.localbroadcastmanager.content.LocalBroadcastManager; - -import org.yuzu.yuzu_emu.NativeLibrary; - -import java.io.IOException; -import java.util.concurrent.atomic.AtomicBoolean; - -public final class DirectoryInitialization { - public static final String BROADCAST_ACTION = "org.yuzu.yuzu_emu.BROADCAST"; - public static final String EXTRA_STATE = "directoryState"; - private static volatile DirectoryInitializationState directoryState = null; - private static String userPath; - private static AtomicBoolean isDirectoryInitializationRunning = new AtomicBoolean(false); - - public static void start(Context context) { - // Can take a few seconds to run, so don't block UI thread. - ((Runnable) () -> init(context)).run(); - } - - private static void init(Context context) { - if (!isDirectoryInitializationRunning.compareAndSet(false, true)) - return; - - if (directoryState != DirectoryInitializationState.YUZU_DIRECTORIES_INITIALIZED) { - initializeInternalStorage(context); - NativeLibrary.InitializeEmulation(); - directoryState = DirectoryInitializationState.YUZU_DIRECTORIES_INITIALIZED; - } - - isDirectoryInitializationRunning.set(false); - sendBroadcastState(directoryState, context); - } - - public static boolean areDirectoriesReady() { - return directoryState == DirectoryInitializationState.YUZU_DIRECTORIES_INITIALIZED; - } - - public static String getUserDirectory() { - if (directoryState == null) { - throw new IllegalStateException("DirectoryInitialization has to run at least once!"); - } else if (isDirectoryInitializationRunning.get()) { - throw new IllegalStateException( - "DirectoryInitialization has to finish running first!"); - } - return userPath; - } - - public static void initializeInternalStorage(Context context) { - try { - userPath = context.getExternalFilesDir(null).getCanonicalPath(); - NativeLibrary.SetAppDirectory(userPath); - } catch(IOException e) { - e.printStackTrace(); - } - } - - private static void sendBroadcastState(DirectoryInitializationState state, Context context) { - Intent localIntent = - new Intent(BROADCAST_ACTION) - .putExtra(EXTRA_STATE, state); - LocalBroadcastManager.getInstance(context).sendBroadcast(localIntent); - } - - public enum DirectoryInitializationState { - YUZU_DIRECTORIES_INITIALIZED, - CANT_FIND_EXTERNAL_STORAGE - } -} |