RxJava Live Reactive Queue (con el interruptor de apagado)

Trabajando en una aplicación de Android en Kotlin.

Necesito configurar un sistema para poder hacer trabajo desde una queue en vivo (y observar los resultados del trabajo en una secuencia).

Pero también tengo que ser capaz de alternar el "procesamiento de queue" dependiendo de un par de factores externos (que también vienen como transmisiones) como networkIsAvailable (Observable<Boolean>) .

No puedo usar Observable.fromIterable() porque eso crea el iterable de inmediato y esta queue se ajustará y los elementos pueden eliminarse.

Necesito algún tipo de bucle en el que pueda terminar el artículo, verificar para asegurarme de que debemos seguir, y luego mostrar el primer elemento de la queue y hacer eso.

No estoy seguro de cómo hacer algún tipo de ciclo como este en una suscripción?

La queue también puede estar vacía y las cosas deberían comenzar de nuevo cuando se activa nuevamente.

Tal vez debería extraer esa determinación (sobre si procesar el siguiente elemento en la queue o no) en un Subject<Boolean>? y luego tiene una suscripción a ese tema que inicia el process de nuevo?

ejemplos:

enciende —- procesa la parte superior de la queue, procesa la parte superior de la queue (la encuesta anterior seleccionó la queue) — apague – no hay más procesamiento

volver a encender – procesar la parte superior de la queue, queue vacía – paradas

agregar elemento a la queue – processs – detiene queue vacía

activar el procesamiento – agregar elemento a la queue– no se procesa hasta que se vuelva a encender

encender – procesar el elemento superior