Make code more readable

This commit is contained in:
Kirill Kamakin
2022-04-08 22:08:21 +05:00
parent a3d320bb79
commit 869fa21e3f
3 changed files with 8 additions and 15 deletions

View File

@@ -18,13 +18,13 @@ class AuthenticationInterceptor @Inject constructor(
override fun intercept(chain: Interceptor.Chain): Response {
val currentHeader = authHeader ?: return chain.proceed(chain.request())
val response = proceedWithAuthHeader(chain, currentHeader)
if (listOf(401, 403).contains(response.code)) {
return if (listOf(401, 403).contains(response.code)) {
runBlocking { authRepo.invalidateAuthHeader() }
// Try again with new auth header (if any) or return previous response
authHeader?.let { proceedWithAuthHeader(chain, it) } ?: response
} else {
return response
response
}
val newHeader = authHeader ?: return response
return proceedWithAuthHeader(chain, newHeader)
}
private fun proceedWithAuthHeader(

View File

@@ -2,7 +2,6 @@ package gq.kirmanak.mealient.extensions
import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.launch
@@ -10,8 +9,4 @@ import kotlinx.coroutines.launch
inline fun <T> Fragment.collectWithViewLifecycle(
flow: Flow<T>,
crossinline collector: suspend (T) -> Unit,
) = launchWithViewLifecycle { flow.collect(collector) }
fun Fragment.launchWithViewLifecycle(
block: suspend CoroutineScope.() -> Unit,
) = viewLifecycleOwner.lifecycleScope.launch(block = block)
) = viewLifecycleOwner.lifecycleScope.launch { flow.collect(collector) }

View File

@@ -113,11 +113,9 @@ suspend fun EditText.waitUntilNotEmpty() {
fun <T> SharedPreferences.prefsChangeFlow(
valueReader: SharedPreferences.() -> T,
): Flow<T> = callbackFlow {
val listener = SharedPreferences.OnSharedPreferenceChangeListener { prefs, _ ->
val value = prefs.valueReader()
trySend(value).logErrors("prefsChangeFlow")
}
trySend(valueReader())
fun sendValue() = trySend(valueReader()).logErrors("prefsChangeFlow")
val listener = SharedPreferences.OnSharedPreferenceChangeListener { _, _ -> sendValue() }
sendValue()
registerOnSharedPreferenceChangeListener(listener)
awaitClose { unregisterOnSharedPreferenceChangeListener(listener) }
}