Make code more readable
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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) }
|
||||
@@ -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) }
|
||||
}
|
||||
Reference in New Issue
Block a user