mirror of
				https://git.tardis.systems/mirrors/yuzu
				synced 2025-11-04 04:34:07 +01:00 
			
		
		
		
	Merge pull request #11521 from t895/content-install-fix
android: Collect task state once view is created
This commit is contained in:
		
						commit
						7282976de3
					
				@ -5,6 +5,9 @@ package org.yuzu.yuzu_emu.fragments
 | 
			
		||||
 | 
			
		||||
import android.app.Dialog
 | 
			
		||||
import android.os.Bundle
 | 
			
		||||
import android.view.LayoutInflater
 | 
			
		||||
import android.view.View
 | 
			
		||||
import android.view.ViewGroup
 | 
			
		||||
import android.widget.Toast
 | 
			
		||||
import androidx.appcompat.app.AppCompatActivity
 | 
			
		||||
import androidx.fragment.app.DialogFragment
 | 
			
		||||
@ -21,22 +24,40 @@ import org.yuzu.yuzu_emu.model.TaskViewModel
 | 
			
		||||
class IndeterminateProgressDialogFragment : DialogFragment() {
 | 
			
		||||
    private val taskViewModel: TaskViewModel by activityViewModels()
 | 
			
		||||
 | 
			
		||||
    private lateinit var binding: DialogProgressBarBinding
 | 
			
		||||
 | 
			
		||||
    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
 | 
			
		||||
        val titleId = requireArguments().getInt(TITLE)
 | 
			
		||||
 | 
			
		||||
        val progressBinding = DialogProgressBarBinding.inflate(layoutInflater)
 | 
			
		||||
        progressBinding.progressBar.isIndeterminate = true
 | 
			
		||||
        binding = DialogProgressBarBinding.inflate(layoutInflater)
 | 
			
		||||
        binding.progressBar.isIndeterminate = true
 | 
			
		||||
        val dialog = MaterialAlertDialogBuilder(requireContext())
 | 
			
		||||
            .setTitle(titleId)
 | 
			
		||||
            .setView(progressBinding.root)
 | 
			
		||||
            .setView(binding.root)
 | 
			
		||||
            .create()
 | 
			
		||||
        dialog.setCanceledOnTouchOutside(false)
 | 
			
		||||
 | 
			
		||||
        if (!taskViewModel.isRunning.value) {
 | 
			
		||||
            taskViewModel.runTask()
 | 
			
		||||
        }
 | 
			
		||||
        return dialog
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun onCreateView(
 | 
			
		||||
        inflater: LayoutInflater,
 | 
			
		||||
        container: ViewGroup?,
 | 
			
		||||
        savedInstanceState: Bundle?
 | 
			
		||||
    ): View {
 | 
			
		||||
        return binding.root
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
 | 
			
		||||
        super.onViewCreated(view, savedInstanceState)
 | 
			
		||||
        viewLifecycleOwner.lifecycleScope.launch {
 | 
			
		||||
            repeatOnLifecycle(Lifecycle.State.CREATED) {
 | 
			
		||||
                taskViewModel.isComplete.collect {
 | 
			
		||||
                    if (it) {
 | 
			
		||||
                        dialog.dismiss()
 | 
			
		||||
                        dismiss()
 | 
			
		||||
                        when (val result = taskViewModel.result.value) {
 | 
			
		||||
                            is String -> Toast.makeText(requireContext(), result, Toast.LENGTH_LONG)
 | 
			
		||||
                                .show()
 | 
			
		||||
@ -51,11 +72,6 @@ class IndeterminateProgressDialogFragment : DialogFragment() {
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!taskViewModel.isRunning.value) {
 | 
			
		||||
            taskViewModel.runTask()
 | 
			
		||||
        }
 | 
			
		||||
        return dialog
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    companion object {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user