Loading src/com/android/settings/network/telephony/ims/ImsMmTelRepository.kt +15 −5 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.telephony.TelephonyManager import android.telephony.ims.ImsManager import android.telephony.ims.ImsMmTelManager import android.telephony.ims.ImsMmTelManager.WiFiCallingMode import android.util.Log interface ImsMmTelRepository { @WiFiCallingMode Loading @@ -41,7 +42,8 @@ class ImsMmTelRepositoryImpl( private val carrierConfigManager = context.getSystemService(CarrierConfigManager::class.java)!! @WiFiCallingMode override fun getWiFiCallingMode(): Int = when { override fun getWiFiCallingMode(): Int = try { when { !imsMmTelManager.isVoWiFiSettingEnabled -> ImsMmTelManager.WIFI_MODE_UNKNOWN telephonyManager.isNetworkRoaming && !useWfcHomeModeForRoaming() -> Loading @@ -49,9 +51,17 @@ class ImsMmTelRepositoryImpl( else -> imsMmTelManager.getVoWiFiModeSetting() } } catch (e: IllegalArgumentException) { Log.w(TAG, "getWiFiCallingMode failed subId=$subId", e) ImsMmTelManager.WIFI_MODE_UNKNOWN } private fun useWfcHomeModeForRoaming(): Boolean = carrierConfigManager .getConfigForSubId(subId, KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL) .getBoolean(KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL) private companion object { private const val TAG = "ImsMmTelRepository" } } tests/spa_unit/src/com/android/settings/network/telephony/ims/ImsMmTelRepositoryTest.kt +12 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import com.google.common.truth.Truth.assertThat import org.junit.Test import org.junit.runner.RunWith import org.mockito.kotlin.doReturn import org.mockito.kotlin.doThrow import org.mockito.kotlin.mock import org.mockito.kotlin.spy import org.mockito.kotlin.stub Loading Loading @@ -99,6 +100,17 @@ class ImsMmTelRepositoryTest { assertThat(wiFiCallingMode).isEqualTo(mockImsMmTelManager.getVoWiFiModeSetting()) } @Test fun getWiFiCallingMode_illegalArgumentException_returnUnknown() { mockImsMmTelManager.stub { on { isVoWiFiSettingEnabled } doThrow IllegalArgumentException() } val wiFiCallingMode = repository.getWiFiCallingMode() assertThat(wiFiCallingMode).isEqualTo(ImsMmTelManager.WIFI_MODE_UNKNOWN) } private fun mockUseWfcHomeModeForRoaming(config: Boolean) { mockCarrierConfigManager.stub { on { Loading Loading
src/com/android/settings/network/telephony/ims/ImsMmTelRepository.kt +15 −5 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.telephony.TelephonyManager import android.telephony.ims.ImsManager import android.telephony.ims.ImsMmTelManager import android.telephony.ims.ImsMmTelManager.WiFiCallingMode import android.util.Log interface ImsMmTelRepository { @WiFiCallingMode Loading @@ -41,7 +42,8 @@ class ImsMmTelRepositoryImpl( private val carrierConfigManager = context.getSystemService(CarrierConfigManager::class.java)!! @WiFiCallingMode override fun getWiFiCallingMode(): Int = when { override fun getWiFiCallingMode(): Int = try { when { !imsMmTelManager.isVoWiFiSettingEnabled -> ImsMmTelManager.WIFI_MODE_UNKNOWN telephonyManager.isNetworkRoaming && !useWfcHomeModeForRoaming() -> Loading @@ -49,9 +51,17 @@ class ImsMmTelRepositoryImpl( else -> imsMmTelManager.getVoWiFiModeSetting() } } catch (e: IllegalArgumentException) { Log.w(TAG, "getWiFiCallingMode failed subId=$subId", e) ImsMmTelManager.WIFI_MODE_UNKNOWN } private fun useWfcHomeModeForRoaming(): Boolean = carrierConfigManager .getConfigForSubId(subId, KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL) .getBoolean(KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL) private companion object { private const val TAG = "ImsMmTelRepository" } }
tests/spa_unit/src/com/android/settings/network/telephony/ims/ImsMmTelRepositoryTest.kt +12 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import com.google.common.truth.Truth.assertThat import org.junit.Test import org.junit.runner.RunWith import org.mockito.kotlin.doReturn import org.mockito.kotlin.doThrow import org.mockito.kotlin.mock import org.mockito.kotlin.spy import org.mockito.kotlin.stub Loading Loading @@ -99,6 +100,17 @@ class ImsMmTelRepositoryTest { assertThat(wiFiCallingMode).isEqualTo(mockImsMmTelManager.getVoWiFiModeSetting()) } @Test fun getWiFiCallingMode_illegalArgumentException_returnUnknown() { mockImsMmTelManager.stub { on { isVoWiFiSettingEnabled } doThrow IllegalArgumentException() } val wiFiCallingMode = repository.getWiFiCallingMode() assertThat(wiFiCallingMode).isEqualTo(ImsMmTelManager.WIFI_MODE_UNKNOWN) } private fun mockUseWfcHomeModeForRoaming(config: Boolean) { mockCarrierConfigManager.stub { on { Loading