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

Commit f343e1ba authored by Adam Powell's avatar Adam Powell
Browse files

Add selection mode support to GridView.

Changed 9.xml to make update-api behave with the API change involved.
Several fields and methods moved from ListView to AbsListView. This
should not break source or binary compatibility.

Change-Id: Icad6e238522b8b7cc5bbc935ad89ac3e015572c1
parent fed762b9
Loading
Loading
Loading
Loading
+33 −33
Original line number Diff line number Diff line
@@ -195395,6 +195395,39 @@
<parameter name="defStyle" type="int">
</parameter>
</constructor>
<field name="CHOICE_MODE_MULTIPLE"
 type="int"
 transient="false"
 volatile="false"
 value="2"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="CHOICE_MODE_NONE"
 type="int"
 transient="false"
 volatile="false"
 value="0"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="CHOICE_MODE_SINGLE"
 type="int"
 transient="false"
 volatile="false"
 value="1"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<method name="afterTextChanged"
 return="void"
 abstract="false"
@@ -203851,39 +203884,6 @@
<parameter name="y" type="int">
</parameter>
</method>
<field name="CHOICE_MODE_MULTIPLE"
 type="int"
 transient="false"
 volatile="false"
 value="2"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="CHOICE_MODE_NONE"
 type="int"
 transient="false"
 volatile="false"
 value="0"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="CHOICE_MODE_SINGLE"
 type="int"
 transient="false"
 volatile="false"
 value="1"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
</class>
<class name="ListView.FixedViewInfo"
 extends="java.lang.Object"
+206 −219
Original line number Diff line number Diff line
@@ -215125,6 +215125,17 @@
<parameter name="after" type="int">
</parameter>
</method>
<method name="clearChoices"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="clearTextFilter"
 return="void"
 abstract="false"
@@ -215147,6 +215158,61 @@
 visibility="public"
>
</method>
<method name="getCheckedItemCount"
 return="int"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getCheckedItemIds"
 return="long[]"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getCheckedItemPosition"
 return="int"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getCheckedItemPositions"
 return="android.util.SparseBooleanArray"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getChoiceMode"
 return="int"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getListPaddingBottom"
 return="int"
 abstract="false"
@@ -215290,6 +215356,19 @@
 visibility="protected"
>
</method>
<method name="isItemChecked"
 return="boolean"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="position" type="int">
</parameter>
</method>
<method name="isScrollingCacheEnabled"
 return="boolean"
 abstract="false"
@@ -215490,6 +215569,19 @@
<parameter name="views" type="java.util.List&lt;android.view.View&gt;">
</parameter>
</method>
<method name="setAdapter"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="adapter" type="android.widget.ListAdapter">
</parameter>
</method>
<method name="setCacheColorHint"
 return="void"
 abstract="false"
@@ -215503,6 +215595,19 @@
<parameter name="color" type="int">
</parameter>
</method>
<method name="setChoiceMode"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="choiceMode" type="int">
</parameter>
</method>
<method name="setDrawSelectorOnTop"
 return="void"
 abstract="false"
@@ -215542,6 +215647,34 @@
<parameter name="filterText" type="java.lang.String">
</parameter>
</method>
<method name="setItemChecked"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="position" type="int">
</parameter>
<parameter name="value" type="boolean">
</parameter>
</method>
<method name="setMultiChoiceModeListener"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="listener" type="android.widget.AbsListView.MultiChoiceModeListener">
</parameter>
</method>
<method name="setOnScrollListener"
 return="void"
 abstract="false"
@@ -215758,6 +215891,50 @@
<parameter name="dr" type="android.graphics.drawable.Drawable">
</parameter>
</method>
<field name="CHOICE_MODE_MULTIPLE"
 type="int"
 transient="false"
 volatile="false"
 value="2"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="CHOICE_MODE_MULTIPLE_MODAL"
 type="int"
 transient="false"
 volatile="false"
 value="3"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="CHOICE_MODE_NONE"
 type="int"
 transient="false"
 volatile="false"
 value="0"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="CHOICE_MODE_SINGLE"
 type="int"
 transient="false"
 volatile="false"
 value="1"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="TRANSCRIPT_MODE_ALWAYS_SCROLL"
 type="int"
 transient="false"
@@ -215849,6 +216026,35 @@
</parameter>
</constructor>
</class>
<interface name="AbsListView.MultiChoiceModeListener"
 abstract="true"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<implements name="android.view.ActionMode.Callback">
</implements>
<method name="onItemCheckedStateChanged"
 return="void"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="mode" type="android.view.ActionMode">
</parameter>
<parameter name="position" type="int">
</parameter>
<parameter name="id" type="long">
</parameter>
<parameter name="checked" type="boolean">
</parameter>
</method>
</interface>
<interface name="AbsListView.OnScrollListener"
 abstract="true"
 static="true"
@@ -222296,19 +222502,6 @@
 visibility="public"
>
</method>
<method name="setAdapter"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="adapter" type="android.widget.ListAdapter">
</parameter>
</method>
<method name="setColumnWidth"
 return="void"
 abstract="false"
