Как использовать 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 зависимым от контекста?

Ответы на вопрос(4)

Ваш ответ на вопрос