summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Beverly <beverlyt@google.com> 2018-04-25 13:01:18 -0700
committer android-build-merger <android-build-merger@google.com> 2018-04-25 13:01:18 -0700
commit9fefeef1ac0a5f77495686512b0276b34fb2ff73 (patch)
treed85c659108174aed5966c59708ac7b3d6180cb3b
parent0b89f945296322ee342d4df7820812cad6bf68de (diff)
parent226abf5f0b14c78776d25f69b2c99fec27808222 (diff)
Merge "Rounded corners can be different on top/bottom" into pi-dev am: 336076b2a2
am: 226abf5f0b Change-Id: I49b04b00690373ff3e9bc3f1b11101776155ce03
-rw-r--r--packages/SystemUI/res/values/dimens.xml2
-rw-r--r--packages/SystemUI/src/com/android/systemui/ScreenDecorations.java41
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 0715933279a2..c3412f2db78d 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);
}
}