Объедините RxJava Observables, SharedPreferences и MVP - PullRequest
0 голосов
/ 02 ноября 2018

Как использовать sharedPreferences внутри наблюдаемого, поскольку я знаю, что принимать значения вне наблюдаемого - плохая практика.

У меня есть что-то вроде этого:

class City {
    private String tempCelsius;
    private String tempKelvin;
    // other fields

    public getTempCelsius() {
        return tempCelsius;
    }

    public getTempKelvin() {
        return tempKelvin;
    }
}

В Presenter у меня есть:

    public Single<City> getData() {
        return dataManager.loadCitiesFromDb().
            map(city -> dataManager.makeApiCall(city)
                //getting data, error handling
            )
            .subscribe(city -> view.showCityData(city));
    }

Кстати, мой DataManager содержит экземпляр PreferenceHelper.

Как я могу showCityData с температурой на основе значения из SharedPreferences.

Если Kelvin использовать метод Города getTempKelvin(), в противном случае, если Celsius использовать метод Города getTempCelsius().

От Api я получил оба, но нужно показать только один раз в соответствии с сохраненными настройками.

...