package io.dwak.mvp_java;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public abstract class MvpActivity<T extends AbstractPresenter> extends AppCompatActivity {
private T presenter;
protected abstract Class<T> getPresenterClass();
protected abstract void setView();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setView();
}
protected T getPresenter(){
if(presenter == null){
try {
presenter = getPresenterClass().newInstance();
} catch (java.lang.InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return presenter;
}
}