package android.marshon.likequanmintv.librarys.mvpbase;
import android.app.Activity;
import android.marshon.likequanmintv.base.APP;
import android.marshon.likequanmintv.base.BaseFragment;
import android.marshon.likequanmintv.di.component.DaggerFragmentComponent;
import android.marshon.likequanmintv.di.component.FragmentComponent;
import android.marshon.likequanmintv.di.module.FragmentModule;
import android.marshon.likequanmintv.librarys.base.BaseActivity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
/**
* 作者:Marshon.Chen on 2016/9/8 09:43
* 邮箱:itmarshon@163.com
* 功能描述:slidingtab模板
*/
public abstract class BaseMvpFragment<T extends BasePresenter> extends BaseFragment implements BaseView {
protected View rootView;
protected BaseActivity mActivity;
protected T mPresenter;
protected FragmentComponent mFragmentComponent;
protected abstract T initInjector();
protected abstract int getLayoutId();
protected abstract void initView(View rootView);
public abstract void initData();
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mFragmentComponent = DaggerFragmentComponent.builder()
.applicationComponent(((APP) getActivity().getApplication()).getApplicationComponent())
.fragmentModule(new FragmentModule(this))
.build();
mPresenter=initInjector();
mPresenter.attachView(this);
mPresenter.onCreate();
//leak
// RefWatcher refWatcher = APP.getRefWatcher(getActivity());
// refWatcher.watch(this);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
int layoutId = getLayoutId();
rootView = inflater.inflate(layoutId, null);
initView(rootView);
return rootView;
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
}
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
protected View findViewById(int resId){
return rootView.findViewById(resId);
}
@Override
public void onResume() {
super.onResume();
}
@Override
public void onPause() {
super.onPause();
}
@Override
public void stopNetWork() {
super.stopNetWork();
if (mPresenter != null) {
mPresenter.onDestroy();
}
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mActivity = (BaseActivity) activity;
}
public <E extends View> E find(int viewId) {
View view = rootView.findViewById(viewId);
return (E) view;
}
public void showToast(String msg) {
if (mActivity != null) {
Toast.makeText(mActivity, msg, Toast.LENGTH_SHORT).show();
}
}
//baseView 部分的实现
@Override
public void showProgress(@Nullable String msg) {
}
@Override
public void hideProgress() {
}
@Override
public void showAlert(String msg) {
}
@Override
public void showLongToast(String msg) {
}
}