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

Commit 28b6711c authored by Philip Milne's avatar Philip Milne Committed by Android (Google) Code Review
Browse files

Merge "Bugfix for GridLayout assuming that the x value of last column index is...

Merge "Bugfix for GridLayout assuming that the x value of last column index is maximal. This is not the case when column indexes are defined incorrectly and GridLayout should still work in this case."
parents 7abf5a62 51f17d54
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -494,6 +494,14 @@ public class GridLayout extends ViewGroup {
        requestLayout();
    }

    private static int max2(int[] a, int valueIfEmpty) {
        int result = valueIfEmpty;
        for (int i = 0, N = a.length; i < N; i++) {
            result = Math.max(result, a[i]);
        }
        return result;
    }

    private static int sum(float[] a) {
        int result = 0;
        for (int i = 0, length = a.length; i < length; i++) {
@@ -1409,7 +1417,7 @@ public class GridLayout extends ViewGroup {
        // External entry points

        private int size(int[] locations) {
            return locations[locations.length - 1] - locations[0];
            return max2(locations, 0) - locations[0];
        }

        private int getMin() {
@@ -1878,21 +1886,13 @@ public class GridLayout extends ViewGroup {
            return result;
        }

        private static int max(int[] a, int valueIfEmpty) {
            int result = valueIfEmpty;
            for (int i = 0, length = a.length; i < length; i++) {
                result = Math.max(result, a[i]);
            }
            return result;
        }

        /*
        Create a compact array of keys or values using the supplied index.
         */
        private static <K> K[] compact(K[] a, int[] index) {
            int size = a.length;
            Class<?> componentType = a.getClass().getComponentType();
            K[] result = (K[]) Array.newInstance(componentType, max(index, -1) + 1);
            K[] result = (K[]) Array.newInstance(componentType, max2(index, -1) + 1);

            // this overwrite duplicates, retaining the last equivalent entry
            for (int i = 0; i < size; i++) {
+10 −2
Original line number Diff line number Diff line
@@ -19,14 +19,17 @@

        android:layout_width="match_parent"
        android:layout_height="match_parent"

        android:useDefaultMargins="true"
        android:marginsIncludedInAlignment="false"

        android:columnCount="4"
        >

    <TextView
            android:text="Email account"
            android:textSize="48dip"

            android:layout_columnSpan="4"
            android:layout_gravity="center_horizontal"
            />
@@ -34,12 +37,14 @@
    <TextView
            android:text="You can configure email in just a few steps:"
            android:textSize="20dip"

            android:layout_columnSpan="4"
            android:layout_gravity="left"
            />

    <TextView
            android:text="Email address:"

            android:layout_gravity="right"
            />

@@ -49,6 +54,7 @@

    <TextView
            android:text="Password:"

            android:layout_column="0"
            android:layout_gravity="right"
            />
@@ -58,14 +64,15 @@
            />

    <Space
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            android:layout_row="4"
            android:layout_column="2"
            android:layout_rowWeight="1"
            android:layout_columnWeight="1"
            />

    <Button
            android:text="Manual setup"

            android:layout_row="5"
            android:layout_column="3"
            android:layout_gravity="fill_horizontal"
@@ -73,6 +80,7 @@

    <Button
            android:text="Next"

            android:layout_column="3"
            android:layout_gravity="fill_horizontal"
            />
+12 −16
Original line number Diff line number Diff line
@@ -20,11 +20,15 @@ import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;

import android.widget.*;
import android.widget.Button;
import android.widget.EditText;
import android.widget.GridLayout;
import android.widget.Space;
import android.widget.TextView;

import static android.text.InputType.TYPE_CLASS_TEXT;
import static android.view.inputmethod.EditorInfo.*;
import static android.view.inputmethod.EditorInfo.TYPE_TEXT_VARIATION_EMAIL_ADDRESS;
import static android.view.inputmethod.EditorInfo.TYPE_TEXT_VARIATION_PASSWORD;
import static android.widget.GridLayout.*;

public class Activity2 extends Activity {
@@ -42,8 +46,8 @@ public class Activity2 extends Activity {
        Group row6 = new Group(6, CENTER);
        Group row7 = new Group(7, CENTER);

        Group col1a = new Group(1, 5, CENTER);
        Group col1b = new Group(1, 5, LEFT);
        Group col1a = new Group(1, 4, CENTER);
        Group col1b = new Group(1, 4, LEFT);
        Group col1c = new Group(1, RIGHT);
        Group col2 = new Group(2, LEFT);
        Group col3 = new Group(3, FILL);
@@ -55,20 +59,17 @@ public class Activity2 extends Activity {
            v.setText("Email setup");
            vg.addView(v, new LayoutParams(row1, col1a));
        }

        {
            TextView v = new TextView(context);
            v.setTextSize(20);
            v.setText("You can configure email in just a few steps:");
            vg.addView(v, new LayoutParams(row2, col1b));
        }

        {
            TextView v = new TextView(context);
            v.setText("Email address:");
            vg.addView(v, new LayoutParams(row3, col1c));
        }

        {
            EditText v = new EditText(context);
            v.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
@@ -78,13 +79,11 @@ public class Activity2 extends Activity {
                vg.addView(v, lp);
            }
        }

        {
            TextView v = new TextView(context);
            v.setText("Password:");
            vg.addView(v, new LayoutParams(row4, col1c));
        }

        {
            TextView v = new EditText(context);
            v.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD);
@@ -94,7 +93,6 @@ public class Activity2 extends Activity {
                vg.addView(v, lp);
            }
        }

        {
            Space v = new Space(context);
            {
@@ -104,13 +102,11 @@ public class Activity2 extends Activity {
                vg.addView(v, lp);
            }
        }

        {
            Button v = new Button(context);
            v.setText("Manual setup");
            vg.addView(v, new LayoutParams(row6, col4));
        }

        {
            Button v = new Button(context);
            v.setText("Next");