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

Commit 93d8bf02 authored by Chris Li's avatar Chris Li
Browse files

Add debug log for failing to start activity in TaskFragment

In case the KEY_LAUNCH_TASK_FRAGMENT_TOKEN cannot be resolved on time.

Bug: 412514012
Test: Adding log
Flag: EXEMPT adding log
Change-Id: I0149ef64bc9c5b3b93d27cc3bc446490d77ba40f
parent 3ce37e89
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.graphics.Rect;
import android.os.Binder;
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
import android.util.Size;
import android.window.TaskFragmentAnimationParams;
import android.window.TaskFragmentInfo;
@@ -540,6 +541,8 @@ class TaskFragmentContainer {
            if (mPendingAppearedIntent != null || !mPendingAppearedActivities.isEmpty()) {
                mAppearEmptyTimeout = () -> {
                    synchronized (mController.mLock) {
                        Log.w(SplitController.TAG,
                                "Fail to wait for activity start in TaskFragment=" + this);
                        mAppearEmptyTimeout = null;
                        // Call without the pass-in wct when timeout. We need to applyWct directly
                        // in this case.
+12 −7
Original line number Diff line number Diff line
@@ -2826,9 +2826,13 @@ class ActivityStarter {
            mTargetRootTask = Task.fromWindowContainerToken(mOptions.getLaunchRootTask());

            if (inTaskFragment == null) {
                inTaskFragment = TaskFragment.fromTaskFragmentToken(
                        mOptions.getLaunchTaskFragmentToken(), mService);
                if (inTaskFragment != null && inTaskFragment.isEmbeddedTaskFragmentInPip()) {
                final IBinder launchTfToken = mOptions.getLaunchTaskFragmentToken();
                if (launchTfToken != null) {
                    inTaskFragment = TaskFragment.fromTaskFragmentToken(launchTfToken, mService);
                    if (inTaskFragment == null) {
                        Slog.e(TAG, "Can not find requested launch TaskFragment: "
                                + launchTfToken);
                    } else if (inTaskFragment.isEmbeddedTaskFragmentInPip()) {
                        // Do not start activity in TaskFragment in a PIP Task.
                        Slog.w(TAG, "Can not start activity in TaskFragment in PIP: "
                                + inTaskFragment);
@@ -2836,6 +2840,7 @@ class ActivityStarter {
                    }
                }
            }
        }

        mNotTop = (mLaunchFlags & FLAG_ACTIVITY_PREVIOUS_IS_TOP) != 0 ? sourceRecord : null;

+1 −1
Original line number Diff line number Diff line
@@ -445,7 +445,7 @@ class TaskFragment extends WindowContainer<WindowContainer> {
        mRemoteToken = new RemoteToken(this);
    }

    @NonNull
    @Nullable
    static TaskFragment fromTaskFragmentToken(@Nullable IBinder token,
            @NonNull ActivityTaskManagerService service) {
        if (token == null) return null;