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

Commit 293451e4 authored by Romain Guy's avatar Romain Guy
Browse files

Remove unused field and add new API to control the children drawing order.

Approved by: xav, hackbod, mcleron.

Change-Id: I3bbfb4f96e3c9adedbb68d78703059a2df1e2013
parent b5e380a7
Loading
Loading
Loading
Loading
+24 −11
Original line number Diff line number Diff line
@@ -161987,6 +161987,17 @@
 visibility="public"
>
</method>
<method name="isChildrenDrawingOrderEnabled"
 return="boolean"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="protected"
>
</method>
<method name="isChildrenDrawnWithCacheEnabled"
 return="boolean"
 abstract="false"
@@ -162370,6 +162381,19 @@
<parameter name="enabled" type="boolean">
</parameter>
</method>
<method name="setChildrenDrawingOrderEnabled"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="protected"
>
<parameter name="enabled" type="boolean">
</parameter>
</method>
<method name="setChildrenDrawnWithCacheEnabled"
 return="void"
 abstract="false"
@@ -162537,17 +162561,6 @@
 visibility="protected"
>
</field>
<field name="FLAG_USE_CHILD_DRAWING_ORDER"
 type="int"
 transient="false"
 volatile="false"
 value="1024"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="protected"
>
</field>
<field name="FOCUS_AFTER_DESCENDANTS"
 type="int"
 transient="false"
+36 −2
Original line number Diff line number Diff line
@@ -150,6 +150,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
    /**
     * When set, the drawing method will call {@link #getChildDrawingOrder(int, int)}
     * to get the index of the child to draw for that iteration.
     * 
     * @hide
     */
    protected static final int FLAG_USE_CHILD_DRAWING_ORDER = 0x400;

@@ -1307,11 +1309,14 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
     * if you want to change the drawing order of children. By default, it
     * returns i.
     * <p>
     * NOTE: In order for this method to be called, the
     * {@link #FLAG_USE_CHILD_DRAWING_ORDER} must be set.
     * NOTE: In order for this method to be called, you must enable child ordering
     * first by calling {@link #setChildrenDrawingOrderEnabled(boolean)}.
     *
     * @param i The current iteration.
     * @return The index of the child to draw this iteration.
     * 
     * @see #setChildrenDrawingOrderEnabled(boolean)
     * @see #isChildrenDrawingOrderEnabled()
     */
    protected int getChildDrawingOrder(int childCount, int i) {
        return i;
@@ -2706,6 +2711,35 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
        setBooleanFlag(FLAG_CHILDREN_DRAWN_WITH_CACHE, enabled);
    }

    /**
     * Indicates whether the ViewGroup is drawing its children in the order defined by
     * {@link #getChildDrawingOrder(int, int)}.
     *
     * @return true if children drawing order is defined by {@link #getChildDrawingOrder(int, int)},
     *         false otherwise
     *
     * @see #setChildrenDrawingOrderEnabled(boolean)
     * @see #getChildDrawingOrder(int, int)
     */
    @ViewDebug.ExportedProperty
    protected boolean isChildrenDrawingOrderEnabled() {
        return (mGroupFlags & FLAG_USE_CHILD_DRAWING_ORDER) == FLAG_USE_CHILD_DRAWING_ORDER;
    }

    /**
     * Tells the ViewGroup whether to draw its children in the order defined by the method
     * {@link #getChildDrawingOrder(int, int)}.
     *
     * @param enabled true if the order of the children when drawing is determined by
     *        {@link #getChildDrawingOrder(int, int)}, false otherwise
     *
     * @see #isChildrenDrawingOrderEnabled()
     * @see #getChildDrawingOrder(int, int)
     */
    protected void setChildrenDrawingOrderEnabled(boolean enabled) {
        setBooleanFlag(FLAG_USE_CHILD_DRAWING_ORDER, enabled);
    }

    private void setBooleanFlag(int flag, boolean value) {
        if (value) {
            mGroupFlags |= flag;