24 lines
946 B
Kotlin
24 lines
946 B
Kotlin
package ru.myitschool.work.utils
|
||
|
||
import android.view.View
|
||
import androidx.lifecycle.Lifecycle
|
||
import androidx.lifecycle.LifecycleOwner
|
||
import androidx.lifecycle.lifecycleScope
|
||
import androidx.lifecycle.repeatOnLifecycle
|
||
import kotlinx.coroutines.flow.Flow
|
||
import kotlinx.coroutines.flow.collect
|
||
import kotlinx.coroutines.launch
|
||
|
||
// Функция для сбора данных из Flow, когда жизненный цикл находится в состоянии STARTED
|
||
fun <T> Flow<T>.collectWhenStarted(lifecycleOwner: LifecycleOwner, collector: (T) -> Unit) {
|
||
lifecycleOwner.lifecycleScope.launch {
|
||
lifecycleOwner.lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||
collect { value -> collector(value) }
|
||
}
|
||
}
|
||
}
|
||
|
||
// Функция для управления видимостью View
|
||
fun View?.visibleOrGone(isVisible: Boolean) {
|
||
this?.visibility = if (isVisible) View.VISIBLE else View.GONE
|
||
} |