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

Commit 44420585 authored by Mark Punzalan's avatar Mark Punzalan Committed by Android (Google) Code Review
Browse files

Merge "Reset translation state when views disappear." into tm-dev

parents 5d4978d3 c35960c3
Loading
Loading
Loading
Loading
+21 −1
Original line number Diff line number Diff line
@@ -9922,7 +9922,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
     * <ol>
     *   <li>It should only be called when content capture is enabled for the view.
     *   <li>It must call viewAppeared() before viewDisappeared()
     *   <li>viewAppearead() can only be called when the view is visible and laidout
     *   <li>viewAppeared() can only be called when the view is visible and laid out
     *   <li>It should not call the same event twice.
     * </ol>
     */
@@ -9999,6 +9999,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
                    Log.v(CONTENT_CAPTURE_LOG_TAG, "no AttachInfo on disappeared for " + this);
                }
            }
            // We reset any translation state as views may be re-used (e.g., as in ListView and
            // RecyclerView). We only need to do this for views important for content capture since
            // views unimportant for content capture won't be translated anyway.
            clearTranslationState();
        }
    }
@@ -12718,6 +12723,21 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
                == PFLAG4_HAS_TRANSLATION_TRANSIENT_STATE;
    }
    /**
     * @hide
     */
    public void clearTranslationState() {
        if (mViewTranslationCallback != null) {
            mViewTranslationCallback.onClearTranslation(this);
        }
        clearViewTranslationCallback();
        clearViewTranslationResponse();
        if (hasTranslationTransientState()) {
            setHasTransientState(false);
            setHasTranslationTransientState(false);
        }
    }
    /**
     * Returns true if this view is currently attached to a window.
     */
+1 −6
Original line number Diff line number Diff line
@@ -158,12 +158,7 @@ public class UiTranslationController implements Dumpable {
            case STATE_UI_TRANSLATION_FINISHED:
                destroyTranslators();
                runForEachView((view, callback) -> {
                    callback.onClearTranslation(view);
                    view.clearViewTranslationResponse();
                    if (view.hasTranslationTransientState()) {
                        view.setHasTransientState(false);
                        view.setHasTranslationTransientState(false);
                    }
                    view.clearTranslationState();
                });
                notifyTranslationFinished(/* activityDestroyed= */ false);
                synchronized (mLock) {