Merge "Ring & notif vol missing on a largescreen device" into tm-qpr-dev
diff --git a/src/com/android/settings/notification/NotificationVolumePreferenceController.java b/src/com/android/settings/notification/NotificationVolumePreferenceController.java
index b6f7435..4fd2341 100644
--- a/src/com/android/settings/notification/NotificationVolumePreferenceController.java
+++ b/src/com/android/settings/notification/NotificationVolumePreferenceController.java
@@ -35,7 +35,6 @@
 
 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 @@
         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 76254b9..a8118c6 100644
--- a/src/com/android/settings/notification/RingVolumePreferenceController.java
+++ b/src/com/android/settings/notification/RingVolumePreferenceController.java
@@ -34,7 +34,6 @@
 
 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 @@
     @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 1213372..e23dd38 100644
--- a/src/com/android/settings/notification/SeparateRingVolumePreferenceController.java
+++ b/src/com/android/settings/notification/SeparateRingVolumePreferenceController.java
@@ -33,7 +33,6 @@
 
 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 @@
     @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 07e5993..6728fee 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 @@
         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 88c8ff9..7c9390c 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.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 @@
         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);