diff --git a/src/com/android/settings/notification/NotificationVolumePreferenceController.java b/src/com/android/settings/notification/NotificationVolumePreferenceController.java index b6f7435c922..4fd2341265f 100644 --- a/src/com/android/settings/notification/NotificationVolumePreferenceController.java +++ b/src/com/android/settings/notification/NotificationVolumePreferenceController.java @@ -35,7 +35,6 @@ import androidx.preference.PreferenceScreen; import com.android.internal.config.sysui.SystemUiDeviceConfigFlags; import com.android.settings.R; -import com.android.settings.Utils; import com.android.settingslib.core.lifecycle.Lifecycle; import java.util.Set; @@ -129,8 +128,7 @@ public class NotificationVolumePreferenceController extends boolean separateNotification = isSeparateNotificationConfigEnabled(); return mContext.getResources().getBoolean(R.bool.config_show_notification_volume) - && !mHelper.isSingleVolume() - && (separateNotification || !Utils.isVoiceCapable(mContext)) + && !mHelper.isSingleVolume() && separateNotification ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } diff --git a/src/com/android/settings/notification/RingVolumePreferenceController.java b/src/com/android/settings/notification/RingVolumePreferenceController.java index 76254b9fc2f..a8118c60a83 100644 --- a/src/com/android/settings/notification/RingVolumePreferenceController.java +++ b/src/com/android/settings/notification/RingVolumePreferenceController.java @@ -34,7 +34,6 @@ import androidx.lifecycle.OnLifecycleEvent; import com.android.internal.config.sysui.SystemUiDeviceConfigFlags; import com.android.settings.R; -import com.android.settings.Utils; import com.android.settingslib.core.lifecycle.Lifecycle; import java.util.Set; @@ -114,8 +113,7 @@ public class RingVolumePreferenceController extends @Override public int getAvailabilityStatus() { boolean separateNotification = isSeparateNotificationConfigEnabled(); - - return !separateNotification && Utils.isVoiceCapable(mContext) && !mHelper.isSingleVolume() + return !separateNotification && !mHelper.isSingleVolume() ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } diff --git a/src/com/android/settings/notification/SeparateRingVolumePreferenceController.java b/src/com/android/settings/notification/SeparateRingVolumePreferenceController.java index 12133721029..e23dd384071 100644 --- a/src/com/android/settings/notification/SeparateRingVolumePreferenceController.java +++ b/src/com/android/settings/notification/SeparateRingVolumePreferenceController.java @@ -33,7 +33,6 @@ import androidx.lifecycle.OnLifecycleEvent; import com.android.internal.config.sysui.SystemUiDeviceConfigFlags; import com.android.settings.R; -import com.android.settings.Utils; import com.android.settingslib.core.lifecycle.Lifecycle; import java.util.Set; @@ -111,8 +110,7 @@ public class SeparateRingVolumePreferenceController extends @Override public int getAvailabilityStatus() { boolean separateNotification = isSeparateNotificationConfigEnabled(); - - return separateNotification && Utils.isVoiceCapable(mContext) && !mHelper.isSingleVolume() + return separateNotification && !mHelper.isSingleVolume() ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } diff --git a/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java index 07e599371c7..6728fee0b45 100644 --- a/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java @@ -96,12 +96,16 @@ public class RingVolumePreferenceControllerTest { assertThat(mController.isAvailable()).isFalse(); } + /** + * Devices that are not voice capable should still show Ring volume, because it is used by apps + * that make calls outside the cell network. + */ @Test - public void isAvailable_notVoiceCapable_shouldReturnFalse() { + public void isAvailable_notSingleVolume_notVoiceCapable_shouldReturnTrue() { when(mHelper.isSingleVolume()).thenReturn(false); when(mTelephonyManager.isVoiceCapable()).thenReturn(false); - assertThat(mController.isAvailable()).isFalse(); + assertThat(mController.isAvailable()).isTrue(); } @Test diff --git a/tests/robotests/src/com/android/settings/notification/SeparateRingVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/SeparateRingVolumePreferenceControllerTest.java index 88c8ff9887d..7c9390ccbbd 100644 --- a/tests/robotests/src/com/android/settings/notification/SeparateRingVolumePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/SeparateRingVolumePreferenceControllerTest.java @@ -27,8 +27,10 @@ import android.content.Context; import android.content.res.Resources; import android.media.AudioManager; import android.os.Vibrator; +import android.provider.DeviceConfig; import android.telephony.TelephonyManager; +import com.android.internal.config.sysui.SystemUiDeviceConfigFlags; import com.android.settings.testutils.shadow.ShadowDeviceConfig; import org.junit.Before; @@ -87,6 +89,19 @@ public class SeparateRingVolumePreferenceControllerTest { assertThat(mController.isAvailable()).isFalse(); } + /** + * Maintain that the device does not need to be voice capable to display this slider + */ + @Test + public void isAvailable_ringNotificationSeparated_isNotVoiceCapable_shouldReturnTrue() { + DeviceConfig.setProperty(DeviceConfig.NAMESPACE_SYSTEMUI, + SystemUiDeviceConfigFlags.VOLUME_SEPARATE_NOTIFICATION, "true", false); + when(mHelper.isSingleVolume()).thenReturn(false); + when(mTelephonyManager.isVoiceCapable()).thenReturn(false); + + assertThat(mController.isAvailable()).isTrue(); + } + @Test public void getAudioStream_shouldReturnRing() { assertThat(mController.getAudioStream()).isEqualTo(AudioManager.STREAM_RING);