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

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

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

parents 2910d54f 57da5c64
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,
                intent != null ? new Intent(intent) : null,
                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);