Fixed several dialog theming issues
Change-Id: I8e83e5a35acaae63a70bef48f543e3fd82ced354
This commit is contained in:
@@ -30,6 +30,7 @@ import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.text.TextUtils;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.TypedValue;
|
||||
import android.view.Gravity;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
@@ -165,6 +166,13 @@ public class AlertController {
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean shouldCenterSingleButton(Context context) {
|
||||
TypedValue outValue = new TypedValue();
|
||||
context.getTheme().resolveAttribute(com.android.internal.R.attr.alertDialogCenterButtons,
|
||||
outValue, true);
|
||||
return outValue.data != 0;
|
||||
}
|
||||
|
||||
public AlertController(Context context, DialogInterface di, Window window) {
|
||||
mContext = context;
|
||||
mDialogInterface = di;
|
||||
@@ -508,16 +516,18 @@ public class AlertController {
|
||||
whichButtons = whichButtons | BIT_BUTTON_NEUTRAL;
|
||||
}
|
||||
|
||||
/*
|
||||
* If we only have 1 button it should be centered on the layout and
|
||||
* expand to fill 50% of the available space.
|
||||
*/
|
||||
if (whichButtons == BIT_BUTTON_POSITIVE) {
|
||||
centerButton(mButtonPositive);
|
||||
} else if (whichButtons == BIT_BUTTON_NEGATIVE) {
|
||||
centerButton(mButtonNeutral);
|
||||
} else if (whichButtons == BIT_BUTTON_NEUTRAL) {
|
||||
centerButton(mButtonNeutral);
|
||||
if (shouldCenterSingleButton(mContext)) {
|
||||
/*
|
||||
* If we only have 1 button it should be centered on the layout and
|
||||
* expand to fill 50% of the available space.
|
||||
*/
|
||||
if (whichButtons == BIT_BUTTON_POSITIVE) {
|
||||
centerButton(mButtonPositive);
|
||||
} else if (whichButtons == BIT_BUTTON_NEGATIVE) {
|
||||
centerButton(mButtonNeutral);
|
||||
} else if (whichButtons == BIT_BUTTON_NEUTRAL) {
|
||||
centerButton(mButtonNeutral);
|
||||
}
|
||||
}
|
||||
|
||||
return whichButtons != 0;
|
||||
|
||||
@@ -351,6 +351,7 @@
|
||||
<eat-comment />
|
||||
<attr name="alertDialogStyle" format="reference" />
|
||||
<attr name="alertDialogButtonGroupStyle" format="reference" />
|
||||
<attr name="alertDialogCenterButtons" format="boolean" />
|
||||
|
||||
<!-- ============ -->
|
||||
<!-- Panel styles -->
|
||||
|
||||
@@ -143,6 +143,7 @@
|
||||
<item name="dialogTheme">@android:style/Theme.Dialog</item>
|
||||
<item name="alertDialogTheme">@android:style/Theme.Dialog.Alert</item>
|
||||
<item name="alertDialogButtonGroupStyle">?android:attr/buttonGroupStyle</item>
|
||||
<item name="alertDialogCenterButtons">true</item>
|
||||
|
||||
<!-- Panel attributes -->
|
||||
<item name="panelBackground">@android:drawable/menu_background</item>
|
||||
@@ -590,7 +591,7 @@
|
||||
</style>
|
||||
|
||||
<!-- @hide -->
|
||||
<style name="Theme.Dialog.AppError">
|
||||
<style name="Theme.Dialog.AppError" parent="Theme.Holo.Dialog">
|
||||
<item name="windowFrame">@null</item>
|
||||
<item name="windowTitleStyle">@android:style/DialogWindowTitle</item>
|
||||
<item name="windowBackground">@android:color/transparent</item>
|
||||
@@ -754,6 +755,7 @@
|
||||
<item name="dialogTheme">@android:style/Theme.Holo.Dialog</item>
|
||||
<item name="alertDialogTheme">@android:style/Theme.Holo.Dialog.Alert</item>
|
||||
<item name="alertDialogButtonGroupStyle">@android:style/Widget.Holo.ButtonGroup.AlertDialog</item>
|
||||
<item name="alertDialogCenterButtons">false</item>
|
||||
|
||||
<!-- Panel attributes -->
|
||||
<item name="panelBackground">@android:drawable/menu_background</item>
|
||||
|
||||
Reference in New Issue
Block a user