fixed crash when no internet connection

This commit is contained in:
Xinto 2020-11-15 17:22:17 +04:00
parent ce5e561354
commit 89b7d011b0
4 changed files with 18 additions and 14 deletions

View File

@ -16,7 +16,7 @@ import kotlinx.coroutines.*
open class App: Application() {
private val prefs by lazy { getDefaultSharedPreferences(this) }
private val scope = CoroutineScope(SupervisorJob() + Dispatchers.Main.immediate)
private val scope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
override fun onCreate() {
scope.launch { loadJson(this@App) }

View File

@ -134,7 +134,7 @@ object VancedDownloader: CoroutineScope by CoroutineScope(Dispatchers.IO) {
if (type == "lang") {
count++
when {
count < lang.size -> downloadSplits(context, "lang")
count < lang.size -> downloadSplits(context, "lang")
succesfulLangCount == 0 -> {
lang.add("en")
downloadSplits(context, "lang")

View File

@ -50,18 +50,17 @@ object InternetTools {
fun getFileNameFromUrl(url: String) = url.substring(url.lastIndexOf('/') + 1, url.length)
suspend fun loadJson(context: Context) =
withContext(Dispatchers.IO) {
val installUrl = context.getDefaultPrefs().getString("install_url", baseUrl)
val latest = JsonHelper.getJson("$installUrl/latest.json?fetchTime=${SimpleDateFormat("HHmmss", Locale.ROOT)}")
val versions = JsonHelper.getJson("$installUrl/versions.json?fetchTime=${SimpleDateFormat("HHmmss", Locale.ROOT)}")
suspend fun loadJson(context: Context) = withContext(Dispatchers.IO) {
val installUrl = context.getDefaultPrefs().getString("install_url", baseUrl)
val latest = JsonHelper.getJson("$installUrl/latest.json?fetchTime=${SimpleDateFormat("HHmmss", Locale.ROOT)}")
val versions = JsonHelper.getJson("$installUrl/versions.json?fetchTime=${SimpleDateFormat("HHmmss", Locale.ROOT)}")
// braveTiers.apply {
// set(getJson("$installUrl/sponsor.json"))
// notifyChange()
// }
vanced.apply {
set(latest?.obj("vanced"))
vanced.apply {
set(latest?.obj("vanced"))
notifyChange()
}
vancedVersions.set(versions?.array("vanced"))

View File

@ -12,11 +12,16 @@ object JsonHelper {
private var dataMap: HashMap<String, JsonObject> = HashMap()
suspend fun getJson(url: String): JsonObject? {
return if (dataMap.containsKey(url)) {
dataMap[url]
} else {
dataMap[url] = getSuspendJson(url)
dataMap[url]
return try {
if (dataMap.containsKey(url)) {
dataMap[url]
} else {
dataMap[url] = getSuspendJson(url)
dataMap[url]
}
} catch (e: Exception) {
//This null is NEEDED, do NOT try to "fix" NPE here!!!
null
}
}