mirror of
https://github.com/recloudstream/cloudstream.git
synced 2024-08-15 01:53:11 +00:00
[Feature] Copy settings values from Preferences to providers APIs
This commit is contained in:
parent
f462e1896b
commit
7816616e03
4 changed files with 26 additions and 6 deletions
|
@ -42,9 +42,9 @@ object APIHolder {
|
|||
|
||||
val allProviders: MutableList<MainAPI> = arrayListOf()
|
||||
|
||||
fun initAll() {
|
||||
fun initAll(settingsForProvider: SettingsJson) {
|
||||
for (api in allProviders) {
|
||||
api.init()
|
||||
api.init(settingsForProvider)
|
||||
}
|
||||
apiMap = null
|
||||
}
|
||||
|
@ -315,6 +315,10 @@ data class ProvidersInfoJson(
|
|||
@JsonProperty("status") var status: Int,
|
||||
)
|
||||
|
||||
data class SettingsJson(
|
||||
@JsonProperty("enableAdult") var enableAdult: Boolean = false,
|
||||
)
|
||||
|
||||
|
||||
data class MainPageData(
|
||||
val name: String,
|
||||
|
@ -356,13 +360,16 @@ abstract class MainAPI {
|
|||
var overrideData: HashMap<String, ProvidersInfoJson>? = null
|
||||
}
|
||||
|
||||
fun init() {
|
||||
fun init(settingsForProvider: SettingsJson) {
|
||||
overrideData?.get(this.javaClass.simpleName)?.let { data ->
|
||||
overrideWithNewData(data)
|
||||
overrideWithNewData(data, settingsForProvider)
|
||||
}
|
||||
}
|
||||
|
||||
fun overrideWithNewData(data: ProvidersInfoJson) {
|
||||
fun overrideWithNewData(data: ProvidersInfoJson, settingsForProvider: SettingsJson) {
|
||||
// Set settings regardless if it can be overriden
|
||||
this.settings = settingsForProvider
|
||||
|
||||
if (!canBeOverridden) return
|
||||
this.name = data.name
|
||||
if (data.url.isNotBlank() && data.url != "NONE")
|
||||
|
@ -374,6 +381,7 @@ abstract class MainAPI {
|
|||
open var mainUrl = "NONE"
|
||||
open var storedCredentials: String? = null
|
||||
open var canBeOverridden: Boolean = true
|
||||
open var settings: SettingsJson = SettingsJson()
|
||||
|
||||
//open val uniqueId : Int by lazy { this.name.hashCode() } // in case of duplicate providers you can have a shared id
|
||||
|
||||
|
|
|
@ -507,8 +507,10 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener {
|
|||
|
||||
SearchResultBuilder.updateCache(this)
|
||||
|
||||
val settingsForProvider = SettingsJson()
|
||||
settingsForProvider.enableAdult = settingsManager.getBoolean(getString(R.string.enable_nsfw_on_providers_key), false)
|
||||
ioSafe {
|
||||
initAll()
|
||||
initAll(settingsForProvider)
|
||||
// No duplicates (which can happen by registerMainAPI)
|
||||
apis = allProviders.distinctBy { it }
|
||||
}
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
<string name="redo_setup_key" translatable="false">redo_setup_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="enable_nsfw_on_providers_key" translatable="false">enable_nsfw_on_providers_key</string>
|
||||
|
||||
<!-- FORMAT MIGHT TRANSLATE, WILL CAUSE CRASH IF APPLIED WRONG -->
|
||||
<string name="extra_info_format" formatted="true" translatable="false">%d %s | %sMB</string>
|
||||
|
@ -440,6 +441,7 @@
|
|||
<string name="provider_lang_settings">Provider languages</string>
|
||||
<string name="app_layout">App Layout</string>
|
||||
<string name="preferred_media_settings">Preferred media</string>
|
||||
<string name="enable_nsfw_on_providers">Enable NSFW on supported providers</string>
|
||||
<string name="subtitles_encoding">Subtitle encoding</string>
|
||||
<string name="category_preferred_media_and_lang">Language</string>
|
||||
<string name="category_ui">Layout</string>
|
||||
|
@ -603,4 +605,5 @@
|
|||
|
||||
<string name="download_all_plugins_from_repo">Download all plugins from this repository?</string>
|
||||
<string name="single_plugin_disabled" formatted="true">%s (Disabled)</string>
|
||||
<string name="apply_on_restart">Apply on Restart</string>
|
||||
</resources>
|
||||
|
|
|
@ -18,4 +18,11 @@
|
|||
android:key="@string/display_sub_key"
|
||||
android:title="@string/display_subbed_dubbed_settings"
|
||||
android:icon="@drawable/ic_outline_voice_over_off_24" />
|
||||
|
||||
<SwitchPreference
|
||||
android:key="@string/enable_nsfw_on_providers_key"
|
||||
android:title="@string/enable_nsfw_on_providers"
|
||||
android:icon="@drawable/ic_baseline_extension_24"
|
||||
android:summary="@string/apply_on_restart"
|
||||
app:defaultValue="false"/>
|
||||
</PreferenceScreen>
|
Loading…
Add table
Add a link
Reference in a new issue