summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar PabloG022023-06-05 08:39:49 +0200
committerGravatar PabloG022023-06-06 00:07:54 +0200
commit409ff26f029861235b3f7b12400eea82c843244d (patch)
treef833790d0891b24654b0de35790b538c8de6e01e /src
parentAttempt to move the unzip coroutine to a ViewModel (diff)
downloadyuzu-409ff26f029861235b3f7b12400eea82c843244d.tar.gz
yuzu-409ff26f029861235b3f7b12400eea82c843244d.tar.xz
yuzu-409ff26f029861235b3f7b12400eea82c843244d.zip
Address feedback
Diffstat (limited to 'src')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt9
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/IndeterminateProgressDialogFragment.kt22
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/model/TaskViewModel.kt9
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt7
4 files changed, 28 insertions, 19 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt
index 0bdbabe79..d2fa46323 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt
@@ -275,7 +275,8 @@ class HomeSettingsFragment : Fragment() {
275 275
276 private fun shareLog() { 276 private fun shareLog() {
277 val file = DocumentFile.fromSingleUri( 277 val file = DocumentFile.fromSingleUri(
278 mainActivity, DocumentsContract.buildDocumentUri( 278 mainActivity,
279 DocumentsContract.buildDocumentUri(
279 DocumentProvider.AUTHORITY, 280 DocumentProvider.AUTHORITY,
280 "${DocumentProvider.ROOT_ID}/log/yuzu_log.txt" 281 "${DocumentProvider.ROOT_ID}/log/yuzu_log.txt"
281 ) 282 )
@@ -287,7 +288,11 @@ class HomeSettingsFragment : Fragment() {
287 .putExtra(Intent.EXTRA_STREAM, file.uri) 288 .putExtra(Intent.EXTRA_STREAM, file.uri)
288 startActivity(Intent.createChooser(intent, "Share log")) 289 startActivity(Intent.createChooser(intent, "Share log"))
289 } else { 290 } else {
290 Toast.makeText(requireContext(), getText(R.string.share_log_missing), Toast.LENGTH_SHORT).show() 291 Toast.makeText(
292 requireContext(),
293 getText(R.string.share_log_missing),
294 Toast.LENGTH_SHORT
295 ).show()
291 } 296 }
292 } 297 }
293 298
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 10a897392..c7880d8cc 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
@@ -1,22 +1,24 @@
1// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
2// SPDX-License-Identifier: GPL-2.0-or-later
3
1package org.yuzu.yuzu_emu.fragments 4package org.yuzu.yuzu_emu.fragments
2 5
3import android.app.Dialog 6import android.app.Dialog
4import android.os.Bundle 7import android.os.Bundle
5import android.widget.Toast 8import android.widget.Toast
9import androidx.appcompat.app.AppCompatActivity
6import androidx.fragment.app.DialogFragment 10import androidx.fragment.app.DialogFragment
11import androidx.fragment.app.activityViewModels
7import androidx.lifecycle.ViewModelProvider 12import androidx.lifecycle.ViewModelProvider
8import com.google.android.material.dialog.MaterialAlertDialogBuilder 13import com.google.android.material.dialog.MaterialAlertDialogBuilder
9import org.yuzu.yuzu_emu.databinding.DialogProgressBarBinding 14import org.yuzu.yuzu_emu.databinding.DialogProgressBarBinding
10import org.yuzu.yuzu_emu.model.TaskViewModel 15import org.yuzu.yuzu_emu.model.TaskViewModel
11import java.io.Serializable
12 16
13 17
14class IndeterminateProgressDialogFragment : DialogFragment() { 18class IndeterminateProgressDialogFragment : DialogFragment() {
15 private lateinit var taskViewModel: TaskViewModel 19 private val taskViewModel: TaskViewModel by activityViewModels()
16 20
17 override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { 21 override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
18 taskViewModel = ViewModelProvider(requireActivity())[TaskViewModel::class.java]
19
20 val titleId = requireArguments().getInt(TITLE) 22 val titleId = requireArguments().getInt(TITLE)
21 23
22 val progressBinding = DialogProgressBarBinding.inflate(layoutInflater) 24 val progressBinding = DialogProgressBarBinding.inflate(layoutInflater)
@@ -42,11 +44,7 @@ class IndeterminateProgressDialogFragment : DialogFragment() {
42 } 44 }
43 45
44 if (taskViewModel.isRunning.value == false) { 46 if (taskViewModel.isRunning.value == false) {
45 val task = requireArguments().getSerializable(TASK) as? () -> Any 47 taskViewModel.runTask()
46 if (task != null) {
47 taskViewModel.task = task
48 taskViewModel.runTask()
49 }
50 } 48 }
51 return dialog 49 return dialog
52 } 50 }
@@ -55,18 +53,18 @@ class IndeterminateProgressDialogFragment : DialogFragment() {
55 const val TAG = "IndeterminateProgressDialogFragment" 53 const val TAG = "IndeterminateProgressDialogFragment"
56 54
57 private const val TITLE = "Title" 55 private const val TITLE = "Title"
58 private const val TASK = "Task"
59 56
60 fun newInstance( 57 fun newInstance(
58 activity: AppCompatActivity,
61 titleId: Int, 59 titleId: Int,
62 task: () -> Any 60 task: () -> Any
63 ): IndeterminateProgressDialogFragment { 61 ): IndeterminateProgressDialogFragment {
64 val dialog = IndeterminateProgressDialogFragment() 62 val dialog = IndeterminateProgressDialogFragment()
65 val args = Bundle() 63 val args = Bundle()
64 ViewModelProvider(activity)[TaskViewModel::class.java].task = task
66 args.putInt(TITLE, titleId) 65 args.putInt(TITLE, titleId)
67 args.putSerializable(TASK, task as Serializable)
68 dialog.arguments = args 66 dialog.arguments = args
69 return dialog 67 return dialog
70 } 68 }
71 } 69 }
72} \ No newline at end of file 70}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/TaskViewModel.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/TaskViewModel.kt
index 23723bceb..27ea725a5 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/TaskViewModel.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/TaskViewModel.kt
@@ -1,3 +1,6 @@
1// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
2// SPDX-License-Identifier: GPL-2.0-or-later
3
1package org.yuzu.yuzu_emu.model 4package org.yuzu.yuzu_emu.model
2 5
3import androidx.lifecycle.LiveData 6import androidx.lifecycle.LiveData
@@ -30,7 +33,9 @@ class TaskViewModel : ViewModel() {
30 } 33 }
31 34
32 fun runTask() { 35 fun runTask() {
33 if (_isRunning.value == true) return 36 if (_isRunning.value == true) {
37 return
38 }
34 _isRunning.value = true 39 _isRunning.value = true
35 40
36 viewModelScope.launch(Dispatchers.IO) { 41 viewModelScope.launch(Dispatchers.IO) {
@@ -39,4 +44,4 @@ class TaskViewModel : ViewModel() {
39 _isComplete.postValue(true) 44 _isComplete.postValue(true)
40 } 45 }
41 } 46 }
42} \ No newline at end of file 47}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
index 2001ad704..6805efb55 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
@@ -345,15 +345,15 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
345 FileUtil.unzip(inputZip, cacheFirmwareDir) 345 FileUtil.unzip(inputZip, cacheFirmwareDir)
346 val unfilteredNumOfFiles = cacheFirmwareDir.list()?.size ?: -1 346 val unfilteredNumOfFiles = cacheFirmwareDir.list()?.size ?: -1
347 val filteredNumOfFiles = cacheFirmwareDir.list(filterNCA)?.size ?: -2 347 val filteredNumOfFiles = cacheFirmwareDir.list(filterNCA)?.size ?: -2
348 if (unfilteredNumOfFiles != filteredNumOfFiles) { 348 messageToShow = if (unfilteredNumOfFiles != filteredNumOfFiles) {
349 messageToShow = MessageDialogFragment.newInstance( 349 MessageDialogFragment.newInstance(
350 R.string.firmware_installed_failure, 350 R.string.firmware_installed_failure,
351 R.string.firmware_installed_failure_description 351 R.string.firmware_installed_failure_description
352 ) 352 )
353 } else { 353 } else {
354 firmwarePath.deleteRecursively() 354 firmwarePath.deleteRecursively()
355 cacheFirmwareDir.copyRecursively(firmwarePath, true) 355 cacheFirmwareDir.copyRecursively(firmwarePath, true)
356 messageToShow = getString(R.string.save_file_imported_success) 356 getString(R.string.save_file_imported_success)
357 } 357 }
358 } catch (e: Exception) { 358 } catch (e: Exception) {
359 messageToShow = getString(R.string.fatal_error) 359 messageToShow = getString(R.string.fatal_error)
@@ -364,6 +364,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
364 } 364 }
365 365
366 IndeterminateProgressDialogFragment.newInstance( 366 IndeterminateProgressDialogFragment.newInstance(
367 this,
367 R.string.firmware_installing, 368 R.string.firmware_installing,
368 task 369 task
369 ).show(supportFragmentManager, IndeterminateProgressDialogFragment.TAG) 370 ).show(supportFragmentManager, IndeterminateProgressDialogFragment.TAG)