PabloG02 3 лет назад
Родитель
Сommit
409ff26f02

+ 7 - 2
src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt

@@ -275,7 +275,8 @@ class HomeSettingsFragment : Fragment() {
 
 
     private fun shareLog() {
     private fun shareLog() {
         val file = DocumentFile.fromSingleUri(
         val file = DocumentFile.fromSingleUri(
-            mainActivity, DocumentsContract.buildDocumentUri(
+            mainActivity,
+            DocumentsContract.buildDocumentUri(
                 DocumentProvider.AUTHORITY,
                 DocumentProvider.AUTHORITY,
                 "${DocumentProvider.ROOT_ID}/log/yuzu_log.txt"
                 "${DocumentProvider.ROOT_ID}/log/yuzu_log.txt"
             )
             )
@@ -287,7 +288,11 @@ class HomeSettingsFragment : Fragment() {
                 .putExtra(Intent.EXTRA_STREAM, file.uri)
                 .putExtra(Intent.EXTRA_STREAM, file.uri)
             startActivity(Intent.createChooser(intent, "Share log"))
             startActivity(Intent.createChooser(intent, "Share log"))
         } else {
         } else {
-            Toast.makeText(requireContext(), getText(R.string.share_log_missing), Toast.LENGTH_SHORT).show()
+            Toast.makeText(
+                requireContext(),
+                getText(R.string.share_log_missing),
+                Toast.LENGTH_SHORT
+            ).show()
         }
         }
     }
     }
 
 

+ 10 - 12
src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/IndeterminateProgressDialogFragment.kt

@@ -1,22 +1,24 @@
+// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
 package org.yuzu.yuzu_emu.fragments
 package org.yuzu.yuzu_emu.fragments
 
 
 import android.app.Dialog
 import android.app.Dialog
 import android.os.Bundle
 import android.os.Bundle
 import android.widget.Toast
 import android.widget.Toast
+import androidx.appcompat.app.AppCompatActivity
 import androidx.fragment.app.DialogFragment
 import androidx.fragment.app.DialogFragment
+import androidx.fragment.app.activityViewModels
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.ViewModelProvider
 import com.google.android.material.dialog.MaterialAlertDialogBuilder
 import com.google.android.material.dialog.MaterialAlertDialogBuilder
 import org.yuzu.yuzu_emu.databinding.DialogProgressBarBinding
 import org.yuzu.yuzu_emu.databinding.DialogProgressBarBinding
 import org.yuzu.yuzu_emu.model.TaskViewModel
 import org.yuzu.yuzu_emu.model.TaskViewModel
-import java.io.Serializable
 
 
 
 
 class IndeterminateProgressDialogFragment : DialogFragment() {
 class IndeterminateProgressDialogFragment : DialogFragment() {
-    private lateinit var taskViewModel: TaskViewModel
+    private val taskViewModel: TaskViewModel by activityViewModels()
 
 
     override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
     override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
-        taskViewModel = ViewModelProvider(requireActivity())[TaskViewModel::class.java]
-
         val titleId = requireArguments().getInt(TITLE)
         val titleId = requireArguments().getInt(TITLE)
 
 
         val progressBinding = DialogProgressBarBinding.inflate(layoutInflater)
         val progressBinding = DialogProgressBarBinding.inflate(layoutInflater)
@@ -42,11 +44,7 @@ class IndeterminateProgressDialogFragment : DialogFragment() {
         }
         }
 
 
         if (taskViewModel.isRunning.value == false) {
         if (taskViewModel.isRunning.value == false) {
-            val task = requireArguments().getSerializable(TASK) as? () -> Any
-            if (task != null) {
-                taskViewModel.task = task
-                taskViewModel.runTask()
-            }
+            taskViewModel.runTask()
         }
         }
         return dialog
         return dialog
     }
     }
@@ -55,18 +53,18 @@ class IndeterminateProgressDialogFragment : DialogFragment() {
         const val TAG = "IndeterminateProgressDialogFragment"
         const val TAG = "IndeterminateProgressDialogFragment"
 
 
         private const val TITLE = "Title"
         private const val TITLE = "Title"
-        private const val TASK = "Task"
 
 
         fun newInstance(
         fun newInstance(
+            activity: AppCompatActivity,
             titleId: Int,
             titleId: Int,
             task: () -> Any
             task: () -> Any
         ): IndeterminateProgressDialogFragment {
         ): IndeterminateProgressDialogFragment {
             val dialog = IndeterminateProgressDialogFragment()
             val dialog = IndeterminateProgressDialogFragment()
             val args = Bundle()
             val args = Bundle()
+            ViewModelProvider(activity)[TaskViewModel::class.java].task = task
             args.putInt(TITLE, titleId)
             args.putInt(TITLE, titleId)
-            args.putSerializable(TASK, task as Serializable)
             dialog.arguments = args
             dialog.arguments = args
             return dialog
             return dialog
         }
         }
     }
     }
