mirror of https://git.suyu.dev/suyu/suyu
android: Fix cancel behavior on indeterminate progress dialog fragment
The dialog would previously dismiss immediately when it should stay alive until the task is cancelled completely.
This commit is contained in:
parent
c8673a16bb
commit
95a31b8887
|
@ -4,12 +4,12 @@
|
|||
package org.yuzu.yuzu_emu.fragments
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.DialogInterface
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
|
@ -39,9 +39,7 @@ class IndeterminateProgressDialogFragment : DialogFragment() {
|
|||
.setView(binding.root)
|
||||
|
||||
if (cancellable) {
|
||||
dialog.setNegativeButton(android.R.string.cancel) { _: DialogInterface, _: Int ->
|
||||
taskViewModel.setCancelled(true)
|
||||
}
|
||||
dialog.setNegativeButton(android.R.string.cancel, null)
|
||||
}
|
||||
|
||||
val alertDialog = dialog.create()
|
||||
|
@ -98,6 +96,18 @@ class IndeterminateProgressDialogFragment : DialogFragment() {
|
|||
}
|
||||
}
|
||||
|
||||
// By default, the ProgressDialog will immediately dismiss itself upon a button being pressed.
|
||||
// Setting the OnClickListener again after the dialog is shown overrides this behavior.
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
val alertDialog = dialog as AlertDialog
|
||||
val negativeButton = alertDialog.getButton(Dialog.BUTTON_NEGATIVE)
|
||||
negativeButton.setOnClickListener {
|
||||
alertDialog.setTitle(getString(R.string.cancelling))
|
||||
taskViewModel.setCancelled(true)
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val TAG = "IndeterminateProgressDialogFragment"
|
||||
|
||||
|
|
Loading…
Reference in New Issue