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

Commit 2788efec authored by Louis Chang's avatar Louis Chang Committed by Android (Google) Code Review
Browse files

Merge "Copy Intent while sending the Intent to the listeners asynchronously" into main

parents a3624868 27390cb5
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ class LaunchObserverRegistryImpl extends ActivityMetricsLaunchObserver implement
        mHandler.sendMessage(PooledLambda.obtainMessage(
                LaunchObserverRegistryImpl::handleOnIntentStarted,
                this,
                intent,
                new Intent(intent),
                timestampNs));
    }

+6 −1
Original line number Diff line number Diff line
@@ -153,14 +153,19 @@ public class ActivityMetricsLaunchObserverTests extends WindowTestsBase {
    }

    private long onIntentStarted(Intent intent) {
        clearInvocations(mLaunchObserver);
        notifyActivityLaunching(intent);

        long timestamp = -1;
        // If it is launching top activity from trampoline activity, the observer shouldn't receive
        // onActivityLaunched because the activities should belong to the same transition.
        if (!mLaunchTopByTrampoline) {
            final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
            final ArgumentCaptor<Long> captor = ArgumentCaptor.forClass(Long.class);
            verifyAsync(mLaunchObserver).onIntentStarted(eq(intent), captor.capture());
            verifyAsync(mLaunchObserver).onIntentStarted(intentCaptor.capture(),
                    captor.capture());
            assertWithMessage("Same intent").that(
                    intent.filterEquals(intentCaptor.getValue())).isTrue();
            timestamp = captor.getValue();
        }
        verifyNoMoreInteractions(mLaunchObserver);