summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJae Seo <jaeseo@google.com>2014-10-24 17:02:33 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-10-24 17:02:34 +0000
commite41d967c5c6ff42ea41f61c731d77aa687b3956f (patch)
tree22148f7a1be700488443e8c8d4a67a1013589a34
parentfdef09ecef877605f47cc763eb497364f27e5c45 (diff)
parent887f52144eeea8d5812d64a29e207af6b97a763d (diff)
Merge "TIF: Cache the app private command and send it when connection is made" into lmp-mr1-dev
-rw-r--r--media/java/android/media/tv/TvView.java29
1 files changed, 24 insertions, 5 deletions
diff --git a/media/java/android/media/tv/TvView.java b/media/java/android/media/tv/TvView.java
index 0949b1af9dc8..92a2a395cb13 100644
--- a/media/java/android/media/tv/TvView.java
+++ b/media/java/android/media/tv/TvView.java
@@ -88,6 +88,10 @@ public class TvView extends ViewGroup {
private float mStreamVolume;
private int mVideoWidth = VIDEO_SIZE_VALUE_UNKNOWN;
private int mVideoHeight = VIDEO_SIZE_VALUE_UNKNOWN;
+ private int mCaptionEnabled;
+ private String mAppPrivateCommandAction;
+ private Bundle mAppPrivateCommandData;
+
private boolean mSurfaceChanged;
private int mSurfaceFormat;
private int mSurfaceWidth;
@@ -100,7 +104,6 @@ public class TvView extends ViewGroup {
private int mSurfaceViewRight;
private int mSurfaceViewTop;
private int mSurfaceViewBottom;
- private int mCaptionEnabled;
private final SurfaceHolder.Callback mSurfaceHolderCallback = new SurfaceHolder.Callback() {
@Override
@@ -421,10 +424,10 @@ public class TvView extends ViewGroup {
* Calls {@link TvInputService.Session#appPrivateCommand(String, Bundle)
* 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.
- * prefixed with a package name you own, so that different developers will not create
- * conflicting commands.
- * @param data Any data to include with the command.
+ * @param action The name of the private command to send. This <em>must</em> be a scoped name,
+ * i.e. prefixed with a package name you own, so that different developers will not
+ * create conflicting commands.
+ * @param data An optional bundle to send with the command.
* @hide
*/
@SystemApi
@@ -434,6 +437,13 @@ public class TvView extends ViewGroup {
}
if (mSession != null) {
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() {
+ mAppPrivateCommandAction = null;
+ mAppPrivateCommandData = null;
+
setSessionSurface(null);
removeSessionOverlayView();
mUseRequestedSurfaceLayout = false;
@@ -862,6 +875,12 @@ public class TvView extends ViewGroup {
if (mHasStreamVolume) {
mSession.setStreamVolume(mStreamVolume);
}
+ if (mAppPrivateCommandAction != null) {
+ mSession.sendAppPrivateCommand(
+ mAppPrivateCommandAction, mAppPrivateCommandData);
+ mAppPrivateCommandAction = null;
+ mAppPrivateCommandData = null;
+ }
} else {
mSessionCallback = null;
if (mCallback != null) {