From 242502e5a95221d97e44b1323c493cb30f139bcf Mon Sep 17 00:00:00 2001 From: Stanley Wang Date: Fri, 28 Dec 2018 18:39:47 +0800 Subject: [PATCH] Fix WiFi calling option is showing in search result regardless the carrier supports VoWiFi or not Change Availability Status to UNSUPPORTED_ON_DEVICE when device doesn't support VoWiFi. Change-Id: I8ac501cf7442f1cd7d41f61d2db912d82a9e8c25 Fixes: 120806624 Test: manual and robotests --- .../telephony/WifiCallingPreferenceController.java | 2 +- .../telephony/WifiCallingPreferenceControllerTest.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java index 48fb710a4c1..ec9a8412b4b 100644 --- a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java +++ b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java @@ -72,7 +72,7 @@ public class WifiCallingPreferenceController extends BasePreferenceController im && MobileNetworkUtils.isWifiCallingEnabled(mContext, SubscriptionManager.getPhoneId(mSubId)) ? AVAILABLE - : CONDITIONALLY_UNAVAILABLE; + : UNSUPPORTED_ON_DEVICE; } @Override diff --git a/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java index 452e9b10486..c0b1dab0efd 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java @@ -32,6 +32,7 @@ import androidx.preference.PreferenceScreen; import com.android.ims.ImsConfig; import com.android.ims.ImsManager; +import com.android.settings.core.BasePreferenceController; import org.junit.Before; import org.junit.Test; @@ -109,4 +110,12 @@ public class WifiCallingPreferenceControllerTest { assertThat(mPreferenceCategory.isVisible()).isFalse(); } + + @Test + public void getAvailabilityStatus_noWiFiCalling_shouldReturnUnsupported() { + mController.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID); + + assertThat(mController.getAvailabilityStatus()).isEqualTo( + BasePreferenceController.UNSUPPORTED_ON_DEVICE); + } }