Merge "[pm] add DATA_LOADER_TYPE to broadcast intent for fresh installs" into rvc-dev
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user