Check if ECBMode when activate SIM card
If in ECBMode, start ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS to show a dialog instead. This align with the deactivate sim case Bug: 393298086 Test: atest SubscriptionActivationRepositoryTest Test: adb shell cmd phone emergency-callback-mode Flag: EXEMPT bugfix Change-Id: Id40d087b7d2d3ca99504ec75bac1c5e29c67258d
This commit is contained in:
@@ -52,7 +52,7 @@ class SubscriptionActivationRepository(
|
|||||||
Log.i(TAG, "Unable to toggle subscription due to unusable subscription ID.")
|
Log.i(TAG, "Unable to toggle subscription due to unusable subscription ID.")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!active && isEmergencyCallbackMode(subId)) {
|
if (isEmergencyCallbackMode(subId)) {
|
||||||
val intent = Intent(ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS).apply {
|
val intent = Intent(ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS).apply {
|
||||||
setPackage(Utils.PHONE_PACKAGE_NAME)
|
setPackage(Utils.PHONE_PACKAGE_NAME)
|
||||||
}
|
}
|
||||||
|
@@ -17,12 +17,15 @@
|
|||||||
package com.android.settings.network.telephony
|
package com.android.settings.network.telephony
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
|
import android.os.UserHandle
|
||||||
import android.telephony.SubscriptionManager
|
import android.telephony.SubscriptionManager
|
||||||
import android.telephony.TelephonyManager
|
import android.telephony.TelephonyManager
|
||||||
import android.telephony.TelephonyManager.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS
|
import android.telephony.TelephonyManager.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS
|
||||||
import androidx.test.core.app.ApplicationProvider
|
import androidx.test.core.app.ApplicationProvider
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
import com.android.settings.network.SatelliteRepository
|
import com.android.settings.network.SatelliteRepository
|
||||||
|
import com.android.settings.network.SimOnboardingActivity
|
||||||
import com.android.settingslib.spa.testutils.firstWithTimeoutOrNull
|
import com.android.settingslib.spa.testutils.firstWithTimeoutOrNull
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import kotlinx.coroutines.flow.flowOf
|
import kotlinx.coroutines.flow.flowOf
|
||||||
@@ -33,6 +36,7 @@ import org.mockito.kotlin.any
|
|||||||
import org.mockito.kotlin.argThat
|
import org.mockito.kotlin.argThat
|
||||||
import org.mockito.kotlin.doNothing
|
import org.mockito.kotlin.doNothing
|
||||||
import org.mockito.kotlin.doReturn
|
import org.mockito.kotlin.doReturn
|
||||||
|
import org.mockito.kotlin.eq
|
||||||
import org.mockito.kotlin.mock
|
import org.mockito.kotlin.mock
|
||||||
import org.mockito.kotlin.never
|
import org.mockito.kotlin.never
|
||||||
import org.mockito.kotlin.spy
|
import org.mockito.kotlin.spy
|
||||||
@@ -107,6 +111,17 @@ class SubscriptionActivationRepositoryTest {
|
|||||||
verify(context, never()).startActivity(any())
|
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
|
@Test
|
||||||
fun setActive_turnOffAndIsEmergencyCallbackMode() = runBlocking {
|
fun setActive_turnOffAndIsEmergencyCallbackMode() = runBlocking {
|
||||||
mockTelephonyManager.stub {
|
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 {
|
private companion object {
|
||||||
const val SUB_ID = 1
|
const val SUB_ID = 1
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user