Loading libs/WindowManager/Shell/res/layout/tv_pip_menu.xml +0 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:padding="@dimen/pip_menu_button_start_end_offset" android:clipToPadding="false" android:alpha="0" android:contentDescription="@string/a11y_pip_menu_entered"/> Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipBoundsState.java +1 −0 Original line number Diff line number Diff line Loading @@ -110,6 +110,7 @@ public class TvPipBoundsState extends PipBoundsState { @Override public void onConfigurationChanged() { super.onConfigurationChanged(); updateDefaultGravity(); } Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipController.java +20 −2 Original line number Diff line number Diff line Loading @@ -223,10 +223,9 @@ public class TvPipController implements PipTransitionController.PipTransitionCal mShellController = shellController; mDisplayController = displayController; DisplayLayout layout = new DisplayLayout(context, context.getDisplay()); mTvPipBoundsState = tvPipBoundsState; DisplayLayout layout = new DisplayLayout(context, context.getDisplay()); mPipDisplayLayoutState = pipDisplayLayoutState; mPipDisplayLayoutState.setDisplayLayout(layout); mPipDisplayLayoutState.setDisplayId(context.getDisplayId()); Loading Loading @@ -291,6 +290,7 @@ public class TvPipController implements PipTransitionController.PipTransitionCal mPipNotificationController.onConfigurationChanged(); mTvPipBoundsAlgorithm.onConfigurationChanged(mContext); mTvPipBoundsState.onConfigurationChanged(); mPipDisplayLayoutState.onConfigurationChanged(); int defaultGravityX = mTvPipBoundsState.getDefaultGravity() & Gravity.HORIZONTAL_GRAVITY_MASK; Loading @@ -299,6 +299,24 @@ public class TvPipController implements PipTransitionController.PipTransitionCal } } @Override public void onDensityOrFontScaleChanged() { ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE, "%s: onDensityOrFontScaleChanged()", TAG); updatePinnedStackBounds(); mTvPipMenuController.reloadMenu(); } @Override public void onDisplayConfigurationChanged(int displayId, Configuration newConfig) { ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE, "%s: onDisplayConfigurationChanged(), displayId %d, saved display id %d", TAG, displayId, mPipDisplayLayoutState.getDisplayId()); mPipDisplayLayoutState.setDisplayLayout( new DisplayLayout(mContext, mContext.getDisplay())); mPipDisplayLayoutState.setDisplayId(mContext.getDisplayId()); } private void reloadResources() { final Resources res = mContext.getResources(); mResizeAnimationDuration = res.getInteger(R.integer.config_pipResizeAnimationDuration); Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipMenuController.java +27 −5 Original line number Diff line number Diff line Loading @@ -63,6 +63,8 @@ public class TvPipMenuController implements PipMenuController, TvPipMenuView.Lis private TvPipMenuView mPipMenuView; private TvPipBackgroundView mPipBackgroundView; private boolean mIsReloading; @TvPipMenuMode private int mCurrentMenuMode = MODE_NO_MENU; @TvPipMenuMode Loading Loading @@ -134,6 +136,18 @@ public class TvPipMenuController implements PipMenuController, TvPipMenuView.Lis mTvPipActionsProvider = tvPipActionsProvider; } void reloadMenu() { if (mLeash == null) { return; } mPrevMenuMode = mCurrentMenuMode; detachPipMenu(); mCurrentMenuMode = MODE_NO_MENU; attachPipMenu(/* showEduText */ false); mPipMenuView.onCloseEduTextAnimationEnd(); mIsReloading = true; } @Override public void attach(SurfaceControl leash) { if (mDelegate == null) { Loading @@ -141,10 +155,10 @@ public class TvPipMenuController implements PipMenuController, TvPipMenuView.Lis } mLeash = leash; attachPipMenu(); attachPipMenu(/* showEduText */ true); } private void attachPipMenu() { private void attachPipMenu(boolean showEduText) { ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE, "%s: attachPipMenu()", TAG); Loading @@ -155,13 +169,17 @@ public class TvPipMenuController implements PipMenuController, TvPipMenuView.Lis attachPipBackgroundView(); attachPipMenuView(); int pipEduTextHeight = mContext.getResources() .getDimensionPixelSize(R.dimen.pip_menu_edu_text_view_height); int pipMenuBorderWidth = mContext.getResources() .getDimensionPixelSize(R.dimen.pip_menu_border_width); mTvPipBoundsState.setPipMenuPermanentDecorInsets(Insets.of(-pipMenuBorderWidth, -pipMenuBorderWidth, -pipMenuBorderWidth, -pipMenuBorderWidth)); if (showEduText) { int pipEduTextHeight = mContext.getResources() .getDimensionPixelSize(R.dimen.pip_menu_edu_text_view_height); mTvPipBoundsState.setPipMenuTemporaryDecorInsets(Insets.of(0, 0, 0, -pipEduTextHeight)); } else { mTvPipBoundsState.setPipMenuTemporaryDecorInsets(Insets.NONE); } } private void attachPipMenuView() { Loading Loading @@ -223,6 +241,10 @@ public class TvPipMenuController implements PipMenuController, TvPipMenuView.Lis mMainHandler.post(() -> { if (mPipMenuView != null) { mPipMenuView.onPipTransitionFinished(enterTransition); if (mIsReloading) { requestMenuMode(mPrevMenuMode); mIsReloading = false; } } }); } Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipMenuEduTextDrawer.java +0 −3 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.wm.shell.pip.tv; import static android.view.Gravity.BOTTOM; import static android.view.Gravity.CENTER; import static android.view.View.GONE; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE; Loading @@ -36,7 +35,6 @@ import android.text.TextUtils; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.widget.FrameLayout; import android.widget.FrameLayout.LayoutParams; import android.widget.TextView; import androidx.annotation.NonNull; Loading Loading @@ -267,7 +265,6 @@ class TvPipMenuEduTextDrawer extends FrameLayout { } public void onCloseEduTextAnimationEnd() { setVisibility(GONE); mListener.onCloseEduTextAnimationEnd(); } Loading Loading
libs/WindowManager/Shell/res/layout/tv_pip_menu.xml +0 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:padding="@dimen/pip_menu_button_start_end_offset" android:clipToPadding="false" android:alpha="0" android:contentDescription="@string/a11y_pip_menu_entered"/> Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipBoundsState.java +1 −0 Original line number Diff line number Diff line Loading @@ -110,6 +110,7 @@ public class TvPipBoundsState extends PipBoundsState { @Override public void onConfigurationChanged() { super.onConfigurationChanged(); updateDefaultGravity(); } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipController.java +20 −2 Original line number Diff line number Diff line Loading @@ -223,10 +223,9 @@ public class TvPipController implements PipTransitionController.PipTransitionCal mShellController = shellController; mDisplayController = displayController; DisplayLayout layout = new DisplayLayout(context, context.getDisplay()); mTvPipBoundsState = tvPipBoundsState; DisplayLayout layout = new DisplayLayout(context, context.getDisplay()); mPipDisplayLayoutState = pipDisplayLayoutState; mPipDisplayLayoutState.setDisplayLayout(layout); mPipDisplayLayoutState.setDisplayId(context.getDisplayId()); Loading Loading @@ -291,6 +290,7 @@ public class TvPipController implements PipTransitionController.PipTransitionCal mPipNotificationController.onConfigurationChanged(); mTvPipBoundsAlgorithm.onConfigurationChanged(mContext); mTvPipBoundsState.onConfigurationChanged(); mPipDisplayLayoutState.onConfigurationChanged(); int defaultGravityX = mTvPipBoundsState.getDefaultGravity() & Gravity.HORIZONTAL_GRAVITY_MASK; Loading @@ -299,6 +299,24 @@ public class TvPipController implements PipTransitionController.PipTransitionCal } } @Override public void onDensityOrFontScaleChanged() { ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE, "%s: onDensityOrFontScaleChanged()", TAG); updatePinnedStackBounds(); mTvPipMenuController.reloadMenu(); } @Override public void onDisplayConfigurationChanged(int displayId, Configuration newConfig) { ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE, "%s: onDisplayConfigurationChanged(), displayId %d, saved display id %d", TAG, displayId, mPipDisplayLayoutState.getDisplayId()); mPipDisplayLayoutState.setDisplayLayout( new DisplayLayout(mContext, mContext.getDisplay())); mPipDisplayLayoutState.setDisplayId(mContext.getDisplayId()); } private void reloadResources() { final Resources res = mContext.getResources(); mResizeAnimationDuration = res.getInteger(R.integer.config_pipResizeAnimationDuration); Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipMenuController.java +27 −5 Original line number Diff line number Diff line Loading @@ -63,6 +63,8 @@ public class TvPipMenuController implements PipMenuController, TvPipMenuView.Lis private TvPipMenuView mPipMenuView; private TvPipBackgroundView mPipBackgroundView; private boolean mIsReloading; @TvPipMenuMode private int mCurrentMenuMode = MODE_NO_MENU; @TvPipMenuMode Loading Loading @@ -134,6 +136,18 @@ public class TvPipMenuController implements PipMenuController, TvPipMenuView.Lis mTvPipActionsProvider = tvPipActionsProvider; } void reloadMenu() { if (mLeash == null) { return; } mPrevMenuMode = mCurrentMenuMode; detachPipMenu(); mCurrentMenuMode = MODE_NO_MENU; attachPipMenu(/* showEduText */ false); mPipMenuView.onCloseEduTextAnimationEnd(); mIsReloading = true; } @Override public void attach(SurfaceControl leash) { if (mDelegate == null) { Loading @@ -141,10 +155,10 @@ public class TvPipMenuController implements PipMenuController, TvPipMenuView.Lis } mLeash = leash; attachPipMenu(); attachPipMenu(/* showEduText */ true); } private void attachPipMenu() { private void attachPipMenu(boolean showEduText) { ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE, "%s: attachPipMenu()", TAG); Loading @@ -155,13 +169,17 @@ public class TvPipMenuController implements PipMenuController, TvPipMenuView.Lis attachPipBackgroundView(); attachPipMenuView(); int pipEduTextHeight = mContext.getResources() .getDimensionPixelSize(R.dimen.pip_menu_edu_text_view_height); int pipMenuBorderWidth = mContext.getResources() .getDimensionPixelSize(R.dimen.pip_menu_border_width); mTvPipBoundsState.setPipMenuPermanentDecorInsets(Insets.of(-pipMenuBorderWidth, -pipMenuBorderWidth, -pipMenuBorderWidth, -pipMenuBorderWidth)); if (showEduText) { int pipEduTextHeight = mContext.getResources() .getDimensionPixelSize(R.dimen.pip_menu_edu_text_view_height); mTvPipBoundsState.setPipMenuTemporaryDecorInsets(Insets.of(0, 0, 0, -pipEduTextHeight)); } else { mTvPipBoundsState.setPipMenuTemporaryDecorInsets(Insets.NONE); } } private void attachPipMenuView() { Loading Loading @@ -223,6 +241,10 @@ public class TvPipMenuController implements PipMenuController, TvPipMenuView.Lis mMainHandler.post(() -> { if (mPipMenuView != null) { mPipMenuView.onPipTransitionFinished(enterTransition); if (mIsReloading) { requestMenuMode(mPrevMenuMode); mIsReloading = false; } } }); } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipMenuEduTextDrawer.java +0 −3 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.wm.shell.pip.tv; import static android.view.Gravity.BOTTOM; import static android.view.Gravity.CENTER; import static android.view.View.GONE; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE; Loading @@ -36,7 +35,6 @@ import android.text.TextUtils; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.widget.FrameLayout; import android.widget.FrameLayout.LayoutParams; import android.widget.TextView; import androidx.annotation.NonNull; Loading Loading @@ -267,7 +265,6 @@ class TvPipMenuEduTextDrawer extends FrameLayout { } public void onCloseEduTextAnimationEnd() { setVisibility(GONE); mListener.onCloseEduTextAnimationEnd(); } Loading