diff options
| author | 2024-01-25 03:04:22 +0000 | |
|---|---|---|
| committer | 2024-01-25 03:04:22 +0000 | |
| commit | f56de8fc3d687a89d8e36b4dd4cdb873cd18dd0e (patch) | |
| tree | ed290e5f479640c458b32946c42976f42cf10b28 | |
| parent | b171b308b44b93123d714dc6ec7ad0e69b02a215 (diff) | |
| parent | 71ced8ff7826df722aaaca77916c6996bc894592 (diff) | |
Merge "[pm] fix NPE in PreferredComponent" into main
| -rw-r--r-- | services/core/java/com/android/server/pm/PreferredComponent.java | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/pm/PreferredComponent.java b/services/core/java/com/android/server/pm/PreferredComponent.java index 18caafdaa56a..f3b146464864 100644 --- a/services/core/java/com/android/server/pm/PreferredComponent.java +++ b/services/core/java/com/android/server/pm/PreferredComponent.java @@ -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; } |