package org.cuieney.videolife.common.base; import android.app.Activity; import android.os.Build; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatDelegate; import android.support.v7.widget.Toolbar; import android.view.View; import android.view.WindowManager; import org.cuieney.videolife.App; import org.cuieney.videolife.di.component.ActivityComponent; import org.cuieney.videolife.di.component.DaggerActivityComponent; import org.cuieney.videolife.di.module.ActivityModule; import javax.inject.Inject; import butterknife.ButterKnife; import butterknife.Unbinder; import me.yokeyword.fragmentation.SupportActivity; /** * Created by codeest on 2016/8/2. * MVP activity基类 */ public abstract class BaseActivity<T extends BasePresenter> extends SupportActivity implements BaseView{ @Inject protected T mPresenter; protected Activity mContext; private Unbinder mUnBinder; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(getLayout()); mUnBinder = ButterKnife.bind(this); mContext = this; initInject(); if (mPresenter != null) mPresenter.attachView(this); App.getInstance().addActivity(this); initEventAndData(); } @Override protected void onResume() { super.onResume(); } protected void setToolBar(Toolbar toolbar, String title) { toolbar.setTitle(title); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { onBackPressedSupport(); } }); } protected ActivityComponent getActivityComponent(){ return DaggerActivityComponent.builder() .appComponent(App.getInstance().getAppComponent()) .activityModule(getActivityModule()) .build(); } protected ActivityModule getActivityModule(){ return new ActivityModule(this); } @Override protected void onDestroy() { super.onDestroy(); if (mPresenter != null) mPresenter.detachView(); mUnBinder.unbind(); App.getInstance().removeActivity(this); } protected abstract void initInject(); protected abstract int getLayout(); protected abstract void initEventAndData(); }