diff options
| author | Jaewan Kim <jaewan@google.com> | 2016-04-26 06:02:59 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-04-26 06:03:01 +0000 |
| commit | bdc4700155f5ff89e213cb0e9efe49897b888f7d (patch) | |
| tree | 031d051b0d9f11216b18b83f04229c4fe783f642 /core/java | |
| parent | e4860f02564e887918192f733a29f04552f83414 (diff) | |
| parent | f0fd218382b96f052d22a2e8ee00510cc23a6d1e (diff) | |
Merge "PIP: Send KEYCODE_WINDOW to app first if PIP isn't exist" into nyc-dev
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/view/View.java | 7 | ||||
| -rw-r--r-- | core/java/android/view/Window.java | 13 | ||||
| -rw-r--r-- | core/java/com/android/internal/policy/PhoneWindow.java | 7 | ||||
| -rw-r--r-- | core/java/com/android/internal/statusbar/IStatusBar.aidl | 9 |
4 files changed, 29 insertions, 7 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index eb895ff7f49c..2fc1187b4977 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -3071,6 +3071,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback, /** * @hide * + * Whether the TV's picture-in-picture is visible or not. + */ + public static final int TV_PICTURE_IN_PICTURE_VISIBLE = 0x00010000; + + /** + * @hide + * * Makes navigation bar transparent (but not the status bar). */ public static final int NAVIGATION_BAR_TRANSPARENT = 0x00008000; diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java index e3abb5d70031..e598113bb3b1 100644 --- a/core/java/android/view/Window.java +++ b/core/java/android/view/Window.java @@ -24,6 +24,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.StyleRes; import android.annotation.SystemApi; +import android.app.ActivityManagerNative; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; @@ -1256,6 +1257,18 @@ public abstract class Window { } /** + * Puts the activity in picture-in-picture mode. + * @see android.R.attr#supportsPictureInPicture + * @hide + */ + protected void enterPictureInPictureMode() { + try { + ActivityManagerNative.getDefault().enterPictureInPictureMode(mAppToken); + } catch (IllegalArgumentException|RemoteException e) { + } + } + + /** * Convenience for * {@link #setContentView(View, android.view.ViewGroup.LayoutParams)} * to set the screen content from a layout resource. The resource will be diff --git a/core/java/com/android/internal/policy/PhoneWindow.java b/core/java/com/android/internal/policy/PhoneWindow.java index 151c530eea3c..16198433d99f 100644 --- a/core/java/com/android/internal/policy/PhoneWindow.java +++ b/core/java/com/android/internal/policy/PhoneWindow.java @@ -2002,6 +2002,13 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } return true; } + + case KeyEvent.KEYCODE_WINDOW: { + if (!event.isCanceled()) { + enterPictureInPictureMode(); + } + return true; + } } return false; diff --git a/core/java/com/android/internal/statusbar/IStatusBar.aidl b/core/java/com/android/internal/statusbar/IStatusBar.aidl index 5cbe1cec8956..7706ff7f173f 100644 --- a/core/java/com/android/internal/statusbar/IStatusBar.aidl +++ b/core/java/com/android/internal/statusbar/IStatusBar.aidl @@ -105,14 +105,9 @@ oneway interface IStatusBar void onCameraLaunchGestureDetected(int source); /** - * Request picture-in-picture. - * - * <p> - * This is called when an user presses picture-in-picture key or equivalent. - * TV device may start picture-in-picture from foreground activity if there's none. - * Picture-in-picture overlay menu will be shown instead otherwise. + * Shows the TV's picture-in-picture menu if an activity is in picture-in-picture mode. */ - void requestTvPictureInPicture(); + void showTvPictureInPictureMenu(); void addQsTile(in ComponentName tile); void remQsTile(in ComponentName tile); |
