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

Commit e54a3031 authored by Malcolm Chen's avatar Malcolm Chen Committed by Xiangyu/Malcolm Chen
Browse files

Do not get CM instance in getActiveModemCount unless needed.

TM#getActiveModemCount might be called before ConnectivityService is
initialized. So do not try to get ConnectivityService instance unless
it's needed (very rarely). Otherwise it will throw WTF exception.

Bug: 144373595
Test: sanity
Change-Id: I7a90ec45a0a3700a0c6852c505d68f438f26768c
Merged-In: I7a90ec45a0a3700a0c6852c505d68f438f26768c
parent 01e54d44
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -416,14 +416,14 @@ public class TelephonyManager {
        int modemCount = 1;
        switch (getMultiSimConfiguration()) {
            case UNKNOWN:
                ConnectivityManager cm = mContext == null ? null : (ConnectivityManager) mContext
                        .getSystemService(Context.CONNECTIVITY_SERVICE);
                modemCount = MODEM_COUNT_SINGLE_MODEM;
                // check for voice and data support, 0 if not supported
                if (!isVoiceCapable() && !isSmsCapable() && cm != null
                        && !cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)) {
                if (!isVoiceCapable() && !isSmsCapable() && mContext != null) {
                    ConnectivityManager cm = (ConnectivityManager) mContext
                            .getSystemService(Context.CONNECTIVITY_SERVICE);
                    if (cm != null && !cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)) {
                        modemCount = MODEM_COUNT_NO_MODEM;
                } else {
                    modemCount = MODEM_COUNT_SINGLE_MODEM;
                    }
                }
                break;
            case DSDS: