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

Commit 17ddad83 authored by Hiroki Sato's avatar Hiroki Sato
Browse files

Prevent NPE in OverviewProxyService's LauncherStateChangedReceiver

It's possible that there's no package that receives QUICKSTEP_SERVICE
intent. In this case, PackageManager#resolveService returns null.
(Actually the method is annotated as nullable.)

This adds an explicit null check in the corresponding code.

Flag: none
Bug: 324510233
Test: tree hugger.
Test: ARC++ no longer throws NPE.
Change-Id: I2046d8bfca98963f58ff537b5769579c7dd6a49c
parent 87a572fd
Loading
Loading
Loading
Loading
+5 −3
Original line number Original line Diff line number Diff line
@@ -68,7 +68,6 @@ import android.view.KeyCharacterMap;
import android.view.KeyEvent;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.MotionEvent;
import android.view.Surface;
import android.view.Surface;
import android.view.SurfaceControl;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityManager;
import android.view.inputmethod.InputMethodManager;
import android.view.inputmethod.InputMethodManager;


@@ -114,6 +113,8 @@ import com.android.systemui.statusbar.policy.CallbackController;
import com.android.systemui.unfold.progress.UnfoldTransitionProgressForwarder;
import com.android.systemui.unfold.progress.UnfoldTransitionProgressForwarder;
import com.android.wm.shell.sysui.ShellInterface;
import com.android.wm.shell.sysui.ShellInterface;


import dagger.Lazy;

import java.io.PrintWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.ArrayList;
import java.util.List;
import java.util.List;
@@ -125,8 +126,6 @@ import java.util.function.Supplier;
import javax.inject.Inject;
import javax.inject.Inject;
import javax.inject.Provider;
import javax.inject.Provider;


import dagger.Lazy;

/**
/**
 * Class to send information from overview to launcher with a binder.
 * Class to send information from overview to launcher with a binder.
 */
 */
@@ -457,6 +456,9 @@ public class OverviewProxyService implements CallbackController<OverviewProxyLis
            // Only rebind for TouchInteractionService component from launcher
            // Only rebind for TouchInteractionService component from launcher
            ResolveInfo ri = context.getPackageManager()
            ResolveInfo ri = context.getPackageManager()
                    .resolveService(new Intent(ACTION_QUICKSTEP), 0);
                    .resolveService(new Intent(ACTION_QUICKSTEP), 0);
            if (ri == null) {
                return;
            }
            String interestingComponent = ri.serviceInfo.name;
            String interestingComponent = ri.serviceInfo.name;
            for (String component : compsList) {
            for (String component : compsList) {
                if (interestingComponent.equals(component)) {
                if (interestingComponent.equals(component)) {