diff options
author | Jay Shrauner <shrauner@google.com> | 2015-08-07 15:39:57 -0700 |
---|---|---|
committer | Jay Shrauner <shrauner@google.com> | 2015-08-08 01:47:01 +0000 |
commit | ba55aab35a4402a090f530422d1f7327aebfde04 (patch) | |
tree | 5776897e756fdd707e4c75af9018f84922967667 | |
parent | be729e6fd69f30a97b669b009d608ac7395919c7 (diff) | |
download | InCallUI-ba55aab35a4402a090f530422d1f7327aebfde04.tar.gz |
DO NOT MERGE Null check CallList mapping in callbacksmarshmallow-dev
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)
-rw-r--r-- | src/com/android/incallui/InCallPresenter.java | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/src/com/android/incallui/InCallPresenter.java b/src/com/android/incallui/InCallPresenter.java index ff1a50fc..cf162c72 100644 --- a/src/com/android/incallui/InCallPresenter.java +++ b/src/com/android/incallui/InCallPresenter.java @@ -120,28 +120,34 @@ public class InCallPresenter implements CallList.Listener, 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()); } }; |