diff options
-rw-r--r-- | packages/SystemUI/res/values/dimens.xml | 2 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/ScreenDecorations.java | 41 |
2 files changed, 34 insertions, 9 deletions
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 875000c84260..26c7858971a0 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -917,6 +917,8 @@ <dimen name="edge_margin">8dp</dimen> <dimen name="rounded_corner_radius">0dp</dimen> + <dimen name="rounded_corner_radius_top">0dp</dimen> + <dimen name="rounded_corner_radius_bottom">0dp</dimen> <dimen name="rounded_corner_content_padding">0dp</dimen> <dimen name="nav_content_padding">0dp</dimen> <dimen name="nav_quick_scrub_track_edge_padding">42dp</dimen> diff --git a/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java b/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java index 72f6cdcfc78b..8d32e4db6d21 100644 --- a/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java +++ b/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java @@ -78,6 +78,8 @@ public class ScreenDecorations extends SystemUI implements Tunable { SystemProperties.getBoolean("debug.screenshot_rounded_corners", false); private int mRoundedDefault; + private int mRoundedDefaultTop; + private int mRoundedDefaultBottom; private View mOverlay; private View mBottomOverlay; private float mDensity; @@ -89,9 +91,14 @@ public class ScreenDecorations extends SystemUI implements Tunable { mWindowManager = mContext.getSystemService(WindowManager.class); mRoundedDefault = mContext.getResources().getDimensionPixelSize( R.dimen.rounded_corner_radius); - if (mRoundedDefault != 0 || shouldDrawCutout()) { + mRoundedDefaultTop = mContext.getResources().getDimensionPixelSize( + R.dimen.rounded_corner_radius_top); + mRoundedDefaultBottom = mContext.getResources().getDimensionPixelSize( + R.dimen.rounded_corner_radius_bottom); + if (hasRoundedCorners() || shouldDrawCutout()) { setupDecorations(); } + int padding = mContext.getResources().getDimensionPixelSize( R.dimen.rounded_corner_content_padding); if (padding != 0) { @@ -208,11 +215,15 @@ public class ScreenDecorations extends SystemUI implements Tunable { private void updateWindowVisibility(View overlay) { boolean visibleForCutout = shouldDrawCutout() && overlay.findViewById(R.id.display_cutout).getVisibility() == View.VISIBLE; - boolean visibleForRoundedCorners = mRoundedDefault > 0; + boolean visibleForRoundedCorners = hasRoundedCorners(); overlay.setVisibility(visibleForCutout || visibleForRoundedCorners ? View.VISIBLE : View.GONE); } + private boolean hasRoundedCorners() { + return mRoundedDefault > 0 || mRoundedDefaultBottom > 0 || mRoundedDefaultTop > 0; + } + private boolean shouldDrawCutout() { return shouldDrawCutout(mContext); } @@ -284,14 +295,26 @@ public class ScreenDecorations extends SystemUI implements Tunable { if (mOverlay == null) return; if (SIZE.equals(key)) { int size = mRoundedDefault; - try { - size = (int) (Integer.parseInt(newValue) * mDensity); - } catch (Exception e) { + int sizeTop = mRoundedDefaultTop; + int sizeBottom = mRoundedDefaultBottom; + if (newValue != null) { + try { + size = (int) (Integer.parseInt(newValue) * mDensity); + } catch (Exception e) { + } } - setSize(mOverlay.findViewById(R.id.left), size); - setSize(mOverlay.findViewById(R.id.right), size); - setSize(mBottomOverlay.findViewById(R.id.left), size); - setSize(mBottomOverlay.findViewById(R.id.right), size); + + if (sizeTop == 0) { + sizeTop = size; + } + if (sizeBottom == 0) { + sizeBottom = size; + } + + setSize(mOverlay.findViewById(R.id.left), sizeTop); + setSize(mOverlay.findViewById(R.id.right), sizeTop); + setSize(mBottomOverlay.findViewById(R.id.left), sizeBottom); + setSize(mBottomOverlay.findViewById(R.id.right), sizeBottom); } } |