Hide the Default Notification Sound if enabling customized vibration
Flag:com.android.server.notification.notification_vibration_in_sound_uri Test: atest NotificationRingtonePreferenceControllerTest Bug: 358525376 Change-Id: Ic7517828df746700ceb6e0605a9d32066c7aed50
This commit is contained in:
@@ -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 {
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user