Merge changes from topic "revert-13271843-fade-whole-notifications-PISGWIOZNU"

* changes:
  Revert "Fade in notifications one by one"
  Revert "Clip view before shelf and leave the rest unclipped"
This commit is contained in:
Lyn Han
2021-01-23 00:52:22 +00:00
committed by Android (Google) Code Review
7 changed files with 27 additions and 89 deletions

View File

@@ -204,30 +204,6 @@ public class NotificationShelf extends ActivatableNotificationView implements
}
}
/**
* @return whether to clip bottom of given view
*/
private boolean shouldClipBottom(ExpandableView view) {
final boolean showShelf = ((ShelfState) getViewState()).hasItemsInStableShelf;
if (showShelf) {
if (mAmbientState.isShadeOpening()) {
final float viewEnd = view.getTranslationY()
+ view.getActualHeight()
+ mPaddingBetweenElements;
final float finalShelfStart = mMaxLayoutHeight - getIntrinsicHeight();
// While the shade is opening, only clip view if it overlaps with shelf;
// otherwise leave view unclipped.
if (viewEnd < finalShelfStart) {
return false;
}
}
// Clip for scrolling.
return true;
}
// Don't clip since we have enough space to show all views.
return false;
}
/**
* Update the shelf appearance based on the other notifications around it. This transforms
* the icons from the notification area into the shelf.
@@ -369,9 +345,7 @@ public class NotificationShelf extends ActivatableNotificationView implements
clipTransientViews();
setClipTopAmount(clipTopAmount);
boolean isHidden = getViewState().hidden
|| clipTopAmount >= getIntrinsicHeight()
|| mAmbientState.isShadeOpening();
boolean isHidden = getViewState().hidden || clipTopAmount >= getIntrinsicHeight();
if (mShowNotificationShelf) {
setVisibility(isHidden ? View.INVISIBLE : View.VISIBLE);
}
@@ -494,8 +468,7 @@ public class NotificationShelf extends ActivatableNotificationView implements
} else {
shouldClipOwnTop = view.showingPulsing();
}
if (shouldClipBottom(view)
&& viewEnd > notificationClipEnd && !shouldClipOwnTop
if (viewEnd > notificationClipEnd && !shouldClipOwnTop
&& (mAmbientState.isShadeExpanded() || !isPinned)) {
int clipBottomAmount = (int) (viewEnd - notificationClipEnd);
if (isPinned) {

View File

@@ -614,12 +614,6 @@ public abstract class ExpandableView extends FrameLayout implements Dumpable {
}
}
public void setShouldFadeForShadeOpen(boolean shouldFade) {
if (!mViewState.gone) {
mViewState.setShouldFadeForShadeOpen(shouldFade);
}
}
/**
* @return whether the current view doesn't add height to the overall content. This means that
* if it is added to a list of items, its content will still have the same height.

View File

@@ -88,12 +88,6 @@ public class ExpandableViewState extends ViewState {
public boolean hideSensitive;
public boolean belowSpeedBump;
public boolean inShelf;
public boolean shouldFadeForShadeOpen;
@Override
boolean shouldAnimateAlpha() {
return shouldFadeForShadeOpen;
}
/**
* A state indicating whether a headsup is currently fully visible, even when not scrolled.
@@ -177,10 +171,6 @@ public class ExpandableViewState extends ViewState {
}
}
public void setShouldFadeForShadeOpen(boolean shouldFade) {
shouldFadeForShadeOpen = shouldFade;
}
@Override
public void animateTo(View child, AnimationProperties properties) {
super.animateTo(child, properties);

View File

@@ -3947,7 +3947,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
int numChildren = getChildCount();
for (int i = 0; i < numChildren; i++) {
ExpandableView child = (ExpandableView) getChildAt(i);
child.setShouldFadeForShadeOpen(mAmbientState.isShadeOpening());
child.applyViewState();
}

View File

@@ -568,14 +568,11 @@ public class StackScrollAlgorithm {
// Add padding before sections for overscroll effect.
childViewState.yTranslation += ambientState.getSectionPadding();
}
boolean show = childViewState.yTranslation < shelfStart
&& !ambientState.isAppearing();
childViewState.hidden = !show
&& !child.isExpandAnimationRunning()
&& !child.hasExpandingChild();
childViewState.inShelf = !show;
childViewState.headsUpIsVisible = show;
childViewState.alpha = show ? 1f : 0f;
if (childViewState.yTranslation >= shelfStart) {
childViewState.hidden = !child.isExpandAnimationRunning() && !child.hasExpandingChild();
childViewState.inShelf = true;
childViewState.headsUpIsVisible = false;
}
}
protected int getMaxAllowedChildHeight(View child) {

View File

@@ -45,7 +45,6 @@ public class StackStateAnimator {
public static final int ANIMATION_DURATION_CORNER_RADIUS = 200;
public static final int ANIMATION_DURATION_WAKEUP = 500;
public static final int ANIMATION_DURATION_GO_TO_FULL_SHADE = 448;
public static final int ANIMATION_DURATION_FADE_IN = 700;
public static final int ANIMATION_DURATION_APPEAR_DISAPPEAR = 464;
public static final int ANIMATION_DURATION_SWIPE = 260;
public static final int ANIMATION_DURATION_DIMMED_ACTIVATED = 220;

View File

@@ -16,8 +16,6 @@
package com.android.systemui.statusbar.notification.stack;
import static com.android.systemui.statusbar.notification.stack.StackStateAnimator.ANIMATION_DURATION_FADE_IN;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
@@ -58,16 +56,6 @@ public class ViewState implements Dumpable {
return mAnimationFilter;
}
};
protected static final AnimationProperties ANIMATE_ALPHA = new AnimationProperties() {
AnimationFilter mAnimationFilter = new AnimationFilter();
@Override
public AnimationFilter getAnimationFilter() {
mAnimationFilter.animateAlpha();
return mAnimationFilter;
}
}.setDuration(ANIMATION_DURATION_FADE_IN);
private static final int TAG_ANIMATOR_TRANSLATION_X = R.id.translation_x_animator_tag;
private static final int TAG_ANIMATOR_TRANSLATION_Y = R.id.translation_y_animator_tag;
private static final int TAG_ANIMATOR_TRANSLATION_Z = R.id.translation_z_animator_tag;
@@ -160,10 +148,6 @@ public class ViewState implements Dumpable {
scaleY = view.getScaleY();
}
boolean shouldAnimateAlpha() {
return false;
}
/**
* Applies a {@link ViewState} to a normal view.
*/
@@ -216,26 +200,24 @@ public class ViewState implements Dumpable {
int oldVisibility = view.getVisibility();
boolean becomesInvisible = this.alpha == 0.0f
|| (this.hidden && (!isAnimating(view) || oldVisibility != View.VISIBLE));
if (isAnimating(view, TAG_ANIMATOR_ALPHA)) {
startAlphaAnimation(view, NO_NEW_ANIMATIONS);
boolean animatingAlpha = isAnimating(view, TAG_ANIMATOR_ALPHA);
if (animatingAlpha) {
updateAlphaAnimation(view);
} else if (view.getAlpha() != this.alpha) {
if (shouldAnimateAlpha()) {
startAlphaAnimation(view, ANIMATE_ALPHA);
} else {
// apply layer type
boolean becomesFullyVisible = this.alpha == 1.0f;
boolean newLayerTypeIsHardware = !becomesInvisible && !becomesFullyVisible
&& view.hasOverlappingRendering();
int layerType = view.getLayerType();
int newLayerType = newLayerTypeIsHardware
? View.LAYER_TYPE_HARDWARE
: View.LAYER_TYPE_NONE;
if (layerType != newLayerType) {
view.setLayerType(newLayerType, null);
}
// apply alpha
view.setAlpha(this.alpha);
// apply layer type
boolean becomesFullyVisible = this.alpha == 1.0f;
boolean newLayerTypeIsHardware = !becomesInvisible && !becomesFullyVisible
&& view.hasOverlappingRendering();
int layerType = view.getLayerType();
int newLayerType = newLayerTypeIsHardware
? View.LAYER_TYPE_HARDWARE
: View.LAYER_TYPE_NONE;
if (layerType != newLayerType) {
view.setLayerType(newLayerType, null);
}
// apply alpha
view.setAlpha(this.alpha);
}
// apply visibility
@@ -340,6 +322,10 @@ public class ViewState implements Dumpable {
}
}
private void updateAlphaAnimation(View view) {
startAlphaAnimation(view, NO_NEW_ANIMATIONS);
}
private void startAlphaAnimation(final View child, AnimationProperties properties) {
Float previousStartValue = getChildTag(child,TAG_START_ALPHA);
Float previousEndValue = getChildTag(child,TAG_END_ALPHA);