diff options
3 files changed, 36 insertions, 15 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/tv/pip/PipManager.java b/packages/SystemUI/src/com/android/systemui/tv/pip/PipManager.java index 74f0cd3ac0a2..476598d3afc7 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/pip/PipManager.java +++ b/packages/SystemUI/src/com/android/systemui/tv/pip/PipManager.java @@ -227,6 +227,13 @@ public class PipManager { } /** + * Updates the PIP per configuration changed. + */ + void onConfigurationChanged() { + mPipRecentsOverlayManager.onConfigurationChanged(mContext); + } + + /** * Shows the picture-in-picture menu if an activity is in picture-in-picture mode. */ public void showTvPictureInPictureMenu() { diff --git a/packages/SystemUI/src/com/android/systemui/tv/pip/PipRecentsOverlayManager.java b/packages/SystemUI/src/com/android/systemui/tv/pip/PipRecentsOverlayManager.java index fe5d8bce1741..6e4a5938d7b5 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/pip/PipRecentsOverlayManager.java +++ b/packages/SystemUI/src/com/android/systemui/tv/pip/PipRecentsOverlayManager.java @@ -42,9 +42,9 @@ public class PipRecentsOverlayManager { private final PipManager mPipManager = PipManager.getInstance(); private final WindowManager mWindowManager; - private final View mOverlayView; - private final PipRecentsControlsView mPipControlsView; - private final View mRecentsView; + private View mOverlayView; + private PipRecentsControlsView mPipControlsView; + private View mRecentsView; private final LayoutParams mPipRecentsControlsViewLayoutParams; private final LayoutParams mPipRecentsControlsViewFocusedLayoutParams; @@ -73,6 +73,21 @@ public class PipRecentsOverlayManager { PipRecentsOverlayManager(Context context) { mWindowManager = (WindowManager) context.getSystemService(WindowManager.class); + mPipRecentsControlsViewLayoutParams = new WindowManager.LayoutParams( + LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, + LayoutParams.TYPE_SYSTEM_DIALOG, + LayoutParams.FLAG_NOT_FOCUSABLE | LayoutParams.FLAG_NOT_TOUCHABLE, + PixelFormat.TRANSLUCENT); + mPipRecentsControlsViewFocusedLayoutParams = new WindowManager.LayoutParams( + LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, + LayoutParams.TYPE_SYSTEM_DIALOG, + 0, + PixelFormat.TRANSLUCENT); + + initViews(context); + } + + private void initViews(Context context) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); mOverlayView = inflater.inflate(R.layout.tv_pip_recents_overlay, null); @@ -86,17 +101,6 @@ public class PipRecentsOverlayManager { } } }); - - mPipRecentsControlsViewLayoutParams = new WindowManager.LayoutParams( - LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, - LayoutParams.TYPE_SYSTEM_DIALOG, - LayoutParams.FLAG_NOT_FOCUSABLE | LayoutParams.FLAG_NOT_TOUCHABLE, - PixelFormat.TRANSLUCENT); - mPipRecentsControlsViewFocusedLayoutParams = new WindowManager.LayoutParams( - LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, - LayoutParams.TYPE_SYSTEM_DIALOG, - 0, - PixelFormat.TRANSLUCENT); } /** @@ -210,4 +214,14 @@ public class PipRecentsOverlayManager { boolean isRecentsShown() { return mIsRecentsShown; } + + /** + * Updates the PIP per configuration changed. + */ + void onConfigurationChanged(Context context) { + if (mIsRecentsShown) { + Log.w(TAG, "Configuration is changed while Recents is shown"); + } + initViews(context); + } } diff --git a/packages/SystemUI/src/com/android/systemui/tv/pip/PipUI.java b/packages/SystemUI/src/com/android/systemui/tv/pip/PipUI.java index 182b9b0deb81..b3e9f43f5542 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/pip/PipUI.java +++ b/packages/SystemUI/src/com/android/systemui/tv/pip/PipUI.java @@ -48,6 +48,6 @@ public class PipUI extends SystemUI { if (!mSupportPip) { return; } - // TODO: handle configuration change. + PipManager.getInstance().onConfigurationChanged(); } } |