Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7eb68f45 authored by Weng Su's avatar Weng Su
Browse files

Fix crash issues in About Phone settings

- Added try catch to avoid Settings crash when Telephony service cannot get primary IMEI.

Bug: 414259066
Flag: EXEMPT bugfix
Test: Manual testing
  atest ImeiPreferenceTest
Change-Id: Ib337b64f56c974a7c9d53216ef5a496c405add47
parent 1bd55059
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -84,10 +84,15 @@ class ImeiPreference(
        if (activeModemCount <= 1) {
            getString(R.string.status_imei)
        } else {
            val isPrimary = imei == telephonyManager?.primaryImei
            try {
                val titleId =
                if (isPrimary) R.string.imei_multi_sim_primary else R.string.imei_multi_sim
                    if (imei == telephonyManager?.primaryImei) R.string.imei_multi_sim_primary
                    else R.string.imei_multi_sim
                getString(titleId, slotIndex + 1)
            } catch (exception: Exception) {
                Log.e(TAG, "PrimaryImei not available.", exception)
                getString(R.string.imei_multi_sim, slotIndex + 1)
            }
        }

    companion object {
+10 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import org.junit.Before
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.stub

@@ -60,6 +61,15 @@ class ImeiPreferenceTest {
        preference = ImeiPreference(context, 0, 1)
    }

    @Test
    fun init_getPrimaryImeiThrowException_doNotCrash() {
        mockTelephonyManager.stub {
            on { primaryImei } doThrow(IllegalStateException())
        }

        preference = ImeiPreference(context, 0, 2)
    }

    @Test
    fun getKey_slotIndex0_returnImeiWithIndex() {
        assertThat(preference.key).isEqualTo(ImeiPreference.KEY_PREFIX + "1")