mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-29 16:30:31 +05:30
add confirmation dialogs to some settings
This commit is contained in:
parent
ba0263791c
commit
4070b9893c
@ -3,10 +3,8 @@ package com.github.libretube.preferences
|
|||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
import androidx.preference.PreferenceFragmentCompat
|
import androidx.preference.PreferenceFragmentCompat
|
||||||
import androidx.preference.SwitchPreferenceCompat
|
|
||||||
import com.github.libretube.R
|
import com.github.libretube.R
|
||||||
import com.github.libretube.activities.SettingsActivity
|
import com.github.libretube.activities.SettingsActivity
|
||||||
import com.github.libretube.dialogs.RequireRestartDialog
|
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
|
||||||
class AdvancedSettings : PreferenceFragmentCompat() {
|
class AdvancedSettings : PreferenceFragmentCompat() {
|
||||||
@ -18,13 +16,6 @@ class AdvancedSettings : PreferenceFragmentCompat() {
|
|||||||
val settingsActivity = activity as SettingsActivity
|
val settingsActivity = activity as SettingsActivity
|
||||||
settingsActivity.changeTopBarText(getString(R.string.advanced))
|
settingsActivity.changeTopBarText(getString(R.string.advanced))
|
||||||
|
|
||||||
val dataSaverMode = findPreference<SwitchPreferenceCompat>(PreferenceKeys.DATA_SAVER_MODE)
|
|
||||||
dataSaverMode?.setOnPreferenceChangeListener { _, _ ->
|
|
||||||
val restartDialog = RequireRestartDialog()
|
|
||||||
restartDialog.show(childFragmentManager, "RequireRestartDialog")
|
|
||||||
true
|
|
||||||
}
|
|
||||||
|
|
||||||
val resetSettings = findPreference<Preference>(PreferenceKeys.RESET_SETTINGS)
|
val resetSettings = findPreference<Preference>(PreferenceKeys.RESET_SETTINGS)
|
||||||
resetSettings?.setOnPreferenceClickListener {
|
resetSettings?.setOnPreferenceClickListener {
|
||||||
showResetDialog()
|
showResetDialog()
|
||||||
@ -34,6 +25,9 @@ class AdvancedSettings : PreferenceFragmentCompat() {
|
|||||||
|
|
||||||
private fun showResetDialog() {
|
private fun showResetDialog() {
|
||||||
MaterialAlertDialogBuilder(requireContext())
|
MaterialAlertDialogBuilder(requireContext())
|
||||||
|
.setTitle(R.string.reset)
|
||||||
|
.setMessage(R.string.reset_message)
|
||||||
|
.setNegativeButton(getString(R.string.cancel)) { _, _ -> }
|
||||||
.setPositiveButton(R.string.reset) { _, _ ->
|
.setPositiveButton(R.string.reset) { _, _ ->
|
||||||
// clear default preferences
|
// clear default preferences
|
||||||
PreferenceHelper.clearPreferences()
|
PreferenceHelper.clearPreferences()
|
||||||
@ -41,12 +35,8 @@ class AdvancedSettings : PreferenceFragmentCompat() {
|
|||||||
// clear login token
|
// clear login token
|
||||||
PreferenceHelper.setToken("")
|
PreferenceHelper.setToken("")
|
||||||
|
|
||||||
val restartDialog = RequireRestartDialog()
|
activity?.recreate()
|
||||||
restartDialog.show(childFragmentManager, "RequireRestartDialog")
|
|
||||||
}
|
}
|
||||||
.setNegativeButton(getString(R.string.cancel)) { _, _ -> }
|
|
||||||
.setTitle(R.string.reset)
|
|
||||||
.setMessage(R.string.reset_message)
|
|
||||||
.show()
|
.show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,13 +51,6 @@ class AppearanceSettings : PreferenceFragmentCompat() {
|
|||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
val gridColumns = findPreference<ListPreference>(PreferenceKeys.GRID_COLUMNS)
|
|
||||||
gridColumns?.setOnPreferenceChangeListener { _, _ ->
|
|
||||||
val restartDialog = RequireRestartDialog()
|
|
||||||
restartDialog.show(childFragmentManager, "RequireRestartDialog")
|
|
||||||
true
|
|
||||||
}
|
|
||||||
|
|
||||||
val labelVisibilityMode = findPreference<ListPreference>(PreferenceKeys.LABEL_VISIBILITY)
|
val labelVisibilityMode = findPreference<ListPreference>(PreferenceKeys.LABEL_VISIBILITY)
|
||||||
labelVisibilityMode?.setOnPreferenceChangeListener { _, _ ->
|
labelVisibilityMode?.setOnPreferenceChangeListener { _, _ ->
|
||||||
val restartDialog = RequireRestartDialog()
|
val restartDialog = RequireRestartDialog()
|
||||||
|
@ -2,7 +2,6 @@ package com.github.libretube.preferences
|
|||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.preference.ListPreference
|
import androidx.preference.ListPreference
|
||||||
import androidx.preference.Preference
|
|
||||||
import androidx.preference.PreferenceFragmentCompat
|
import androidx.preference.PreferenceFragmentCompat
|
||||||
import androidx.preference.SwitchPreferenceCompat
|
import androidx.preference.SwitchPreferenceCompat
|
||||||
import com.github.libretube.R
|
import com.github.libretube.R
|
||||||
@ -18,13 +17,6 @@ class GeneralSettings : PreferenceFragmentCompat() {
|
|||||||
val settingsActivity = activity as SettingsActivity
|
val settingsActivity = activity as SettingsActivity
|
||||||
settingsActivity.changeTopBarText(getString(R.string.general))
|
settingsActivity.changeTopBarText(getString(R.string.general))
|
||||||
|
|
||||||
val region = findPreference<Preference>("region")
|
|
||||||
region?.setOnPreferenceChangeListener { _, _ ->
|
|
||||||
val restartDialog = RequireRestartDialog()
|
|
||||||
restartDialog.show(childFragmentManager, "RequireRestartDialog")
|
|
||||||
true
|
|
||||||
}
|
|
||||||
|
|
||||||
val language = findPreference<ListPreference>("language")
|
val language = findPreference<ListPreference>("language")
|
||||||
language?.setOnPreferenceChangeListener { _, _ ->
|
language?.setOnPreferenceChangeListener { _, _ ->
|
||||||
val restartDialog = RequireRestartDialog()
|
val restartDialog = RequireRestartDialog()
|
||||||
|
@ -5,6 +5,7 @@ import androidx.preference.Preference
|
|||||||
import androidx.preference.PreferenceFragmentCompat
|
import androidx.preference.PreferenceFragmentCompat
|
||||||
import com.github.libretube.R
|
import com.github.libretube.R
|
||||||
import com.github.libretube.activities.SettingsActivity
|
import com.github.libretube.activities.SettingsActivity
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
|
||||||
class HistorySettings : PreferenceFragmentCompat() {
|
class HistorySettings : PreferenceFragmentCompat() {
|
||||||
|
|
||||||
@ -17,22 +18,34 @@ class HistorySettings : PreferenceFragmentCompat() {
|
|||||||
// clear search history
|
// clear search history
|
||||||
val clearHistory = findPreference<Preference>(PreferenceKeys.CLEAR_SEARCH_HISTORY)
|
val clearHistory = findPreference<Preference>(PreferenceKeys.CLEAR_SEARCH_HISTORY)
|
||||||
clearHistory?.setOnPreferenceClickListener {
|
clearHistory?.setOnPreferenceClickListener {
|
||||||
PreferenceHelper.removePreference("search_history")
|
showClearDialog(R.string.clear_history, "search_history")
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
// clear watch history and positions
|
// clear watch history and positions
|
||||||
val clearWatchHistory = findPreference<Preference>(PreferenceKeys.CLEAR_WATCH_HISTORY)
|
val clearWatchHistory = findPreference<Preference>(PreferenceKeys.CLEAR_WATCH_HISTORY)
|
||||||
clearWatchHistory?.setOnPreferenceClickListener {
|
clearWatchHistory?.setOnPreferenceClickListener {
|
||||||
PreferenceHelper.removePreference("watch_history")
|
showClearDialog(R.string.clear_history, "watch_history")
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
// clear watch positions
|
// clear watch positions
|
||||||
val clearWatchPositions = findPreference<Preference>(PreferenceKeys.CLEAR_WATCH_POSITIONS)
|
val clearWatchPositions = findPreference<Preference>(PreferenceKeys.CLEAR_WATCH_POSITIONS)
|
||||||
clearWatchPositions?.setOnPreferenceClickListener {
|
clearWatchPositions?.setOnPreferenceClickListener {
|
||||||
PreferenceHelper.removePreference("watch_positions")
|
showClearDialog(R.string.reset_watch_positions, "watch_positions")
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun showClearDialog(title: Int, preferenceKey: String) {
|
||||||
|
MaterialAlertDialogBuilder(requireContext())
|
||||||
|
.setTitle(title)
|
||||||
|
.setMessage(R.string.irreversible)
|
||||||
|
.setNegativeButton(getString(R.string.cancel)) { _, _ -> }
|
||||||
|
.setPositiveButton(R.string.okay) { _, _ ->
|
||||||
|
// clear the selected preference preferences
|
||||||
|
PreferenceHelper.removePreference(preferenceKey)
|
||||||
|
}
|
||||||
|
.show()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,6 @@ import com.github.libretube.dialogs.CustomInstanceDialog
|
|||||||
import com.github.libretube.dialogs.DeleteAccountDialog
|
import com.github.libretube.dialogs.DeleteAccountDialog
|
||||||
import com.github.libretube.dialogs.LoginDialog
|
import com.github.libretube.dialogs.LoginDialog
|
||||||
import com.github.libretube.dialogs.LogoutDialog
|
import com.github.libretube.dialogs.LogoutDialog
|
||||||
import com.github.libretube.dialogs.RequireRestartDialog
|
|
||||||
import com.github.libretube.util.PermissionHelper
|
import com.github.libretube.util.PermissionHelper
|
||||||
import com.github.libretube.util.RetrofitInstance
|
import com.github.libretube.util.RetrofitInstance
|
||||||
import org.json.JSONObject
|
import org.json.JSONObject
|
||||||
@ -120,14 +119,13 @@ class InstanceSettings : PreferenceFragmentCompat() {
|
|||||||
// fetchInstance()
|
// fetchInstance()
|
||||||
initCustomInstances(instance!!)
|
initCustomInstances(instance!!)
|
||||||
instance.setOnPreferenceChangeListener { _, newValue ->
|
instance.setOnPreferenceChangeListener { _, newValue ->
|
||||||
val restartDialog = RequireRestartDialog()
|
|
||||||
restartDialog.show(childFragmentManager, "RequireRestartDialog")
|
|
||||||
RetrofitInstance.url = newValue.toString()
|
RetrofitInstance.url = newValue.toString()
|
||||||
if (!PreferenceHelper.getBoolean(PreferenceKeys.AUTH_INSTANCE_TOGGLE, false)) {
|
if (!PreferenceHelper.getBoolean(PreferenceKeys.AUTH_INSTANCE_TOGGLE, false)) {
|
||||||
RetrofitInstance.authUrl = newValue.toString()
|
RetrofitInstance.authUrl = newValue.toString()
|
||||||
logout()
|
logout()
|
||||||
}
|
}
|
||||||
RetrofitInstance.lazyMgr.reset()
|
RetrofitInstance.lazyMgr.reset()
|
||||||
|
activity?.recreate()
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,8 +140,7 @@ class InstanceSettings : PreferenceFragmentCompat() {
|
|||||||
RetrofitInstance.authUrl = newValue.toString()
|
RetrofitInstance.authUrl = newValue.toString()
|
||||||
RetrofitInstance.lazyMgr.reset()
|
RetrofitInstance.lazyMgr.reset()
|
||||||
logout()
|
logout()
|
||||||
val restartDialog = RequireRestartDialog()
|
activity?.recreate()
|
||||||
restartDialog.show(childFragmentManager, "RequireRestartDialog")
|
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,8 +152,8 @@ class InstanceSettings : PreferenceFragmentCompat() {
|
|||||||
// either use new auth url or the normal api url if auth instance disabled
|
// either use new auth url or the normal api url if auth instance disabled
|
||||||
RetrofitInstance.authUrl = if (newValue == false) RetrofitInstance.url
|
RetrofitInstance.authUrl = if (newValue == false) RetrofitInstance.url
|
||||||
else authInstance.value
|
else authInstance.value
|
||||||
val restartDialog = RequireRestartDialog()
|
RetrofitInstance.lazyMgr.reset()
|
||||||
restartDialog.show(childFragmentManager, "RequireRestartDialog")
|
activity?.recreate()
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -265,4 +265,5 @@
|
|||||||
<string name="best_quality">Best quality</string>
|
<string name="best_quality">Best quality</string>
|
||||||
<string name="worst_quality">Worst quality</string>
|
<string name="worst_quality">Worst quality</string>
|
||||||
<string name="default_subtitle_language">Default subtitle language</string>
|
<string name="default_subtitle_language">Default subtitle language</string>
|
||||||
|
<string name="irreversible">Are you sure? This can\'t be undone!</string>
|
||||||
</resources>
|
</resources>
|
@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:icon="@drawable/ic_reset"
|
android:icon="@drawable/ic_reset"
|
||||||
app:key="reset_watch_positions"
|
app:key="clear_watch_positions"
|
||||||
app:title="@string/reset_watch_positions" />
|
app:title="@string/reset_watch_positions" />
|
||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user