am e41d967c: Merge "TIF: Cache the app private command and send it when connection is made" into lmp-mr1-dev

* commit 'e41d967c5c6ff42ea41f61c731d77aa687b3956f':
  TIF: Cache the app private command and send it when connection is made
This commit is contained in:
Jae Seo
2014-10-24 17:06:24 +00:00
committed by Android Git Automerger

View File

@@ -88,6 +88,10 @@ public class TvView extends ViewGroup {
private float mStreamVolume; private float mStreamVolume;
private int mVideoWidth = VIDEO_SIZE_VALUE_UNKNOWN; private int mVideoWidth = VIDEO_SIZE_VALUE_UNKNOWN;
private int mVideoHeight = VIDEO_SIZE_VALUE_UNKNOWN; private int mVideoHeight = VIDEO_SIZE_VALUE_UNKNOWN;
private int mCaptionEnabled;
private String mAppPrivateCommandAction;
private Bundle mAppPrivateCommandData;
private boolean mSurfaceChanged; private boolean mSurfaceChanged;
private int mSurfaceFormat; private int mSurfaceFormat;
private int mSurfaceWidth; private int mSurfaceWidth;
@@ -100,7 +104,6 @@ public class TvView extends ViewGroup {
private int mSurfaceViewRight; private int mSurfaceViewRight;
private int mSurfaceViewTop; private int mSurfaceViewTop;
private int mSurfaceViewBottom; private int mSurfaceViewBottom;
private int mCaptionEnabled;
private final SurfaceHolder.Callback mSurfaceHolderCallback = new SurfaceHolder.Callback() { private final SurfaceHolder.Callback mSurfaceHolderCallback = new SurfaceHolder.Callback() {
@Override @Override
@@ -421,10 +424,10 @@ public class TvView extends ViewGroup {
* Calls {@link TvInputService.Session#appPrivateCommand(String, Bundle) * Calls {@link TvInputService.Session#appPrivateCommand(String, Bundle)
* TvInputService.Session.appPrivateCommand()} on the current TvView. * TvInputService.Session.appPrivateCommand()} on the current TvView.
* *
* @param action Name of the command to be performed. This <em>must</em> be a scoped name, i.e. * @param action The name of the private command to send. This <em>must</em> be a scoped name,
* prefixed with a package name you own, so that different developers will not create * i.e. prefixed with a package name you own, so that different developers will not
* conflicting commands. * create conflicting commands.
* @param data Any data to include with the command. * @param data An optional bundle to send with the command.
* @hide * @hide
*/ */
@SystemApi @SystemApi
@@ -434,6 +437,13 @@ public class TvView extends ViewGroup {
} }
if (mSession != null) { if (mSession != null) {
mSession.sendAppPrivateCommand(action, data); mSession.sendAppPrivateCommand(action, data);
} else {
Log.w(TAG, "sendAppPrivateCommand - session not created (action " + action + " cached)");
if (mAppPrivateCommandAction != null) {
Log.w(TAG, "previous cached action " + action + " removed");
}
mAppPrivateCommandAction = action;
mAppPrivateCommandData = data;
} }
} }
@@ -619,6 +629,9 @@ public class TvView extends ViewGroup {
} }
private void release() { private void release() {
mAppPrivateCommandAction = null;
mAppPrivateCommandData = null;
setSessionSurface(null); setSessionSurface(null);
removeSessionOverlayView(); removeSessionOverlayView();
mUseRequestedSurfaceLayout = false; mUseRequestedSurfaceLayout = false;
@@ -862,6 +875,12 @@ public class TvView extends ViewGroup {
if (mHasStreamVolume) { if (mHasStreamVolume) {
mSession.setStreamVolume(mStreamVolume); mSession.setStreamVolume(mStreamVolume);
} }
if (mAppPrivateCommandAction != null) {
mSession.sendAppPrivateCommand(
mAppPrivateCommandAction, mAppPrivateCommandData);
mAppPrivateCommandAction = null;
mAppPrivateCommandData = null;
}
} else { } else {
mSessionCallback = null; mSessionCallback = null;
if (mCallback != null) { if (mCallback != null) {