diff options
| author | 2021-03-29 11:59:05 +0000 | |
|---|---|---|
| committer | 2021-03-29 11:59:05 +0000 | |
| commit | 2b8b48c1e3cdd80c1d56bdedbf8d95f82a154175 (patch) | |
| tree | 1d5cc8ebf846f576486a5b77d65fa6a34ae27e9c | |
| parent | 693ac178809c5486cd6d9299f9e65c83cfa51ae9 (diff) | |
Revert "Swipe notification to edge of screen"
This reverts commit 693ac178809c5486cd6d9299f9e65c83cfa51ae9.
Reason for revert: This breaks the notification outline during the expand animation. See b/171817112#comment19 for videos.
Change-Id: I671e4bb10bdc8c7e068ced2eb11c2b8b477b534b
2 files changed, 10 insertions, 45 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java index 609ca97c1b02..3728388f63b2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java @@ -25,7 +25,6 @@ import android.graphics.Rect; import android.graphics.RectF; import android.util.AttributeSet; import android.view.View; -import android.view.ViewGroup; import android.view.ViewOutlineProvider; import com.android.systemui.R; @@ -102,28 +101,6 @@ public abstract class ExpandableOutlineView extends ExpandableView { } }; - /** - * Get the relative start padding of a view relative to this view. This recursively walks up the - * hierarchy and does the corresponding measuring. - * - * @param view the view to get the padding for. The requested view has to be a child of this - * notification. - * @return the start padding - */ - public int getRelativeStartPadding(View view) { - boolean isRtl = isLayoutRtl(); - int startPadding = 0; - while (view.getParent() instanceof ViewGroup) { - View parent = (View) view.getParent(); - startPadding += isRtl ? parent.getWidth() - view.getRight() : view.getLeft(); - view = parent; - if (view == this) { - return startPadding; - } - } - return startPadding; - } - protected Path getClipPath(boolean ignoreTranslation) { int left; int top; @@ -132,17 +109,15 @@ public abstract class ExpandableOutlineView extends ExpandableView { int height; float topRoundness = mAlwaysRoundBothCorners ? mOutlineRadius : getCurrentBackgroundRadiusTop(); - if (!mCustomOutline) { - // Extend left/right clip bounds beyond the notification by the - // 1) space between the notification and edge of screen - // 2) corner radius (so we do not see any rounding as the notification goes off screen) - left = (int) (-getRelativeStartPadding(this) - mOutlineRadius); - right = (int) (((View) getParent()).getWidth() + mOutlineRadius); - + int translation = mShouldTranslateContents && !ignoreTranslation + ? (int) getTranslation() : 0; + int halfExtraWidth = (int) (mExtraWidthForClipping / 2.0f); + left = Math.max(translation, 0) - halfExtraWidth; + top = mClipTopAmount + mBackgroundTop; + right = getWidth() + halfExtraWidth + Math.min(translation, 0); // If the top is rounded we want the bottom to be at most at the top roundness, in order // to avoid the shadow changing when scrolling up. - top = mClipTopAmount + mBackgroundTop; bottom = Math.max(mMinimumHeightForClipping, Math.max(getActualHeight() - mClipBottomAmount, (int) (top + topRoundness))); } else { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableView.java index 1086d6761249..73e080423d40 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableView.java @@ -69,8 +69,6 @@ public abstract class ExpandableView extends FrameLayout implements Dumpable { private float mContentTranslation; protected boolean mLastInSection; protected boolean mFirstInSection; - private float mOutlineRadius; - private float mParentWidth; public ExpandableView(Context context, AttributeSet attrs) { super(context, attrs); @@ -81,7 +79,6 @@ public abstract class ExpandableView extends FrameLayout implements Dumpable { private void initDimens() { mContentShift = getResources().getDimensionPixelSize( R.dimen.shelf_transform_content_shift); - mOutlineRadius = getResources().getDimensionPixelSize(R.dimen.notification_corner_radius); } @Override @@ -153,9 +150,6 @@ public abstract class ExpandableView extends FrameLayout implements Dumpable { @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); - if (getParent() != null) { - mParentWidth = ((View) getParent()).getWidth(); - } updateClipping(); } @@ -442,15 +436,11 @@ public abstract class ExpandableView extends FrameLayout implements Dumpable { protected void updateClipping() { if (mClipToActualHeight && shouldClipToActualHeight()) { - final int top = getClipTopAmount(); - final int bottom = Math.max(Math.max(getActualHeight() + getExtraBottomPadding() + int top = getClipTopAmount(); + int bottom = Math.max(Math.max(getActualHeight() + getExtraBottomPadding() - mClipBottomAmount, top), mMinimumHeightForClipping); - // Extend left/right clip bounds beyond the notification by the - // 1) space between the notification and edge of screen - // 2) corner radius (so we do not see any rounding as the notification goes off screen) - final int left = (int) (-getRelativeStartPadding(this) - mOutlineRadius); - final int right = (int) (mParentWidth + mOutlineRadius); - mClipRect.set(left, top, right, bottom); + int halfExtraWidth = (int) (mExtraWidthForClipping / 2.0f); + mClipRect.set(-halfExtraWidth, top, getWidth() + halfExtraWidth, bottom); setClipBounds(mClipRect); } else { setClipBounds(null); |