diff options
author | Andrew Lee <anwlee@google.com> | 2015-06-16 19:57:37 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-06-16 19:57:37 +0000 |
commit | e445ae79d87f70f207c1a16a3585c03f577b901f (patch) | |
tree | 23e68bc7ede8092c08b70aad35df8e758bf30e6b /src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java | |
parent | 1ed1206373b64fdd7c88af3cfd1dfc4eaf0ed9de (diff) | |
parent | bae7b937b6cf6e7eb26d07bec95de38083923614 (diff) |
Merge "Add play voicemail primary action to call log." into mnc-dev
Diffstat (limited to 'src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java')
-rw-r--r-- | src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java b/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java index d47e9e213..cc6437627 100644 --- a/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java +++ b/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java @@ -178,6 +178,18 @@ public class VoicemailPlaybackPresenter mMediaPlayer.setOnCompletionListener(this); } + public void reset() { + pausePlayback(); + + mView = null; + mVoicemailUri = null; + + mIsPrepared = false; + mIsPlaying = false; + mPosition = 0; + mDuration.set(0); + } + /** * Specify the view which this presenter controls and the voicemail for playback. */ @@ -204,7 +216,6 @@ public class VoicemailPlaybackPresenter mView.onSpeakerphoneOn(false); checkForContent(); - } } @@ -341,7 +352,9 @@ public class VoicemailPlaybackPresenter public void run() { if (mIsWaitingForResult.getAndSet(false)) { mContext.getContentResolver().unregisterContentObserver(this); - mView.setFetchContentTimeout(); + if (mView != null) { + mView.setFetchContentTimeout(); + } } } @@ -384,7 +397,11 @@ public class VoicemailPlaybackPresenter * and it will call {@link #onError()} otherwise. */ private void prepareToPlayContent() { + if (mView == null) { + return; + } mIsPrepared = false; + mView.setIsBuffering(); try { @@ -402,7 +419,11 @@ public class VoicemailPlaybackPresenter */ @Override public void onPrepared(MediaPlayer mp) { + if (mView == null) { + return; + } mIsPrepared = true; + mDuration.set(mMediaPlayer.getDuration()); mView.enableUiElements(); @@ -421,7 +442,7 @@ public class VoicemailPlaybackPresenter */ @Override public boolean onError(MediaPlayer mp, int what, int extra) { - handleError(new IllegalStateException("MediaPlayer error listener invoked")); + handleError(new IllegalStateException("MediaPlayer error listener invoked: " + extra)); return true; } |