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

Commit f922300a authored by Ahaan Ugale's avatar Ahaan Ugale
Browse files

Clear the ViewTranslationResponse on finishing UiTranslation.

Stored state should be cleared here.

This fixes a bug where the views cannot be re-translated after
UiTranslationManager#finishTranslation was called. Some of the state was
cleared, so the translations cannot be re-shown. And that state cannot
be recreated because we find the same ViewTranslationResponse stored and
do not recreate the other state.

Fix: 189892928
Test: manual - translate an app, go to the home screen (triggers
 finish), go back to the app and re-translate
Test: atest CtsTranslationTestCases
Change-Id: Ic81fbce7ee09eb72352071c8bdd94a2731826009
parent 33f8e116
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -30942,6 +30942,16 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        mViewTranslationResponse = response;
    }
    /**
     * Clears the ViewTranslationResponse stored by the default implementation of {@link
     * #onViewTranslationResponse}.
     *
     * @hide
     */
    public void clearViewTranslationResponse() {
        mViewTranslationResponse = null;
    }
    /**
     * Called when the content from {@link View#onCreateVirtualViewTranslationRequests} had been
     * translated by the TranslationService.
+1 −0
Original line number Diff line number Diff line
@@ -155,6 +155,7 @@ public class UiTranslationController {
                destroyTranslators();
                runForEachView((view, callback) -> {
                    callback.onClearTranslation(view);
                    view.clearViewTranslationResponse();
                    if (view.hasTranslationTransientState()) {
                        view.setHasTransientState(false);
                        view.setHasTranslationTransientState(false);