Added a setting to restart the launcher

This commit is contained in:
ottoptj 2024-09-24 14:11:50 +03:00
commit 0ca4dbef2e
3 changed files with 25 additions and 1 deletions

View file

@ -2,6 +2,7 @@ package eu.ottop.yamlauncher.settings
import android.Manifest import android.Manifest
import android.app.Activity import android.app.Activity
import android.app.PendingIntent
import android.content.Intent import android.content.Intent
import android.content.SharedPreferences import android.content.SharedPreferences
import android.content.pm.PackageManager import android.content.pm.PackageManager
@ -13,6 +14,7 @@ import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat import androidx.core.app.ActivityCompat
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import eu.ottop.yamlauncher.MainActivity
import eu.ottop.yamlauncher.R import eu.ottop.yamlauncher.R
import eu.ottop.yamlauncher.databinding.ActivitySettingsBinding import eu.ottop.yamlauncher.databinding.ActivitySettingsBinding
import eu.ottop.yamlauncher.utils.PermissionUtils import eu.ottop.yamlauncher.utils.PermissionUtils
@ -30,7 +32,6 @@ class SettingsActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
sharedPreferenceManager = SharedPreferenceManager(this@SettingsActivity) sharedPreferenceManager = SharedPreferenceManager(this@SettingsActivity)
preferences = PreferenceManager.getDefaultSharedPreferences(this@SettingsActivity) preferences = PreferenceManager.getDefaultSharedPreferences(this@SettingsActivity)
@ -198,6 +199,17 @@ class SettingsActivity : AppCompatActivity() {
} catch(_: Exception) {} } 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( override fun onRequestPermissionsResult(
requestCode: Int, requestCode: Int,
permissions: Array<out String>, permissions: Array<out String>,

View file

@ -30,6 +30,7 @@ class SettingsFragment : PreferenceFragmentCompat(), TitleProvider {
val backupPref = findPreference<Preference>("backup") val backupPref = findPreference<Preference>("backup")
val restorePref = findPreference<Preference>("restore") val restorePref = findPreference<Preference>("restore")
val aboutPref = findPreference<Preference>("aboutPage") val aboutPref = findPreference<Preference>("aboutPage")
val restartPref = findPreference<Preference>("restartLauncher")
val resetPref = findPreference<Preference>("resetAll") val resetPref = findPreference<Preference>("resetAll")
homePref?.onPreferenceClickListener = homePref?.onPreferenceClickListener =
@ -77,6 +78,11 @@ class SettingsFragment : PreferenceFragmentCompat(), TitleProvider {
uiUtils.switchFragment(requireActivity(), AboutFragment()) uiUtils.switchFragment(requireActivity(), AboutFragment())
true } true }
restartPref?.onPreferenceClickListener =
Preference.OnPreferenceClickListener {
(requireActivity() as SettingsActivity).restartApp()
true }
resetPref?.onPreferenceClickListener = resetPref?.onPreferenceClickListener =
Preference.OnPreferenceClickListener { Preference.OnPreferenceClickListener {
sharedPreferenceManager.resetAllPreferences() sharedPreferenceManager.resetAllPreferences()

View file

@ -86,6 +86,12 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:allowDividerAbove="false" app:allowDividerAbove="false"
app:title="Reset"> app:title="Reset">
<Preference
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:key="restartLauncher"
app:selectable="true"
app:title="Restart YAM Launcher" />
<Preference <Preference
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"