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

Commit e08677a6 authored by Pavel Grafov's avatar Pavel Grafov Committed by Android (Google) Code Review
Browse files

Merge "Ensure user control disabled clears stopped state" into main

parents 5bd63b45 21c781e1
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -216,6 +216,16 @@ flag {
  }
}

flag {
  name: "disallow_user_control_stopped_state_fix"
  namespace: "enterprise"
  description: "Ensure DPM.setUserControlDisabledPackages() clears FLAG_STOPPED for the app"
  bug: "330688482"
  metadata {
    purpose: PURPOSE_BUGFIX
  }
}

flag {
  name: "esim_management_ux_enabled"
  namespace: "enterprise"
+14 −6
Original line number Diff line number Diff line
@@ -196,19 +196,27 @@ final class PolicyEnforcerCallbacks {
        Binder.withCleanCallingIdentity(() -> {
            PackageManagerInternal pmi =
                    LocalServices.getService(PackageManagerInternal.class);
            AppOpsManager appOpsManager = context.getSystemService(AppOpsManager.class);

            pmi.setOwnerProtectedPackages(userId,
                    packages == null ? null : packages.stream().toList());
            LocalServices.getService(UsageStatsManagerInternal.class)
                    .setAdminProtectedPackages(
                            packages == null ? null : new ArraySet<>(packages), userId);

            if (Flags.disallowUserControlBgUsageFix()) {
                if (packages == null) {
            if (packages == null || packages.isEmpty()) {
                return;
            }
                final AppOpsManager appOpsManager = context.getSystemService(AppOpsManager.class);
                resolveUsers(userId).forEach(
                        user -> setBgUsageAppOp(packages, pmi, user, appOpsManager));

            for (int user : resolveUsers(userId)) {
                if (Flags.disallowUserControlBgUsageFix()) {
                    setBgUsageAppOp(packages, pmi, user, appOpsManager);
                }
                if (Flags.disallowUserControlStoppedStateFix()) {
                    for (String packageName : packages) {
                        pmi.setPackageStoppedState(packageName, false, user);
                    }
                }
            }
        });
        return true;