summaryrefslogtreecommitdiff
path: root/src/com/android/dialer/voicemail
diff options
context:
space:
mode:
authorAndrew Lee <anwlee@google.com>2015-06-16 19:57:37 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-06-16 19:57:37 +0000
commite445ae79d87f70f207c1a16a3585c03f577b901f (patch)
tree23e68bc7ede8092c08b70aad35df8e758bf30e6b /src/com/android/dialer/voicemail
parent1ed1206373b64fdd7c88af3cfd1dfc4eaf0ed9de (diff)
parentbae7b937b6cf6e7eb26d07bec95de38083923614 (diff)
Merge "Add play voicemail primary action to call log." into mnc-dev
Diffstat (limited to 'src/com/android/dialer/voicemail')
-rw-r--r--src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java27
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;
}