Merge "[pm] add DATA_LOADER_TYPE to broadcast intent for fresh installs" into rvc-dev am: c0ddf76bc5

Change-Id: I1efbdb5fff7ee75c540101aaaf98757903182af8
This commit is contained in:
Songchun Fan
2020-05-04 17:13:14 +00:00
committed by Automerger Merge Worker
2 changed files with 15 additions and 9 deletions

View File

@@ -2177,7 +2177,8 @@ public class PackageManagerService extends IPackageManager.Stub
int appId = UserHandle.getAppId(res.uid);
boolean isSystem = res.pkg.isSystem();
sendPackageAddedForNewUsers(packageName, isSystem || virtualPreload,
virtualPreload /*startReceiver*/, appId, firstUserIds, firstInstantUserIds);
virtualPreload /*startReceiver*/, appId, firstUserIds, firstInstantUserIds,
dataLoaderType);
// Send added for users that don't see the package for the first time
Bundle extras = new Bundle(1);
@@ -12725,13 +12726,14 @@ public class PackageManagerService extends IPackageManager.Stub
}
private void sendPackageAddedForUser(String packageName, PackageSetting pkgSetting,
int userId) {
int userId, int dataLoaderType) {
final boolean isSystem = isSystemApp(pkgSetting) || isUpdatedSystemApp(pkgSetting);
final boolean isInstantApp = pkgSetting.getInstantApp(userId);
final int[] userIds = isInstantApp ? EMPTY_INT_ARRAY : new int[] { userId };
final int[] instantUserIds = isInstantApp ? new int[] { userId } : EMPTY_INT_ARRAY;
sendPackageAddedForNewUsers(packageName, isSystem /*sendBootCompleted*/,
false /*startReceiver*/, pkgSetting.appId, userIds, instantUserIds);
false /*startReceiver*/, pkgSetting.appId, userIds, instantUserIds,
dataLoaderType);
// Send a session commit broadcast
final PackageInstaller.SessionInfo info = new PackageInstaller.SessionInfo();
@@ -12742,7 +12744,8 @@ public class PackageManagerService extends IPackageManager.Stub
@Override
public void sendPackageAddedForNewUsers(String packageName, boolean sendBootCompleted,
boolean includeStopped, @AppIdInt int appId, int[] userIds, int[] instantUserIds) {
boolean includeStopped, @AppIdInt int appId, int[] userIds, int[] instantUserIds,
int dataLoaderType) {
if (ArrayUtils.isEmpty(userIds) && ArrayUtils.isEmpty(instantUserIds)) {
return;
}
@@ -12751,6 +12754,7 @@ public class PackageManagerService extends IPackageManager.Stub
final int uid = UserHandle.getUid(
(ArrayUtils.isEmpty(userIds) ? instantUserIds[0] : userIds[0]), appId);
extras.putInt(Intent.EXTRA_UID, uid);
extras.putInt(PackageInstaller.EXTRA_DATA_LOADER_TYPE, dataLoaderType);
sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED,
packageName, extras, 0, null, null, userIds, instantUserIds,
@@ -12868,7 +12872,7 @@ public class PackageManagerService extends IPackageManager.Stub
}
}
if (sendAdded) {
sendPackageAddedForUser(packageName, pkgSetting, userId);
sendPackageAddedForUser(packageName, pkgSetting, userId, DataLoaderType.NONE);
return true;
}
if (sendRemoved) {
@@ -13101,7 +13105,7 @@ public class PackageManagerService extends IPackageManager.Stub
prepareAppDataAfterInstallLIF(pkgSetting.pkg);
}
}
sendPackageAddedForUser(packageName, pkgSetting, userId);
sendPackageAddedForUser(packageName, pkgSetting, userId, DataLoaderType.NONE);
synchronized (mLock) {
updateSequenceNumberLP(pkgSetting, new int[]{ userId });
}
@@ -18406,7 +18410,8 @@ public class PackageManagerService extends IPackageManager.Stub
PackageInstalledInfo installedInfo = appearedChildPackages.valueAt(i);
packageSender.sendPackageAddedForNewUsers(installedInfo.name,
true /*sendBootCompleted*/, false /*startReceiver*/,
UserHandle.getAppId(installedInfo.uid), installedInfo.newUsers, null);
UserHandle.getAppId(installedInfo.uid), installedInfo.newUsers, null,
DataLoaderType.NONE);
}
}
@@ -25390,7 +25395,8 @@ interface PackageSender {
final IIntentReceiver finishedReceiver, final int[] userIds, int[] instantUserIds,
@Nullable SparseArray<int[]> broadcastWhitelist);
void sendPackageAddedForNewUsers(String packageName, boolean sendBootCompleted,
boolean includeStopped, int appId, int[] userIds, int[] instantUserIds);
boolean includeStopped, int appId, int[] userIds, int[] instantUserIds,
int dataLoaderType);
void notifyPackageAdded(String packageName, int uid);
void notifyPackageChanged(String packageName, int uid);
void notifyPackageRemoved(String packageName, int uid);

View File

@@ -53,7 +53,7 @@ public class PackageManagerServiceTest {
public void sendPackageAddedForNewUsers(String packageName,
boolean sendBootComplete, boolean includeStopped, int appId,
int[] userIds, int[] instantUserIds) {
int[] userIds, int[] instantUserIds, int dataLoaderType) {
}
@Override