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

Commit e80539a4 authored by Song Chun Fan's avatar Song Chun Fan Committed by Android (Google) Code Review
Browse files

Merge "Clear enabled/disabled components when uninstalled" into main

parents 5cadfad5 15a0bb3e
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ import android.os.RemoteException;
import android.os.UserHandle;
import android.os.UserManager;
import android.text.TextUtils;
import android.util.ArraySet;
import android.util.EventLog;
import android.util.Log;
import android.util.Slog;
@@ -561,6 +562,17 @@ final class DeletePackageHelper {
                Slog.d(TAG, "Marking package:" + ps.getPackageName()
                        + " uninstalled for user:" + nextUserId);
            }

            // Keep enabled and disabled components in case of DELETE_KEEP_DATA
            ArraySet<String> enabledComponents = null;
            ArraySet<String> disabledComponents = null;
            if ((flags & PackageManager.DELETE_KEEP_DATA) != 0) {
                enabledComponents = new ArraySet<String>(
                        ps.readUserState(nextUserId).getEnabledComponents());
                disabledComponents = new ArraySet<String>(
                        ps.readUserState(nextUserId).getDisabledComponents());
            }

            // Preserve ArchiveState if this is not a full uninstall
            ArchiveState archiveState =
                    (flags & DELETE_KEEP_DATA) == 0
@@ -580,8 +592,8 @@ final class DeletePackageHelper {
                    false /*instantApp*/,
                    false /*virtualPreload*/,
                    null /*lastDisableAppCaller*/,
                    null /*enabledComponents*/,
                    null /*disabledComponents*/,
                    enabledComponents,
                    disabledComponents,
                    PackageManager.INSTALL_REASON_UNKNOWN,
                    PackageManager.UNINSTALL_REASON_UNKNOWN,
                    null /*harmfulAppWarning*/,
+6 −8
Original line number Diff line number Diff line
@@ -393,29 +393,27 @@ public class PackageUserStateImpl extends WatchableImpl implements PackageUserSt
    }

    public @NonNull PackageUserStateImpl setDisabledComponents(@Nullable ArraySet<String> value) {
        if (value == null) {
            return this;
        }
        if (mDisabledComponentsWatched == null) {
            mDisabledComponentsWatched = new WatchedArraySet<>();
            mDisabledComponentsWatched.registerObserver(mSnapshot);
        }
        mDisabledComponentsWatched.clear();
        if (value != null) {
            mDisabledComponentsWatched.addAll(value);
        }
        onChanged();
        return this;
    }

    public @NonNull PackageUserStateImpl setEnabledComponents(@Nullable ArraySet<String> value) {
        if (value == null) {
            return this;
        }
        if (mEnabledComponentsWatched == null) {
            mEnabledComponentsWatched = new WatchedArraySet<>();
            mEnabledComponentsWatched.registerObserver(mSnapshot);
        }
        mEnabledComponentsWatched.clear();
        if (value != null) {
            mEnabledComponentsWatched.addAll(value);
        }
        onChanged();
        return this;
    }