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

This commit is contained in:
Sungcheol Ahn
2023-02-09 03:24:59 +00:00
committed by Android (Google) Code Review

View File

@@ -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,10 +1265,13 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
}
}
if (events.contains(TelephonyCallback.EVENT_IMS_CALL_DISCONNECT_CAUSE_CHANGED)) {
try {
r.callback.onImsCallDisconnectCauseChanged(mImsReasonInfo.get(r.phoneId));
} catch (RemoteException ex) {
remove(r.binder);
ImsReasonInfo imsReasonInfo = mImsReasonInfo.get(r.phoneId);
if (imsReasonInfo != null) {
try {
r.callback.onImsCallDisconnectCauseChanged(imsReasonInfo);
} catch (RemoteException ex) {
remove(r.binder);
}
}
}
if (events.contains(
@@ -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(