diff options
| author | 2023-09-16 19:51:29 -0400 | |
|---|---|---|
| committer | 2023-09-16 19:51:29 -0400 | |
| commit | 7282976de3b143a477bf91345bb519982b68ac8a (patch) | |
| tree | ec23605436533f03cdb7c8d9b54cf445544b54c4 /src | |
| parent | Merge pull request #11519 from german77/system-policy (diff) | |
| parent | android: Collect task state once view is created (diff) | |
| download | yuzu-7282976de3b143a477bf91345bb519982b68ac8a.tar.gz yuzu-7282976de3b143a477bf91345bb519982b68ac8a.tar.xz yuzu-7282976de3b143a477bf91345bb519982b68ac8a.zip | |
Merge pull request #11521 from t895/content-install-fix
android: Collect task state once view is created
Diffstat (limited to 'src')
| -rw-r--r-- | src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/IndeterminateProgressDialogFragment.kt | 34 |
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 | ||
| 6 | import android.app.Dialog | 6 | import android.app.Dialog |
| 7 | import android.os.Bundle | 7 | import android.os.Bundle |
| 8 | import android.view.LayoutInflater | ||
| 9 | import android.view.View | ||
| 10 | import android.view.ViewGroup | ||
| 8 | import android.widget.Toast | 11 | import android.widget.Toast |
| 9 | import androidx.appcompat.app.AppCompatActivity | 12 | import androidx.appcompat.app.AppCompatActivity |
| 10 | import androidx.fragment.app.DialogFragment | 13 | import androidx.fragment.app.DialogFragment |
| @@ -21,22 +24,40 @@ import org.yuzu.yuzu_emu.model.TaskViewModel | |||
| 21 | class IndeterminateProgressDialogFragment : DialogFragment() { | 24 | class 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 { |