diff options
Diffstat (limited to 'src/com/android/incallui/CallCardPresenter.java')
-rw-r--r-- | src/com/android/incallui/CallCardPresenter.java | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/com/android/incallui/CallCardPresenter.java b/src/com/android/incallui/CallCardPresenter.java index e5315118..d4a39eaa 100644 --- a/src/com/android/incallui/CallCardPresenter.java +++ b/src/com/android/incallui/CallCardPresenter.java @@ -54,23 +54,26 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi> i // Track the state for the photo. private ContactsAsyncHelper.ImageTracker mPhotoTracker; - public CallCardPresenter(AudioModeProvider audioModeProvider) { + public CallCardPresenter() { mPhotoTracker = new ContactsAsyncHelper.ImageTracker(); - mAudioModeProvider = audioModeProvider; } @Override public void onUiReady(CallCardUi ui) { super.onUiReady(ui); - mAudioModeProvider.addListener(this); + if (mAudioModeProvider != null) { + mAudioModeProvider.addListener(this); + } } @Override public void onUiUnready(CallCardUi ui) { super.onUiUnready(ui); - mAudioModeProvider.removeListener(this); + if (mAudioModeProvider != null) { + mAudioModeProvider.removeListener(this); + } mPrimary = null; } @@ -112,9 +115,11 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi> i updateDisplayByCallerInfo(primary, primaryCallInfo, primary.getNumberPresentation(), true); + final boolean bluetoothOn = mAudioModeProvider != null && + mAudioModeProvider.getAudioMode() == AudioMode.BLUETOOTH; + ui.setNumber(primary.getNumber()); - ui.setCallState(primary.getState(), primary.getDisconnectCause(), - (mAudioModeProvider.getAudioMode() == AudioMode.BLUETOOTH)); + ui.setCallState(primary.getState(), primary.getDisconnectCause(), bluetoothOn); } else { ui.setNumber(""); ui.setCallState(Call.State.INVALID, Call.DisconnectCause.UNKNOWN, false); @@ -425,6 +430,11 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi> i ui.setNumberLabel(label); } + public void setAudioModeProvider(AudioModeProvider audioModeProvider) { + mAudioModeProvider = audioModeProvider; + mAudioModeProvider.addListener(this); + } + public String getPresentationString(int presentation) { String name = mContext.getString(R.string.unknown); if (presentation == Call.PRESENTATION_RESTRICTED) { |