diff --git a/src/com/android/settings/network/telephony/SubscriptionActivationRepository.kt b/src/com/android/settings/network/telephony/SubscriptionActivationRepository.kt index 185af0c3d09..a7f6a0b5dcb 100644 --- a/src/com/android/settings/network/telephony/SubscriptionActivationRepository.kt +++ b/src/com/android/settings/network/telephony/SubscriptionActivationRepository.kt @@ -52,7 +52,7 @@ class SubscriptionActivationRepository( Log.i(TAG, "Unable to toggle subscription due to unusable subscription ID.") return } - if (!active && isEmergencyCallbackMode(subId)) { + if (isEmergencyCallbackMode(subId)) { val intent = Intent(ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS).apply { setPackage(Utils.PHONE_PACKAGE_NAME) } diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/SubscriptionActivationRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/SubscriptionActivationRepositoryTest.kt index 427ab7b1685..01015be7730 100644 --- a/tests/spa_unit/src/com/android/settings/network/telephony/SubscriptionActivationRepositoryTest.kt +++ b/tests/spa_unit/src/com/android/settings/network/telephony/SubscriptionActivationRepositoryTest.kt @@ -17,12 +17,15 @@ package com.android.settings.network.telephony import android.content.Context +import android.content.Intent +import android.os.UserHandle import android.telephony.SubscriptionManager import android.telephony.TelephonyManager import android.telephony.TelephonyManager.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 import com.android.settings.network.SatelliteRepository +import com.android.settings.network.SimOnboardingActivity import com.android.settingslib.spa.testutils.firstWithTimeoutOrNull import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.flow.flowOf @@ -33,6 +36,7 @@ import org.mockito.kotlin.any import org.mockito.kotlin.argThat import org.mockito.kotlin.doNothing import org.mockito.kotlin.doReturn +import org.mockito.kotlin.eq import org.mockito.kotlin.mock import org.mockito.kotlin.never import org.mockito.kotlin.spy @@ -107,6 +111,17 @@ class SubscriptionActivationRepositoryTest { verify(context, never()).startActivity(any()) } + @Test + fun setActive_turnOnAndIsEmergencyCallbackMode() = runBlocking { + mockTelephonyManager.stub { + on { emergencyCallbackMode } doReturn true + } + + repository.setActive(subId = SUB_ID, active = true) + + verify(context).startActivity(argThat { action == ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS }) + } + @Test fun setActive_turnOffAndIsEmergencyCallbackMode() = runBlocking { mockTelephonyManager.stub { @@ -131,6 +146,19 @@ class SubscriptionActivationRepositoryTest { }) } + @Test + fun setActive_turnOnAndNotEmergencyCallbackMode() = runBlocking { + mockTelephonyManager.stub { + on { emergencyCallbackMode } doReturn false + } + + repository.setActive(subId = SUB_ID, active = true) + + verify(context).startActivityAsUser(argThat { + component?.className == SimOnboardingActivity::class.qualifiedName + }, eq(UserHandle.CURRENT)) + } + private companion object { const val SUB_ID = 1 }