Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -50,18 +50,18 @@ class SetupFragmentLanguage : BaseFragment<FragmentSetupLanguageBinding>(
appIconImage.setImageDrawable(ContextCompat.getDrawable(ctx, drawable))
}

val current = getCurrentLocale(ctx)
val languageTagsIETF = appLanguages.map { it.second }
val languageNames = appLanguages.map { it.nameNextToFlagEmoji() }
val currentIndex = languageTagsIETF.indexOf(current)
val tags = appLanguages.map { it.second }
val current = getCurrentLocale(ctx).replace('_', '-')
val currentIndex = tags.indexOf(current).takeIf { it >= 0 }
?: tags.indexOf(current.substringBefore('-'))

arrayAdapter.addAll(languageNames)
arrayAdapter.addAll(appLanguages.map { it.nameNextToFlagEmoji() })
listview1.adapter = arrayAdapter
listview1.choiceMode = AbsListView.CHOICE_MODE_SINGLE
listview1.setItemChecked(currentIndex, true)
if (currentIndex >= 0) listview1.setItemChecked(currentIndex, true)

listview1.setOnItemClickListener { _, _, selectedLangIndex, _ ->
val langTagIETF = languageTagsIETF[selectedLangIndex]
val langTagIETF = tags[selectedLangIndex]
CommonActivity.setLocale(activity, langTagIETF)
settingsManager.edit {
putString(getString(R.string.locale_key), langTagIETF)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import android.view.View
import android.widget.AbsListView
import android.widget.ArrayAdapter
import androidx.core.content.edit
import androidx.core.util.forEach
import androidx.navigation.fragment.findNavController
import androidx.preference.PreferenceManager
import com.lagradost.cloudstream3.R
Expand All @@ -27,40 +26,41 @@ class SetupFragmentMedia : BaseFragment<FragmentSetupMediaBinding>(
safe {
val ctx = context ?: return@safe
val settingsManager = PreferenceManager.getDefaultSharedPreferences(ctx)
val prefKey = getString(R.string.prefer_media_type_key)

val arrayAdapter =
ArrayAdapter<String>(ctx, R.layout.sort_bottom_single_choice)

val names = enumValues<TvType>().sorted().map { it.name }
val selected = mutableListOf<Int>()
val sortedTypes = enumValues<TvType>().sorted()

arrayAdapter.addAll(names)
arrayAdapter.addAll(sortedTypes.map { it.name })
binding.apply {
listview1.let {
it.adapter = arrayAdapter
it.choiceMode = AbsListView.CHOICE_MODE_MULTIPLE

it.setOnItemClickListener { _, _, _, _ ->
it.checkedItemPositions?.forEach { key, value ->
if (value) {
selected.add(key)
} else {
selected.remove(key)
}
}
val prefValues = selected.mapNotNull { pos ->
val item =
it.getItemAtPosition(pos)?.toString() ?: return@mapNotNull null
val itemVal = TvType.valueOf(item)
itemVal.ordinal.toString()
}.toSet()
settingsManager.edit {
putStringSet(getString(R.string.prefer_media_type_key), prefValues)
}
val stored = settingsManager.getStringSet(prefKey, null)
sortedTypes.forEachIndexed { index, type ->
// All media types except NSFW are checked by default
val isChecked = stored?.contains(type.ordinal.toString())
?: (type != TvType.NSFW)
it.setItemChecked(index, isChecked)
}

val saveSelection = {
val values = sortedTypes
.filterIndexed { index, _ -> it.isItemChecked(index) }
.map { type -> type.ordinal.toString() }
.toSet()
settingsManager.edit { putStringSet(prefKey, values) }

// Regenerate set homepage
DataStoreHelper.currentHomePage = null
}

if (stored == null) saveSelection()

it.setOnItemClickListener { _, _, _, _ -> saveSelection() }
}

nextBtt.setOnClickListener {
Expand Down
Loading