Only call super.updateState when work profile exists

Since the updateState() method is being called regardless of the availability of a work profile, we were trying to get settings for USER_NULL, which was leading to crashes.

Flag: com.android.server.notification.polite_notifications
Fixes: 402317471
Test: manual with existing work profile & without existing work profile
Change-Id: Icddabd9a7575713f42a0f5bd955b65a7e46c7f45
This commit is contained in:
Yuri Lin
2025-03-19 13:54:55 -04:00
parent 4829391574
commit 2034843773
2 changed files with 21 additions and 4 deletions

View File

@@ -26,6 +26,7 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.os.UserHandle;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings;
@@ -141,6 +142,17 @@ public class PoliteNotifWorkProfileToggleControllerTest {
assertThat(mController.isChecked()).isFalse();
}
@Test
@Config(shadows = ShadowSystemSettings.class)
@EnableFlags(Flags.FLAG_POLITE_NOTIFICATIONS)
public void isChecked_coolDownEnabled_noWorkProfile_shouldReturnFalse() {
when(mAudioHelper.getManagedProfileId(any())).thenReturn(UserHandle.USER_NULL);
mController = new PoliteNotifWorkProfileToggleController(mContext, PREFERENCE_KEY,
mAudioHelper);
assertThat(mController.isChecked()).isFalse();
}
@Test
@Config(shadows = ShadowSystemSettings.class)
public void setChecked_coolDownEnabled_setTrue_shouldEnablePoliteNotifForWorkProfile() {
@@ -186,7 +198,6 @@ public class PoliteNotifWorkProfileToggleControllerTest {
assertThat(mPreference.isVisible()).isTrue();
}
private void setCoolDownEnabled(boolean enabled) {
Settings.System.putInt(mContext.getContentResolver(),
Settings.System.NOTIFICATION_COOLDOWN_ENABLED, (enabled ? ON : OFF));