Loading src/com/android/settings/notification/NotificationRingtonePreferenceController.java +9 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.settings.notification; import android.content.Context; import android.media.RingtoneManager; import com.android.server.notification.Flags; import com.android.settings.R; public class NotificationRingtonePreferenceController extends RingtonePreferenceControllerBase { Loading @@ -31,6 +32,9 @@ public class NotificationRingtonePreferenceController extends RingtonePreference @Override public boolean isAvailable() { if (isVibrationInSoundUriEnabled()) { return false; } return mContext.getResources().getBoolean(R.bool.config_show_notification_ringtone); } Loading @@ -43,4 +47,9 @@ public class NotificationRingtonePreferenceController extends RingtonePreference public int getRingtoneType() { return RingtoneManager.TYPE_NOTIFICATION; } private boolean isVibrationInSoundUriEnabled() { return Flags.notificationVibrationInSoundUri() && mContext.getResources().getBoolean( com.android.internal.R.bool.config_ringtoneVibrationSettingsSupported); } } tests/robotests/src/com/android/settings/notification/NotificationRingtonePreferenceControllerTest.java +44 −2 Original line number Diff line number Diff line Loading @@ -18,35 +18,77 @@ package com.android.settings.notification; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.when; import android.content.Context; import android.content.res.Resources; import android.media.RingtoneManager; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import com.android.server.notification.Flags; import com.android.settings.R; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) public class NotificationRingtonePreferenceControllerTest { private NotificationRingtonePreferenceController mController; @Mock private Context mMockContext; @Mock private Resources mMockResources; @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); @Before public void setUp() { MockitoAnnotations.initMocks(this); mController = new NotificationRingtonePreferenceController(RuntimeEnvironment.application); when(mMockContext.getResources()).thenReturn(mMockResources); mController = new NotificationRingtonePreferenceController(mMockContext); } @Test @DisableFlags(Flags.FLAG_NOTIFICATION_VIBRATION_IN_SOUND_URI) public void isAvailable_byDefault_isTrue() { when(mMockResources .getBoolean(com.android.internal.R.bool.config_ringtoneVibrationSettingsSupported)) .thenReturn(false); when(mMockResources.getBoolean(R.bool.config_show_notification_ringtone)) .thenReturn(true); assertThat(mController.isAvailable()).isTrue(); } @Test @Config(qualifiers = "mcc999") @DisableFlags(Flags.FLAG_NOTIFICATION_VIBRATION_IN_SOUND_URI) public void isAvailable_whenNotVisible_isFalse() { when(mMockResources .getBoolean(com.android.internal.R.bool.config_ringtoneVibrationSettingsSupported)) .thenReturn(false); when(mMockResources.getBoolean(R.bool.config_show_notification_ringtone)) .thenReturn(false); assertThat(mController.isAvailable()).isFalse(); } @Test @EnableFlags(Flags.FLAG_NOTIFICATION_VIBRATION_IN_SOUND_URI) public void isAvailable_whenFlagsNotificationVibrationInSoundUri_isFalse() { when(mMockResources .getBoolean(com.android.internal.R.bool.config_ringtoneVibrationSettingsSupported)) .thenReturn(true); when(mMockResources.getBoolean(R.bool.config_show_notification_ringtone)) .thenReturn(true); assertThat(mController.isAvailable()).isFalse(); } Loading Loading
src/com/android/settings/notification/NotificationRingtonePreferenceController.java +9 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.settings.notification; import android.content.Context; import android.media.RingtoneManager; import com.android.server.notification.Flags; import com.android.settings.R; public class NotificationRingtonePreferenceController extends RingtonePreferenceControllerBase { Loading @@ -31,6 +32,9 @@ public class NotificationRingtonePreferenceController extends RingtonePreference @Override public boolean isAvailable() { if (isVibrationInSoundUriEnabled()) { return false; } return mContext.getResources().getBoolean(R.bool.config_show_notification_ringtone); } Loading @@ -43,4 +47,9 @@ public class NotificationRingtonePreferenceController extends RingtonePreference public int getRingtoneType() { return RingtoneManager.TYPE_NOTIFICATION; } private boolean isVibrationInSoundUriEnabled() { return Flags.notificationVibrationInSoundUri() && mContext.getResources().getBoolean( com.android.internal.R.bool.config_ringtoneVibrationSettingsSupported); } }
tests/robotests/src/com/android/settings/notification/NotificationRingtonePreferenceControllerTest.java +44 −2 Original line number Diff line number Diff line Loading @@ -18,35 +18,77 @@ package com.android.settings.notification; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.when; import android.content.Context; import android.content.res.Resources; import android.media.RingtoneManager; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import com.android.server.notification.Flags; import com.android.settings.R; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) public class NotificationRingtonePreferenceControllerTest { private NotificationRingtonePreferenceController mController; @Mock private Context mMockContext; @Mock private Resources mMockResources; @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); @Before public void setUp() { MockitoAnnotations.initMocks(this); mController = new NotificationRingtonePreferenceController(RuntimeEnvironment.application); when(mMockContext.getResources()).thenReturn(mMockResources); mController = new NotificationRingtonePreferenceController(mMockContext); } @Test @DisableFlags(Flags.FLAG_NOTIFICATION_VIBRATION_IN_SOUND_URI) public void isAvailable_byDefault_isTrue() { when(mMockResources .getBoolean(com.android.internal.R.bool.config_ringtoneVibrationSettingsSupported)) .thenReturn(false); when(mMockResources.getBoolean(R.bool.config_show_notification_ringtone)) .thenReturn(true); assertThat(mController.isAvailable()).isTrue(); } @Test @Config(qualifiers = "mcc999") @DisableFlags(Flags.FLAG_NOTIFICATION_VIBRATION_IN_SOUND_URI) public void isAvailable_whenNotVisible_isFalse() { when(mMockResources .getBoolean(com.android.internal.R.bool.config_ringtoneVibrationSettingsSupported)) .thenReturn(false); when(mMockResources.getBoolean(R.bool.config_show_notification_ringtone)) .thenReturn(false); assertThat(mController.isAvailable()).isFalse(); } @Test @EnableFlags(Flags.FLAG_NOTIFICATION_VIBRATION_IN_SOUND_URI) public void isAvailable_whenFlagsNotificationVibrationInSoundUri_isFalse() { when(mMockResources .getBoolean(com.android.internal.R.bool.config_ringtoneVibrationSettingsSupported)) .thenReturn(true); when(mMockResources.getBoolean(R.bool.config_show_notification_ringtone)) .thenReturn(true); assertThat(mController.isAvailable()).isFalse(); } Loading