mirror of
https://github.com/recloudstream/cloudstream.git
synced 2024-08-15 01:53:11 +00:00
Use companion object instead for singular object access across all providers
This commit is contained in:
parent
7816616e03
commit
e4e46ba969
2 changed files with 9 additions and 9 deletions
|
@ -42,9 +42,9 @@ object APIHolder {
|
||||||
|
|
||||||
val allProviders: MutableList<MainAPI> = arrayListOf()
|
val allProviders: MutableList<MainAPI> = arrayListOf()
|
||||||
|
|
||||||
fun initAll(settingsForProvider: SettingsJson) {
|
fun initAll() {
|
||||||
for (api in allProviders) {
|
for (api in allProviders) {
|
||||||
api.init(settingsForProvider)
|
api.init()
|
||||||
}
|
}
|
||||||
apiMap = null
|
apiMap = null
|
||||||
}
|
}
|
||||||
|
@ -358,18 +358,16 @@ fun newHomePageResponse(list: List<HomePageList>, hasNext: Boolean? = null): Hom
|
||||||
abstract class MainAPI {
|
abstract class MainAPI {
|
||||||
companion object {
|
companion object {
|
||||||
var overrideData: HashMap<String, ProvidersInfoJson>? = null
|
var overrideData: HashMap<String, ProvidersInfoJson>? = null
|
||||||
|
var settingsForProvider: SettingsJson = SettingsJson()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun init(settingsForProvider: SettingsJson) {
|
fun init() {
|
||||||
overrideData?.get(this.javaClass.simpleName)?.let { data ->
|
overrideData?.get(this.javaClass.simpleName)?.let { data ->
|
||||||
overrideWithNewData(data, settingsForProvider)
|
overrideWithNewData(data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun overrideWithNewData(data: ProvidersInfoJson, settingsForProvider: SettingsJson) {
|
fun overrideWithNewData(data: ProvidersInfoJson, settingsForProvider: SettingsJson) {
|
||||||
// Set settings regardless if it can be overriden
|
|
||||||
this.settings = settingsForProvider
|
|
||||||
|
|
||||||
if (!canBeOverridden) return
|
if (!canBeOverridden) return
|
||||||
this.name = data.name
|
this.name = data.name
|
||||||
if (data.url.isNotBlank() && data.url != "NONE")
|
if (data.url.isNotBlank() && data.url != "NONE")
|
||||||
|
@ -381,7 +379,6 @@ abstract class MainAPI {
|
||||||
open var mainUrl = "NONE"
|
open var mainUrl = "NONE"
|
||||||
open var storedCredentials: String? = null
|
open var storedCredentials: String? = null
|
||||||
open var canBeOverridden: Boolean = true
|
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
|
//open val uniqueId : Int by lazy { this.name.hashCode() } // in case of duplicate providers you can have a shared id
|
||||||
|
|
||||||
|
|
|
@ -509,8 +509,11 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener {
|
||||||
|
|
||||||
val settingsForProvider = SettingsJson()
|
val settingsForProvider = SettingsJson()
|
||||||
settingsForProvider.enableAdult = settingsManager.getBoolean(getString(R.string.enable_nsfw_on_providers_key), false)
|
settingsForProvider.enableAdult = settingsManager.getBoolean(getString(R.string.enable_nsfw_on_providers_key), false)
|
||||||
|
|
||||||
|
MainAPI.settingsForProvider = settingsForProvider
|
||||||
|
|
||||||
ioSafe {
|
ioSafe {
|
||||||
initAll(settingsForProvider)
|
initAll()
|
||||||
// No duplicates (which can happen by registerMainAPI)
|
// No duplicates (which can happen by registerMainAPI)
|
||||||
apis = allProviders.distinctBy { it }
|
apis = allProviders.distinctBy { it }
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue