mirror of
https://github.com/libre-tube/LibreTube.git
synced 2024-12-14 22:30:30 +05:30
Fix the displayed chosen instance
This commit is contained in:
parent
03cd871d02
commit
d2224c85e2
@ -3,6 +3,7 @@ package com.github.libretube.helpers
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
|
import com.github.libretube.constants.PIPED_API_URL
|
||||||
import com.github.libretube.constants.PreferenceKeys
|
import com.github.libretube.constants.PreferenceKeys
|
||||||
import java.time.Instant
|
import java.time.Instant
|
||||||
|
|
||||||
@ -28,6 +29,10 @@ object PreferenceHelper {
|
|||||||
|
|
||||||
authSettings = getAuthenticationPreferences(context)
|
authSettings = getAuthenticationPreferences(context)
|
||||||
authEditor = authSettings.edit()
|
authEditor = authSettings.edit()
|
||||||
|
|
||||||
|
if (getString(PreferenceKeys.FETCH_INSTANCE, "").isBlank()) {
|
||||||
|
putString(PreferenceKeys.FETCH_INSTANCE, PIPED_API_URL)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun putString(key: String, value: String) {
|
fun putString(key: String, value: String) {
|
||||||
|
@ -123,23 +123,18 @@ class InstanceSettings : BasePreferenceFragment() {
|
|||||||
private fun initInstancesPref(instancePrefs: List<ListPreference>) {
|
private fun initInstancesPref(instancePrefs: List<ListPreference>) {
|
||||||
val appContext = requireContext().applicationContext
|
val appContext = requireContext().applicationContext
|
||||||
|
|
||||||
instancePrefs.forEach { instancePref ->
|
|
||||||
if (instancePref.entry.isNullOrBlank()) {
|
|
||||||
instancePref.value = context?.resources?.getStringArray(R.array.instancesValue)?.first().orEmpty()
|
|
||||||
}
|
|
||||||
|
|
||||||
instancePref.summaryProvider =
|
|
||||||
Preference.SummaryProvider<ListPreference> { preference ->
|
|
||||||
preference.entry.takeIf { !it.isNullOrBlank() }
|
|
||||||
?: context?.resources?.getStringArray(R.array.instances)?.first().orEmpty()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
lifecycleScope.launchWhenCreated {
|
lifecycleScope.launchWhenCreated {
|
||||||
val customInstances = withContext(Dispatchers.IO) {
|
val customInstances = withContext(Dispatchers.IO) {
|
||||||
Database.customInstanceDao().getAll()
|
Database.customInstanceDao().getAll()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (instancePref in instancePrefs) {
|
||||||
|
instancePref.summaryProvider =
|
||||||
|
Preference.SummaryProvider<ListPreference> { preference ->
|
||||||
|
preference.entry
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// fetch official public instances from kavin.rocks as well as tokhmi.xyz as fallback
|
// fetch official public instances from kavin.rocks as well as tokhmi.xyz as fallback
|
||||||
val instances = withContext(Dispatchers.IO) {
|
val instances = withContext(Dispatchers.IO) {
|
||||||
runCatching {
|
runCatching {
|
||||||
@ -164,6 +159,10 @@ class InstanceSettings : BasePreferenceFragment() {
|
|||||||
// add custom instances to the list preference
|
// add custom instances to the list preference
|
||||||
instancePref.entries = instances.map { it.name }.toTypedArray()
|
instancePref.entries = instances.map { it.name }.toTypedArray()
|
||||||
instancePref.entryValues = instances.map { it.apiUrl }.toTypedArray()
|
instancePref.entryValues = instances.map { it.apiUrl }.toTypedArray()
|
||||||
|
instancePref.summaryProvider =
|
||||||
|
Preference.SummaryProvider<ListPreference> { preference ->
|
||||||
|
preference.entry
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user