From 0ca4dbef2ef20015db8b90efb50ea9081c4ccff2 Mon Sep 17 00:00:00 2001 From: ottoptj Date: Tue, 24 Sep 2024 14:11:50 +0300 Subject: [PATCH] Added a setting to restart the launcher --- .../ottop/yamlauncher/settings/SettingsActivity.kt | 14 +++++++++++++- .../ottop/yamlauncher/settings/SettingsFragment.kt | 6 ++++++ app/src/main/res/xml/root_preferences.xml | 6 ++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/ottop/yamlauncher/settings/SettingsActivity.kt b/app/src/main/java/eu/ottop/yamlauncher/settings/SettingsActivity.kt index a340cb4..e3c7e41 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/settings/SettingsActivity.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/settings/SettingsActivity.kt @@ -2,6 +2,7 @@ package eu.ottop.yamlauncher.settings import android.Manifest import android.app.Activity +import android.app.PendingIntent import android.content.Intent import android.content.SharedPreferences import android.content.pm.PackageManager @@ -13,6 +14,7 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatActivity import androidx.core.app.ActivityCompat import androidx.preference.PreferenceManager +import eu.ottop.yamlauncher.MainActivity import eu.ottop.yamlauncher.R import eu.ottop.yamlauncher.databinding.ActivitySettingsBinding import eu.ottop.yamlauncher.utils.PermissionUtils @@ -30,7 +32,6 @@ class SettingsActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - sharedPreferenceManager = SharedPreferenceManager(this@SettingsActivity) preferences = PreferenceManager.getDefaultSharedPreferences(this@SettingsActivity) @@ -198,6 +199,17 @@ class SettingsActivity : AppCompatActivity() { } catch(_: Exception) {} } + fun restartApp() { + val restartIntent = Intent(applicationContext, MainActivity::class.java) + restartIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK) + + val pendingIntent = PendingIntent.getActivity( + applicationContext, 0, restartIntent, PendingIntent.FLAG_CANCEL_CURRENT or PendingIntent.FLAG_IMMUTABLE + ) + + pendingIntent.send() + } + override fun onRequestPermissionsResult( requestCode: Int, permissions: Array, diff --git a/app/src/main/java/eu/ottop/yamlauncher/settings/SettingsFragment.kt b/app/src/main/java/eu/ottop/yamlauncher/settings/SettingsFragment.kt index 957f0a6..ba44221 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/settings/SettingsFragment.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/settings/SettingsFragment.kt @@ -30,6 +30,7 @@ class SettingsFragment : PreferenceFragmentCompat(), TitleProvider { val backupPref = findPreference("backup") val restorePref = findPreference("restore") val aboutPref = findPreference("aboutPage") + val restartPref = findPreference("restartLauncher") val resetPref = findPreference("resetAll") homePref?.onPreferenceClickListener = @@ -77,6 +78,11 @@ class SettingsFragment : PreferenceFragmentCompat(), TitleProvider { uiUtils.switchFragment(requireActivity(), AboutFragment()) true } + restartPref?.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + (requireActivity() as SettingsActivity).restartApp() + true } + resetPref?.onPreferenceClickListener = Preference.OnPreferenceClickListener { sharedPreferenceManager.resetAllPreferences() diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml index c4bd95a..f40ab01 100644 --- a/app/src/main/res/xml/root_preferences.xml +++ b/app/src/main/res/xml/root_preferences.xml @@ -86,6 +86,12 @@ android:layout_height="wrap_content" app:allowDividerAbove="false" app:title="Reset"> +