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

Commit f56de8fc authored by Song Chun Fan's avatar Song Chun Fan Committed by Android (Google) Code Review
Browse files

Merge "[pm] fix NPE in PreferredComponent" into main

parents b171b308 71ced8ff
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -28,7 +28,8 @@ import com.android.internal.util.XmlUtils;
import com.android.modules.utils.TypedXmlPullParser;
import com.android.modules.utils.TypedXmlSerializer;
import com.android.server.LocalServices;
import com.android.server.pm.pkg.PackageUserState;
import com.android.server.pm.pkg.PackageStateInternal;
import com.android.server.pm.pkg.PackageUserStateInternal;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -218,11 +219,15 @@ public class PreferredComponent {
                continue;
            }

            // Avoid showing the disambiguation dialog if the package which is installed with
            // reason INSTALL_REASON_DEVICE_SETUP.
            final PackageUserState pkgUserState =
                    pmi.getPackageStateInternal(ai.packageName).getUserStates().get(userId);
            if (pkgUserState != null && pkgUserState.getInstallReason()
            // Avoid showing the disambiguation dialog if the package is not installed or
            // installed with reason INSTALL_REASON_DEVICE_SETUP.
            final PackageStateInternal ps = pmi.getPackageStateInternal(ai.packageName);
            if (ps == null) {
                continue;
            }
            final PackageUserStateInternal pkgUserState = ps.getUserStates().get(userId);
            if (pkgUserState == null
                    || pkgUserState.getInstallReason()
                    == PackageManager.INSTALL_REASON_DEVICE_SETUP) {
                continue;
            }