PK
Size: a a a
PK
PK
AN
АГ
getFlow
, которая возвращает Flow
в зависимости от переданного в него условия, пусть это будет некий enum.private fun getFlow(type: Type): Flow<
Int> {
return when (type) {
FIRST_TYPE -> repo1.reloadFirstType()
SECOND_TYPE -> repo2.reloadSecondType()
THIRD_TYPE -> repo3.reloadThirdType()
}
}
Flow
: это запросы в сеть, которые делаются постранично, результаты обрабатываются в репозиториях, а наружу — просто отдаётся процент выполнения.FIRST_TYPE
, а потом мне нужно после условия, что число = 100, вызвать getFlow
со следующим типом. Flow
var progressFlow = getFlow(FIRST_TYPE)
Flow
ко второму?IE
getFlow
, которая возвращает Flow
в зависимости от переданного в него условия, пусть это будет некий enum.private fun getFlow(type: Type): Flow<
Int> {
return when (type) {
FIRST_TYPE -> repo1.reloadFirstType()
SECOND_TYPE -> repo2.reloadSecondType()
THIRD_TYPE -> repo3.reloadThirdType()
}
}
Flow
: это запросы в сеть, которые делаются постранично, результаты обрабатываются в репозиториях, а наружу — просто отдаётся процент выполнения.FIRST_TYPE
, а потом мне нужно после условия, что число = 100, вызвать getFlow
со следующим типом. Flow
var progressFlow = getFlow(FIRST_TYPE)
Flow
ко второму?АГ
IE
val progressFlow = arrayOf(FIRST_TYPE, SECOND_TYPE, THIRD_TYPE)
.asFlow()
.flatMapConcat { type ->
getFlow(type)
.filter { it == 100 }
}
AM
val progressFlow = arrayOf(FIRST_TYPE, SECOND_TYPE, THIRD_TYPE)
.asFlow()
.flatMapConcat { type ->
getFlow(type)
.filter { it == 100 }
}
dropWhile
, на случай, если надо начать, к примеру, со второго типа.AM
listOf(FIRST_TYPE, SECOND_TYPE, THIRD_TYPE)
.dropWhile { it != requestedType }
.asFlow()
...
АГ
val progressFlow = arrayOf(FIRST_TYPE, SECOND_TYPE, THIRD_TYPE)
.asFlow()
.flatMapConcat { type ->
getFlow(type)
.filter { it == 100 }
}
АГ
listOf(FIRST_TYPE, SECOND_TYPE, THIRD_TYPE)
.dropWhile { it != requestedType }
.asFlow()
...
AM
AN
AN
AN
IP
IP
AN
AN
IP