Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c0ddf76b authored by Songchun Fan's avatar Songchun Fan Committed by Android (Google) Code Review
Browse files

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

parents a18b3ea7 64435d51
Loading
Loading
Loading
Loading
+14 −8
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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