Jelajahi Sumber

android: Use dialog fragment for the reset settings dialog

Charles Lombardo 3 tahun lalu
induk
melakukan
897b748895

+ 7 - 12
src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt

@@ -19,6 +19,7 @@ import org.yuzu.yuzu_emu.features.settings.model.Settings
 import org.yuzu.yuzu_emu.features.settings.model.StringSetting
 import org.yuzu.yuzu_emu.features.settings.model.view.*
 import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile
+import org.yuzu.yuzu_emu.fragments.ResetSettingsDialogFragment
 import org.yuzu.yuzu_emu.utils.ThemeHelper
 
 class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) {
@@ -115,7 +116,12 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
                 RunnableSetting(
                     R.string.reset_to_default,
                     0
-                ) { resetSettings() }
+                ) {
+                    ResetSettingsDialogFragment().show(
+                        settingsActivity.supportFragmentManager,
+                        ResetSettingsDialogFragment.TAG
+                    )
+                }
             )
         }
     }
@@ -444,15 +450,4 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
             )
         }
     }
-
-    private fun resetSettings() {
-        MaterialAlertDialogBuilder(settingsActivity)
-            .setTitle(R.string.reset_all_settings)
-            .setMessage(R.string.reset_all_settings_description)
-            .setPositiveButton(android.R.string.ok) { _, _ ->
-                settingsActivity.onSettingsReset()
-            }
-            .setNegativeButton(android.R.string.cancel, null)
-            .show()
-    }
 }

+ 30 - 0
src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/ResetSettingsDialogFragment.kt

@@ -0,0 +1,30 @@
+// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+package org.yuzu.yuzu_emu.fragments
+
+import android.app.Dialog
+import android.os.Bundle
+import androidx.fragment.app.DialogFragment
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
+import org.yuzu.yuzu_emu.R
+import org.yuzu.yuzu_emu.features.settings.ui.SettingsActivity
+
+class ResetSettingsDialogFragment : DialogFragment() {
+    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+        val settingsActivity = requireActivity() as SettingsActivity
+
+        return MaterialAlertDialogBuilder(requireContext())
+            .setTitle(R.string.reset_all_settings)
+            .setMessage(R.string.reset_all_settings_description)
+            .setPositiveButton(android.R.string.ok) { _, _ ->
+                settingsActivity.onSettingsReset()
+            }
+            .setNegativeButton(android.R.string.cancel, null)
+            .show()
+    }
+
+    companion object {
+        const val TAG = "ResetSettingsDialogFragment"
+    }
+}