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();
}
}