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

Commit 79321ffc authored by Sungcheol Ahn's avatar Sungcheol Ahn Committed by Android (Google) Code Review
Browse files

Merge "ImsReasonInfo set an initial value and added a null check"

parents d491ea05 d05d4d04
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -846,7 +846,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
            mCallForwarding[i] =  false;
            mCellIdentity[i] = null;
            mCellInfo.add(i, Collections.EMPTY_LIST);
            mImsReasonInfo.add(i, null);
            mImsReasonInfo.add(i, new ImsReasonInfo());
            mSrvccState[i] = TelephonyManager.SRVCC_STATE_HANDOVER_NONE;
            mCallDisconnectCause[i] = DisconnectCause.NOT_VALID;
            mCallPreciseDisconnectCause[i] = PreciseDisconnectCause.NOT_VALID;
@@ -1265,12 +1265,15 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
                    }
                }
                if (events.contains(TelephonyCallback.EVENT_IMS_CALL_DISCONNECT_CAUSE_CHANGED)) {
                    ImsReasonInfo imsReasonInfo = mImsReasonInfo.get(r.phoneId);
                    if (imsReasonInfo != null) {
                        try {
                        r.callback.onImsCallDisconnectCauseChanged(mImsReasonInfo.get(r.phoneId));
                            r.callback.onImsCallDisconnectCauseChanged(imsReasonInfo);
                        } catch (RemoteException ex) {
                            remove(r.binder);
                        }
                    }
                }
                if (events.contains(
                        TelephonyCallback.EVENT_PRECISE_DATA_CONNECTION_STATE_CHANGED)) {
                    try {
@@ -2418,6 +2421,11 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
        int phoneId = getPhoneIdFromSubId(subId);
        synchronized (mRecords) {
            if (validatePhoneId(phoneId)) {
                if (imsReasonInfo == null) {
                    loge("ImsReasonInfo is null, subId=" + subId + ", phoneId=" + phoneId);
                    mImsReasonInfo.set(phoneId, new ImsReasonInfo());
                    return;
                }
                mImsReasonInfo.set(phoneId, imsReasonInfo);
                for (Record r : mRecords) {
                    if (r.matchTelephonyCallbackEvent(