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

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

Merge "Gather View's hierarchy notifications into methods that can easily be overidden."

parents d6df9060 f51d91c3
Loading
Loading
Loading
Loading
+23 −19
Original line number Diff line number Diff line
@@ -3182,6 +3182,24 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
        mOnHierarchyChangeListener = listener;
    }

    /**
     * @hide
     */
    protected void onViewAdded(View child) {
        if (mOnHierarchyChangeListener != null) {
            mOnHierarchyChangeListener.onChildViewAdded(this, child);
        }
    }

    /**
     * @hide
     */
    protected void onViewRemoved(View child) {
        if (mOnHierarchyChangeListener != null) {
            mOnHierarchyChangeListener.onChildViewRemoved(this, child);
        }
    }

    /**
     * Adds a view during layout. This is useful if in your onLayout() method,
     * you need to add more views (as does the list view for example).
@@ -3283,9 +3301,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
            ai.mKeepScreenOn = lastKeepOn;
        }

        if (mOnHierarchyChangeListener != null) {
            mOnHierarchyChangeListener.onChildViewAdded(this, child);
        }
        onViewAdded(child);

        if ((child.mViewFlags & DUPLICATE_PARENT_STATE) == DUPLICATE_PARENT_STATE) {
            mGroupFlags |= FLAG_NOTIFY_CHILDREN_ON_DRAWABLE_STATE_CHANGE;
@@ -3486,9 +3502,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
           view.dispatchDetachedFromWindow();
        }

        if (mOnHierarchyChangeListener != null) {
            mOnHierarchyChangeListener.onChildViewRemoved(this, view);
        }
        onViewRemoved(view);

        needGlobalAttributesUpdate(false);

@@ -3533,8 +3547,6 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
    }

    private void removeViewsInternal(int start, int count) {
        final OnHierarchyChangeListener onHierarchyChangeListener = mOnHierarchyChangeListener;
        final boolean notifyListener = onHierarchyChangeListener != null;
        final View focused = mFocused;
        final boolean detach = mAttachInfo != null;
        View clearChildFocus = null;
@@ -3563,9 +3575,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager

            needGlobalAttributesUpdate(false);

            if (notifyListener) {
                onHierarchyChangeListener.onChildViewRemoved(this, view);
            }
            onViewRemoved(view);
        }

        removeFromArray(start, count);
@@ -3603,8 +3613,6 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
        final View[] children = mChildren;
        mChildrenCount = 0;

        final OnHierarchyChangeListener listener = mOnHierarchyChangeListener;
        final boolean notify = listener != null;
        final View focused = mFocused;
        final boolean detach = mAttachInfo != null;
        View clearChildFocus = null;
@@ -3630,9 +3638,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
               view.dispatchDetachedFromWindow();
            }

            if (notify) {
                listener.onChildViewRemoved(this, view);
            }
            onViewRemoved(view);

            view.mParent = null;
            children[i] = null;
@@ -3672,9 +3678,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
            child.dispatchDetachedFromWindow();
        }

        if (mOnHierarchyChangeListener != null) {
            mOnHierarchyChangeListener.onChildViewRemoved(this, child);
        }
        onViewRemoved(child);
    }

    /**
+4 −47
Original line number Diff line number Diff line
@@ -758,38 +758,14 @@ public class GridLayout extends ViewGroup {
    // Add/remove

    @Override
    public void addView(View child, int index, ViewGroup.LayoutParams params) {
        super.addView(child, index, params);
    protected void onViewAdded(View child) {
        super.onViewAdded(child);
        invalidateStructure();
    }

    @Override
    public void removeView(View view) {
        super.removeView(view);
        invalidateStructure();
    }

    @Override
    public void removeViewInLayout(View view) {
        super.removeViewInLayout(view);
        invalidateStructure();
    }

    @Override
    public void removeViewsInLayout(int start, int count) {
        super.removeViewsInLayout(start, count);
        invalidateStructure();
    }

    @Override
    public void removeViewAt(int index) {
        super.removeViewAt(index);
        invalidateStructure();
    }

    @Override
    public void removeAllViews() {
        super.removeAllViews();
    protected void onViewRemoved(View child) {
        super.onViewRemoved(child);
        invalidateStructure();
    }

@@ -2300,25 +2276,6 @@ public class GridLayout extends ViewGroup {
        }
    }

    /**
     * Temporary backward compatibility class for Launcher - to avoid
     * dependent multi-project commit. This class will be deleted after
     * AppsCustomizePagedView is updated to new API.
     *
     * @hide
     */
    @Deprecated
    public static class Group extends Spec {
        /**
         * @deprecated Please replace with {@link #spec(int, int, Alignment)}
         * @hide
         */
        @Deprecated
        public Group(int start, int size, Alignment alignment) {
            super(start, size, alignment, UNDEFINED_FLEXIBILITY);
        }
    }

    /**
     * Return a Spec, {@code spec}, where:
     * <ul>