Loading core/java/com/android/internal/policy/DecorView.java +23 −6 Original line number Diff line number Diff line Loading @@ -232,7 +232,7 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind // This is the caption view for the window, containing the caption and window control // buttons. The visibility of this decor depends on the workspace and the window type. // If the window type does not require such a view, this member might be null. DecorCaptionView mDecorCaptionView; private DecorCaptionView mDecorCaptionView; private boolean mWindowResizeCallbacksAdded = false; private Drawable.Callback mLastBackgroundDrawableCb = null; Loading Loading @@ -977,6 +977,7 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind @Override public void onWindowSystemUiVisibilityChanged(int visible) { updateColorViews(null /* insets */, true /* animate */); updateDecorCaptionStatus(getResources().getConfiguration()); } @Override Loading Loading @@ -1855,8 +1856,27 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); final boolean displayWindowDecor = newConfig.windowConfiguration.hasWindowDecorCaption(); updateDecorCaptionStatus(newConfig); updateAvailableWidth(); initializeElevation(); } /** * Determines if the workspace is entirely covered by the window. * @return {@code true} when the window is filling the entire screen/workspace. **/ private boolean isFillingScreen(Configuration config) { final boolean isFullscreen = config.windowConfiguration.getWindowingMode() == WindowConfiguration.WINDOWING_MODE_FULLSCREEN; return isFullscreen && (0 != ((getWindowSystemUiVisibility() | getSystemUiVisibility()) & (View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE | View.SYSTEM_UI_FLAG_LOW_PROFILE))); } private void updateDecorCaptionStatus(Configuration config) { final boolean displayWindowDecor = config.windowConfiguration.hasWindowDecorCaption() && !isFillingScreen(config); if (mDecorCaptionView == null && displayWindowDecor) { // Configuration now requires a caption. final LayoutInflater inflater = mWindow.getLayoutInflater(); Loading @@ -1875,9 +1895,6 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind mDecorCaptionView.onConfigurationChanged(displayWindowDecor); enableCaption(displayWindowDecor); } updateAvailableWidth(); initializeElevation(); } void onResourcesLoaded(LayoutInflater inflater, int layoutResource) { Loading core/java/com/android/internal/widget/DecorCaptionView.java +1 −12 Original line number Diff line number Diff line Loading @@ -319,23 +319,12 @@ public class DecorCaptionView extends ViewGroup implements View.OnTouchListener, mOwner.notifyRestrictedCaptionAreaCallback(mMaximize.getLeft(), mMaximize.getTop(), mClose.getRight(), mClose.getBottom()); } /** * Determine if the workspace is entirely covered by the window. * @return Returns true when the window is filling the entire screen/workspace. **/ private boolean isFillingScreen() { return (0 != ((getWindowSystemUiVisibility() | getSystemUiVisibility()) & (View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE | View.SYSTEM_UI_FLAG_LOW_PROFILE))); } /** * Updates the visibility of the caption. **/ private void updateCaptionVisibility() { // Don't show the caption if the window has e.g. entered full screen. boolean invisible = isFillingScreen() || !mShow; mCaption.setVisibility(invisible ? GONE : VISIBLE); mCaption.setVisibility(mShow ? VISIBLE : GONE); mCaption.setOnTouchListener(this); } Loading Loading
core/java/com/android/internal/policy/DecorView.java +23 −6 Original line number Diff line number Diff line Loading @@ -232,7 +232,7 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind // This is the caption view for the window, containing the caption and window control // buttons. The visibility of this decor depends on the workspace and the window type. // If the window type does not require such a view, this member might be null. DecorCaptionView mDecorCaptionView; private DecorCaptionView mDecorCaptionView; private boolean mWindowResizeCallbacksAdded = false; private Drawable.Callback mLastBackgroundDrawableCb = null; Loading Loading @@ -977,6 +977,7 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind @Override public void onWindowSystemUiVisibilityChanged(int visible) { updateColorViews(null /* insets */, true /* animate */); updateDecorCaptionStatus(getResources().getConfiguration()); } @Override Loading Loading @@ -1855,8 +1856,27 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); final boolean displayWindowDecor = newConfig.windowConfiguration.hasWindowDecorCaption(); updateDecorCaptionStatus(newConfig); updateAvailableWidth(); initializeElevation(); } /** * Determines if the workspace is entirely covered by the window. * @return {@code true} when the window is filling the entire screen/workspace. **/ private boolean isFillingScreen(Configuration config) { final boolean isFullscreen = config.windowConfiguration.getWindowingMode() == WindowConfiguration.WINDOWING_MODE_FULLSCREEN; return isFullscreen && (0 != ((getWindowSystemUiVisibility() | getSystemUiVisibility()) & (View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE | View.SYSTEM_UI_FLAG_LOW_PROFILE))); } private void updateDecorCaptionStatus(Configuration config) { final boolean displayWindowDecor = config.windowConfiguration.hasWindowDecorCaption() && !isFillingScreen(config); if (mDecorCaptionView == null && displayWindowDecor) { // Configuration now requires a caption. final LayoutInflater inflater = mWindow.getLayoutInflater(); Loading @@ -1875,9 +1895,6 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind mDecorCaptionView.onConfigurationChanged(displayWindowDecor); enableCaption(displayWindowDecor); } updateAvailableWidth(); initializeElevation(); } void onResourcesLoaded(LayoutInflater inflater, int layoutResource) { Loading
core/java/com/android/internal/widget/DecorCaptionView.java +1 −12 Original line number Diff line number Diff line Loading @@ -319,23 +319,12 @@ public class DecorCaptionView extends ViewGroup implements View.OnTouchListener, mOwner.notifyRestrictedCaptionAreaCallback(mMaximize.getLeft(), mMaximize.getTop(), mClose.getRight(), mClose.getBottom()); } /** * Determine if the workspace is entirely covered by the window. * @return Returns true when the window is filling the entire screen/workspace. **/ private boolean isFillingScreen() { return (0 != ((getWindowSystemUiVisibility() | getSystemUiVisibility()) & (View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE | View.SYSTEM_UI_FLAG_LOW_PROFILE))); } /** * Updates the visibility of the caption. **/ private void updateCaptionVisibility() { // Don't show the caption if the window has e.g. entered full screen. boolean invisible = isFillingScreen() || !mShow; mCaption.setVisibility(invisible ? GONE : VISIBLE); mCaption.setVisibility(mShow ? VISIBLE : GONE); mCaption.setOnTouchListener(this); } Loading