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

Commit 5e5294b7 authored by Chaitanya Saggurthi's avatar Chaitanya Saggurthi Committed by Steve Kondik
Browse files

Fix SystemUi crash

Fix SystemUi crash by handling unknown phoneId

Change-Id: I768e34f0bc2652b782e3f7316e1dcd0e0bafbee3
CRs-Fixed: 724359
parent be082153
Loading
Loading
Loading
Loading
+22 −4
Original line number Diff line number Diff line
@@ -130,7 +130,9 @@ public class MSimSignalClusterView
            mMobileType[i]     = (ImageView) findViewById(mMobileTypeResourceId[i]);
            mNoSimSlot[i]      = (ImageView) findViewById(mNoSimSlotResourceId[i]);
        }
        apply(SubscriptionManager.getPhoneId(SubscriptionManager.getDefaultSubId()));
        for (int i = 0; i < mNumPhones; i++) {
            apply(i);
        }
    }

    @Override
@@ -154,7 +156,9 @@ public class MSimSignalClusterView
        mWifiVisible = visible;
        mWifiStrengthId = strengthIcon;
        mWifiDescription = contentDescription;
        apply(SubscriptionManager.getPhoneId(SubscriptionManager.getDefaultSubId()));
        for (int i = 0; i < mNumPhones; i++) {
            apply(i);
        }
    }

    @Override
@@ -181,8 +185,7 @@ public class MSimSignalClusterView

    @Override
    public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
        int defaultPhoneId = SubscriptionManager.getPhoneId(SubscriptionManager.
                getDefaultSubId());
        int defaultPhoneId = getDefaultPhoneId();
        // Standard group layout onPopulateAccessibilityEvent() implementations
        // ignore content description, so populate manually
        if (mWifiVisible && mWifiGroup != null &&
@@ -201,6 +204,21 @@ public class MSimSignalClusterView
        return false;
    }

    private int getDefaultPhoneId() {
        int phoneId;
        phoneId = getPhoneId(SubscriptionManager.getDefaultSubId());
        if ( phoneId < 0 || phoneId >= mNumPhones) {
            phoneId = 0;
        }
        return phoneId;
    }


    private int getPhoneId(long subId) {
        int phoneId;
        phoneId = SubscriptionManager.getPhoneId(subId);
        return phoneId;
    }


    // Run after each indicator change.
+14 −3
Original line number Diff line number Diff line
@@ -169,7 +169,7 @@ public class MSimNetworkControllerImpl extends NetworkControllerImpl {
            mMSimDataServiceState[i] = ServiceState.STATE_OUT_OF_SERVICE;
        }

        mDefaultPhoneId = SubscriptionManager.getPhoneId(SubscriptionManager.getDefaultSubId());
        mDefaultPhoneId = getDefaultPhoneId();
        mDataConnected = mMSimDataConnected[mDefaultPhoneId];
        mSimState = mMSimState[mDefaultPhoneId];
        mDataActivity = mMSimDataActivity[mDefaultPhoneId];
@@ -243,6 +243,18 @@ public class MSimNetworkControllerImpl extends NetworkControllerImpl {
            }
        //}
    }

    private int getDefaultPhoneId() {
        int phoneId;
        int numPhones = TelephonyManager.getDefault().getPhoneCount();
        phoneId = getPhoneId(SubscriptionManager.getDefaultSubId());
        if ( phoneId < 0 || phoneId >= numPhones) {
            phoneId = 0;
        }
        return phoneId;
    }


    private int getPhoneId(long subId) {
        int phoneId;
        phoneId = SubscriptionManager.getPhoneId(subId);
@@ -348,8 +360,7 @@ public class MSimNetworkControllerImpl extends NetworkControllerImpl {
        } else if (action.equals(TelephonyIntents.ACTION_SUBINFO_RECORD_UPDATED)) {
                unregisterPhoneStateListener();
                registerPhoneStateListener(mContext);
                mDefaultPhoneId = SubscriptionManager.getPhoneId(
                        SubscriptionManager.getDefaultSubId());
                mDefaultPhoneId = getDefaultPhoneId();
                for (int i=0 ; i < mPhoneCount ; i++) {
                    updateCarrierText(i);
                    updateTelephonySignalStrength(i);