summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/IndeterminateProgressDialogFragment.kt34
1 files changed, 25 insertions, 9 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/IndeterminateProgressDialogFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/IndeterminateProgressDialogFragment.kt
index ea8eb073a..18bc34b9f 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/IndeterminateProgressDialogFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/IndeterminateProgressDialogFragment.kt
@@ -5,6 +5,9 @@ package org.yuzu.yuzu_emu.fragments
5 5
6import android.app.Dialog 6import android.app.Dialog
7import android.os.Bundle 7import android.os.Bundle
8import android.view.LayoutInflater
9import android.view.View
10import android.view.ViewGroup
8import android.widget.Toast 11import android.widget.Toast
9import androidx.appcompat.app.AppCompatActivity 12import androidx.appcompat.app.AppCompatActivity
10import androidx.fragment.app.DialogFragment 13import androidx.fragment.app.DialogFragment
@@ -21,22 +24,40 @@ import org.yuzu.yuzu_emu.model.TaskViewModel
21class IndeterminateProgressDialogFragment : DialogFragment() { 24class IndeterminateProgressDialogFragment : DialogFragment() {
22 private val taskViewModel: TaskViewModel by activityViewModels() 25 private val taskViewModel: TaskViewModel by activityViewModels()
23 26
27 private lateinit var binding: DialogProgressBarBinding
28
24 override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { 29 override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
25 val titleId = requireArguments().getInt(TITLE) 30 val titleId = requireArguments().getInt(TITLE)
26 31
27 val progressBinding = DialogProgressBarBinding.inflate(layoutInflater) 32 binding = DialogProgressBarBinding.inflate(layoutInflater)
28 progressBinding.progressBar.isIndeterminate = true 33 binding.progressBar.isIndeterminate = true
29 val dialog = MaterialAlertDialogBuilder(requireContext()) 34 val dialog = MaterialAlertDialogBuilder(requireContext())
30 .setTitle(titleId) 35 .setTitle(titleId)
31 .setView(progressBinding.root) 36 .setView(binding.root)
32 .create() 37 .create()
33 dialog.setCanceledOnTouchOutside(false) 38 dialog.setCanceledOnTouchOutside(false)
34 39
40 if (!taskViewModel.isRunning.value) {
41 taskViewModel.runTask()
42 }
43 return dialog
44 }
45
46 override fun onCreateView(
47 inflater: LayoutInflater,
48 container: ViewGroup?,
49 savedInstanceState: Bundle?
50 ): View {
51 return binding.root
52 }
53
54 override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
55 super.onViewCreated(view, savedInstanceState)
35 viewLifecycleOwner.lifecycleScope.launch { 56 viewLifecycleOwner.lifecycleScope.launch {
36 repeatOnLifecycle(Lifecycle.State.CREATED) { 57 repeatOnLifecycle(Lifecycle.State.CREATED) {
37 taskViewModel.isComplete.collect { 58 taskViewModel.isComplete.collect {
38 if (it) { 59 if (it) {
39 dialog.dismiss() 60 dismiss()
40 when (val result = taskViewModel.result.value) { 61 when (val result = taskViewModel.result.value) {
41 is String -> Toast.makeText(requireContext(), result, Toast.LENGTH_LONG) 62 is String -> Toast.makeText(requireContext(), result, Toast.LENGTH_LONG)
42 .show() 63 .show()
@@ -51,11 +72,6 @@ class IndeterminateProgressDialogFragment : DialogFragment() {
51 } 72 }
52 } 73 }
53 } 74 }
54
55 if (!taskViewModel.isRunning.value) {
56 taskViewModel.runTask()
57 }
58 return dialog
59 } 75 }
60 76
61 companion object { 77 companion object {