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

Commit 4fe28a4d authored by Mark Punzalan's avatar Mark Punzalan
Browse files

Rename translationActivityUid to translatedAppUid.

Bug: 192331240
Test: N/A - Just renaming
Change-Id: Ib85ba777a15f9c63bb6349dbe5974c84a1f6b0eb
parent 94ed570f
Loading
Loading
Loading
Loading
+36 −38
Original line number Diff line number Diff line
@@ -191,25 +191,24 @@ final class TranslationManagerServiceImpl extends
        }
    }

    private int getActivityUidByComponentName(Context context, ComponentName componentName,
            int userId) {
        int translationActivityUid = -1;
    private int getAppUidByComponentName(Context context, ComponentName componentName, int userId) {
        int translatedAppUid = -1;
        try {
            if (componentName != null) {
                translationActivityUid = context.getPackageManager().getApplicationInfoAsUser(
                translatedAppUid = context.getPackageManager().getApplicationInfoAsUser(
                        componentName.getPackageName(), 0, userId).uid;
            }
        } catch (PackageManager.NameNotFoundException e) {
            Slog.d(TAG, "Cannot find packageManager for" + componentName);
        }
        return translationActivityUid;
        return translatedAppUid;
    }

    @GuardedBy("mLock")
    public void onTranslationFinishedLocked(boolean activityDestroyed, IBinder token,
            ComponentName componentName) {
        final int translationActivityUid =
                getActivityUidByComponentName(getContext(), componentName, getUserId());
        final int translatedAppUid =
                getAppUidByComponentName(getContext(), componentName, getUserId());
        final String packageName = componentName.getPackageName();
        if (activityDestroyed) {
            // In the Activity destroy case, we only calls onTranslationFinished() in
@@ -217,13 +216,13 @@ final class TranslationManagerServiceImpl extends
            // should remove the waiting callback to avoid callback twice.
            invokeCallbacks(STATE_UI_TRANSLATION_FINISHED,
                    /* sourceSpec= */ null, /* targetSpec= */ null,
                    packageName, translationActivityUid);
                    packageName, translatedAppUid);
            mWaitingFinishedCallbackActivities.remove(token);
        } else {
            if (mWaitingFinishedCallbackActivities.contains(token)) {
                invokeCallbacks(STATE_UI_TRANSLATION_FINISHED,
                        /* sourceSpec= */ null, /* targetSpec= */ null,
                        packageName, translationActivityUid);
                        packageName, translatedAppUid);
                mWaitingFinishedCallbackActivities.remove(token);
            }
        }
@@ -260,20 +259,20 @@ final class TranslationManagerServiceImpl extends
        }

        ComponentName componentName = mActivityTaskManagerInternal.getActivityName(activityToken);
        int translationActivityUid =
                getActivityUidByComponentName(getContext(), componentName, getUserId());
        int translatedAppUid =
                getAppUidByComponentName(getContext(), componentName, getUserId());
        String packageName = componentName.getPackageName();

        invokeCallbacksIfNecessaryLocked(state, sourceSpec, targetSpec, packageName, activityToken,
                translationActivityUid);
                translatedAppUid);
        updateActiveTranslationsLocked(state, sourceSpec, targetSpec, packageName, activityToken,
                translationActivityUid);
                translatedAppUid);
    }

    @GuardedBy("mLock")
    private void updateActiveTranslationsLocked(int state, TranslationSpec sourceSpec,
            TranslationSpec targetSpec, String packageName, IBinder activityToken,
            int translationActivityUid) {
            int translatedAppUid) {
        // We keep track of active translations and their state so that we can:
        // 1. Trigger callbacks that are registered after translation has started.
        //    See registerUiTranslationStateCallbackLocked().
@@ -287,16 +286,16 @@ final class TranslationManagerServiceImpl extends
                        activityToken.linkToDeath(this, /* flags= */ 0);
                    } catch (RemoteException e) {
                        Slog.w(TAG, "Failed to call linkToDeath for translated app with uid="
                                + translationActivityUid + "; activity is already dead", e);
                                + translatedAppUid + "; activity is already dead", e);

                        // Apps with registered callbacks were just notified that translation
                        // started. We should let them know translation is finished too.
                        invokeCallbacks(STATE_UI_TRANSLATION_FINISHED, sourceSpec, targetSpec,
                                packageName, translationActivityUid);
                                packageName, translatedAppUid);
                        return;
                    }
                    mActiveTranslations.put(activityToken,
                            new ActiveTranslation(sourceSpec, targetSpec, translationActivityUid,
                            new ActiveTranslation(sourceSpec, targetSpec, translatedAppUid,
                                    packageName));
                }
                break;
