Show restart dialog on setting change

This commit is contained in:
Niko Diamadis
2023-02-17 15:40:13 +01:00
parent 544c960bff
commit 9d2622fbc6
2 changed files with 18 additions and 27 deletions

View File

@@ -78,33 +78,15 @@ internal class SettingsActivity : AppCompatActivity(), OnSharedPreferenceChangeL
findPreference(getString(R.string.setting_key_notification_channels))
messageLayout?.onPreferenceChangeListener =
Preference.OnPreferenceChangeListener { _, _ ->
MaterialAlertDialogBuilder(requireContext())
.setTitle(R.string.setting_message_layout_dialog_title)
.setMessage(R.string.setting_message_layout_dialog_message)
.setPositiveButton(
getString(R.string.setting_message_layout_dialog_button1)
) { _, _ ->
restartApp()
}
.setNegativeButton(
getString(R.string.setting_message_layout_dialog_button2),
null
)
.show()
showRestartDialog()
true
}
notificationChannels?.onPreferenceChangeListener =
Preference.OnPreferenceChangeListener { _, _ ->
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
return@OnPreferenceChangeListener true
return@OnPreferenceChangeListener false
}
MaterialAlertDialogBuilder(requireContext())
.setTitle(R.string.setting_notification_channels_dialog_title)
.setMessage(R.string.setting_notification_channels_dialog_message)
.setPositiveButton(android.R.string.ok, null)
.show()
showRestartDialog()
true
}
}
@@ -127,6 +109,17 @@ internal class SettingsActivity : AppCompatActivity(), OnSharedPreferenceChangeL
)
}
private fun showRestartDialog() {
MaterialAlertDialogBuilder(requireContext())
.setTitle(R.string.setting_restart_dialog_title)
.setMessage(R.string.setting_restart_dialog_message)
.setPositiveButton(getString(R.string.setting_restart_dialog_button1)) { _, _ ->
restartApp()
}
.setNegativeButton(getString(R.string.setting_restart_dialog_button2), null)
.show()
}
private fun restartApp() {
val packageManager = requireContext().packageManager
val packageName = requireContext().packageName