Merge "[pm] add DATA_LOADER_TYPE to broadcast intent for fresh installs" into rvc-dev am: c0ddf76bc5 am: 3169c8e4b9 am: 7f1961429d
Change-Id: I78f9d1034da98c45ccd8bab14357558c0def9a51
This commit is contained in:
@@ -2177,7 +2177,8 @@ public class PackageManagerService extends IPackageManager.Stub
|
|||||||
int appId = UserHandle.getAppId(res.uid);
|
int appId = UserHandle.getAppId(res.uid);
|
||||||
boolean isSystem = res.pkg.isSystem();
|
boolean isSystem = res.pkg.isSystem();
|
||||||
sendPackageAddedForNewUsers(packageName, isSystem || virtualPreload,
|
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
|
// Send added for users that don't see the package for the first time
|
||||||
Bundle extras = new Bundle(1);
|
Bundle extras = new Bundle(1);
|
||||||
@@ -12725,13 +12726,14 @@ public class PackageManagerService extends IPackageManager.Stub
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void sendPackageAddedForUser(String packageName, PackageSetting pkgSetting,
|
private void sendPackageAddedForUser(String packageName, PackageSetting pkgSetting,
|
||||||
int userId) {
|
int userId, int dataLoaderType) {
|
||||||
final boolean isSystem = isSystemApp(pkgSetting) || isUpdatedSystemApp(pkgSetting);
|
final boolean isSystem = isSystemApp(pkgSetting) || isUpdatedSystemApp(pkgSetting);
|
||||||
final boolean isInstantApp = pkgSetting.getInstantApp(userId);
|
final boolean isInstantApp = pkgSetting.getInstantApp(userId);
|
||||||
final int[] userIds = isInstantApp ? EMPTY_INT_ARRAY : new int[] { userId };
|
final int[] userIds = isInstantApp ? EMPTY_INT_ARRAY : new int[] { userId };
|
||||||
final int[] instantUserIds = isInstantApp ? new int[] { userId } : EMPTY_INT_ARRAY;
|
final int[] instantUserIds = isInstantApp ? new int[] { userId } : EMPTY_INT_ARRAY;
|
||||||
sendPackageAddedForNewUsers(packageName, isSystem /*sendBootCompleted*/,
|
sendPackageAddedForNewUsers(packageName, isSystem /*sendBootCompleted*/,
|
||||||
false /*startReceiver*/, pkgSetting.appId, userIds, instantUserIds);
|
false /*startReceiver*/, pkgSetting.appId, userIds, instantUserIds,
|
||||||
|
dataLoaderType);
|
||||||
|
|
||||||
// Send a session commit broadcast
|
// Send a session commit broadcast
|
||||||
final PackageInstaller.SessionInfo info = new PackageInstaller.SessionInfo();
|
final PackageInstaller.SessionInfo info = new PackageInstaller.SessionInfo();
|
||||||
@@ -12742,7 +12744,8 @@ public class PackageManagerService extends IPackageManager.Stub
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendPackageAddedForNewUsers(String packageName, boolean sendBootCompleted,
|
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)) {
|
if (ArrayUtils.isEmpty(userIds) && ArrayUtils.isEmpty(instantUserIds)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -12751,6 +12754,7 @@ public class PackageManagerService extends IPackageManager.Stub
|
|||||||
final int uid = UserHandle.getUid(
|
final int uid = UserHandle.getUid(
|
||||||
(ArrayUtils.isEmpty(userIds) ? instantUserIds[0] : userIds[0]), appId);
|
(ArrayUtils.isEmpty(userIds) ? instantUserIds[0] : userIds[0]), appId);
|
||||||
extras.putInt(Intent.EXTRA_UID, uid);
|
extras.putInt(Intent.EXTRA_UID, uid);
|
||||||
|
extras.putInt(PackageInstaller.EXTRA_DATA_LOADER_TYPE, dataLoaderType);
|
||||||
|
|
||||||
sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED,
|
sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED,
|
||||||
packageName, extras, 0, null, null, userIds, instantUserIds,
|
packageName, extras, 0, null, null, userIds, instantUserIds,
|
||||||
@@ -12868,7 +12872,7 @@ public class PackageManagerService extends IPackageManager.Stub
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (sendAdded) {
|
if (sendAdded) {
|
||||||
sendPackageAddedForUser(packageName, pkgSetting, userId);
|
sendPackageAddedForUser(packageName, pkgSetting, userId, DataLoaderType.NONE);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (sendRemoved) {
|
if (sendRemoved) {
|
||||||
@@ -13101,7 +13105,7 @@ public class PackageManagerService extends IPackageManager.Stub
|
|||||||
prepareAppDataAfterInstallLIF(pkgSetting.pkg);
|
prepareAppDataAfterInstallLIF(pkgSetting.pkg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sendPackageAddedForUser(packageName, pkgSetting, userId);
|
sendPackageAddedForUser(packageName, pkgSetting, userId, DataLoaderType.NONE);
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
updateSequenceNumberLP(pkgSetting, new int[]{ userId });
|
updateSequenceNumberLP(pkgSetting, new int[]{ userId });
|
||||||
}
|
}
|
||||||
@@ -18406,7 +18410,8 @@ public class PackageManagerService extends IPackageManager.Stub
|
|||||||
PackageInstalledInfo installedInfo = appearedChildPackages.valueAt(i);
|
PackageInstalledInfo installedInfo = appearedChildPackages.valueAt(i);
|
||||||
packageSender.sendPackageAddedForNewUsers(installedInfo.name,
|
packageSender.sendPackageAddedForNewUsers(installedInfo.name,
|
||||||
true /*sendBootCompleted*/, false /*startReceiver*/,
|
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,
|
final IIntentReceiver finishedReceiver, final int[] userIds, int[] instantUserIds,
|
||||||
@Nullable SparseArray<int[]> broadcastWhitelist);
|
@Nullable SparseArray<int[]> broadcastWhitelist);
|
||||||
void sendPackageAddedForNewUsers(String packageName, boolean sendBootCompleted,
|
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 notifyPackageAdded(String packageName, int uid);
|
||||||
void notifyPackageChanged(String packageName, int uid);
|
void notifyPackageChanged(String packageName, int uid);
|
||||||
void notifyPackageRemoved(String packageName, int uid);
|
void notifyPackageRemoved(String packageName, int uid);
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ public class PackageManagerServiceTest {
|
|||||||
|
|
||||||
public void sendPackageAddedForNewUsers(String packageName,
|
public void sendPackageAddedForNewUsers(String packageName,
|
||||||
boolean sendBootComplete, boolean includeStopped, int appId,
|
boolean sendBootComplete, boolean includeStopped, int appId,
|
||||||
int[] userIds, int[] instantUserIds) {
|
int[] userIds, int[] instantUserIds, int dataLoaderType) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user