package com.gettingmobile.android.app; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.view.KeyEvent; import com.gettingmobile.goodnews.R; /** * Equals to the standard ProgressDialog, but prevents it from being canceled by the search button. */ public class ExtendedProgressDialog extends ProgressDialog { public ExtendedProgressDialog(Context context, boolean cancelable) { super(context); setCancelable(cancelable); if (cancelable) { setButton(DialogInterface.BUTTON_NEGATIVE, context.getText(R.string.cancel), new OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { cancel(); } }); } } @Override public boolean dispatchKeyEvent(KeyEvent event) { switch (event.getKeyCode()) { case KeyEvent.KEYCODE_SEARCH: return true; default: return super.dispatchKeyEvent(event); } } }