mirror of
				https://git.suyu.dev/suyu/suyu.git
				synced 2025-10-31 23:06:43 +08: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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user