|
@@ -8,7 +8,6 @@ import android.content.res.Resources;
|
|
|
import android.content.res.TypedArray;
|
|
|
import android.database.DataSetObserver;
|
|
|
import android.graphics.Color;
|
|
|
-import android.graphics.Paint;
|
|
|
import android.graphics.Typeface;
|
|
|
import android.graphics.drawable.Drawable;
|
|
|
import android.os.Build;
|
|
@@ -392,13 +391,12 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener,
|
|
|
|
|
|
private int calculateMaxButtonWidth() {
|
|
|
/**
|
|
|
- * Max button width = (DialogWidth - 16dp - 16dp - 8dp) / 2
|
|
|
+ * Max button width = (DialogWidth - Side margins) / [Number of buttons]
|
|
|
* From: http://www.google.com/design/spec/components/dialogs.html#dialogs-specs
|
|
|
*/
|
|
|
final int dialogWidth = getWindow().getDecorView().getMeasuredWidth();
|
|
|
- final int eightDp = (int) getContext().getResources().getDimension(R.dimen.md_button_padding_horizontal);
|
|
|
- final int sixteenDp = (int) getContext().getResources().getDimension(R.dimen.md_button_padding_frame_side);
|
|
|
- return (dialogWidth - sixteenDp - sixteenDp - eightDp) / 2;
|
|
|
+ final int margins = (int) getContext().getResources().getDimension(R.dimen.md_button_padding_frame_side);
|
|
|
+ return (dialogWidth - 2 * margins) / numberOfActionButtons();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -432,12 +430,10 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener,
|
|
|
}
|
|
|
final int maxWidth = calculateMaxButtonWidth();
|
|
|
Log.v("MD_Stacking", "Max button width: " + maxWidth);
|
|
|
- final Paint paint = positiveButton.getPaint();
|
|
|
- final int eightDp = (int) getContext().getResources().getDimension(R.dimen.md_button_padding_horizontal);
|
|
|
isStacked = false;
|
|
|
|
|
|
if (this.positiveText != null) {
|
|
|
- final int positiveWidth = (int) paint.measureText(positiveButton.getText().toString()) + eightDp;
|
|
|
+ final int positiveWidth = positiveButton.getWidth();
|
|
|
isStacked = positiveWidth > maxWidth;
|
|
|
Log.v("MD_Stacking", "Positive button width: " + positiveWidth);
|
|
|
} else {
|
|
@@ -445,7 +441,7 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener,
|
|
|
}
|
|
|
|
|
|
if (!isStacked && this.neutralText != null) {
|
|
|
- final int neutralWidth = (int) paint.measureText(neutralButton.getText().toString()) + eightDp;
|
|
|
+ final int neutralWidth = neutralButton.getWidth();
|
|
|
isStacked = neutralWidth > maxWidth;
|
|
|
Log.v("MD_Stacking", "Neutral button width: " + neutralWidth);
|
|
|
} else {
|
|
@@ -453,7 +449,7 @@ public class MaterialDialog extends DialogBase implements View.OnClickListener,
|
|
|
}
|
|
|
|
|
|
if (!isStacked && this.negativeText != null) {
|
|
|
- final int negativeWidth = (int) paint.measureText(negativeButton.getText().toString()) + eightDp;
|
|
|
+ final int negativeWidth = negativeButton.getWidth();
|
|
|
isStacked = negativeWidth > maxWidth;
|
|
|
Log.v("MD_Stacking", "Negative button width: " + negativeWidth);
|
|
|
} else {
|