Guard against duplicate calls to setQuietModeEnabled

check if quiet mode is already in the desired state before calling
setQuietModeEnabled

Bug: 303722527
Bug: 293441361
Test: atest WorkModePreferenceControllerTest, atest
ManagedProfileQuietModeEnablerTest

Change-Id: I6a809b6f1b9a78382dccb1cc8b0ae4d8c88fa51a
This commit is contained in:
Oli Thompson
2023-10-19 10:43:50 +00:00
parent 59709d4031
commit ae10f49ab8
4 changed files with 64 additions and 21 deletions

View File

@@ -16,6 +16,7 @@
package com.android.settings.accounts;
import android.app.admin.flags.Flags;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -58,7 +59,14 @@ final class ManagedProfileQuietModeEnabler implements DefaultLifecycleObserver {
}
public void setQuietModeEnabled(boolean enabled) {
if (mManagedProfile != null) {
if (mManagedProfile == null) {
return;
}
if (Flags.quietModeCredentialBugFix()) {
if (isQuietModeEnabled() != enabled) {
mUserManager.requestQuietModeEnabled(enabled, mManagedProfile);
}
} else {
mUserManager.requestQuietModeEnabled(enabled, mManagedProfile);
}
}