From 17db928b33a41874456b50f37c715f4114aaab42 Mon Sep 17 00:00:00 2001 From: Nancy Chen Date: Wed, 26 Aug 2015 16:12:56 -0700 Subject: 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 --- src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java') 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()); -- cgit v1.2.3