Merge "Okay, new plan for dialogs." into honeycomb

This commit is contained in:
Dianne Hackborn
2011-01-18 17:48:22 -08:00
committed by Android (Google) Code Review
6 changed files with 11 additions and 13 deletions

View File

@@ -795,8 +795,11 @@ public abstract class Window {
}
/** @hide */
public boolean hasSetCloseOnTouchOutside() {
return mSetCloseOnTouchOutside;
public void setCloseOnTouchOutsideIfNotSet(boolean close) {
if (!mSetCloseOnTouchOutside) {
mCloseOnTouchOutside = close;
mSetCloseOnTouchOutside = true;
}
}
/** @hide */

View File

@@ -391,6 +391,7 @@ public class AlertController {
View buttonPanel = mWindow.findViewById(R.id.buttonPanel);
if (!hasButtons) {
buttonPanel.setVisibility(View.GONE);
mWindow.setCloseOnTouchOutsideIfNotSet(true);
}
FrameLayout customPanel = null;

View File

@@ -17,7 +17,6 @@
package com.android.internal.app;
import android.content.Intent;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.os.Parcelable;
import android.util.Log;

View File

@@ -22,6 +22,4 @@
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- see comment in values/config.xml -->
<dimen name="config_prefDialogWidth">440dp</dimen>
<!-- see comment in values/config.xml -->
<bool name="config_closeDialogWhenTouchOutside">true</bool>
</resources>

View File

@@ -82,8 +82,7 @@
<dimen name="config_prefDialogWidth">0px</dimen>
<!-- Whether dialogs should close automatically when the user touches outside
of them. This should not normally be modified; the default value will
pick the correct behavior depending on the screen size. -->
of them. This should not normally be modified. -->
<bool name="config_closeDialogWhenTouchOutside">false</bool>
<!-- The duration (in milliseconds) that the radio will scan for a signal

View File

@@ -2331,12 +2331,10 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
if (mAlwaysReadCloseOnTouchAttr || getContext().getApplicationInfo().targetSdkVersion
>= android.os.Build.VERSION_CODES.HONEYCOMB) {
if (!hasSetCloseOnTouchOutside()) {
if (a.getBoolean(
com.android.internal.R.styleable.Window_windowCloseOnTouchOutside,
false)) {
setCloseOnTouchOutside(true);
}
if (a.getBoolean(
com.android.internal.R.styleable.Window_windowCloseOnTouchOutside,
false)) {
setCloseOnTouchOutsideIfNotSet(true);
}
}