Remove the scrimming of notifications
Not really needed anymore and adds a lot of overdraw. Let's get rid of it. Bug: 17287256 Bug: 17346296 Change-Id: I319596f7059b6ed0d3d7a578d3c786921001f4b5
This commit is contained in:
@@ -64,9 +64,4 @@
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
<com.android.systemui.statusbar.NotificationScrimView
|
||||
android:id="@+id/scrim_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
</com.android.systemui.statusbar.NotificationOverflowContainer>
|
||||
|
||||
@@ -59,9 +59,4 @@
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
|
||||
<com.android.systemui.statusbar.NotificationScrimView
|
||||
android:id="@+id/scrim_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
</com.android.systemui.statusbar.ExpandableNotificationRow>
|
||||
|
||||
@@ -121,7 +121,6 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView
|
||||
|
||||
private NotificationBackgroundView mBackgroundNormal;
|
||||
private NotificationBackgroundView mBackgroundDimmed;
|
||||
private NotificationScrimView mScrimView;
|
||||
private ObjectAnimator mBackgroundAnimator;
|
||||
private RectF mAppearAnimationRect = new RectF();
|
||||
private PorterDuffColorFilter mAppearAnimationFilter;
|
||||
@@ -173,8 +172,6 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView
|
||||
mBackgroundDimmed.setCustomBackground(R.drawable.notification_material_bg_dim);
|
||||
updateBackground();
|
||||
updateBackgroundTint();
|
||||
mScrimView = (NotificationScrimView) findViewById(R.id.scrim_view);
|
||||
setScrimAmount(0);
|
||||
}
|
||||
|
||||
private final Runnable mTapTimeoutRunnable = new Runnable() {
|
||||
@@ -465,7 +462,6 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView
|
||||
setPivotY(actualHeight / 2);
|
||||
mBackgroundNormal.setActualHeight(actualHeight);
|
||||
mBackgroundDimmed.setActualHeight(actualHeight);
|
||||
mScrimView.setActualHeight(actualHeight);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -473,7 +469,6 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView
|
||||
super.setClipTopAmount(clipTopAmount);
|
||||
mBackgroundNormal.setClipTopAmount(clipTopAmount);
|
||||
mBackgroundDimmed.setClipTopAmount(clipTopAmount);
|
||||
mScrimView.setClipTopAmount(clipTopAmount);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -496,11 +491,6 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setScrimAmount(float scrimAmount) {
|
||||
mScrimView.setAlpha(scrimAmount);
|
||||
}
|
||||
|
||||
private void startAppearAnimation(boolean isAppearing, float translationDirection, long delay,
|
||||
long duration, final Runnable onFinishedRunnable) {
|
||||
if (mAppearAnimator != null) {
|
||||
|
||||
@@ -255,8 +255,6 @@ public abstract class ExpandableView extends FrameLayout {
|
||||
|
||||
public abstract void performAddAnimation(long delay, long duration);
|
||||
|
||||
public abstract void setScrimAmount(float scrimAmount);
|
||||
|
||||
public void setBelowSpeedBump(boolean below) {
|
||||
}
|
||||
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2014 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License
|
||||
*/
|
||||
|
||||
package com.android.systemui.statusbar;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
|
||||
import com.android.keyguard.R;
|
||||
|
||||
/**
|
||||
* A view that can be used for both the dimmed and normal background of an notification.
|
||||
*/
|
||||
public class NotificationScrimView extends View {
|
||||
|
||||
private Drawable mBackground;
|
||||
private int mClipTopAmount;
|
||||
private int mActualHeight;
|
||||
|
||||
public NotificationScrimView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
mBackground = getResources().getDrawable(R.drawable.notification_scrim);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDraw(Canvas canvas) {
|
||||
draw(canvas, mBackground);
|
||||
}
|
||||
|
||||
private void draw(Canvas canvas, Drawable drawable) {
|
||||
if (drawable != null) {
|
||||
drawable.setBounds(0, mClipTopAmount, getWidth(), mActualHeight);
|
||||
drawable.draw(canvas);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean verifyDrawable(Drawable who) {
|
||||
return super.verifyDrawable(who) || who == mBackground;
|
||||
}
|
||||
|
||||
public void setActualHeight(int actualHeight) {
|
||||
mActualHeight = actualHeight;
|
||||
invalidate();
|
||||
}
|
||||
|
||||
public int getActualHeight() {
|
||||
return mActualHeight;
|
||||
}
|
||||
|
||||
public void setClipTopAmount(int clipTopAmount) {
|
||||
mClipTopAmount = clipTopAmount;
|
||||
invalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasOverlappingRendering() {
|
||||
|
||||
// Prevents this view from creating a layer when alpha is animating.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -126,9 +126,4 @@ public class SpeedBumpView extends ExpandableView {
|
||||
// TODO: Use duration
|
||||
performVisibilityAnimation(true, delay);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setScrimAmount(float scrimAmount) {
|
||||
// We don't need to scrim the speedbumps
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,11 +126,6 @@ public abstract class StackScrollerDecorView extends ExpandableView {
|
||||
performVisibilityAnimation(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setScrimAmount(float scrimAmount) {
|
||||
// We don't need to scrim the dismissView
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasOverlappingRendering() {
|
||||
return false;
|
||||
|
||||
@@ -1047,7 +1047,6 @@ public class NotificationPanelView extends PanelView implements
|
||||
int startDistance = mQsMinExpansionHeight + mNotificationScrimWaitDistance;
|
||||
float progress = (height - startDistance) / (mQsMaxExpansionHeight - startDistance);
|
||||
progress = Math.max(0.0f, Math.min(progress, 1.0f));
|
||||
mNotificationStackScroller.setScrimAlpha(progress);
|
||||
}
|
||||
|
||||
private float getHeaderExpansionFraction() {
|
||||
|
||||
@@ -32,7 +32,6 @@ public class AmbientState {
|
||||
private float mOverScrollTopAmount;
|
||||
private float mOverScrollBottomAmount;
|
||||
private int mSpeedBumpIndex = -1;
|
||||
private float mScrimAmount;
|
||||
private boolean mDark;
|
||||
private boolean mHideSensitive;
|
||||
|
||||
@@ -105,14 +104,6 @@ public class AmbientState {
|
||||
}
|
||||
}
|
||||
|
||||
public void setScrimAmount(float scrimAmount) {
|
||||
mScrimAmount = scrimAmount;
|
||||
}
|
||||
|
||||
public float getScrimAmount() {
|
||||
return mScrimAmount;
|
||||
}
|
||||
|
||||
public float getOverScrollAmount(boolean top) {
|
||||
return top ? mOverScrollTopAmount : mOverScrollBottomAmount;
|
||||
}
|
||||
|
||||
@@ -2094,13 +2094,6 @@ public class NotificationStackScrollLayout extends ViewGroup
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setScrimAlpha(float progress) {
|
||||
if (progress != mAmbientState.getScrimAmount()) {
|
||||
mAmbientState.setScrimAmount(progress);
|
||||
requestChildrenUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* See {@link AmbientState#setDark}.
|
||||
*/
|
||||
|
||||
@@ -172,7 +172,6 @@ public class StackScrollAlgorithm {
|
||||
handleDraggedViews(ambientState, resultState, algorithmState);
|
||||
updateDimmedActivatedHideSensitive(ambientState, resultState, algorithmState);
|
||||
updateClipping(resultState, algorithmState);
|
||||
updateScrimAmount(resultState, algorithmState, ambientState.getScrimAmount());
|
||||
updateSpeedBumpState(resultState, algorithmState, ambientState.getSpeedBumpIndex());
|
||||
}
|
||||
|
||||
@@ -189,16 +188,6 @@ public class StackScrollAlgorithm {
|
||||
}
|
||||
}
|
||||
|
||||
private void updateScrimAmount(StackScrollState resultState,
|
||||
StackScrollAlgorithmState algorithmState, float scrimAmount) {
|
||||
int childCount = algorithmState.visibleChildren.size();
|
||||
for (int i = 0; i < childCount; i++) {
|
||||
View child = algorithmState.visibleChildren.get(i);
|
||||
StackScrollState.ViewState childViewState = resultState.getViewStateForView(child);
|
||||
childViewState.scrimAmount = scrimAmount;
|
||||
}
|
||||
}
|
||||
|
||||
private void updateClipping(StackScrollState resultState,
|
||||
StackScrollAlgorithmState algorithmState) {
|
||||
float previousNotificationEnd = 0;
|
||||
|
||||
@@ -165,9 +165,6 @@ public class StackScrollState {
|
||||
// apply speed bump state
|
||||
child.setBelowSpeedBump(state.belowSpeedBump);
|
||||
|
||||
// apply scrimming
|
||||
child.setScrimAmount(state.scrimAmount);
|
||||
|
||||
// apply clipping
|
||||
float oldClipTopAmount = child.getClipTopAmount();
|
||||
if (oldClipTopAmount != state.clipTopAmount) {
|
||||
@@ -251,12 +248,6 @@ public class StackScrollState {
|
||||
boolean hideSensitive;
|
||||
boolean belowSpeedBump;
|
||||
|
||||
/**
|
||||
* A value between 0 and 1 indicating how much the view should be scrimmed.
|
||||
* 1 means that the notifications will be darkened as much as possible.
|
||||
*/
|
||||
float scrimAmount;
|
||||
|
||||
/**
|
||||
* The amount which the view should be clipped from the top. This is calculated to
|
||||
* perceive consistent shadows.
|
||||
|
||||
@@ -251,9 +251,6 @@ public class StackStateAnimator {
|
||||
child.setHideSensitive(viewState.hideSensitive, mAnimationFilter.animateHideSensitive &&
|
||||
!wasAdded && !noAnimation, delay, duration);
|
||||
|
||||
// apply scrimming
|
||||
child.setScrimAmount(viewState.scrimAmount);
|
||||
|
||||
if (wasAdded) {
|
||||
child.performAddAnimation(delay, mCurrentLength);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user