mirror of
https://github.com/recloudstream/cloudstream.git
synced 2024-08-15 01:53:11 +00:00
[Feature] Add button on General setting to clear watch history.
This commit is contained in:
parent
cf08c958eb
commit
f0bea10a2a
4 changed files with 47 additions and 1 deletions
|
@ -29,6 +29,8 @@ import com.lagradost.cloudstream3.ui.EasterEggMonke
|
||||||
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.getPref
|
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.getPref
|
||||||
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setPaddingBottom
|
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setPaddingBottom
|
||||||
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setUpToolbar
|
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.setUpToolbar
|
||||||
|
import com.lagradost.cloudstream3.utils.*
|
||||||
|
import com.lagradost.cloudstream3.utils.DataStore.removeKeys
|
||||||
import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showBottomDialog
|
import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showBottomDialog
|
||||||
import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showDialog
|
import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showDialog
|
||||||
import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showMultiDialog
|
import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showMultiDialog
|
||||||
|
@ -331,6 +333,36 @@ class SettingsGeneral : PreferenceFragmentCompat() {
|
||||||
return@setOnPreferenceClickListener true
|
return@setOnPreferenceClickListener true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getPref(R.string.key_clear_watching)?.setOnPreferenceClickListener {
|
||||||
|
val builder: AlertDialog.Builder =
|
||||||
|
AlertDialog.Builder(it.context, R.style.AlertDialogCustom)
|
||||||
|
builder.setTitle(R.string.clear_watching_pref)
|
||||||
|
builder.setMessage(R.string.clear_watching_prompt)
|
||||||
|
builder.setPositiveButton(getString(R.string.yes)
|
||||||
|
) { dialog, which -> // Clear Watch History data
|
||||||
|
var doneClearMessage = R.string.clear_watching_done
|
||||||
|
try {
|
||||||
|
it.context.removeKeys("${DataStoreHelper.currentAccount}/$RESULT_RESUME_WATCHING")
|
||||||
|
it.context.removeKeys("${DataStoreHelper.currentAccount}/$RESULT_RESUME_WATCHING_OLD")
|
||||||
|
} catch (e: Exception) {
|
||||||
|
logError(e)
|
||||||
|
doneClearMessage = R.string.clear_watching_error
|
||||||
|
}
|
||||||
|
dialog.dismiss()
|
||||||
|
|
||||||
|
val newBuilder = AlertDialog.Builder(it.context, R.style.AlertDialogCustom)
|
||||||
|
newBuilder.setTitle(R.string.clear_watching_pref)
|
||||||
|
newBuilder.setMessage(doneClearMessage)
|
||||||
|
newBuilder.show()
|
||||||
|
}
|
||||||
|
builder.setNegativeButton(getString(R.string.no)
|
||||||
|
) { dialog, which -> // Do nothing but close the dialog
|
||||||
|
dialog.dismiss()
|
||||||
|
}
|
||||||
|
builder.show()
|
||||||
|
return@setOnPreferenceClickListener true
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
SettingsFragment.beneneCount =
|
SettingsFragment.beneneCount =
|
||||||
settingsManager.getInt(getString(R.string.benene_count), 0)
|
settingsManager.getInt(getString(R.string.benene_count), 0)
|
||||||
|
|
|
@ -69,7 +69,7 @@ object DataStoreHelper {
|
||||||
@JsonProperty("posterHeaders") override var posterHeaders: Map<String, String>? = null,
|
@JsonProperty("posterHeaders") override var posterHeaders: Map<String, String>? = null,
|
||||||
) : SearchResponse
|
) : SearchResponse
|
||||||
|
|
||||||
private var currentAccount: String = "0" //TODO ACCOUNT IMPLEMENTATION
|
var currentAccount: String = "0" //TODO ACCOUNT IMPLEMENTATION
|
||||||
|
|
||||||
fun getAllWatchStateIds(): List<Int>? {
|
fun getAllWatchStateIds(): List<Int>? {
|
||||||
val folder = "$currentAccount/$RESULT_WATCH_STATE"
|
val folder = "$currentAccount/$RESULT_WATCH_STATE"
|
||||||
|
|
|
@ -57,6 +57,7 @@
|
||||||
<string name="filter_sub_lang_key" translatable="false">filter_sub_lang_key</string>
|
<string name="filter_sub_lang_key" translatable="false">filter_sub_lang_key</string>
|
||||||
<string name="pref_filter_search_quality_key" translatable="false">pref_filter_search_quality_key</string>
|
<string name="pref_filter_search_quality_key" translatable="false">pref_filter_search_quality_key</string>
|
||||||
<string name="enable_nsfw_on_providers_key" translatable="false">enable_nsfw_on_providers_key</string>
|
<string name="enable_nsfw_on_providers_key" translatable="false">enable_nsfw_on_providers_key</string>
|
||||||
|
<string name="key_clear_watching" translatable="false">key_clear_watching</string>
|
||||||
|
|
||||||
<!-- FORMAT MIGHT TRANSLATE, WILL CAUSE CRASH IF APPLIED WRONG -->
|
<!-- FORMAT MIGHT TRANSLATE, WILL CAUSE CRASH IF APPLIED WRONG -->
|
||||||
<string name="extra_info_format" formatted="true" translatable="false">%d %s | %s</string>
|
<string name="extra_info_format" formatted="true" translatable="false">%d %s | %s</string>
|
||||||
|
@ -413,6 +414,11 @@
|
||||||
<string name="add_site_summary">Add a clone of an existing site, with a different url</string>
|
<string name="add_site_summary">Add a clone of an existing site, with a different url</string>
|
||||||
|
|
||||||
<string name="download_path_pref">Download path</string>
|
<string name="download_path_pref">Download path</string>
|
||||||
|
<string name="clear_watching_pref">Clear Watch History</string>
|
||||||
|
<string name="clear_watching_summ">Clear \'Continue Watching\' history.</string>
|
||||||
|
<string name="clear_watching_prompt">Are you sure you want to clear watch history?</string>
|
||||||
|
<string name="clear_watching_done">Watch history successfully cleared!</string>
|
||||||
|
<string name="clear_watching_error">Failed to clear watch history!</string>
|
||||||
|
|
||||||
<string name="nginx_url_pref">Nginx server url</string>
|
<string name="nginx_url_pref">Nginx server url</string>
|
||||||
|
|
||||||
|
@ -501,6 +507,8 @@
|
||||||
<string name="authenticated_user_fail" formatted="true">Failed to authenticate to %s</string>
|
<string name="authenticated_user_fail" formatted="true">Failed to authenticate to %s</string>
|
||||||
|
|
||||||
<!-- ============ -->
|
<!-- ============ -->
|
||||||
|
<string name="yes">Yes</string>
|
||||||
|
<string name="no">No</string>
|
||||||
<string name="none">None</string>
|
<string name="none">None</string>
|
||||||
<string name="normal">Normal</string>
|
<string name="normal">Normal</string>
|
||||||
<string name="all">All</string>
|
<string name="all">All</string>
|
||||||
|
|
|
@ -23,6 +23,12 @@
|
||||||
android:title="@string/download_path_pref"
|
android:title="@string/download_path_pref"
|
||||||
android:icon="@drawable/netflix_download" />
|
android:icon="@drawable/netflix_download" />
|
||||||
|
|
||||||
|
<Preference
|
||||||
|
android:key="@string/key_clear_watching"
|
||||||
|
android:title="@string/clear_watching_pref"
|
||||||
|
android:icon="@drawable/ic_baseline_playlist_play_24"
|
||||||
|
app:summary="@string/clear_watching_summ" />
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="@string/legal_notice_key"
|
android:key="@string/legal_notice_key"
|
||||||
android:title="@string/legal_notice"
|
android:title="@string/legal_notice"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue