From 336cdf20dd44ee93b5173be73e26e966a2609eb0 Mon Sep 17 00:00:00 2001 From: Dongwon Kang Date: Sun, 8 Jun 2014 18:20:55 +0900 Subject: [PATCH] Make TvView keep the volume value and set later once the connecation is made. Bug: 15483740 Change-Id: Id4272bffb556587707b641ec8296bc5a9e57807e --- media/java/android/media/tv/TvView.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/media/java/android/media/tv/TvView.java b/media/java/android/media/tv/TvView.java index c2459a64d44f4..245332507ac68 100644 --- a/media/java/android/media/tv/TvView.java +++ b/media/java/android/media/tv/TvView.java @@ -64,6 +64,8 @@ public class TvView extends SurfaceView { private MySessionCallback mSessionCallback; private TvInputListener mListener; private OnUnhandledInputEventListener mOnUnhandledInputEventListener; + private boolean mHasStreamVolume; + private float mStreamVolume; private final SurfaceHolder.Callback mSurfaceHolderCallback = new SurfaceHolder.Callback() { @Override @@ -143,7 +145,10 @@ public class TvView extends SurfaceView { */ public void setStreamVolume(float volume) { if (DEBUG) Log.d(TAG, "setStreamVolume(" + volume + ")"); + mHasStreamVolume = true; + mStreamVolume = volume; if (mSession == null) { + // Volume will be set once the connection has been made. return; } mSession.setStreamVolume(volume); @@ -476,6 +481,9 @@ public class TvView extends SurfaceView { } createSessionOverlayView(); mSession.tune(mChannelUri); + if (mHasStreamVolume) { + mSession.setStreamVolume(mStreamVolume); + } } else { if (mListener != null) { mListener.onError(mInputId, ERROR_BUSY);