summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/StartupHandler.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/StartupHandler.kt')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/StartupHandler.kt45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/StartupHandler.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/StartupHandler.kt
new file mode 100644
index 000000000..8854c3d0f
--- /dev/null
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/StartupHandler.kt
@@ -0,0 +1,45 @@
+package org.yuzu.yuzu_emu.utils
+
+import androidx.preference.PreferenceManager
+import android.text.Html
+import android.text.method.LinkMovementMethod
+import android.view.View
+import android.widget.TextView
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
+import org.yuzu.yuzu_emu.R
+import org.yuzu.yuzu_emu.YuzuApplication
+import org.yuzu.yuzu_emu.features.settings.model.Settings
+import org.yuzu.yuzu_emu.ui.main.MainActivity
+import org.yuzu.yuzu_emu.ui.main.MainPresenter
+
+object StartupHandler {
+ private val preferences =
+ PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
+
+ private fun handleStartupPromptDismiss(parent: MainActivity) {
+ parent.launchFileListActivity(MainPresenter.REQUEST_INSTALL_KEYS)
+ }
+
+ private fun markFirstBoot() {
+ preferences.edit()
+ .putBoolean(Settings.PREF_FIRST_APP_LAUNCH, false)
+ .apply()
+ }
+
+ fun handleInit(parent: MainActivity) {
+ if (preferences.getBoolean(Settings.PREF_FIRST_APP_LAUNCH, true)) {
+ markFirstBoot()
+ val alert = MaterialAlertDialogBuilder(parent)
+ .setMessage(Html.fromHtml(parent.resources.getString(R.string.app_disclaimer)))
+ .setTitle(R.string.app_name)
+ .setIcon(R.mipmap.ic_launcher)
+ .setPositiveButton(android.R.string.ok, null)
+ .setOnDismissListener {
+ handleStartupPromptDismiss(parent)
+ }
+ .show()
+ (alert.findViewById<View>(android.R.id.message) as TextView?)!!.movementMethod =
+ LinkMovementMethod.getInstance()
+ }
+ }
+}