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

Commit 759d87a0 authored by Evan Rosky's avatar Evan Rosky Committed by android-build-merger
Browse files

Merge "Restored focusableViewAvailable logic on visibility change" into pi-dev

am: 4d0a5fd7

Change-Id: I4f4805629698d306fbb8f40e3b62e0f2ca99ad8c
parents c3e00577 4d0a5fd7
Loading
Loading
Loading
Loading
+13 −12
Original line number Diff line number Diff line
@@ -13917,11 +13917,15 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        mAttachInfo.mUnbufferedDispatchRequested = true;
    }
    private boolean hasSize() {
        return (mBottom > mTop) && (mRight > mLeft);
    }
    private boolean canTakeFocus() {
        return ((mViewFlags & VISIBILITY_MASK) == VISIBLE)
                && ((mViewFlags & FOCUSABLE) == FOCUSABLE)
                && ((mViewFlags & ENABLED_MASK) == ENABLED)
                && (sCanFocusZeroSized || !isLayoutValid() || (mBottom > mTop) && (mRight > mLeft));
                && (sCanFocusZeroSized || !isLayoutValid() || hasSize());
    }
    /**
@@ -13982,7 +13986,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
                            || focusableChangedByAuto == 0
                            || viewRootImpl == null
                            || viewRootImpl.mThread == Thread.currentThread()) {
                        shouldNotifyFocusableAvailable = true;
                        shouldNotifyFocusableAvailable = canTakeFocus();
                    }
                }
            }
@@ -14001,11 +14005,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
                needGlobalAttributesUpdate(true);
                // a view becoming visible is worth notifying the parent
                // about in case nothing has focus.  even if this specific view
                // isn't focusable, it may contain something that is, so let
                // the root view try to give this focus if nothing else does.
                shouldNotifyFocusableAvailable = true;
                // a view becoming visible is worth notifying the parent about in case nothing has
                // focus. Even if this specific view isn't focusable, it may contain something that
                // is, so let the root view try to give this focus if nothing else does.
                shouldNotifyFocusableAvailable = hasSize();
            }
        }
@@ -14014,17 +14017,15 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
                // a view becoming enabled should notify the parent as long as the view is also
                // visible and the parent wasn't already notified by becoming visible during this
                // setFlags invocation.
                shouldNotifyFocusableAvailable = true;
                shouldNotifyFocusableAvailable = canTakeFocus();
            } else {
                if (isFocused()) clearFocus();
            }
        }
        if (shouldNotifyFocusableAvailable) {
            if (mParent != null && canTakeFocus()) {
        if (shouldNotifyFocusableAvailable && mParent != null) {
            mParent.focusableViewAvailable(this);
        }
        }
        /* Check if the GONE bit has changed */
        if ((changed & GONE) != 0) {