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

Commit ab63d067 authored by yuanjiahsu's avatar yuanjiahsu Committed by Yuanjia Hsu
Browse files

Don't send callback with null topActivity

The topActivity defined in ActivityListener#onTopActivityChanged is @NonNull, so GenericWindowPolicyController should not send the callback when topActivity is null.

Bug: 222771130
Test: manual testing
Change-Id: I227d1d83e0e191975ab45b110909938022bb1d0c
parent 95387ac8
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -469,6 +469,10 @@ public final class VirtualDeviceManager {
        /**
         * Called when the top activity is changed.
         *
         * <p>Note: When there are no activities running on the virtual display, the
         * {@link #onDisplayEmpty(int)} will be called. If the value topActivity is cached, it
         * should be cleared when {@link #onDisplayEmpty(int)} is called.
         *
         * @param displayId The display ID on which the activity change happened.
         * @param topActivity The component name of the top activity.
         */
+4 −1
Original line number Diff line number Diff line
@@ -165,7 +165,10 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController

    @Override
    public void onTopActivityChanged(ComponentName topActivity, int uid) {
        if (mActivityListener != null) {
        // Don't send onTopActivityChanged() callback when topActivity is null because it's defined
        // as @NonNull in ActivityListener interface. Sends onDisplayEmpty() callback instead when
        // there is no activity running on virtual display.
        if (mActivityListener != null && topActivity != null) {
            // Post callback on the main thread so it doesn't block activity launching
            mHandler.post(() ->
                    mActivityListener.onTopActivityChanged(Display.INVALID_DISPLAY, topActivity));