Don't crash if the wikipedia URL is invalid

This commit is contained in:
MM20 2022-01-12 20:02:06 +01:00
parent b1412d24f1
commit dc64fdebdd
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
3 changed files with 17 additions and 13 deletions

View File

@ -43,7 +43,7 @@ dependencyResolutionManagement {
version("targetSdk", "31") version("targetSdk", "31")
} }
create("libs") { create("libs") {
version("kotlin", "1.6.0") version("kotlin", "1.6.10")
version("kotlinx.coroutines", "1.6.0-RC2") version("kotlinx.coroutines", "1.6.0-RC2")
alias("kotlin.stdlib") alias("kotlin.stdlib")
.to("org.jetbrains.kotlin", "kotlin-stdlib") .to("org.jetbrains.kotlin", "kotlin-stdlib")
@ -66,7 +66,7 @@ dependencyResolutionManagement {
.to("com.android.tools", "desugar_jdk_libs") .to("com.android.tools", "desugar_jdk_libs")
.version("1.1.5") .version("1.1.5")
version("androidx.compose", "1.1.0-rc01") version("androidx.compose", "1.2.0-alpha01")
alias("androidx.compose.runtime") alias("androidx.compose.runtime")
.to("androidx.compose.runtime", "runtime") .to("androidx.compose.runtime", "runtime")
.versionRef("androidx.compose") .versionRef("androidx.compose")
@ -99,7 +99,7 @@ dependencyResolutionManagement {
.versionRef("androidx.compose") .versionRef("androidx.compose")
alias("androidx.compose.material3") alias("androidx.compose.material3")
.to("androidx.compose.material3", "material3") .to("androidx.compose.material3", "material3")
.version("1.0.0-alpha02") .version("1.0.0-alpha03")
version("androidx.lifecycle", "2.4.0-rc01") version("androidx.lifecycle", "2.4.0-rc01")
alias("androidx.lifecycle.viewmodel") alias("androidx.lifecycle.viewmodel")

View File

@ -0,0 +1,4 @@
package de.mm20.launcher2.ui.settings.services
class ServicesSettingsScreenVM {
}

View File

@ -41,21 +41,21 @@ class WikipediaRepositoryImpl(
.map { it.wikipediaSearch.customUrl } .map { it.wikipediaSearch.customUrl }
.distinctUntilChanged() .distinctUntilChanged()
.collectLatest { .collectLatest {
retrofit = Retrofit.Builder() try { retrofit = Retrofit.Builder()
.client(httpClient) .client(httpClient)
.baseUrl(it.takeIf { !it.isNullOrBlank() } .baseUrl(it.takeIf { !it.isNullOrBlank() }
?: context.getString(R.string.wikipedia_url)) ?: context.getString(R.string.wikipedia_url))
.addConverterFactory(GsonConverterFactory.create()) .addConverterFactory(GsonConverterFactory.create())
.build() .build()
wikipediaService = retrofit.create(WikipediaApi::class.java) wikipediaService = retrofit.create(WikipediaApi::class.java)
} catch (e: IllegalArgumentException) {
CrashReporter.logException(e)
}
} }
} }
} }
private lateinit var wikipediaService: WikipediaApi private lateinit var wikipediaService: WikipediaApi
/*by lazy {
retrofit.create(WikipediaApi::class.java)
}*/
override fun search(query: String): Flow<Wikipedia?> = channelFlow { override fun search(query: String): Flow<Wikipedia?> = channelFlow {