@@ -224611,17 +224804,6 @@
<parameter name="v" type="android.view.View">
</parameter>
</method>
<method name="clearChoices"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="findViewTraversal"
 return="android.view.View"
 abstract="false"
@@ -224670,61 +224852,6 @@
 visibility="public"
>
</method>
<method name="getCheckedItemCount"
 return="int"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getCheckedItemIds"
 return="long[]"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getCheckedItemPosition"
 return="int"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getCheckedItemPositions"
 return="android.util.SparseBooleanArray"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getChoiceMode"
 return="int"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getDivider"
 return="android.graphics.drawable.Drawable"
 abstract="false"
@@ -224791,19 +224918,6 @@
 visibility="public"
>
</method>
<method name="isItemChecked"
 return="boolean"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="position" type="int">
</parameter>
</method>
<method name="removeFooterView"
 return="boolean"
 abstract="false"
@@ -224830,32 +224944,6 @@
<parameter name="v" type="android.view.View">
</parameter>
</method>
<method name="setAdapter"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="adapter" type="android.widget.ListAdapter">
</parameter>
</method>
<method name="setChoiceMode"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="choiceMode" type="int">
</parameter>
</method>
<method name="setDivider"
 return="void"
 abstract="false"
@@ -224908,21 +224996,6 @@
<parameter name="headerDividersEnabled" type="boolean">
</parameter>
</method>
<method name="setItemChecked"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="position" type="int">
</parameter>
<parameter name="value" type="boolean">
</parameter>
</method>
<method name="setItemsCanFocus"
 return="void"
 abstract="false"
@@ -224936,19 +225009,6 @@
<parameter name="itemsCanFocus" type="boolean">
</parameter>
</method>
<method name="setMultiChoiceModeListener"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="listener" type="android.widget.ListView.MultiChoiceModeListener">
</parameter>
</method>
<method name="setSelection"
 return="void"
 abstract="false"
@@ -225001,50 +225061,6 @@
<parameter name="offset" type="int">
</parameter>
</method>
<field name="CHOICE_MODE_MULTIPLE"
 type="int"
 transient="false"
 volatile="false"
 value="2"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="CHOICE_MODE_MULTIPLE_MODAL"
 type="int"
 transient="false"
 volatile="false"
 value="3"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="CHOICE_MODE_NONE"
 type="int"
 transient="false"
 volatile="false"
 value="0"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="CHOICE_MODE_SINGLE"
 type="int"
 transient="false"
 volatile="false"
 value="1"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
</class>
<class name="ListView.FixedViewInfo"
 extends="java.lang.Object"
@@ -225093,35 +225109,6 @@
>
</field>
</class>
<interface name="ListView.MultiChoiceModeListener"
 abstract="true"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<implements name="android.view.ActionMode.Callback">
</implements>
<method name="onItemCheckedStateChanged"
 return="void"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="mode" type="android.view.ActionMode">
</parameter>
<parameter name="position" type="int">
</parameter>
<parameter name="id" type="long">
</parameter>
<parameter name="checked" type="boolean">
</parameter>
</method>
</interface>
<class name="MediaController"
 extends="android.widget.FrameLayout"
 abstract="false"
+470 −3

File changed.

Preview size limit exceeded, changes collapsed.

+30 −1
Original line number Diff line number Diff line
@@ -104,6 +104,26 @@ public class GridView extends AbsListView {
        a.recycle();
    }

    /**
     * Set how the user may select items from the grid.
     *
     * <p>GridView only supports {@link AbsListView#CHOICE_MODE_NONE} and
     * {@link AbsListView#CHOICE_MODE_MULTIPLE_MODAL}. Attempting to set an unsupported choice
     * mode will throw an UnsupportedOperationException.
     */
    @Override
    public void setChoiceMode(int choiceMode) {
        switch (choiceMode) {
        case CHOICE_MODE_NONE:
        case CHOICE_MODE_MULTIPLE_MODAL:
            super.setChoiceMode(choiceMode);
            break;

        default:
            throw new UnsupportedOperationException("Unsupported choice mode " + choiceMode);
        }
    }

    @Override
    public ListAdapter getAdapter() {
        return mAdapter;
@@ -137,6 +157,9 @@ public class GridView extends AbsListView {
        mOldSelectedPosition = INVALID_POSITION;
        mOldSelectedRowId = INVALID_ROW_ID;

        // AbsListView#setAdapter will update choice mode states.
        super.setAdapter(adapter);

        if (mAdapter != null) {
            mOldItemCount = mItemCount;
            mItemCount = mAdapter.getCount();
@@ -1312,6 +1335,12 @@ public class GridView extends AbsListView {
            child.setPressed(isPressed);
        }

        if (mChoiceMode != CHOICE_MODE_NONE && mCheckStates != null) {
            if (child instanceof Checkable) {
                ((Checkable) child).setChecked(mCheckStates.get(position));
            }
        }

        if (needToMeasure) {
            int childHeightSpec = ViewGroup.getChildMeasureSpec(
                    MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 0, p.height);
+4 −500

File changed.

Preview size limit exceeded, changes collapsed.

Loading