DO NOT MERGE Null check CallList mapping in callbacks
In onPostDialWait, onDetailsChanged, and onConferenceableCallsChanged
callbacks, check to make sure the call list contains a mapping for the
Telecom Call object.
Bug:23031241
Change-Id: I2a9703d9c303fe0b2e320d811d21c71e5c429269
(cherry picked from commit 71a6555ac854303dc023c5e6c9a27c63ec956e3d)
diff --git a/src/com/android/incallui/InCallPresenter.java b/src/com/android/incallui/InCallPresenter.java
index ff1a50f..cf162c7 100644
--- a/src/com/android/incallui/InCallPresenter.java
+++ b/src/com/android/incallui/InCallPresenter.java
@@ -120,28 +120,34 @@
private final android.telecom.Call.Callback mCallCallback =
new android.telecom.Call.Callback() {
@Override
- public void onPostDialWait(android.telecom.Call call, String remainingPostDialSequence) {
- onPostDialCharWait(mCallList.getCallByTelecommCall(call).getId(),
- remainingPostDialSequence);
+ public void onPostDialWait(android.telecom.Call telecomCall,
+ String remainingPostDialSequence) {
+ final Call call = mCallList.getCallByTelecommCall(telecomCall);
+ if (call == null) {
+ Log.w(this, "Call not found in call list: " + telecomCall);
+ return;
+ }
+ onPostDialCharWait(call.getId(), remainingPostDialSequence);
}
@Override
- public void onDetailsChanged(android.telecom.Call call,
+ public void onDetailsChanged(android.telecom.Call telecomCall,
android.telecom.Call.Details details) {
+ final Call call = mCallList.getCallByTelecommCall(telecomCall);
+ if (call == null) {
+ Log.w(this, "Call not found in call list: " + telecomCall);
+ return;
+ }
for (InCallDetailsListener listener : mDetailsListeners) {
- listener.onDetailsChanged(mCallList.getCallByTelecommCall(call),
- details);
+ listener.onDetailsChanged(call, details);
}
}
@Override
- public void onConferenceableCallsChanged(
- android.telecom.Call call, List<android.telecom.Call> conferenceableCalls) {
- Log.i(this, "onConferenceableCallsChanged: " + call);
- for (InCallDetailsListener listener : mDetailsListeners) {
- listener.onDetailsChanged(mCallList.getCallByTelecommCall(call),
- call.getDetails());
- }
+ public void onConferenceableCallsChanged(android.telecom.Call telecomCall,
+ List<android.telecom.Call> conferenceableCalls) {
+ Log.i(this, "onConferenceableCallsChanged: " + telecomCall);
+ onDetailsChanged(telecomCall, telecomCall.getDetails());
}
};