summaryrefslogtreecommitdiff
path: root/src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java
diff options
context:
space:
mode:
authorAndrew Lee <anwlee@google.com>2015-06-12 12:53:09 -0700
committerAndrew Lee <anwlee@google.com>2015-06-12 12:53:09 -0700
commitbb4a4d4a9f9d0de739af34c023abeb200275ea43 (patch)
treef9331d656afcc5cb87883cadfba406cd748563f4 /src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java
parent44919b041bd28792e18cfa65ea6868da3d8b9f52 (diff)
Don't pass media player to VM playback layout.
Better to ask the presenter, where it can check if the media player is in the appropriate prepared state. Bug: 21765119 Change-Id: Ieeade86900da1eb0ed9407bea17a7fc6219b3ad2
Diffstat (limited to 'src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java')
-rw-r--r--src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java20
1 files changed, 7 insertions, 13 deletions
diff --git a/src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java b/src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java
index 0313f4004..73f4b3b1c 100644
--- a/src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java
+++ b/src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java
@@ -69,17 +69,13 @@ public class VoicemailPlaybackLayout extends LinearLayout
/** Update rate for the slider, 30fps. */
private static final int SLIDER_UPDATE_PERIOD_MILLIS = 1000 / 30;
- private final MediaPlayer mMediaPlayer;
- private final int mDuration;
+ private int mDuration;
private final ScheduledExecutorService mExecutorService;
private final Object mLock = new Object();
@GuardedBy("mLock") private ScheduledFuture<?> mScheduledFuture;
- public PositionUpdater(
- MediaPlayer mediaPlayer,
- ScheduledExecutorService executorService) {
- mMediaPlayer = mediaPlayer;
- mDuration = mediaPlayer.getDuration();
+ public PositionUpdater(int duration, ScheduledExecutorService executorService) {
+ mDuration = duration;
mExecutorService = executorService;
}
@@ -90,11 +86,11 @@ public class VoicemailPlaybackLayout extends LinearLayout
public void run() {
int currentPosition = 0;
synchronized (mLock) {
- if (mScheduledFuture == null) {
+ if (mScheduledFuture == null || mPresenter == null) {
// This task has been canceled. Just stop now.
return;
}
- currentPosition = mMediaPlayer.getCurrentPosition();
+ currentPosition = mPresenter.getMediaPlayerPosition();
}
setClipPosition(currentPosition, mDuration);
}
@@ -234,9 +230,7 @@ public class VoicemailPlaybackLayout extends LinearLayout
}
@Override
- public void onPlaybackStarted(
- MediaPlayer mediaPlayer,
- ScheduledExecutorService executorService) {
+ public void onPlaybackStarted(int duration, ScheduledExecutorService executorService) {
mIsPlaying = true;
mStartStopButton.setImageResource(R.drawable.ic_hold_pause);
@@ -245,7 +239,7 @@ public class VoicemailPlaybackLayout extends LinearLayout
onSpeakerphoneOn(mPresenter.isSpeakerphoneOn());
}
- mPositionUpdater = new PositionUpdater(mediaPlayer, executorService);
+ mPositionUpdater = new PositionUpdater(duration, executorService);
mPositionUpdater.startUpdating();
}