summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNancy Chen <nancychen@google.com>2015-08-26 16:12:56 -0700
committerNancy Chen <nancychen@google.com>2015-08-26 16:12:56 -0700
commit17db928b33a41874456b50f37c715f4114aaab42 (patch)
tree55253c7f491699b5a048cc1797be4d0fe687ce9a
parentb3342e14d3bfb6dd9a9133ece30350e2781dddac (diff)
Do not call "onPrepared" unless the media player is prepared.
In setPlaybackView, if the MediaPlayer is not null, onPrepared is called. However, there can be a race condition where the MediaPlayer is not null, but also not yet prepared (since preparation is an asynchronous call). Bug: 23228984 Change-Id: I1536de9b2c67c0ae796224a717b1047fac0a8da4
-rw-r--r--src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java b/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
index 540ffb446..c412c98d7 100644
--- a/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
+++ b/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
@@ -39,7 +39,6 @@ import android.widget.SeekBar;
import com.android.dialer.R;
import com.android.dialer.util.AsyncTaskExecutor;
import com.android.dialer.util.AsyncTaskExecutors;
-
import com.android.common.io.MoreCloseables;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
@@ -48,7 +47,6 @@ import java.io.IOException;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.RejectedExecutionException;
-import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
@@ -242,7 +240,7 @@ public class VoicemailPlaybackPresenter
mView = view;
mView.setPresenter(this, voicemailUri);
- if (mMediaPlayer != null && voicemailUri.equals(mVoicemailUri)) {
+ if (mMediaPlayer != null && mIsPrepared && voicemailUri.equals(mVoicemailUri)) {
// Handles case where MediaPlayer was retained after an orientation change.
onPrepared(mMediaPlayer);
mView.onSpeakerphoneOn(isSpeakerphoneOn());