New dialog assets. Cancelable AlertDialogs may now be canceled by tapping outside.

Change-Id: I061f09bd79a5f2b627fb0f01aba36f37449b849d
This commit is contained in:
Adam Powell
2010-10-18 15:17:53 -07:00
parent 027610a76e
commit fc94ddef2f
31 changed files with 21 additions and 2 deletions

View File

@@ -28,6 +28,7 @@ import android.util.Log;
import android.util.TypedValue;
import android.view.ContextThemeWrapper;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.AdapterView;
@@ -81,6 +82,24 @@ public class AlertDialog extends Dialog implements DialogInterface {
return outValue.resourceId;
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
if (mCancelable) {
final View decor = mWindow.getDecorView();
final int width = decor.getWidth();
final int height = decor.getHeight();
final float x = ev.getX();
final float y = ev.getY();
if (mCancelable && (x < 0 || x > width || y < 0 || y > height)) {
cancel();
return true;
}
}
return super.onTouchEvent(ev);
}
/**
* Gets one of the buttons used in the dialog.
* <p>

View File

@@ -125,7 +125,7 @@ public class ButtonGroup extends LinearLayout {
@Override
public void addView(View child, int index, ViewGroup.LayoutParams params) {
if (mButtonBackgroundRes != 0) {
if (child instanceof Button && mButtonBackgroundRes != 0) {
// Preserve original padding as we change the background
final int paddingLeft = child.getPaddingLeft();
final int paddingRight = child.getPaddingRight();