summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt41
1 files changed, 5 insertions, 36 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt
index a02d8fb01..7b66bf220 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt
@@ -4,46 +4,26 @@
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
object DirectoryInitialization {
- const val BROADCAST_ACTION = "org.yuzu.yuzu_emu.BROADCAST"
- const val EXTRA_STATE = "directoryState"
-
- @Volatile
- private var directoryState: DirectoryInitializationState? = null
private var userPath: String? = null
- private val isDirectoryInitializationRunning = AtomicBoolean(false)
+
+ var areDirectoriesReady: Boolean = false
@JvmStatic
fun start(context: Context) {
- // Can take a few seconds to run, so don't block UI thread.
- Runnable { init(context) }.run()
- }
-
- private fun init(context: Context) {
- if (!isDirectoryInitializationRunning.compareAndSet(false, true)) return
- if (directoryState != DirectoryInitializationState.YUZU_DIRECTORIES_INITIALIZED) {
+ if (!areDirectoriesReady) {
initializeInternalStorage(context)
NativeLibrary.InitializeEmulation()
- directoryState = DirectoryInitializationState.YUZU_DIRECTORIES_INITIALIZED
+ areDirectoriesReady = true
}
- isDirectoryInitializationRunning.set(false)
- sendBroadcastState(directoryState, context)
- }
-
- fun areDirectoriesReady(): Boolean {
- return directoryState == DirectoryInitializationState.YUZU_DIRECTORIES_INITIALIZED
}
val userDirectory: String?
get() {
- checkNotNull(directoryState) { "DirectoryInitialization has to run at least once!" }
- check(!isDirectoryInitializationRunning.get()) { "DirectoryInitialization has to finish running first!" }
+ check(areDirectoriesReady) { "Directory initialization is not ready!" }
return userPath
}
@@ -55,15 +35,4 @@ object DirectoryInitialization {
e.printStackTrace()
}
}
-
- private fun sendBroadcastState(state: DirectoryInitializationState?, context: Context) {
- val localIntent = Intent(BROADCAST_ACTION)
- .putExtra(EXTRA_STATE, state)
- LocalBroadcastManager.getInstance(context).sendBroadcast(localIntent)
- }
-
- enum class DirectoryInitializationState {
- YUZU_DIRECTORIES_INITIALIZED,
- CANT_FIND_EXTERNAL_STORAGE
- }
}