summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt11
-rw-r--r--core/java/android/content/Intent.java13
-rw-r--r--core/java/android/content/pm/ILauncherApps.aidl4
-rw-r--r--core/java/android/content/pm/IOnAppsChangedListener.aidl1
-rw-r--r--core/java/android/content/pm/IPackageManager.aidl1
-rw-r--r--core/java/android/content/pm/LauncherActivityInfo.java61
-rw-r--r--core/java/android/content/pm/LauncherActivityInfoInternal.aidl20
-rw-r--r--core/java/android/content/pm/LauncherActivityInfoInternal.java91
-rw-r--r--core/java/android/content/pm/LauncherApps.java58
-rw-r--r--core/java/android/content/pm/PackageManager.java15
-rw-r--r--core/java/com/android/internal/content/PackageMonitor.java22
-rw-r--r--non-updatable-api/current.txt11
-rw-r--r--services/core/java/android/content/pm/PackageManagerInternal.java13
-rw-r--r--services/core/java/com/android/server/pm/IncrementalStates.java4
-rw-r--r--services/core/java/com/android/server/pm/LauncherAppsService.java150
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java15
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/IncrementalStatesTest.java8
17 files changed, 98 insertions, 400 deletions
diff --git a/api/current.txt b/api/current.txt
index d282be1a83de..d20bff2da8eb 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -10668,15 +10668,12 @@ package android.content {
field public static final String ACTION_PACKAGE_CHANGED = "android.intent.action.PACKAGE_CHANGED";
field public static final String ACTION_PACKAGE_DATA_CLEARED = "android.intent.action.PACKAGE_DATA_CLEARED";
field public static final String ACTION_PACKAGE_FIRST_LAUNCH = "android.intent.action.PACKAGE_FIRST_LAUNCH";
- field public static final String ACTION_PACKAGE_FULLY_LOADED = "android.intent.action.PACKAGE_FULLY_LOADED";
field public static final String ACTION_PACKAGE_FULLY_REMOVED = "android.intent.action.PACKAGE_FULLY_REMOVED";
field @Deprecated public static final String ACTION_PACKAGE_INSTALL = "android.intent.action.PACKAGE_INSTALL";
field public static final String ACTION_PACKAGE_NEEDS_VERIFICATION = "android.intent.action.PACKAGE_NEEDS_VERIFICATION";
field public static final String ACTION_PACKAGE_REMOVED = "android.intent.action.PACKAGE_REMOVED";
field public static final String ACTION_PACKAGE_REPLACED = "android.intent.action.PACKAGE_REPLACED";
field public static final String ACTION_PACKAGE_RESTARTED = "android.intent.action.PACKAGE_RESTARTED";
- field public static final String ACTION_PACKAGE_STARTABLE = "android.intent.action.PACKAGE_STARTABLE";
- field public static final String ACTION_PACKAGE_UNSTARTABLE = "android.intent.action.PACKAGE_UNSTARTABLE";
field public static final String ACTION_PACKAGE_VERIFIED = "android.intent.action.PACKAGE_VERIFIED";
field public static final String ACTION_PASTE = "android.intent.action.PASTE";
field public static final String ACTION_PICK = "android.intent.action.PICK";
@@ -10841,7 +10838,6 @@ package android.content {
field public static final String EXTRA_TIMEZONE = "time-zone";
field public static final String EXTRA_TITLE = "android.intent.extra.TITLE";
field public static final String EXTRA_UID = "android.intent.extra.UID";
- field public static final String EXTRA_UNSTARTABLE_REASON = "android.intent.extra.UNSTARTABLE_REASON";
field public static final String EXTRA_USER = "android.intent.extra.USER";
field public static final int FILL_IN_ACTION = 1; // 0x1
field public static final int FILL_IN_CATEGORIES = 4; // 0x4
@@ -11715,10 +11711,7 @@ package android.content.pm {
method public android.graphics.drawable.Drawable getIcon(int);
method public CharSequence getLabel();
method public String getName();
- method public float getProgress();
method public android.os.UserHandle getUser();
- method public boolean isLoading();
- method public boolean isStartable();
}
public class LauncherApps {
@@ -11758,7 +11751,6 @@ package android.content.pm {
ctor public LauncherApps.Callback();
method public abstract void onPackageAdded(String, android.os.UserHandle);
method public abstract void onPackageChanged(String, android.os.UserHandle);
- method public void onPackageProgressChanged(@NonNull String, @NonNull android.os.UserHandle, float);
method public abstract void onPackageRemoved(String, android.os.UserHandle);
method public abstract void onPackagesAvailable(String[], android.os.UserHandle, boolean);
method public void onPackagesSuspended(String[], android.os.UserHandle);
@@ -12305,9 +12297,6 @@ package android.content.pm {
field public static final int SYNCHRONOUS = 2; // 0x2
field @Nullable public static final java.util.List<java.security.cert.Certificate> TRUST_ALL;
field @NonNull public static final java.util.List<java.security.cert.Certificate> TRUST_NONE;
- field public static final int UNSTARTABLE_REASON_CONNECTION_ERROR = 1; // 0x1
- field public static final int UNSTARTABLE_REASON_INSUFFICIENT_STORAGE = 2; // 0x2
- field public static final int UNSTARTABLE_REASON_UNKNOWN = 0; // 0x0
field public static final int VERIFICATION_ALLOW = 1; // 0x1
field public static final int VERIFICATION_REJECT = -1; // 0xffffffff
field public static final int VERSION_CODE_HIGHEST = -1; // 0xffffffff
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 653064d41bff..5622ccab3c20 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -2744,6 +2744,7 @@ public class Intent implements Parcelable, Cloneable {
* </ul>
*
* <p class="note">This is a protected intent that can only be sent by the system.
+ * @hide
*/
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String ACTION_PACKAGE_STARTABLE = "android.intent.action.PACKAGE_STARTABLE";
@@ -2754,13 +2755,13 @@ public class Intent implements Parcelable, Cloneable {
* <ul>
* <li> {@link #EXTRA_UID} containing the integer uid assigned to the package. </li>
* <li> {@link #EXTRA_PACKAGE_NAME} containing the package name. </li>
- * <li> {@link #EXTRA_UNSTARTABLE_REASON} containing the integer indicating the reason for
- * the state change,
+ * <li> {@link #EXTRA_REASON} containing the integer indicating the reason for the state change,
* @see PackageManager.UnstartableReason
* </li>
* </ul>
*
* <p class="note">This is a protected intent that can only be sent by the system.
+ * @hide
*/
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String ACTION_PACKAGE_UNSTARTABLE =
@@ -2775,6 +2776,7 @@ public class Intent implements Parcelable, Cloneable {
* </ul>
*
* <p class="note">This is a protected intent that can only be sent by the system.
+ * @hide
*/
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String ACTION_PACKAGE_FULLY_LOADED =
@@ -6013,13 +6015,6 @@ public class Intent implements Parcelable, Cloneable {
*/
public static final String EXTRA_LOCUS_ID = "android.intent.extra.LOCUS_ID";
- /**
- * Intent extra: the reason that the package associated with this intent has become unstartable.
- *
- * <p>Type: String
- */
- public static final String EXTRA_UNSTARTABLE_REASON = "android.intent.extra.UNSTARTABLE_REASON";
-
// ---------------------------------------------------------------------
// ---------------------------------------------------------------------
// Intent flags (see mFlags variable).
diff --git a/core/java/android/content/pm/ILauncherApps.aidl b/core/java/android/content/pm/ILauncherApps.aidl
index d9ecf46069cd..389458b64fc1 100644
--- a/core/java/android/content/pm/ILauncherApps.aidl
+++ b/core/java/android/content/pm/ILauncherApps.aidl
@@ -21,9 +21,9 @@ import android.content.ComponentName;
import android.content.Intent;
import android.content.IntentSender;
import android.content.LocusId;
+import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.IOnAppsChangedListener;
-import android.content.pm.LauncherActivityInfoInternal;
import android.content.pm.LauncherApps;
import android.content.pm.ShortcutQueryWrapper;
import android.content.pm.IPackageInstallerCallback;
@@ -47,7 +47,7 @@ interface ILauncherApps {
void removeOnAppsChangedListener(in IOnAppsChangedListener listener);
ParceledListSlice getLauncherActivities(
String callingPackage, String packageName, in UserHandle user);
- LauncherActivityInfoInternal resolveLauncherActivityInternal(
+ ActivityInfo resolveActivity(
String callingPackage, in ComponentName component, in UserHandle user);
void startSessionDetailsActivityAsUser(in IApplicationThread caller, String callingPackage,
String callingFeatureId, in PackageInstaller.SessionInfo sessionInfo,
diff --git a/core/java/android/content/pm/IOnAppsChangedListener.aidl b/core/java/android/content/pm/IOnAppsChangedListener.aidl
index f24ed80983f8..fcb1de016078 100644
--- a/core/java/android/content/pm/IOnAppsChangedListener.aidl
+++ b/core/java/android/content/pm/IOnAppsChangedListener.aidl
@@ -33,5 +33,4 @@ oneway interface IOnAppsChangedListener {
in Bundle launcherExtras);
void onPackagesUnsuspended(in UserHandle user, in String[] packageNames);
void onShortcutChanged(in UserHandle user, String packageName, in ParceledListSlice shortcuts);
- void onPackageProgressChanged(in UserHandle user, String packageName, float progress);
}
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index c32d34457889..30f3325cc11c 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -31,6 +31,7 @@ import android.content.pm.IPackageInstaller;
import android.content.pm.IPackageDeleteObserver;
import android.content.pm.IPackageDeleteObserver2;
import android.content.pm.IPackageDataObserver;
+import android.content.pm.IPackageLoadingProgressCallback;
import android.content.pm.IPackageMoveObserver;
import android.content.pm.IPackageStatsObserver;
import android.content.pm.IntentFilterVerificationInfo;
diff --git a/core/java/android/content/pm/LauncherActivityInfo.java b/core/java/android/content/pm/LauncherActivityInfo.java
index ead80d022542..67deb82f1fbb 100644
--- a/core/java/android/content/pm/LauncherActivityInfo.java
+++ b/core/java/android/content/pm/LauncherActivityInfo.java
@@ -16,6 +16,7 @@
package android.content.pm;
+import android.compat.annotation.UnsupportedAppUsage;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager.NameNotFoundException;
@@ -34,19 +35,28 @@ public class LauncherActivityInfo {
private static final String TAG = "LauncherActivityInfo";
private final PackageManager mPm;
+
+ @UnsupportedAppUsage
+ private ActivityInfo mActivityInfo;
+ private ComponentName mComponentName;
private UserHandle mUser;
- private final LauncherActivityInfoInternal mInternal;
/**
* Create a launchable activity object for a given ResolveInfo and user.
*
* @param context The context for fetching resources.
-
+ * @param info ResolveInfo from which to create the LauncherActivityInfo.
+ * @param user The UserHandle of the profile to which this activity belongs.
*/
- LauncherActivityInfo(Context context, UserHandle user, LauncherActivityInfoInternal internal) {
- mPm = context.getPackageManager();
+ LauncherActivityInfo(Context context, ActivityInfo info, UserHandle user) {
+ this(context);
+ mActivityInfo = info;
+ mComponentName = new ComponentName(info.packageName, info.name);
mUser = user;
- mInternal = internal;
+ }
+
+ LauncherActivityInfo(Context context) {
+ mPm = context.getPackageManager();
}
/**
@@ -55,7 +65,7 @@ public class LauncherActivityInfo {
* @return ComponentName of the activity
*/
public ComponentName getComponentName() {
- return mInternal.getComponentName();
+ return mComponentName;
}
/**
@@ -80,28 +90,7 @@ public class LauncherActivityInfo {
*/
public CharSequence getLabel() {
// TODO: Go through LauncherAppsService
- return mInternal.getActivityInfo().loadLabel(mPm);
- }
-
- /**
- * @return whether the package is startable.
- */
- public boolean isStartable() {
- return mInternal.getIncrementalStatesInfo().isStartable();
- }
-
- /**
- * @return whether the package is still loading.
- */
- public boolean isLoading() {
- return mInternal.getIncrementalStatesInfo().isLoading();
- }
-
- /**
- * @return Package loading progress
- */
- public float getProgress() {
- return mInternal.getIncrementalStatesInfo().getProgress();
+ return mActivityInfo.loadLabel(mPm);
}
/**
@@ -114,20 +103,20 @@ public class LauncherActivityInfo {
*/
public Drawable getIcon(int density) {
// TODO: Go through LauncherAppsService
- final int iconRes = mInternal.getActivityInfo().getIconResource();
+ final int iconRes = mActivityInfo.getIconResource();
Drawable icon = null;
// Get the preferred density icon from the app's resources
if (density != 0 && iconRes != 0) {
try {
- final Resources resources = mPm.getResourcesForApplication(
- mInternal.getActivityInfo().applicationInfo);
+ final Resources resources
+ = mPm.getResourcesForApplication(mActivityInfo.applicationInfo);
icon = resources.getDrawableForDensity(iconRes, density);
} catch (NameNotFoundException | Resources.NotFoundException exc) {
}
}
// Get the default density icon
if (icon == null) {
- icon = mInternal.getActivityInfo().loadIcon(mPm);
+ icon = mActivityInfo.loadIcon(mPm);
}
return icon;
}
@@ -139,7 +128,7 @@ public class LauncherActivityInfo {
* @hide remove before shipping
*/
public int getApplicationFlags() {
- return mInternal.getActivityInfo().flags;
+ return mActivityInfo.applicationInfo.flags;
}
/**
@@ -147,7 +136,7 @@ public class LauncherActivityInfo {
* @return
*/
public ApplicationInfo getApplicationInfo() {
- return mInternal.getActivityInfo().applicationInfo;
+ return mActivityInfo.applicationInfo;
}
/**
@@ -158,7 +147,7 @@ public class LauncherActivityInfo {
public long getFirstInstallTime() {
try {
// TODO: Go through LauncherAppsService
- return mPm.getPackageInfo(mInternal.getActivityInfo().packageName,
+ return mPm.getPackageInfo(mActivityInfo.packageName,
PackageManager.MATCH_UNINSTALLED_PACKAGES).firstInstallTime;
} catch (NameNotFoundException nnfe) {
// Sorry, can't find package
@@ -171,7 +160,7 @@ public class LauncherActivityInfo {
* @return the name from android:name for the acitivity.
*/
public String getName() {
- return mInternal.getActivityInfo().name;
+ return mActivityInfo.name;
}
/**
diff --git a/core/java/android/content/pm/LauncherActivityInfoInternal.aidl b/core/java/android/content/pm/LauncherActivityInfoInternal.aidl
deleted file mode 100644
index 5d98d54a27a0..000000000000
--- a/core/java/android/content/pm/LauncherActivityInfoInternal.aidl
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-**
-** Copyright 2020, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License")
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
-
-package android.content.pm;
-
-parcelable LauncherActivityInfoInternal; \ No newline at end of file
diff --git a/core/java/android/content/pm/LauncherActivityInfoInternal.java b/core/java/android/content/pm/LauncherActivityInfoInternal.java
deleted file mode 100644
index 839b1761aadf..000000000000
--- a/core/java/android/content/pm/LauncherActivityInfoInternal.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.content.pm;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.compat.annotation.UnsupportedAppUsage;
-import android.content.ComponentName;
-import android.os.Parcel;
-import android.os.Parcelable;
-
-/**
- * @hide
- */
-public class LauncherActivityInfoInternal implements Parcelable {
- @UnsupportedAppUsage
- private ActivityInfo mActivityInfo;
- private ComponentName mComponentName;
- @NonNull private IncrementalStatesInfo mIncrementalStatesInfo;
-
- /**
- * @param info ActivityInfo from which to create the LauncherActivityInfo.
- * @param incrementalStatesInfo The package's states.
- */
- public LauncherActivityInfoInternal(ActivityInfo info,
- @Nullable IncrementalStatesInfo incrementalStatesInfo) {
- mActivityInfo = info;
- mComponentName = new ComponentName(info.packageName, info.name);
- if (incrementalStatesInfo == null) {
- // default value for non-incremental apps
- mIncrementalStatesInfo = new IncrementalStatesInfo(
- true /* isStartable */, false /* isLoading */, 1 /* progress */);
- } else {
- mIncrementalStatesInfo = incrementalStatesInfo;
- }
- }
-
- public LauncherActivityInfoInternal(Parcel source) {
- mActivityInfo = source.readParcelable(ActivityInfo.class.getClassLoader());
- mComponentName = new ComponentName(mActivityInfo.packageName, mActivityInfo.name);
- mIncrementalStatesInfo = source.readParcelable(
- IncrementalStatesInfo.class.getClassLoader());
- }
-
- public ComponentName getComponentName() {
- return mComponentName;
- }
-
- public ActivityInfo getActivityInfo() {
- return mActivityInfo;
- }
-
- public IncrementalStatesInfo getIncrementalStatesInfo() {
- return mIncrementalStatesInfo;
- }
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- dest.writeParcelable(mActivityInfo, 0);
- dest.writeParcelable(mIncrementalStatesInfo, 0);
- }
-
- public static final @android.annotation.NonNull Creator<LauncherActivityInfoInternal> CREATOR =
- new Creator<LauncherActivityInfoInternal>() {
- public LauncherActivityInfoInternal createFromParcel(Parcel source) {
- return new LauncherActivityInfoInternal(source);
- }
- public LauncherActivityInfoInternal[] newArray(int size) {
- return new LauncherActivityInfoInternal[size];
- }
- };
-}
diff --git a/core/java/android/content/pm/LauncherApps.java b/core/java/android/content/pm/LauncherApps.java
index b7af397cd36a..1a694b34474a 100644
--- a/core/java/android/content/pm/LauncherApps.java
+++ b/core/java/android/content/pm/LauncherApps.java
@@ -218,7 +218,6 @@ public class LauncherApps {
* Indicates that a package was modified in the specified profile.
* This can happen, for example, when the package is updated or when
* one or more components are enabled or disabled.
- * It can also happen if package state has changed, i.e., package becomes unstartable.
*
* @param packageName The name of the package that has changed.
* @param user The UserHandle of the profile that generated the change.
@@ -324,16 +323,6 @@ public class LauncherApps {
public void onShortcutsChanged(@NonNull String packageName,
@NonNull List<ShortcutInfo> shortcuts, @NonNull UserHandle user) {
}
-
- /**
- * Indicates that the loading progress of an installed package has changed.
- *
- * @param packageName The name of the package that has changed.
- * @param user The UserHandle of the profile that generated the change.
- * @param progress The new progress value, between [0, 1].
- */
- public void onPackageProgressChanged(@NonNull String packageName,
- @NonNull UserHandle user, float progress) {}
}
/**
@@ -726,15 +715,16 @@ public class LauncherApps {
public LauncherActivityInfo resolveActivity(Intent intent, UserHandle user) {
logErrorForInvalidProfileAccess(user);
try {
- LauncherActivityInfoInternal ai = mService.resolveLauncherActivityInternal(
- mContext.getPackageName(), intent.getComponent(), user);
- if (ai == null) {
- return null;
+ ActivityInfo ai = mService.resolveActivity(mContext.getPackageName(),
+ intent.getComponent(), user);
+ if (ai != null) {
+ LauncherActivityInfo info = new LauncherActivityInfo(mContext, ai, user);
+ return info;
}
- return new LauncherActivityInfo(mContext, user, ai);
} catch (RemoteException re) {
throw re.rethrowFromSystemServer();
}
+ return null;
}
/**
@@ -823,13 +813,13 @@ public class LauncherApps {
}
private List<LauncherActivityInfo> convertToActivityList(
- @Nullable ParceledListSlice<LauncherActivityInfoInternal> internals, UserHandle user) {
- if (internals == null || internals.getList().isEmpty()) {
+ @Nullable ParceledListSlice<ResolveInfo> activities, UserHandle user) {
+ if (activities == null) {
return Collections.EMPTY_LIST;
}
ArrayList<LauncherActivityInfo> lais = new ArrayList<>();
- for (LauncherActivityInfoInternal internal : internals.getList()) {
- LauncherActivityInfo lai = new LauncherActivityInfo(mContext, user, internal);
+ for (ResolveInfo ri : activities.getList()) {
+ LauncherActivityInfo lai = new LauncherActivityInfo(mContext, ri.activityInfo, user);
if (DEBUG) {
Log.v(TAG, "Returning activity for profile " + user + " : "
+ lai.getComponentName());
@@ -1677,19 +1667,6 @@ public class LauncherApps {
}
}
}
-
- public void onPackageProgressChanged(UserHandle user, String packageName,
- float progress) {
- if (DEBUG) {
- Log.d(TAG, "onPackageProgressChanged " + user.getIdentifier() + ","
- + packageName + "," + progress);
- }
- synchronized (LauncherApps.this) {
- for (CallbackMessageHandler callback : mCallbacks) {
- callback.postOnPackageProgressChanged(user, packageName, progress);
- }
- }
- }
};
private static class CallbackMessageHandler extends Handler {
@@ -1701,7 +1678,6 @@ public class LauncherApps {
private static final int MSG_SUSPENDED = 6;
private static final int MSG_UNSUSPENDED = 7;
private static final int MSG_SHORTCUT_CHANGED = 8;
- private static final int MSG_LOADING_PROGRESS_CHANGED = 9;
private LauncherApps.Callback mCallback;
@@ -1712,7 +1688,6 @@ public class LauncherApps {
boolean replacing;
UserHandle user;
List<ShortcutInfo> shortcuts;
- float mLoadingProgress;
}
public CallbackMessageHandler(Looper looper, LauncherApps.Callback callback) {
@@ -1752,10 +1727,6 @@ public class LauncherApps {
case MSG_SHORTCUT_CHANGED:
mCallback.onShortcutsChanged(info.packageName, info.shortcuts, info.user);
break;
- case MSG_LOADING_PROGRESS_CHANGED:
- mCallback.onPackageProgressChanged(info.packageName, info.user,
- info.mLoadingProgress);
- break;
}
}
@@ -1822,15 +1793,6 @@ public class LauncherApps {
info.shortcuts = shortcuts;
obtainMessage(MSG_SHORTCUT_CHANGED, info).sendToTarget();
}
-
- public void postOnPackageProgressChanged(UserHandle user, String packageName,
- float progress) {
- CallbackInfo info = new CallbackInfo();
- info.packageName = packageName;
- info.user = user;
- info.mLoadingProgress = progress;
- obtainMessage(MSG_LOADING_PROGRESS_CHANGED, info).sendToTarget();
- }
}
/**
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index 923f8cb38d38..72499d54cfed 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -3790,8 +3790,8 @@ public abstract class PackageManager {
* @hide
*/
@IntDef({UNSTARTABLE_REASON_UNKNOWN,
- UNSTARTABLE_REASON_CONNECTION_ERROR,
- UNSTARTABLE_REASON_INSUFFICIENT_STORAGE
+ UNSTARTABLE_REASON_DATALOADER_TRANSPORT,
+ UNSTARTABLE_REASON_DATALOADER_STORAGE
})
@Retention(RetentionPolicy.SOURCE)
public @interface UnstartableReason {}
@@ -3800,20 +3800,23 @@ public abstract class PackageManager {
* Unstartable state with no root cause specified. E.g., data loader seeing missing pages but
* unclear about the cause. This corresponds to a generic alert window shown to the user when
* the user attempts to launch the app.
+ * @hide
*/
public static final int UNSTARTABLE_REASON_UNKNOWN = 0;
/**
- * Unstartable state due to connection issues that interrupt package loading.
- * This corresponds to an alert window shown to the user indicating connection errors.
+ * Unstartable state after hint from dataloader of issues with the transport layer.
+ * This corresponds to an alert window shown to the user indicating network errors.
+ * @hide
*/
- public static final int UNSTARTABLE_REASON_CONNECTION_ERROR = 1;
+ public static final int UNSTARTABLE_REASON_DATALOADER_TRANSPORT = 1;
/**
* Unstartable state after encountering storage limitations.
* This corresponds to an alert window indicating limited storage.
+ * @hide
*/
- public static final int UNSTARTABLE_REASON_INSUFFICIENT_STORAGE = 2;
+ public static final int UNSTARTABLE_REASON_DATALOADER_STORAGE = 2;
/** {@hide} */
public int getUserId() {
diff --git a/core/java/com/android/internal/content/PackageMonitor.java b/core/java/com/android/internal/content/PackageMonitor.java
index af666d87d6f1..3682b7bcd891 100644
--- a/core/java/com/android/internal/content/PackageMonitor.java
+++ b/core/java/com/android/internal/content/PackageMonitor.java
@@ -37,7 +37,6 @@ import java.util.Objects;
* updating, and disappearing and reappearing on the SD card.
*/
public abstract class PackageMonitor extends android.content.BroadcastReceiver {
- static final String TAG = "PackageMonitor";
static final IntentFilter sPackageFilt = new IntentFilter();
static final IntentFilter sNonDataFilt = new IntentFilter();
static final IntentFilter sExternalFilt = new IntentFilter();
@@ -49,9 +48,6 @@ public abstract class PackageMonitor extends android.content.BroadcastReceiver {
sPackageFilt.addAction(Intent.ACTION_QUERY_PACKAGE_RESTART);
sPackageFilt.addAction(Intent.ACTION_PACKAGE_RESTARTED);
sPackageFilt.addAction(Intent.ACTION_PACKAGE_DATA_CLEARED);
- sPackageFilt.addAction(Intent.ACTION_PACKAGE_STARTABLE);
- sPackageFilt.addAction(Intent.ACTION_PACKAGE_UNSTARTABLE);
- sPackageFilt.addAction(Intent.ACTION_PACKAGE_FULLY_LOADED);
sPackageFilt.addDataScheme("package");
sNonDataFilt.addAction(Intent.ACTION_UID_REMOVED);
sNonDataFilt.addAction(Intent.ACTION_USER_STOPPED);
@@ -309,13 +305,6 @@ public abstract class PackageMonitor extends android.content.BroadcastReceiver {
public void onPackageDataCleared(String packageName, int uid) {
}
- /**
- * Callback to indicate the package's state has changed.
- * @param packageName Name of an installed package
- * @param uid The UID the package runs under.
- */
- public void onPackageStateChanged(String packageName, int uid) {}
-
public int getChangingUserId() {
return mChangeUserId;
}
@@ -463,21 +452,12 @@ public abstract class PackageMonitor extends android.content.BroadcastReceiver {
String[] pkgList = intent.getStringArrayExtra(Intent.EXTRA_CHANGED_PACKAGE_LIST);
mSomePackagesChanged = true;
onPackagesUnsuspended(pkgList);
- } else if (Intent.ACTION_PACKAGE_STARTABLE.equals(action)
- || Intent.ACTION_PACKAGE_UNSTARTABLE.equals(action)
- || Intent.ACTION_PACKAGE_FULLY_LOADED.equals(action)) {
- String pkg = intent.getStringExtra(Intent.EXTRA_PACKAGE_NAME);
- int uid = intent.getIntExtra(Intent.EXTRA_UID, 0);
- mSomePackagesChanged = false;
- if (pkg != null) {
- onPackageStateChanged(pkg, uid);
- }
}
if (mSomePackagesChanged) {
onSomePackagesChanged();
}
-
+
onFinishPackageChanges();
mChangeUserId = UserHandle.USER_NULL;
}
diff --git a/non-updatable-api/current.txt b/non-updatable-api/current.txt
index fb85c7c99053..74c79d76bb24 100644
--- a/non-updatable-api/current.txt
+++ b/non-updatable-api/current.txt
@@ -10668,15 +10668,12 @@ package android.content {
field public static final String ACTION_PACKAGE_CHANGED = "android.intent.action.PACKAGE_CHANGED";
field public static final String ACTION_PACKAGE_DATA_CLEARED = "android.intent.action.PACKAGE_DATA_CLEARED";
field public static final String ACTION_PACKAGE_FIRST_LAUNCH = "android.intent.action.PACKAGE_FIRST_LAUNCH";
- field public static final String ACTION_PACKAGE_FULLY_LOADED = "android.intent.action.PACKAGE_FULLY_LOADED";
field public static final String ACTION_PACKAGE_FULLY_REMOVED = "android.intent.action.PACKAGE_FULLY_REMOVED";
field @Deprecated public static final String ACTION_PACKAGE_INSTALL = "android.intent.action.PACKAGE_INSTALL";
field public static final String ACTION_PACKAGE_NEEDS_VERIFICATION = "android.intent.action.PACKAGE_NEEDS_VERIFICATION";
field public static final String ACTION_PACKAGE_REMOVED = "android.intent.action.PACKAGE_REMOVED";
field public static final String ACTION_PACKAGE_REPLACED = "android.intent.action.PACKAGE_REPLACED";
field public static final String ACTION_PACKAGE_RESTARTED = "android.intent.action.PACKAGE_RESTARTED";
- field public static final String ACTION_PACKAGE_STARTABLE = "android.intent.action.PACKAGE_STARTABLE";
- field public static final String ACTION_PACKAGE_UNSTARTABLE = "android.intent.action.PACKAGE_UNSTARTABLE";
field public static final String ACTION_PACKAGE_VERIFIED = "android.intent.action.PACKAGE_VERIFIED";
field public static final String ACTION_PASTE = "android.intent.action.PASTE";
field public static final String ACTION_PICK = "android.intent.action.PICK";
@@ -10841,7 +10838,6 @@ package android.content {
field public static final String EXTRA_TIMEZONE = "time-zone";
field public static final String EXTRA_TITLE = "android.intent.extra.TITLE";
field public static final String EXTRA_UID = "android.intent.extra.UID";
- field public static final String EXTRA_UNSTARTABLE_REASON = "android.intent.extra.UNSTARTABLE_REASON";
field public static final String EXTRA_USER = "android.intent.extra.USER";
field public static final int FILL_IN_ACTION = 1; // 0x1
field public static final int FILL_IN_CATEGORIES = 4; // 0x4
@@ -11715,10 +11711,7 @@ package android.content.pm {
method public android.graphics.drawable.Drawable getIcon(int);
method public CharSequence getLabel();
method public String getName();
- method public float getProgress();
method public android.os.UserHandle getUser();
- method public boolean isLoading();
- method public boolean isStartable();
}
public class LauncherApps {
@@ -11758,7 +11751,6 @@ package android.content.pm {
ctor public LauncherApps.Callback();
method public abstract void onPackageAdded(String, android.os.UserHandle);
method public abstract void onPackageChanged(String, android.os.UserHandle);
- method public void onPackageProgressChanged(@NonNull String, @NonNull android.os.UserHandle, float);
method public abstract void onPackageRemoved(String, android.os.UserHandle);
method public abstract void onPackagesAvailable(String[], android.os.UserHandle, boolean);
method public void onPackagesSuspended(String[], android.os.UserHandle);
@@ -12305,9 +12297,6 @@ package android.content.pm {
field public static final int SYNCHRONOUS = 2; // 0x2
field @Nullable public static final java.util.List<java.security.cert.Certificate> TRUST_ALL;
field @NonNull public static final java.util.List<java.security.cert.Certificate> TRUST_NONE;
- field public static final int UNSTARTABLE_REASON_CONNECTION_ERROR = 1; // 0x1
- field public static final int UNSTARTABLE_REASON_INSUFFICIENT_STORAGE = 2; // 0x2
- field public static final int UNSTARTABLE_REASON_UNKNOWN = 0; // 0x0
field public static final int VERIFICATION_ALLOW = 1; // 0x1
field public static final int VERIFICATION_REJECT = -1; // 0xffffffff
field public static final int VERSION_CODE_HIGHEST = -1; // 0xffffffff
diff --git a/services/core/java/android/content/pm/PackageManagerInternal.java b/services/core/java/android/content/pm/PackageManagerInternal.java
index 72a21522b545..43c54b4a97b3 100644
--- a/services/core/java/android/content/pm/PackageManagerInternal.java
+++ b/services/core/java/android/content/pm/PackageManagerInternal.java
@@ -1106,17 +1106,4 @@ public abstract class PackageManagerInternal {
}
}
- /**
- * Retrieve all of the information we know about a particular activity class including its
- * package states.
- *
- * @param packageName a specific package
- * @param filterCallingUid The results will be filtered in the context of this UID instead
- * of the calling UID.
- * @param userId The user for whom the package is installed
- * @return IncrementalStatesInfo that contains information about package states.
- */
- public abstract IncrementalStatesInfo getIncrementalStatesInfo(String packageName,
- int filterCallingUid, int userId);
-
}
diff --git a/services/core/java/com/android/server/pm/IncrementalStates.java b/services/core/java/com/android/server/pm/IncrementalStates.java
index ababb8365c4f..dda5fafb8cb1 100644
--- a/services/core/java/com/android/server/pm/IncrementalStates.java
+++ b/services/core/java/com/android/server/pm/IncrementalStates.java
@@ -376,10 +376,10 @@ public final class IncrementalStates {
case IDataLoaderStatusListener.STREAM_INTEGRITY_ERROR:
// fall through
case IDataLoaderStatusListener.STREAM_SOURCE_ERROR: {
- return PackageManager.UNSTARTABLE_REASON_CONNECTION_ERROR;
+ return PackageManager.UNSTARTABLE_REASON_DATALOADER_TRANSPORT;
}
case IDataLoaderStatusListener.STREAM_STORAGE_ERROR: {
- return PackageManager.UNSTARTABLE_REASON_INSUFFICIENT_STORAGE;
+ return PackageManager.UNSTARTABLE_REASON_DATALOADER_STORAGE;
}
default:
return PackageManager.UNSTARTABLE_REASON_UNKNOWN;
diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java
index f8bb564f9021..9bb6f7892972 100644
--- a/services/core/java/com/android/server/pm/LauncherAppsService.java
+++ b/services/core/java/com/android/server/pm/LauncherAppsService.java
@@ -44,8 +44,6 @@ import android.content.pm.IOnAppsChangedListener;
import android.content.pm.IPackageInstallerCallback;
import android.content.pm.IPackageManager;
import android.content.pm.IShortcutChangeCallback;
-import android.content.pm.IncrementalStatesInfo;
-import android.content.pm.LauncherActivityInfoInternal;
import android.content.pm.LauncherApps;
import android.content.pm.LauncherApps.ShortcutQuery;
import android.content.pm.PackageInfo;
@@ -371,13 +369,18 @@ public class LauncherAppsService extends SystemService {
}
}
- private LauncherActivityInfoInternal getHiddenAppActivityInfo(String packageName,
- int callingUid, UserHandle user) {
+ private ResolveInfo getHiddenAppActivityInfo(String packageName, int callingUid,
+ UserHandle user) {
Intent intent = new Intent();
intent.setComponent(new ComponentName(packageName,
PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME));
- final List<LauncherActivityInfoInternal> apps = queryIntentLauncherActivities(intent,
- callingUid, user);
+ final PackageManagerInternal pmInt =
+ LocalServices.getService(PackageManagerInternal.class);
+ List<ResolveInfo> apps = pmInt.queryIntentActivities(intent,
+ intent.resolveTypeIfNeeded(mContext.getContentResolver()),
+ PackageManager.MATCH_DIRECT_BOOT_AWARE
+ | PackageManager.MATCH_DIRECT_BOOT_UNAWARE,
+ callingUid, user.getIdentifier());
if (apps.size() > 0) {
return apps.get(0);
}
@@ -396,14 +399,14 @@ public class LauncherAppsService extends SystemService {
}
@Override
- public ParceledListSlice<LauncherActivityInfoInternal> getLauncherActivities(
- String callingPackage, String packageName, UserHandle user) throws RemoteException {
- ParceledListSlice<LauncherActivityInfoInternal> launcherActivities =
- queryActivitiesForUser(callingPackage,
- new Intent(Intent.ACTION_MAIN)
- .addCategory(Intent.CATEGORY_LAUNCHER)
- .setPackage(packageName),
- user);
+ public ParceledListSlice<ResolveInfo> getLauncherActivities(String callingPackage,
+ String packageName, UserHandle user) throws RemoteException {
+ ParceledListSlice<ResolveInfo> launcherActivities = queryActivitiesForUser(
+ callingPackage,
+ new Intent(Intent.ACTION_MAIN)
+ .addCategory(Intent.CATEGORY_LAUNCHER)
+ .setPackage(packageName),
+ user);
if (Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.SHOW_HIDDEN_LAUNCHER_ICON_APPS_ENABLED, 1) == 0) {
return launcherActivities;
@@ -425,8 +428,7 @@ public class LauncherAppsService extends SystemService {
return launcherActivities;
}
- final ArrayList<LauncherActivityInfoInternal> result = new ArrayList<>(
- launcherActivities.getList());
+ final ArrayList<ResolveInfo> result = new ArrayList<>(launcherActivities.getList());
final PackageManagerInternal pmInt =
LocalServices.getService(PackageManagerInternal.class);
if (packageName != null) {
@@ -438,8 +440,7 @@ public class LauncherAppsService extends SystemService {
ApplicationInfo appInfo = pmInt.getApplicationInfo(packageName, /*flags*/ 0,
callingUid, user.getIdentifier());
if (shouldShowSyntheticActivity(user, appInfo)) {
- LauncherActivityInfoInternal info = getHiddenAppActivityInfo(packageName,
- callingUid, user);
+ ResolveInfo info = getHiddenAppActivityInfo(packageName, callingUid, user);
if (info != null) {
result.add(info);
}
@@ -447,8 +448,8 @@ public class LauncherAppsService extends SystemService {
return new ParceledListSlice<>(result);
}
final HashSet<String> visiblePackages = new HashSet<>();
- for (LauncherActivityInfoInternal info : result) {
- visiblePackages.add(info.getActivityInfo().packageName);
+ for (ResolveInfo info : result) {
+ visiblePackages.add(info.activityInfo.packageName);
}
List<ApplicationInfo> installedPackages = pmInt.getInstalledApplications(0,
user.getIdentifier(), callingUid);
@@ -457,8 +458,8 @@ public class LauncherAppsService extends SystemService {
if (!shouldShowSyntheticActivity(user, applicationInfo)) {
continue;
}
- LauncherActivityInfoInternal info = getHiddenAppActivityInfo(
- applicationInfo.packageName, callingUid, user);
+ ResolveInfo info = getHiddenAppActivityInfo(applicationInfo.packageName,
+ callingUid, user);
if (info != null) {
result.add(info);
}
@@ -532,7 +533,7 @@ public class LauncherAppsService extends SystemService {
}
@Override
- public LauncherActivityInfoInternal resolveLauncherActivityInternal(
+ public ActivityInfo resolveActivity(
String callingPackage, ComponentName component, UserHandle user)
throws RemoteException {
if (!canAccessProfile(user.getIdentifier(), "Cannot resolve activity")) {
@@ -544,18 +545,10 @@ public class LauncherAppsService extends SystemService {
try {
final PackageManagerInternal pmInt =
LocalServices.getService(PackageManagerInternal.class);
- final ActivityInfo activityInfo = pmInt.getActivityInfo(component,
+ return pmInt.getActivityInfo(component,
PackageManager.MATCH_DIRECT_BOOT_AWARE
| PackageManager.MATCH_DIRECT_BOOT_UNAWARE,
callingUid, user.getIdentifier());
- final IncrementalStatesInfo incrementalStatesInfo;
- if (component.getPackageName() == null) {
- incrementalStatesInfo = null;
- } else {
- incrementalStatesInfo = pmInt.getIncrementalStatesInfo(
- component.getPackageName(), callingUid, user.getIdentifier());
- }
- return new LauncherActivityInfoInternal(activityInfo, incrementalStatesInfo);
} finally {
Binder.restoreCallingIdentity(ident);
}
@@ -569,47 +562,28 @@ public class LauncherAppsService extends SystemService {
new Intent(Intent.ACTION_CREATE_SHORTCUT).setPackage(packageName), user);
}
- private ParceledListSlice<LauncherActivityInfoInternal> queryActivitiesForUser(
- String callingPackage, Intent intent, UserHandle user) {
+ private ParceledListSlice<ResolveInfo> queryActivitiesForUser(String callingPackage,
+ Intent intent, UserHandle user) {
if (!canAccessProfile(user.getIdentifier(), "Cannot retrieve activities")) {
return null;
}
+
final int callingUid = injectBinderCallingUid();
long ident = injectClearCallingIdentity();
try {
- return new ParceledListSlice<>(queryIntentLauncherActivities(intent, callingUid,
- user));
+ final PackageManagerInternal pmInt =
+ LocalServices.getService(PackageManagerInternal.class);
+ List<ResolveInfo> apps = pmInt.queryIntentActivities(intent,
+ intent.resolveTypeIfNeeded(mContext.getContentResolver()),
+ PackageManager.MATCH_DIRECT_BOOT_AWARE
+ | PackageManager.MATCH_DIRECT_BOOT_UNAWARE,
+ callingUid, user.getIdentifier());
+ return new ParceledListSlice<>(apps);
} finally {
injectRestoreCallingIdentity(ident);
}
}
- private List<LauncherActivityInfoInternal> queryIntentLauncherActivities(
- Intent intent, int callingUid, UserHandle user) {
- final PackageManagerInternal pmInt =
- LocalServices.getService(PackageManagerInternal.class);
- List<ResolveInfo> apps = pmInt.queryIntentActivities(intent,
- intent.resolveTypeIfNeeded(mContext.getContentResolver()),
- PackageManager.MATCH_DIRECT_BOOT_AWARE
- | PackageManager.MATCH_DIRECT_BOOT_UNAWARE,
- callingUid, user.getIdentifier());
- final int numResolveInfos = apps.size();
- List<LauncherActivityInfoInternal> results = new ArrayList<>();
- for (int i = 0; i < numResolveInfos; i++) {
- final ResolveInfo ri = apps.get(i);
- final IncrementalStatesInfo incrementalStatesInfo;
- if (ri.resolvePackageName == null) {
- incrementalStatesInfo = null;
- } else {
- incrementalStatesInfo = pmInt.getIncrementalStatesInfo(
- ri.resolvePackageName, callingUid, user.getIdentifier());
- }
- results.add(new LauncherActivityInfoInternal(ri.activityInfo,
- incrementalStatesInfo));
- }
- return results;
- }
-
@Override
public IntentSender getShortcutConfigActivityIntent(String callingPackage,
ComponentName component, UserHandle user) throws RemoteException {
@@ -1264,10 +1238,7 @@ public class LauncherAppsService extends SystemService {
} finally {
mListeners.finishBroadcast();
}
- PackageManagerInternal pmi = LocalServices.getService(PackageManagerInternal.class);
- pmi.registerInstalledLoadingProgressCallback(packageName,
- new PackageLoadingProgressCallback(packageName, user),
- user.getIdentifier());
+
super.onPackageAdded(packageName, uid);
}
@@ -1295,11 +1266,6 @@ public class LauncherAppsService extends SystemService {
@Override
public void onPackageModified(String packageName) {
- onPackageChanged(packageName);
- super.onPackageModified(packageName);
- }
-
- private void onPackageChanged(String packageName) {
UserHandle user = new UserHandle(getChangingUserId());
final int n = mListeners.beginBroadcast();
try {
@@ -1316,6 +1282,8 @@ public class LauncherAppsService extends SystemService {
} finally {
mListeners.finishBroadcast();
}
+
+ super.onPackageModified(packageName);
}
@Override
@@ -1467,7 +1435,6 @@ public class LauncherAppsService extends SystemService {
} catch (RemoteException re) {
Slog.d(TAG, "Callback failed ", re);
}
-
}
} catch (RuntimeException e) {
// When the user is locked we get IllegalState, so just catch all.
@@ -1476,12 +1443,6 @@ public class LauncherAppsService extends SystemService {
mListeners.finishBroadcast();
}
}
-
- @Override
- public void onPackageStateChanged(String packageName, int uid) {
- onPackageChanged(packageName);
- super.onPackageStateChanged(packageName, uid);
- }
}
class PackageCallbackList<T extends IInterface> extends RemoteCallbackList<T> {
@@ -1490,38 +1451,5 @@ public class LauncherAppsService extends SystemService {
checkCallbackCount();
}
}
-
- class PackageLoadingProgressCallback extends
- PackageManagerInternal.InstalledLoadingProgressCallback {
- private String mPackageName;
- private UserHandle mUser;
-
- PackageLoadingProgressCallback(String packageName, UserHandle user) {
- super(mCallbackHandler);
- mPackageName = packageName;
- mUser = user;
- }
-
- @Override
- public void onLoadingProgressChanged(float progress) {
- final int n = mListeners.beginBroadcast();
- try {
- for (int i = 0; i < n; i++) {
- IOnAppsChangedListener listener = mListeners.getBroadcastItem(i);
- BroadcastCookie cookie = (BroadcastCookie) mListeners.getBroadcastCookie(i);
- if (!isEnabledProfileOf(cookie.user, mUser, "onLoadingProgressChanged")) {
- continue;
- }
- try {
- listener.onPackageProgressChanged(mUser, mPackageName, progress);
- } catch (RemoteException re) {
- Slog.d(TAG, "Callback failed ", re);
- }
- }
- } finally {
- mListeners.finishBroadcast();
- }
- }
- }
}
}
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 39423c71d757..d529f0e604f9 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -180,7 +180,6 @@ import android.content.pm.IPackageManager;
import android.content.pm.IPackageManagerNative;
import android.content.pm.IPackageMoveObserver;
import android.content.pm.IPackageStatsObserver;
-import android.content.pm.IncrementalStatesInfo;
import android.content.pm.InstallSourceInfo;
import android.content.pm.InstantAppInfo;
import android.content.pm.InstantAppRequest;
@@ -17334,7 +17333,7 @@ public class PackageManagerService extends IPackageManager.Stub
Bundle extras = new Bundle();
extras.putInt(Intent.EXTRA_UID, mUid);
extras.putString(Intent.EXTRA_PACKAGE_NAME, mPackageName);
- extras.putInt(Intent.EXTRA_UNSTARTABLE_REASON, reason);
+ extras.putInt(Intent.EXTRA_REASON, reason);
// send broadcast to users with this app installed
sendPackageBroadcast(Intent.ACTION_PACKAGE_UNSTARTABLE, mPackageName,
extras, 0 /*flags*/,
@@ -25659,20 +25658,8 @@ public class PackageManagerService extends IPackageManager.Stub
return mIncrementalManager.unregisterCallback(ps.getPathString(),
(IPackageLoadingProgressCallback) callback.getBinder());
}
-
- @Override
- public IncrementalStatesInfo getIncrementalStatesInfo(
- @NonNull String packageName, int filterCallingUid, int userId) {
- final PackageSetting ps = getPackageSettingForUser(packageName, filterCallingUid,
- userId);
- if (ps == null) {
- return null;
- }
- return ps.getIncrementalStates();
- }
}
-
@GuardedBy("mLock")
private SparseArray<String> getAppsWithSharedUserIdsLocked() {
final SparseArray<String> sharedUserIds = new SparseArray<>();
diff --git a/services/tests/servicestests/src/com/android/server/pm/IncrementalStatesTest.java b/services/tests/servicestests/src/com/android/server/pm/IncrementalStatesTest.java
index c4c2f68e8219..62e135b09593 100644
--- a/services/tests/servicestests/src/com/android/server/pm/IncrementalStatesTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/IncrementalStatesTest.java
@@ -146,7 +146,7 @@ public class IncrementalStatesTest {
// Test that package is now unstartable
assertTrue(mUnstartableCalled.block(WAIT_TIMEOUT_MILLIS));
assertFalse(mIncrementalStates.isStartable());
- assertEquals(PackageManager.UNSTARTABLE_REASON_CONNECTION_ERROR,
+ assertEquals(PackageManager.UNSTARTABLE_REASON_DATALOADER_TRANSPORT,
mUnstartableReason.get());
}
@@ -160,7 +160,7 @@ public class IncrementalStatesTest {
// Test that package is now unstartable
assertTrue(mUnstartableCalled.block(WAIT_TIMEOUT_MILLIS));
assertFalse(mIncrementalStates.isStartable());
- assertEquals(PackageManager.UNSTARTABLE_REASON_CONNECTION_ERROR,
+ assertEquals(PackageManager.UNSTARTABLE_REASON_DATALOADER_TRANSPORT,
mUnstartableReason.get());
}
@@ -181,7 +181,7 @@ public class IncrementalStatesTest {
// Test that package is now unstartable
assertTrue(mUnstartableCalled.block(WAIT_TIMEOUT_MILLIS));
assertFalse(mIncrementalStates.isStartable());
- assertEquals(PackageManager.UNSTARTABLE_REASON_INSUFFICIENT_STORAGE,
+ assertEquals(PackageManager.UNSTARTABLE_REASON_DATALOADER_STORAGE,
mUnstartableReason.get());
}
@@ -202,7 +202,7 @@ public class IncrementalStatesTest {
// Test that package is now unstartable
assertTrue(mUnstartableCalled.block(WAIT_TIMEOUT_MILLIS));
assertFalse(mIncrementalStates.isStartable());
- assertEquals(PackageManager.UNSTARTABLE_REASON_INSUFFICIENT_STORAGE,
+ assertEquals(PackageManager.UNSTARTABLE_REASON_DATALOADER_STORAGE,
mUnstartableReason.get());
}