package cn.mutils.app.ui.util; import android.os.Handler; import android.os.Looper; import cn.mutils.app.ui.AppActivity; import cn.mutils.app.ui.Dialoger; /** * Helper class for waiting layer */ public class WaitingLayerHelper { protected Handler mWaitingLayerHandler; protected Runnable mWaitingLayerRunnable; protected Dialoger mWaitingDialog; protected AppActivity mActivity; public WaitingLayerHelper(AppActivity context) { mActivity = context; mWaitingDialog = mActivity.createWaitingDialog(context); if (mWaitingDialog == null) { mWaitingDialog = new WaitingDialog(mActivity); } } public void postUpdateWaitingViewState() { if (mWaitingLayerHandler == null) { mWaitingLayerHandler = new Handler(Looper.getMainLooper()); mWaitingLayerRunnable = new Runnable() { @Override public void run() { mWaitingLayerHandler.removeCallbacksAndMessages(null); mActivity.updateWaitingLayerState(); } }; } mWaitingLayerHandler.postDelayed(mWaitingLayerRunnable, 400); } public void show() { if (mWaitingDialog.isShowing()) { return; } mWaitingDialog.show(); } public void hide() { if (!mWaitingDialog.isShowing()) { return; } mWaitingDialog.dismiss(); } public void onDestroy() { if (mWaitingLayerHandler != null) { mWaitingLayerHandler.removeCallbacksAndMessages(null); } mWaitingDialog.dismiss(); } }