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

Commit 19661a4b authored by Malcolm Chen's avatar Malcolm Chen
Browse files

Move getPhoneCount implementation back to TelephonyManager.

Moving it inside iTelephony creates problems. Some components call
getPhoneCount during initialization while iTelephony service is not
even running, which will cause phone process to crash.

Bug: 123667461
Test: manual
Change-Id: I51199eaf0bd87055c21fe61af50f4c353137d621
parent f9734602
Loading
Loading
Loading
Loading
+19 −20
Original line number Diff line number Diff line
@@ -354,27 +354,26 @@ public class TelephonyManager {
     * Returns 3 for Tri standby mode.(Tri SIM functionality)
     */
    public int getPhoneCount() {
        int phoneCount = 0;

        int phoneCount = 1;
        switch (getMultiSimConfiguration()) {
            case UNKNOWN:
                ConnectivityManager cm = mContext == null ? null : (ConnectivityManager) mContext
                        .getSystemService(Context.CONNECTIVITY_SERVICE);
                // check for voice and data support, 0 if not supported
        if (!isVoiceCapable() && !isSmsCapable()) {
            ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(
                    Context.CONNECTIVITY_SERVICE);
            if (cm != null) {
                if (!cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)) {
                    return phoneCount;
                }
            }
        }

                if (!isVoiceCapable() && !isSmsCapable() && cm != null
                        && !cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)) {
                    phoneCount = 0;
                } else {
                    phoneCount = 1;
        try {
            ITelephony telephony = getITelephony();
            if (telephony != null) {
                phoneCount = telephony.getNumOfActiveSims();
                }
        } catch (RemoteException ex) {
            Rlog.e(TAG, "getNumOfActiveSims RemoteException", ex);
                break;
            case DSDS:
            case DSDA:
                phoneCount = PhoneConstants.MAX_PHONE_COUNT_DUAL_SIM;
                break;
            case TSTS:
                phoneCount = PhoneConstants.MAX_PHONE_COUNT_TRI_SIM;
                break;
        }
        return phoneCount;
    }
+0 −5
Original line number Diff line number Diff line
@@ -1843,11 +1843,6 @@ interface ITelephony {
     * @hide
     */
    void switchMultiSimConfig(int numOfSims);
    /**
     * Get how many modems have been activated on the phone
     * @hide
     */
    int getNumOfActiveSims();

    /**
     * Get if reboot is required upon altering modems configurations