Skip to content
Snippets Groups Projects
Commit 9eb0961c authored by Nicolas Pomepuy's avatar Nicolas Pomepuy
Browse files

Add a clear data setting

parent 73d398a1
No related branches found
No related tags found
1 merge request!995Improve the clear media database / clear data settings
......@@ -398,6 +398,8 @@
<string name="dump_media_db_summary">Copy database to internal storage root</string>
<string name="clear_media_db">Clear media database</string>
<string name="clear_media_database_summary">Clears the database to start over</string>
<string name="clear_app_data">Clear app data</string>
<string name="clear_app_data_summary">Clears VLC for Android data</string>
<string name="clear_history">Clear history</string>
<string name="set_locale">Set locale</string>
<string name="network_caching">Network caching value</string>
......@@ -702,6 +704,7 @@
<string name="recently_added">Recently added</string>
<string name="playback_multiple_errors">Multiple media cannot be played</string>
<string name="clear_media_db_message">You will lose your progresses, bookmarks and the playlists you created but you will keep your VLC for Android settings</string>
<string name="clear_app_data_message">You will lose your progresses, bookmarks, playlists and all VLC settings</string>
<string name="clear">Clear</string>
<string name="abrepeat_add_first_marker">Set start point</string>
<string name="abrepeat_add_second_marker">Set end point</string>
......
......@@ -24,6 +24,7 @@
package org.videolan.television.ui.preferences
import android.annotation.TargetApi
import android.app.ActivityManager
import android.app.AlertDialog
import android.content.Context
import android.content.Intent
......@@ -34,7 +35,6 @@ import android.os.Bundle
import android.widget.Toast
import androidx.core.content.edit
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.lifecycleScope
import androidx.preference.EditTextPreference
import androidx.preference.Preference
import kotlinx.coroutines.*
......@@ -104,6 +104,19 @@ class PreferencesAdvanced : BasePreferenceFragment(), SharedPreferences.OnShared
.show()
return true
}
"clear_app_data" -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
val dialog = ConfirmDeleteDialog.newInstance(title = getString(R.string.clear_app_data), description = getString(R.string.clear_app_data_message), buttonText = getString(R.string.clear))
dialog.show((activity as FragmentActivity).supportFragmentManager, RenameDialog::class.simpleName)
dialog.setListener { (activity.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager).clearApplicationUserData() }
} else {
val i = Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
i.addCategory(Intent.CATEGORY_DEFAULT)
i.data = Uri.parse("package:" + activity.applicationContext.packageName)
startActivity(i)
}
return true
}
"clear_media_db" -> {
val dialog = ConfirmDeleteDialog.newInstance(title = getString(R.string.clear_media_db), description = getString(R.string.clear_media_db_message), buttonText = getString(R.string.clear))
dialog.show((activity as FragmentActivity).supportFragmentManager, RenameDialog::class.simpleName)
......
......@@ -37,6 +37,12 @@
android:summary="@string/clear_media_database_summary"
android:title="@string/clear_media_db"/>
<Preference
android:enabled="true"
android:key="clear_app_data"
android:summary="@string/clear_app_data_summary"
android:title="@string/clear_app_data"/>
<PreferenceScreen
android:key="clear_history"
android:title="@string/clear_playback_history"/>
......
......@@ -23,12 +23,13 @@
package org.videolan.vlc.gui.preferences
import android.app.AlarmManager
import android.app.PendingIntent
import android.app.ActivityManager
import android.content.Context
import android.content.Context.ACTIVITY_SERVICE
import android.content.Intent
import android.content.SharedPreferences
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
......@@ -38,24 +39,21 @@ import androidx.preference.EditTextPreference
import androidx.preference.Preference
import kotlinx.coroutines.*
import org.videolan.medialibrary.interfaces.Medialibrary
import org.videolan.resources.*
import org.videolan.tools.RESULT_RESTART
import org.videolan.resources.AndroidDevices
import org.videolan.resources.KEY_AUDIO_LAST_PLAYLIST
import org.videolan.resources.KEY_MEDIA_LAST_PLAYLIST
import org.videolan.resources.VLCInstance
import org.videolan.tools.Settings
import org.videolan.tools.isStarted
import org.videolan.tools.putSingle
import org.videolan.vlc.BuildConfig
import org.videolan.vlc.MediaParsingService
import org.videolan.vlc.R
import org.videolan.vlc.StartActivity
import org.videolan.vlc.gui.DebugLogActivity
import org.videolan.vlc.gui.MainActivity
import org.videolan.vlc.gui.SecondaryActivity
import org.videolan.vlc.gui.dialogs.ConfirmDeleteDialog
import org.videolan.vlc.gui.dialogs.RenameDialog
import org.videolan.vlc.gui.helpers.UiTools
import org.videolan.vlc.gui.helpers.hf.StoragePermissionsDelegate.Companion.getWritePermission
import org.videolan.vlc.util.FeatureFlag
import org.videolan.vlc.gui.onboarding.ONBOARDING_DONE_KEY
import org.videolan.vlc.util.FileUtils
import java.io.File
......@@ -125,6 +123,19 @@ class PreferencesAdvanced : BasePreferenceFragment(), SharedPreferences.OnShared
}
return true
}
"clear_app_data" -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
val dialog = ConfirmDeleteDialog.newInstance(title = getString(R.string.clear_app_data), description = getString(R.string.clear_app_data_message), buttonText = getString(R.string.clear))
dialog.show(requireActivity().supportFragmentManager, RenameDialog::class.simpleName)
dialog.setListener { (requireActivity().getSystemService(ACTIVITY_SERVICE) as ActivityManager).clearApplicationUserData() }
} else {
val i = Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
i.addCategory(Intent.CATEGORY_DEFAULT)
i.data = Uri.parse("package:" + requireActivity().applicationContext.packageName)
startActivity(i)
}
return true
}
"quit_app" -> {
android.os.Process.killProcess(android.os.Process.myPid())
return true
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment