Fix color selection dialog on GB.

Fixes #3626
// FREEBIE
This commit is contained in:
Moxie Marlinspike 2015-07-22 17:27:13 -07:00
parent 39ac2b5042
commit b1f336c874
2 changed files with 43 additions and 33 deletions

View File

@ -11,11 +11,21 @@
limitations under the License.
-->
<android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/color_grid"
android:padding="16dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:orientation="horizontal"
app:columnCount="5"/>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center">
<android.support.v7.widget.GridLayout
android:id="@+id/color_grid"
android:padding="16dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
app:orientation="horizontal"
app:columnCount="5"/>
</FrameLayout>

View File

@ -223,31 +223,31 @@ public class ColorPreference extends Preference {
}
private void sizeDialog() {
if (mPreference == null || mColorGrid == null) {
return;
}
Dialog dialog = getDialog();
if (dialog == null) {
return;
}
final Resources res = mColorGrid.getContext().getResources();
DisplayMetrics dm = res.getDisplayMetrics();
// Can't use Integer.MAX_VALUE here (weird issue observed otherwise on 4.2)
mColorGrid.measure(
View.MeasureSpec.makeMeasureSpec(dm.widthPixels, View.MeasureSpec.AT_MOST),
View.MeasureSpec.makeMeasureSpec(dm.heightPixels, View.MeasureSpec.AT_MOST));
int width = mColorGrid.getMeasuredWidth();
int height = mColorGrid.getMeasuredHeight();
int extraPadding = res.getDimensionPixelSize(R.dimen.color_grid_extra_padding);
width += extraPadding;
height += extraPadding;
dialog.getWindow().setLayout(width, height);
// if (mPreference == null || mColorGrid == null) {
// return;
// }
//
// Dialog dialog = getDialog();
// if (dialog == null) {
// return;
// }
//
// final Resources res = mColorGrid.getContext().getResources();
// DisplayMetrics dm = res.getDisplayMetrics();
//
// // Can't use Integer.MAX_VALUE here (weird issue observed otherwise on 4.2)
// mColorGrid.measure(
// View.MeasureSpec.makeMeasureSpec(dm.widthPixels, View.MeasureSpec.AT_MOST),
// View.MeasureSpec.makeMeasureSpec(dm.heightPixels, View.MeasureSpec.AT_MOST));
// int width = mColorGrid.getMeasuredWidth();
// int height = mColorGrid.getMeasuredHeight();
//
// int extraPadding = res.getDimensionPixelSize(R.dimen.color_grid_extra_padding);
//
// width += extraPadding;
// height += extraPadding;
//
// dialog.getWindow().setLayout(width, height);
}
}