mirror of
https://github.com/YTVanced/VancedManager
synced 2024-11-26 13:12:59 +00:00
json array improvements
This commit is contained in:
parent
ecaf591100
commit
e77314c658
2 changed files with 17 additions and 25 deletions
|
@ -11,14 +11,11 @@ import androidx.core.content.res.ResourcesCompat
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.navigation.findNavController
|
import androidx.navigation.findNavController
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import com.beust.klaxon.JsonObject
|
|
||||||
import com.beust.klaxon.Parser
|
|
||||||
import com.github.kittinunf.fuel.coroutines.awaitString
|
|
||||||
import com.github.kittinunf.fuel.httpGet
|
|
||||||
import com.google.android.material.button.MaterialButton
|
import com.google.android.material.button.MaterialButton
|
||||||
import com.google.android.material.checkbox.MaterialCheckBox
|
import com.google.android.material.checkbox.MaterialCheckBox
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
import com.vanced.manager.utils.InternetTools.baseUrl
|
import com.vanced.manager.utils.InternetTools.baseUrl
|
||||||
|
import com.vanced.manager.utils.JsonHelper.getJsonArray
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
@ -27,7 +24,7 @@ import java.util.*
|
||||||
|
|
||||||
class VancedLanguageSelectionFragment : Fragment() {
|
class VancedLanguageSelectionFragment : Fragment() {
|
||||||
|
|
||||||
private val langs: Array<String>? = runBlocking { getLangs() }
|
private val langs: MutableList<String?> = runBlocking { getJsonArray("${PreferenceManager.getDefaultSharedPreferences(activity).getString("install_url", baseUrl)}/vanced.json").string("langs").value }
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
|
@ -42,9 +39,9 @@ class VancedLanguageSelectionFragment : Fragment() {
|
||||||
loadBoxes(view.findViewById(R.id.lang_button_ll))
|
loadBoxes(view.findViewById(R.id.lang_button_ll))
|
||||||
view.findViewById<MaterialButton>(R.id.vanced_install_finish).setOnClickListener {
|
view.findViewById<MaterialButton>(R.id.vanced_install_finish).setOnClickListener {
|
||||||
val chosenLangs = mutableListOf("en")
|
val chosenLangs = mutableListOf("en")
|
||||||
if (langs != null) {
|
|
||||||
for (lang in langs) {
|
for (lang in langs) {
|
||||||
if (view.findViewWithTag<MaterialCheckBox>(lang).isChecked) {
|
if (view.findViewWithTag<MaterialCheckBox>(lang).isChecked) {
|
||||||
|
if (lang != null) {
|
||||||
chosenLangs.add(lang)
|
chosenLangs.add(lang)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,18 +51,11 @@ class VancedLanguageSelectionFragment : Fragment() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun getLangs(): Array<String>? {
|
|
||||||
val langObj = Parser.default().parse(
|
|
||||||
StringBuilder(
|
|
||||||
"https://${PreferenceManager.getDefaultSharedPreferences(activity).getString("install_url", baseUrl)}/vanced.json".httpGet().awaitString()
|
|
||||||
)
|
|
||||||
) as JsonObject
|
|
||||||
return langObj.array<String>("langs")?.toTypedArray()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun loadBoxes(ll: LinearLayout) = CoroutineScope(Dispatchers.Main).launch {
|
private fun loadBoxes(ll: LinearLayout) = CoroutineScope(Dispatchers.Main).launch {
|
||||||
if (langs != null) {
|
|
||||||
for (lang in langs) {
|
for (lang in langs) {
|
||||||
|
if (lang != null) {
|
||||||
val box: MaterialCheckBox = MaterialCheckBox(activity).apply {
|
val box: MaterialCheckBox = MaterialCheckBox(activity).apply {
|
||||||
tag = lang
|
tag = lang
|
||||||
text = Locale(lang).displayLanguage
|
text = Locale(lang).displayLanguage
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.vanced.manager.utils
|
package com.vanced.manager.utils
|
||||||
|
|
||||||
|
import com.beust.klaxon.JsonArray
|
||||||
import com.beust.klaxon.JsonObject
|
import com.beust.klaxon.JsonObject
|
||||||
import com.beust.klaxon.Parser
|
import com.beust.klaxon.Parser
|
||||||
import com.github.kittinunf.fuel.coroutines.awaitString
|
import com.github.kittinunf.fuel.coroutines.awaitString
|
||||||
|
@ -7,13 +8,14 @@ import com.github.kittinunf.fuel.httpGet
|
||||||
|
|
||||||
object JsonHelper {
|
object JsonHelper {
|
||||||
|
|
||||||
suspend fun getJson(url: String): JsonObject {
|
suspend fun getJson(url: String): JsonObject =
|
||||||
val result = url.httpGet().awaitString()
|
Parser.default().parse(
|
||||||
|
StringBuilder(url.httpGet().awaitString())
|
||||||
|
) as JsonObject
|
||||||
|
|
||||||
val parser: Parser = Parser.default()
|
suspend fun getJsonArray(url: String): JsonArray<*> =
|
||||||
val stringBuilder: StringBuilder = StringBuilder(result)
|
Parser.default().parse(
|
||||||
|
StringBuilder(url.httpGet().awaitString())
|
||||||
return parser.parse(stringBuilder) as JsonObject
|
) as JsonArray<*>
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in a new issue