package eVVM.apk.common;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.SystemClock;
import android.support.annotation.DrawableRes;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.StringRes;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.hjq.bar.TitleBar;
import com.hjq.base.BaseDialog;
import com.hjq.dialog.MenuDialog;
import com.hjq.toast.ToastUtils;
import java.util.ArrayList;
import java.util.List;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import eVVM.apk.helper.DebugUtils;
import eVVM.apk.other.EventBusManager;
import eVVM.apk.other.StatusManager;
public abstract class MyLazyFragment extends UILazyFragment {
private Unbinder mButterKnife; // View注解
private static final Handler FHANDLER = new Handler(Looper.getMainLooper());
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
mButterKnife = ButterKnife.bind(this, view);
return view;
}
@Override
protected void initFragment() {
super.initFragment();
EventBusManager.register(this);
}
@Override
public void onDestroy() {
super.onDestroy();
if (mButterKnife != null) {
mButterKnife.unbind();
}
EventBusManager.unregister(this);
}
@Nullable
public TitleBar getTitleBar() {
if (getTitleId() > 0 && findViewById(getTitleId()) instanceof TitleBar) {
return findViewById(getTitleId());
}
return null;
}
private List toastList = new ArrayList<>();
/**
* 显示吐司
*/
public void toast(CharSequence s) {
//ToastUtils.show(s);
toastList.clear();
toastList.add(s.toString());
final BaseDialog show = new MenuDialog.Builder(getActivity())
.setCancel(null) // 设置 null 表示不显示取消按钮
.setAutoDismiss(false) // 设置点击按钮后不关闭对话框
.setList(toastList)
.setGravity(Gravity.BOTTOM)
.setAnimStyle(BaseDialog.AnimStyle.BOTTOM)
.show();
postDelayed(new Runnable() {
@Override
public void run() {
show.dismiss();
}
}, 2000);
}
public void toast(int id) {
ToastUtils.show(id);
}
public void toast(Object object) {
ToastUtils.show(object);
}
/**
* 延迟执行
*/
public final boolean post(Runnable r) {
return postDelayed(r, 0);
}
/**
* 延迟一段时间执行
*/
public final boolean postDelayed(Runnable r, long delayMillis) {
if (delayMillis < 0) {
delayMillis = 0;
}
return postAtTime(r, SystemClock.uptimeMillis() + delayMillis);
}
/**
* 在指定的时间执行
*/
public final boolean postAtTime(Runnable r, long uptimeMillis) {
return FHANDLER.postAtTime(r, this, uptimeMillis);
}
@Override
public void onDestroyView() {
super.onDestroyView();
FHANDLER.removeCallbacksAndMessages(this);
}
/**
* 打印日志
*/
public void log(Object object) {
if (DebugUtils.isDebug(getBindingActivity())) {
Log.v(getClass().getSimpleName(), object != null ? object.toString() : "null");
}
}
@Override
public void onResume() {
super.onResume();
//UmengClient.onResume(this);
}
@Override
public void onPause() {
// UmengClient.onPause(this);
super.onPause();
}
private final StatusManager mStatusManager = new StatusManager();
/**
* 显示加载中
*/
public void showLoading() {
mStatusManager.showLoading(getBindingActivity());
}
/**
* 显示加载完成
*/
public void showComplete() {
mStatusManager.showComplete();
}
/**
* 显示空提示
*/
public void showEmpty() {
mStatusManager.showEmpty(getView());
}
/**
* 显示错误提示
*/
public void showError() {
mStatusManager.showError(getView());
}
/**
* 显示自定义提示
*/
public void showLayout(@DrawableRes int iconId, @StringRes int textId) {
mStatusManager.showLayout(getView(), iconId, textId);
}
public void showLayout(Drawable drawable, CharSequence hint) {
mStatusManager.showLayout(getView(), drawable, hint);
}
}