-}
+}

+ 7 - 2
src/android/app/src/main/java/org/yuzu/yuzu_emu/model/TaskViewModel.kt

@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
 package org.yuzu.yuzu_emu.model
 package org.yuzu.yuzu_emu.model
 
 
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.LiveData
@@ -30,7 +33,9 @@ class TaskViewModel : ViewModel() {
     }
     }
 
 
     fun runTask() {
     fun runTask() {
-        if (_isRunning.value == true) return
+        if (_isRunning.value == true) {
+            return
+        }
         _isRunning.value = true
         _isRunning.value = true
 
 
         viewModelScope.launch(Dispatchers.IO) {
         viewModelScope.launch(Dispatchers.IO) {
@@ -39,4 +44,4 @@ class TaskViewModel : ViewModel() {
             _isComplete.postValue(true)
             _isComplete.postValue(true)
         }
         }
     }
     }
-}
+}

+ 4 - 3
src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt

@@ -345,15 +345,15 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
                     FileUtil.unzip(inputZip, cacheFirmwareDir)
                     FileUtil.unzip(inputZip, cacheFirmwareDir)
                     val unfilteredNumOfFiles = cacheFirmwareDir.list()?.size ?: -1
                     val unfilteredNumOfFiles = cacheFirmwareDir.list()?.size ?: -1
                     val filteredNumOfFiles = cacheFirmwareDir.list(filterNCA)?.size ?: -2
                     val filteredNumOfFiles = cacheFirmwareDir.list(filterNCA)?.size ?: -2
-                    if (unfilteredNumOfFiles != filteredNumOfFiles) {
-                        messageToShow = MessageDialogFragment.newInstance(
+                    messageToShow = if (unfilteredNumOfFiles != filteredNumOfFiles) {
+                        MessageDialogFragment.newInstance(
                             R.string.firmware_installed_failure,
                             R.string.firmware_installed_failure,
                             R.string.firmware_installed_failure_description
                             R.string.firmware_installed_failure_description
                         )
                         )
                     } else {
                     } else {
                         firmwarePath.deleteRecursively()
                         firmwarePath.deleteRecursively()
                         cacheFirmwareDir.copyRecursively(firmwarePath, true)
                         cacheFirmwareDir.copyRecursively(firmwarePath, true)
-                        messageToShow = getString(R.string.save_file_imported_success)
+                        getString(R.string.save_file_imported_success)
                     }
                     }
                 } catch (e: Exception) {
                 } catch (e: Exception) {
                     messageToShow = getString(R.string.fatal_error)
                     messageToShow = getString(R.string.fatal_error)
@@ -364,6 +364,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
             }
             }
 
 
             IndeterminateProgressDialogFragment.newInstance(
             IndeterminateProgressDialogFragment.newInstance(
+                this,
                 R.string.firmware_installing,
                 R.string.firmware_installing,
                 task
                 task
             ).show(supportFragmentManager, IndeterminateProgressDialogFragment.TAG)
             ).show(supportFragmentManager, IndeterminateProgressDialogFragment.TAG)