Как использовать Shared Preferences в MVP без Dagger и не вызывать Presenter быть зависимым от контекста?
Я пытаюсь реализовать MVP без Dagger (в учебных целях). Но я дошел до проблемы - я использую скоросшиватель репозитория для получения необработанных данных из кеша (общие настройки) или из сети:
Shared Prefs|
|<->Repository<->Model<->Presenter<->View
Network|
Но чтобы взять в руки Shared Preferences, я должен поставить где-нибудь строку вроде
presenter = new Presenter(getApplicationContext());
я используюonRetainCustomNonConfigurationInstance
/getLastCustomNonConfigurationInstance
пара, чтобы держать Ведущего "сохраненным".
public class MyActivity extends AppCompatActivity implements MvpView {
@Override
protected void onCreate(Bundle savedInstanceState) {
//...
presenter = (MvpPresenter) getLastCustomNonConfigurationInstance();
if(null == presenter){
presenter = new Presenter(getApplicationContext());
}
presenter.attachView(this);
}
@Override
public Object onRetainCustomNonConfigurationInstance() {
return presenter;
}
//...
}
Так как же использовать Shared Preferences в MVP без Dagger и не сделать Presenter зависимым от контекста?