Loading core/java/android/view/View.java +23 −12 Original line number Diff line number Diff line Loading @@ -9828,30 +9828,37 @@ public class View implements Drawable.Callback, KeyEvent.Callback, if (mContext.getContentCaptureOptions() == null) return; if (appeared) { if (!isLaidOut() || getVisibility() != VISIBLE || (mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) != 0) { // The appeared event stops sending to AiAi. // 1. The view is hidden. // 2. The same event was sent. // 3. The view is not laid out, and it will be laid out in the future. // Some recycled views cached its layout and a relayout is unnecessary. In this case, // system still needs to notify content capture the view appeared. When a view is // recycled, it will set the flag PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED. final boolean isRecycledWithoutRelayout = getNotifiedContentCaptureDisappeared() && getVisibility() == VISIBLE && !isLayoutRequested(); if (getVisibility() != VISIBLE || getNotifiedContentCaptureAppeared() || !(isLaidOut() || isRecycledWithoutRelayout)) { if (DEBUG_CONTENT_CAPTURE) { Log.v(CONTENT_CAPTURE_LOG_TAG, "Ignoring 'appeared' on " + this + ": laid=" + isLaidOut() + ", visibleToUser=" + isVisibleToUser() + ", visible=" + (getVisibility() == VISIBLE) + ": alreadyNotifiedAppeared=" + ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) != 0) + ", alreadyNotifiedDisappeared=" + ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED) != 0)); + ": alreadyNotifiedAppeared=" + getNotifiedContentCaptureAppeared() + ", alreadyNotifiedDisappeared=" + getNotifiedContentCaptureDisappeared()); } return; } } else { if ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) == 0 || (mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED) != 0) { if (!getNotifiedContentCaptureAppeared() || getNotifiedContentCaptureDisappeared()) { if (DEBUG_CONTENT_CAPTURE) { Log.v(CONTENT_CAPTURE_LOG_TAG, "Ignoring 'disappeared' on " + this + ": laid=" + isLaidOut() + ", visibleToUser=" + isVisibleToUser() + ", visible=" + (getVisibility() == VISIBLE) + ": alreadyNotifiedAppeared=" + ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) != 0) + ", alreadyNotifiedDisappeared=" + ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED) != 0)); + ": alreadyNotifiedAppeared=" + getNotifiedContentCaptureAppeared() + ", alreadyNotifiedDisappeared=" + getNotifiedContentCaptureDisappeared()); } return; } Loading Loading @@ -9899,6 +9906,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } private boolean getNotifiedContentCaptureDisappeared() { return (mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED) != 0; } /** * Sets the (optional) {@link ContentCaptureSession} associated with this view. * Loading
core/java/android/view/View.java +23 −12 Original line number Diff line number Diff line Loading @@ -9828,30 +9828,37 @@ public class View implements Drawable.Callback, KeyEvent.Callback, if (mContext.getContentCaptureOptions() == null) return; if (appeared) { if (!isLaidOut() || getVisibility() != VISIBLE || (mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) != 0) { // The appeared event stops sending to AiAi. // 1. The view is hidden. // 2. The same event was sent. // 3. The view is not laid out, and it will be laid out in the future. // Some recycled views cached its layout and a relayout is unnecessary. In this case, // system still needs to notify content capture the view appeared. When a view is // recycled, it will set the flag PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED. final boolean isRecycledWithoutRelayout = getNotifiedContentCaptureDisappeared() && getVisibility() == VISIBLE && !isLayoutRequested(); if (getVisibility() != VISIBLE || getNotifiedContentCaptureAppeared() || !(isLaidOut() || isRecycledWithoutRelayout)) { if (DEBUG_CONTENT_CAPTURE) { Log.v(CONTENT_CAPTURE_LOG_TAG, "Ignoring 'appeared' on " + this + ": laid=" + isLaidOut() + ", visibleToUser=" + isVisibleToUser() + ", visible=" + (getVisibility() == VISIBLE) + ": alreadyNotifiedAppeared=" + ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) != 0) + ", alreadyNotifiedDisappeared=" + ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED) != 0)); + ": alreadyNotifiedAppeared=" + getNotifiedContentCaptureAppeared() + ", alreadyNotifiedDisappeared=" + getNotifiedContentCaptureDisappeared()); } return; } } else { if ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) == 0 || (mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED) != 0) { if (!getNotifiedContentCaptureAppeared() || getNotifiedContentCaptureDisappeared()) { if (DEBUG_CONTENT_CAPTURE) { Log.v(CONTENT_CAPTURE_LOG_TAG, "Ignoring 'disappeared' on " + this + ": laid=" + isLaidOut() + ", visibleToUser=" + isVisibleToUser() + ", visible=" + (getVisibility() == VISIBLE) + ": alreadyNotifiedAppeared=" + ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) != 0) + ", alreadyNotifiedDisappeared=" + ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED) != 0)); + ": alreadyNotifiedAppeared=" + getNotifiedContentCaptureAppeared() + ", alreadyNotifiedDisappeared=" + getNotifiedContentCaptureDisappeared()); } return; } Loading Loading @@ -9899,6 +9906,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } private boolean getNotifiedContentCaptureDisappeared() { return (mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED) != 0; } /** * Sets the (optional) {@link ContentCaptureSession} associated with this view. *