Skip to content

Commit dd5f831

Browse files
committed
Android: Remove CompletableFuture
We only use this class in one in one single function since its introduction with 12aa107 in 2021. If we do need it elsewhere we can always bring it back.
1 parent 4f30aaf commit dd5f831

File tree

2 files changed

+10
-106
lines changed

2 files changed

+10
-106
lines changed

Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.kt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@ import org.dolphinemu.dolphinemu.model.GameFileCache
2626
import org.dolphinemu.dolphinemu.services.GameFileCacheManager
2727
import org.dolphinemu.dolphinemu.utils.AfterDirectoryInitializationRunner
2828
import org.dolphinemu.dolphinemu.utils.BooleanSupplier
29-
import org.dolphinemu.dolphinemu.utils.CompletableFuture
3029
import org.dolphinemu.dolphinemu.utils.ContentHandler
3130
import org.dolphinemu.dolphinemu.utils.DirectoryInitialization
3231
import org.dolphinemu.dolphinemu.utils.FileBrowserHelper
3332
import org.dolphinemu.dolphinemu.utils.PermissionsHandler
3433
import org.dolphinemu.dolphinemu.utils.ThreadUtil
3534
import org.dolphinemu.dolphinemu.utils.WiiUtils
3635
import java.util.Arrays
37-
import java.util.concurrent.ExecutionException
36+
import java.util.concurrent.CountDownLatch
37+
import java.util.concurrent.atomic.AtomicReference
3838

3939
class MainPresenter(private val mainView: MainView, private val activity: FragmentActivity) {
4040
private var dirToAdd: String? = null
@@ -265,33 +265,34 @@ class MainPresenter(private val mainView: MainView, private val activity: Fragme
265265
}
266266

267267
fun importWiiSave(path: String?) {
268-
val canOverwriteFuture = CompletableFuture<Boolean>()
269268
ThreadUtil.runOnThreadAndShowResult(
270269
activity,
271270
R.string.import_in_progress,
272271
0,
273272
{
274273
val canOverwrite = BooleanSupplier {
274+
val latch = CountDownLatch(1)
275+
val decision = AtomicReference<Boolean>()
275276
activity.runOnUiThread {
276277
MaterialAlertDialogBuilder(activity)
277278
.setMessage(R.string.wii_save_exists)
278279
.setCancelable(false)
279280
.setPositiveButton(R.string.yes) { _: DialogInterface?, _: Int ->
280-
canOverwriteFuture.complete(true)
281+
decision.set(true)
282+
latch.countDown()
281283
}
282284
.setNegativeButton(R.string.no) { _: DialogInterface?, _: Int ->
283-
canOverwriteFuture.complete(false)
285+
decision.set(false)
286+
latch.countDown()
284287
}
285288
.show()
286289
}
287290
try {
288-
return@BooleanSupplier canOverwriteFuture.get()
289-
} catch (e: ExecutionException) {
290-
// Shouldn't happen
291-
throw RuntimeException(e)
291+
latch.await()
292292
} catch (e: InterruptedException) {
293293
throw RuntimeException(e)
294294
}
295+
decision.get() ?: false
295296
}
296297

297298
val message: Int = when (WiiUtils.importWiiSave(path!!, canOverwrite)) {

Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/CompletableFuture.java

Lines changed: 0 additions & 97 deletions
This file was deleted.

0 commit comments

Comments
 (0)