forked from recloudstream/cloudstream
Fix app not responding when clicking extensions in settings
This commit is contained in:
parent
7e28517e5b
commit
7a640b58cb
1 changed files with 4 additions and 4 deletions
|
@ -3,21 +3,19 @@ package com.lagradost.cloudstream3.ui.settings.extensions
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty
|
import com.fasterxml.jackson.annotation.JsonProperty
|
||||||
import com.lagradost.cloudstream3.AcraApplication.Companion.getKey
|
import com.lagradost.cloudstream3.AcraApplication.Companion.getKey
|
||||||
import com.lagradost.cloudstream3.R
|
import com.lagradost.cloudstream3.R
|
||||||
import com.lagradost.cloudstream3.apmap
|
import com.lagradost.cloudstream3.apmap
|
||||||
import com.lagradost.cloudstream3.mvvm.Some
|
import com.lagradost.cloudstream3.mvvm.Some
|
||||||
import com.lagradost.cloudstream3.mvvm.debugAssert
|
import com.lagradost.cloudstream3.mvvm.debugAssert
|
||||||
import com.lagradost.cloudstream3.mvvm.launchSafe
|
|
||||||
import com.lagradost.cloudstream3.plugins.PluginManager
|
import com.lagradost.cloudstream3.plugins.PluginManager
|
||||||
import com.lagradost.cloudstream3.plugins.PluginManager.getPluginsOnline
|
import com.lagradost.cloudstream3.plugins.PluginManager.getPluginsOnline
|
||||||
import com.lagradost.cloudstream3.plugins.RepositoryManager
|
import com.lagradost.cloudstream3.plugins.RepositoryManager
|
||||||
import com.lagradost.cloudstream3.plugins.RepositoryManager.PREBUILT_REPOSITORIES
|
import com.lagradost.cloudstream3.plugins.RepositoryManager.PREBUILT_REPOSITORIES
|
||||||
import com.lagradost.cloudstream3.ui.result.UiText
|
import com.lagradost.cloudstream3.ui.result.UiText
|
||||||
import com.lagradost.cloudstream3.ui.result.txt
|
import com.lagradost.cloudstream3.ui.result.txt
|
||||||
import kotlinx.coroutines.launch
|
import com.lagradost.cloudstream3.utils.Coroutines.ioSafe
|
||||||
|
|
||||||
data class RepositoryData(
|
data class RepositoryData(
|
||||||
@JsonProperty("name") val name: String,
|
@JsonProperty("name") val name: String,
|
||||||
|
@ -46,7 +44,8 @@ class ExtensionsViewModel : ViewModel() {
|
||||||
val pluginStats: LiveData<Some<PluginStats>> = _pluginStats
|
val pluginStats: LiveData<Some<PluginStats>> = _pluginStats
|
||||||
|
|
||||||
//TODO CACHE GET REQUESTS
|
//TODO CACHE GET REQUESTS
|
||||||
fun loadStats() = viewModelScope.launchSafe {
|
// DO not use viewModelScope.launchSafe, it will ANR on slow internet
|
||||||
|
fun loadStats() = ioSafe {
|
||||||
val urls = (getKey<Array<RepositoryData>>(REPOSITORIES_KEY)
|
val urls = (getKey<Array<RepositoryData>>(REPOSITORIES_KEY)
|
||||||
?: emptyArray()) + PREBUILT_REPOSITORIES
|
?: emptyArray()) + PREBUILT_REPOSITORIES
|
||||||
|
|
||||||
|
@ -61,6 +60,7 @@ class ExtensionsViewModel : ViewModel() {
|
||||||
PluginManager.OnlinePluginData(savedData, onlineData)
|
PluginManager.OnlinePluginData(savedData, onlineData)
|
||||||
}
|
}
|
||||||
}.flatten().distinctBy { it.onlineData.second.url }
|
}.flatten().distinctBy { it.onlineData.second.url }
|
||||||
|
|
||||||
val total = onlinePlugins.count()
|
val total = onlinePlugins.count()
|
||||||
val disabled = outdatedPlugins.count { it.isDisabled }
|
val disabled = outdatedPlugins.count { it.isDisabled }
|
||||||
val downloadedTotal = outdatedPlugins.count()
|
val downloadedTotal = outdatedPlugins.count()
|
||||||
|
|
Loading…
Reference in a new issue