@@ -326,15 +325,15 @@ final class TranslationManagerServiceImpl extends

        if (DEBUG) {
            Slog.d(TAG,
                    "Updating to translation state=" + state + " for activity with uid="
                            + translationActivityUid + " packageName=" + packageName);
                    "Updating to translation state=" + state + " for app with uid="
                            + translatedAppUid + " packageName=" + packageName);
        }
    }

    @GuardedBy("mLock")
    private void invokeCallbacksIfNecessaryLocked(int state, TranslationSpec sourceSpec,
            TranslationSpec targetSpec, String packageName, IBinder activityToken,
            int translationActivityUid) {
            int translatedAppUid) {
        boolean shouldInvokeCallbacks = true;
        int stateForCallbackInvocation = state;

@@ -343,8 +342,8 @@ final class TranslationManagerServiceImpl extends
            if (state != STATE_UI_TRANSLATION_STARTED) {
                shouldInvokeCallbacks = false;
                Slog.w(TAG,
                        "Updating to translation state=" + state + " for activity with uid="
                                + translationActivityUid + " packageName=" + packageName
                        "Updating to translation state=" + state + " for app with uid="
                                + translatedAppUid + " packageName=" + packageName
                                + " but no active translation was found for it");
            }
        } else {
@@ -408,13 +407,13 @@ final class TranslationManagerServiceImpl extends
            Slog.d(TAG,
                    (shouldInvokeCallbacks ? "" : "NOT ")
                            + "Invoking callbacks for translation state="
                            + stateForCallbackInvocation + " for activity with uid="
                            + translationActivityUid + " packageName=" + packageName);
                            + stateForCallbackInvocation + " for app with uid=" + translatedAppUid
                            + " packageName=" + packageName);
        }

        if (shouldInvokeCallbacks) {
            invokeCallbacks(stateForCallbackInvocation, sourceSpec, targetSpec, packageName,
                    translationActivityUid);
                    translatedAppUid);
        }
    }

@@ -457,15 +456,14 @@ final class TranslationManagerServiceImpl extends

    private void invokeCallbacks(
            int state, TranslationSpec sourceSpec, TranslationSpec targetSpec, String packageName,
            int translationActivityUid) {
            int translatedAppUid) {
        Bundle result = createResultForCallback(state, sourceSpec, targetSpec, packageName);
        if (mCallbacks.getRegisteredCallbackCount() == 0) {
            return;
        }
        List<InputMethodInfo> enabledInputMethods = getEnabledInputMethods();
        mCallbacks.broadcast((callback, uid) -> {
            invokeCallback((int) uid, translationActivityUid, callback, result,
                    enabledInputMethods);
            invokeCallback((int) uid, translatedAppUid, callback, result, enabledInputMethods);
        });
    }

@@ -488,9 +486,9 @@ final class TranslationManagerServiceImpl extends
    }

    private void invokeCallback(
            int callbackSourceUid, int translationActivityUid, IRemoteCallback callback,
            int callbackSourceUid, int translatedAppUid, IRemoteCallback callback,
            Bundle result, List<InputMethodInfo> enabledInputMethods) {
        if (callbackSourceUid == translationActivityUid) {
        if (callbackSourceUid == translatedAppUid) {
            // Invoke callback for the application being translated.
            try {
                callback.sendResult(result);
@@ -532,25 +530,25 @@ final class TranslationManagerServiceImpl extends
        List<InputMethodInfo> enabledInputMethods = getEnabledInputMethods();
        for (int i = 0; i < mActiveTranslations.size(); i++) {
            ActiveTranslation activeTranslation = mActiveTranslations.valueAt(i);
            int activeTranslationUid = activeTranslation.translationActivityUid;
            int translatedAppUid = activeTranslation.translatedAppUid;
            String packageName = activeTranslation.packageName;
            if (DEBUG) {
                Slog.d(TAG, "Triggering callback for sourceUid=" + sourceUid
                        + " for translated activity with uid=" + activeTranslationUid
                        + " for translated app with uid=" + translatedAppUid
                        + "packageName=" + packageName + " isPaused=" + activeTranslation.isPaused);
            }

            Bundle startedResult = createResultForCallback(STATE_UI_TRANSLATION_STARTED,
                    activeTranslation.sourceSpec, activeTranslation.targetSpec,
                    packageName);
            invokeCallback(sourceUid, activeTranslationUid, callback, startedResult,
            invokeCallback(sourceUid, translatedAppUid, callback, startedResult,
                    enabledInputMethods);
            if (activeTranslation.isPaused) {
                // Also send event so callback owners know that translation was started then paused.
                Bundle pausedResult = createResultForCallback(STATE_UI_TRANSLATION_PAUSED,
                        activeTranslation.sourceSpec, activeTranslation.targetSpec,
                        packageName);
                invokeCallback(sourceUid, activeTranslationUid, callback, pausedResult,
                invokeCallback(sourceUid, translatedAppUid, callback, pausedResult,
                        enabledInputMethods);
            }
        }
@@ -603,14 +601,14 @@ final class TranslationManagerServiceImpl extends
        public final TranslationSpec sourceSpec;
        public final TranslationSpec targetSpec;
        public final String packageName;
        public final int translationActivityUid;
        public final int translatedAppUid;
        public boolean isPaused = false;

        private ActiveTranslation(TranslationSpec sourceSpec, TranslationSpec targetSpec,
                int translationActivityUid, String packageName) {
                int translatedAppUid, String packageName) {
            this.sourceSpec = sourceSpec;
            this.targetSpec = targetSpec;
            this.translationActivityUid = translationActivityUid;
            this.translatedAppUid = translatedAppUid;
            this.packageName = packageName;
        }
    }
@@ -629,7 +627,7 @@ final class TranslationManagerServiceImpl extends
                // Let apps with registered callbacks know about the activity's death.
                invokeCallbacks(STATE_UI_TRANSLATION_FINISHED, activeTranslation.sourceSpec,
                        activeTranslation.targetSpec, activeTranslation.packageName,
                        activeTranslation.translationActivityUid);
                        activeTranslation.translatedAppUid);
            }
        }
    }