Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 54ca811b authored by Adam Powell's avatar Adam Powell Committed by Android (Google) Code Review
Browse files

Merge "Fix alert dialog layout size in landscape"

parents 7ff6f97f 4fb17b04
Loading
Loading
Loading
Loading
+19 −12
Original line number Diff line number Diff line
@@ -30,8 +30,10 @@ import static com.android.internal.R.*;
 * the available space.
 */
public class WeightedLinearLayout extends LinearLayout {
    private float mMajorWeight;
    private float mMinorWeight;
    private float mMajorWeightMin;
    private float mMinorWeightMin;
    private float mMajorWeightMax;
    private float mMinorWeightMax;

    public WeightedLinearLayout(Context context) {
        super(context);
@@ -43,8 +45,10 @@ public class WeightedLinearLayout extends LinearLayout {
        TypedArray a = 
            context.obtainStyledAttributes(attrs, styleable.WeightedLinearLayout);

        mMajorWeight = a.getFloat(styleable.WeightedLinearLayout_majorWeight, 0.0f);
        mMinorWeight = a.getFloat(styleable.WeightedLinearLayout_minorWeight, 0.0f);
        mMajorWeightMin = a.getFloat(styleable.WeightedLinearLayout_majorWeightMin, 0.0f);
        mMinorWeightMin = a.getFloat(styleable.WeightedLinearLayout_minorWeightMin, 0.0f);
        mMajorWeightMax = a.getFloat(styleable.WeightedLinearLayout_majorWeightMax, 0.0f);
        mMinorWeightMax = a.getFloat(styleable.WeightedLinearLayout_minorWeightMax, 0.0f);
        
        a.recycle();
    }
@@ -60,17 +64,20 @@ public class WeightedLinearLayout extends LinearLayout {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);

        int width = getMeasuredWidth();
        int height = getMeasuredHeight();
        boolean measure = false;

        widthMeasureSpec = MeasureSpec.makeMeasureSpec(width, EXACTLY);
        heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, EXACTLY);

        final float widthWeight = isPortrait ? mMinorWeight : mMajorWeight;
        if (widthMode == AT_MOST && widthWeight > 0.0f) {
            if (width < (screenWidth * widthWeight)) {
                widthMeasureSpec = MeasureSpec.makeMeasureSpec((int) (screenWidth * widthWeight),
                        EXACTLY);
        final float widthWeightMin = isPortrait ? mMinorWeightMin : mMajorWeightMin;
        final float widthWeightMax = isPortrait ? mMinorWeightMax : mMajorWeightMax;
        if (widthMode == AT_MOST) {
            final int weightedMin = (int) (screenWidth * widthWeightMin);
            final int weightedMax = (int) (screenWidth * widthWeightMin);
            if (widthWeightMin > 0.0f && width < weightedMin) {
                widthMeasureSpec = MeasureSpec.makeMeasureSpec(weightedMin, EXACTLY);
                measure = true;
            } else if (widthWeightMax > 0.0f && width > weightedMax) {
                widthMeasureSpec = MeasureSpec.makeMeasureSpec(weightedMax, EXACTLY);
                measure = true;
            }
        }
+150 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
/* //device/apps/common/res/layout/alert_dialog.xml
**
** Copyright 2006, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
**     http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->

<com.android.internal.widget.WeightedLinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/parentPanel"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:paddingTop="9dip"
    android:paddingBottom="3dip"
    android:paddingLeft="3dip"
    android:paddingRight="1dip"
    android:majorWeightMin="0.45"
    android:minorWeightMin="0.72"
    android:majorWeightMax="0.45"
    android:minorWeightMax="0.72">

    <LinearLayout android:id="@+id/topPanel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="54dip"
        android:orientation="vertical">
        <LinearLayout android:id="@+id/title_template"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center_vertical"
            android:layout_marginTop="6dip"
            android:layout_marginBottom="9dip"
            android:layout_marginLeft="10dip"
            android:layout_marginRight="10dip">
            <ImageView android:id="@+id/icon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="top"
                android:paddingTop="6dip"
                android:paddingRight="10dip"
                android:src="@drawable/ic_dialog_info" />
            <com.android.internal.widget.DialogTitle android:id="@+id/alertTitle"
                style="?android:attr/textAppearanceLarge"
                android:singleLine="true"
                android:ellipsize="end"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
        </LinearLayout>
        <ImageView android:id="@+id/titleDivider"
            android:layout_width="match_parent"
            android:layout_height="1dip"
            android:visibility="gone"
            android:scaleType="fitXY"
            android:gravity="fill_horizontal"
            android:src="@android:drawable/divider_horizontal_dark" />
        <!-- If the client uses a customTitle, it will be added here. -->
    </LinearLayout>

    <LinearLayout android:id="@+id/contentPanel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical">
        <ScrollView android:id="@+id/scrollView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="2dip"
            android:paddingBottom="12dip"
            android:paddingLeft="14dip"
            android:paddingRight="10dip">
            <TextView android:id="@+id/message"
                style="?android:attr/textAppearanceMedium"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="5dip" />
        </ScrollView>
    </LinearLayout>

    <FrameLayout android:id="@+id/customPanel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1">
        <FrameLayout android:id="@+android:id/custom"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="5dip"
            android:paddingBottom="5dip" />
    </FrameLayout>

    <LinearLayout android:id="@+id/buttonPanel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="54dip"
        android:orientation="vertical" >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:paddingTop="4dip"
            android:paddingLeft="2dip"
            android:paddingRight="2dip"
            android:measureWithLargestChild="true">
            <LinearLayout android:id="@+id/leftSpacer"
                android:layout_weight="0.25"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:visibility="gone" />
            <Button android:id="@+id/button1"
                android:layout_width="0dip"
                android:layout_gravity="left"
                android:layout_weight="1"
                android:maxLines="2"
                android:layout_height="wrap_content" />
            <Button android:id="@+id/button3"
                android:layout_width="0dip"
                android:layout_gravity="center_horizontal"
                android:layout_weight="1"
                android:maxLines="2"
                android:layout_height="wrap_content" />
            <Button android:id="@+id/button2"
                android:layout_width="0dip"
                android:layout_gravity="right"
                android:layout_weight="1"
                android:maxLines="2"
                android:layout_height="wrap_content" />
            <LinearLayout android:id="@+id/rightSpacer"
                android:layout_width="0dip"
                android:layout_weight="0.25"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:visibility="gone" />
        </LinearLayout>
     </LinearLayout>
</com.android.internal.widget.WeightedLinearLayout>
+3 −2
Original line number Diff line number Diff line
@@ -28,8 +28,9 @@
    android:paddingBottom="3dip"
    android:paddingLeft="3dip"
    android:paddingRight="1dip"
    android:majorWeight="0.65"
    android:minorWeight="0.9">
    android:majorWeightMin="0.65"
    android:minorWeightMin="0.9"
    android:majorWeightMax="0.65">

    <LinearLayout android:id="@+id/topPanel"
        android:layout_width="match_parent"
+4 −2
Original line number Diff line number Diff line
@@ -2609,8 +2609,10 @@

    <!-- @hide -->
    <declare-styleable name="WeightedLinearLayout">
        <attr name="majorWeight" format="float" />
        <attr name="minorWeight" format="float" />
        <attr name="majorWeightMin" format="float" />
        <attr name="minorWeightMin" format="float" />
        <attr name="majorWeightMax" format="float" />
        <attr name="minorWeightMax" format="float" />
    </declare-styleable>

    <!-- ========================= -->