Прежде всего, вы пропускаете туда getAddressListNetwork
Disposable
, потому что вы пытаетесь сделать слишком много внутри getAddressListDatabase
.
Я думаю, что вы хотите это:
fun getSavedAddressList(): Observable<List<SavedAddress>> {
return Observable.concat(
getAddressListMemory(),
getAddressListDatabase(),
getAddressListNetwork()).distinctUntilChanged())
}
Это всегда будет пытаться получить адреса из 3 источников, и отправлять их только в том случае, если данные отличаются от предыдущего, то есть данные «более свежие».
Если честно Я думаю, что вам нужно взглянуть на понятия «устаревшие данные» и «аннулирование кэша».