package com.dreamspace.uucampus.ui.base; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.design.widget.Snackbar; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; import com.dreamspace.uucampus.R; import com.dreamspace.uucampus.common.VaryViewHelperController; import com.dreamspace.uucampus.common.utils.CommonUtils; import butterknife.ButterKnife; import retrofit.RetrofitError; /** * Created by Administrator on 2015/8/1 0001. */ public abstract class BaseFragment extends Fragment { private String TAG="SUPER"; private VaryViewHelperController mVaryViewHelperController = null; public void setTAG(String TAG) { this.TAG = TAG; } public String getTAG() { return TAG; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view=inflater.inflate(getLayoutId(),container,false); ButterKnife.bind(this,view); if (null != getLoadingTargetView()) { mVaryViewHelperController = new VaryViewHelperController(getLoadingTargetView()); } initViews(view); initDatas(); return view; } public abstract int getLayoutId(); public abstract void initViews(View view); public abstract void initDatas(); protected abstract View getLoadingTargetView(); /** * startActivity with bundle * * @param clazz * @param bundle */ protected void readyGo(Class<?> clazz, Bundle bundle) { Intent intent = new Intent(getActivity(), clazz); if (null != bundle) { intent.putExtras(bundle); } startActivity(intent); getActivity().overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left); } /** * startActivity * * @param clazz */ protected void readyGo(Class<?> clazz) { Intent intent = new Intent(getActivity(), clazz); startActivity(intent); getActivity().overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left); } /** * startActivityForResult * * @param clazz * @param requestCode */ protected void readyGoForResult(Class<?> clazz, int requestCode) { Intent intent = new Intent(getActivity(), clazz); startActivityForResult(intent, requestCode); getActivity().overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left); } /** * startActivityForResult with bundle * * @param clazz * @param requestCode * @param bundle */ protected void readyGoForResult(Class<?> clazz, int requestCode, Bundle bundle) { Intent intent = new Intent(getActivity(), clazz); if (null != bundle) { intent.putExtras(bundle); } startActivityForResult(intent, requestCode); getActivity().overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left); } protected void showToast(String msg) { if (null != msg && !CommonUtils.isEmpty(msg)) { Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT).show(); // Snackbar.make(((Activity) getActivity()).getWindow().getDecorView(), msg, Snackbar.LENGTH_SHORT).show(); } } @Override public void onDestroyView() { super.onDestroyView(); ButterKnife.unbind(this); } protected void showNetWorkError() { showToast(getResources().getString(R.string.network_error_tips)); } protected void showInnerError(RetrofitError error) { if (error != null) if(error.getBody() == null){ showToast(getString(R.string.request_time_out)); }else{ showToast(CommonUtils.getErrorInfo(error).getReason()); } } /** * toggle show loading * * @param toggle */ protected void toggleShowLoading(boolean toggle, String msg) { if (null == mVaryViewHelperController) { throw new IllegalArgumentException("You must return a right target view for loading"); } if (toggle) { mVaryViewHelperController.showLoading(msg); } else { mVaryViewHelperController.restore(); } } /** * toggle show empty * * @param toggle */ protected void toggleShowEmpty(boolean toggle, String msg, View.OnClickListener onClickListener) { if (null == mVaryViewHelperController) { throw new IllegalArgumentException("You must return a right target view for loading"); } if (toggle) { mVaryViewHelperController.showEmpty(msg, onClickListener); } else { mVaryViewHelperController.restore(); } } /** * toggle show error * * @param toggle */ protected void toggleShowError(boolean toggle, String msg, View.OnClickListener onClickListener) { if (null == mVaryViewHelperController) { throw new IllegalArgumentException("You must return a right target view for loading"); } if (toggle) { mVaryViewHelperController.showError(msg, onClickListener); } else { mVaryViewHelperController.restore(); } } /** * toggle show network error * * @param toggle */ protected void toggleNetworkError(boolean toggle, View.OnClickListener onClickListener) { if (null == mVaryViewHelperController) { throw new IllegalArgumentException("You must return a right target view for loading"); } if (toggle) { mVaryViewHelperController.showNetworkError(onClickListener); } else { mVaryViewHelperController.restore(); } } protected void toggleRestore(){ mVaryViewHelperController.restore(); } }