Как использовать 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 я получил оба, но нужно показать только один раз в соответствии с сохраненными настройками.