fixed langs hopefully

This commit is contained in:
LagradOst 2021-10-02 19:10:50 +02:00
parent 099ce7a975
commit 99717ef1f1
3 changed files with 14 additions and 28 deletions

View file

@ -76,14 +76,14 @@ object APIHolder {
val settingsManager = PreferenceManager.getDefaultSharedPreferences(this) val settingsManager = PreferenceManager.getDefaultSharedPreferences(this)
val hashSet = HashSet<String>() val hashSet = HashSet<String>()
hashSet.addAll(apis.map { it.name }) val activeLangs = getApiProviderLangSettings()
hashSet.addAll(apis.filter { activeLangs.contains(it.lang) }.map { it.name })
val set = settingsManager.getStringSet( val set = settingsManager.getStringSet(
this.getString(R.string.search_providers_list_key), this.getString(R.string.search_providers_list_key),
hashSet hashSet
)?.toHashSet() ?: hashSet )?.toHashSet() ?: hashSet
val activeLangs = getApiProviderLangSettings()
val list = HashSet<String>() val list = HashSet<String>()
for (name in set) { for (name in set) {
val api = getApiFromNameNull(name) ?: continue val api = getApiFromNameNull(name) ?: continue
@ -361,6 +361,7 @@ interface LoadResponse {
val tags: List<String>? val tags: List<String>?
val duration: String? val duration: String?
val trailerUrl: String? val trailerUrl: String?
val recommendations: List<SearchResponse>?
} }
fun LoadResponse?.isEpisodeBased(): Boolean { fun LoadResponse?.isEpisodeBased(): Boolean {
@ -396,7 +397,8 @@ data class TorrentLoadResponse(
override val rating: Int? = null, override val rating: Int? = null,
override val tags: List<String>? = null, override val tags: List<String>? = null,
override val duration: String? = null, override val duration: String? = null,
override val trailerUrl: String? = null override val trailerUrl: String? = null,
override val recommendations: List<SearchResponse>? = null,
) : LoadResponse ) : LoadResponse
data class AnimeLoadResponse( data class AnimeLoadResponse(
@ -423,6 +425,7 @@ data class AnimeLoadResponse(
override val rating: Int? = null, override val rating: Int? = null,
override val duration: String? = null, override val duration: String? = null,
override val trailerUrl: String? = null, override val trailerUrl: String? = null,
override val recommendations: List<SearchResponse>? = null,
) : LoadResponse ) : LoadResponse
data class MovieLoadResponse( data class MovieLoadResponse(
@ -441,6 +444,7 @@ data class MovieLoadResponse(
override val tags: List<String>? = null, override val tags: List<String>? = null,
override val duration: String? = null, override val duration: String? = null,
override val trailerUrl: String? = null, override val trailerUrl: String? = null,
override val recommendations: List<SearchResponse>? = null,
) : LoadResponse ) : LoadResponse
data class TvSeriesEpisode( data class TvSeriesEpisode(
@ -471,4 +475,5 @@ data class TvSeriesLoadResponse(
override val tags: List<String>? = null, override val tags: List<String>? = null,
override val duration: String? = null, override val duration: String? = null,
override val trailerUrl: String? = null, override val trailerUrl: String? = null,
override val recommendations: List<SearchResponse>? = null,
) : LoadResponse ) : LoadResponse

View file

@ -1,13 +1,11 @@
package com.lagradost.cloudstream3.ui.search package com.lagradost.cloudstream3.ui.search
import android.content.Context
import android.content.res.Configuration import android.content.res.Configuration
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.WindowManager import android.view.WindowManager
import android.view.inputmethod.InputMethodManager
import android.widget.* import android.widget.*
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.appcompat.widget.SearchView import androidx.appcompat.widget.SearchView
@ -19,6 +17,7 @@ import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.switchmaterial.SwitchMaterial import com.google.android.material.switchmaterial.SwitchMaterial
import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.*
import com.lagradost.cloudstream3.APIHolder.apis import com.lagradost.cloudstream3.APIHolder.apis
import com.lagradost.cloudstream3.APIHolder.getApiProviderLangSettings
import com.lagradost.cloudstream3.APIHolder.getApiSettings import com.lagradost.cloudstream3.APIHolder.getApiSettings
import com.lagradost.cloudstream3.APIHolder.getApiTypeSettings import com.lagradost.cloudstream3.APIHolder.getApiTypeSettings
import com.lagradost.cloudstream3.mvvm.Resource import com.lagradost.cloudstream3.mvvm.Resource
@ -115,8 +114,9 @@ class SearchFragment : Fragment() {
searchMagIcon.scaleY = 0.65f searchMagIcon.scaleY = 0.65f
search_filter.setOnClickListener { searchView -> search_filter.setOnClickListener { searchView ->
val apiNamesSetting = activity?.getApiSettings() val apiNamesSetting = activity?.getApiSettings()
if (apiNamesSetting != null) { val langs = activity?.getApiProviderLangSettings()
val apiNames = apis.map { it.name } if (apiNamesSetting != null && langs != null) {
val apiNames = apis.filter { langs.contains(it.lang) }.map { it.name }
val builder = val builder =
AlertDialog.Builder(searchView.context, R.style.AlertDialogCustom).setView(R.layout.provider_list) AlertDialog.Builder(searchView.context, R.style.AlertDialogCustom).setView(R.layout.provider_list)
@ -150,25 +150,6 @@ class SearchFragment : Fragment() {
listView2.adapter = arrayAdapter2 listView2.adapter = arrayAdapter2
listView2.choiceMode = AbsListView.CHOICE_MODE_MULTIPLE listView2.choiceMode = AbsListView.CHOICE_MODE_MULTIPLE
/*fun updateMulti() {
val set = HashSet<TvType>()
for ((index, api) in apis.withIndex()) {
if (listView?.checkedItemPositions[index]) {
set.addAll(api.supportedTypes)
}
}
if (set.size == 0) {
set.addAll(TvType.values())
}
for ((index, choice) in typeChoices.withIndex()) {
listView2?.setItemChecked(index, choice.second.any { set.contains(it) })
}
}*/
for ((index, item) in apiNames.withIndex()) { for ((index, item) in apiNames.withIndex()) {
listView.setItemChecked(index, apiNamesSetting.contains(item)) listView.setItemChecked(index, apiNamesSetting.contains(item))
} }
@ -227,8 +208,6 @@ class SearchFragment : Fragment() {
isSupported isSupported
) )
} }
//updateMulti()
} }
dialog.setOnDismissListener { dialog.setOnDismissListener {

View file

@ -9,6 +9,7 @@ import androidx.preference.PreferenceManager
import com.lagradost.cloudstream3.APIHolder.apis import com.lagradost.cloudstream3.APIHolder.apis
import com.lagradost.cloudstream3.APIHolder.getApiDubstatusSettings import com.lagradost.cloudstream3.APIHolder.getApiDubstatusSettings
import com.lagradost.cloudstream3.APIHolder.getApiProviderLangSettings import com.lagradost.cloudstream3.APIHolder.getApiProviderLangSettings
import com.lagradost.cloudstream3.APIHolder.getApiSettings
import com.lagradost.cloudstream3.APIHolder.restrictedApis import com.lagradost.cloudstream3.APIHolder.restrictedApis
import com.lagradost.cloudstream3.DubStatus import com.lagradost.cloudstream3.DubStatus
import com.lagradost.cloudstream3.MainActivity.Companion.setLocale import com.lagradost.cloudstream3.MainActivity.Companion.setLocale
@ -128,6 +129,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
this.getString(R.string.provider_lang_key), this.getString(R.string.provider_lang_key),
selectedList.map { names[it].first }.toMutableSet() selectedList.map { names[it].first }.toMutableSet()
).apply() ).apply()
APIRepository.providersActive = it.context.getApiSettings()
} }
} }