package com.smartisanos.sidebar.view; import android.content.res.Configuration; import android.view.View; import android.view.View.OnClickListener; import android.view.WindowManager; import com.smartisanos.sidebar.R; import com.smartisanos.sidebar.util.Tracker; import smartisanos.app.MenuDialog; public class ClearListener implements View.OnClickListener { private Runnable action; private int mTitleResId; private MenuDialog mDialog; public ClearListener(Runnable action, int titleResId) { this.action = action; mTitleResId = titleResId; } @Override public void onClick(View v) { if (mDialog == null) { mDialog = new MenuDialog(v.getContext()); mDialog.setTitle(mTitleResId); mDialog.setPositiveButton(R.string.clear, new OnClickListener() { @Override public void onClick(View v) { action.run(); } }); mDialog.getWindow().getAttributes().type = WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL; mDialog.getWindow().getAttributes().token = v.getWindowToken(); } if (!mDialog.isShowing()) { mDialog.show(); } switch (mTitleResId) { case R.string.title_confirm_delete_history_photo : { Tracker.onClick(Tracker.EVENT_CLEAN, "source", "0"); break; } case R.string.title_confirm_delete_history_file : { Tracker.onClick(Tracker.EVENT_CLEAN, "source", "1"); break; } case R.string.title_confirm_delete_history_clipboard : { Tracker.onClick(Tracker.EVENT_CLEAN, "source", "2"); break; } } } public void dismiss() { if (mDialog != null && mDialog.isShowing()) { mDialog.dismiss(); } } public void onConfigurationChanged(Configuration newConfig) { dismiss(); mDialog = null; } }