Merge "Small cleanup for notifications" into ub-launcher3-dorval
am: 904166fd1e
Change-Id: I1f7eecf94ca6dd495e8ebdb3f0a98354a833678d
This commit is contained in:
@@ -198,15 +198,17 @@ public class NotificationFooterLayout extends FrameLayout {
|
||||
// There are no more icons in the footer, so hide it.
|
||||
PopupContainerWithArrow popup = PopupContainerWithArrow.getOpen(
|
||||
Launcher.getLauncher(getContext()));
|
||||
Animator collapseFooter = popup.reduceNotificationViewHeight(getHeight(),
|
||||
getResources().getInteger(R.integer.config_removeNotificationViewDuration));
|
||||
collapseFooter.addListener(new AnimatorListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
((ViewGroup) getParent()).removeView(NotificationFooterLayout.this);
|
||||
}
|
||||
});
|
||||
collapseFooter.start();
|
||||
if (popup != null) {
|
||||
Animator collapseFooter = popup.reduceNotificationViewHeight(getHeight(),
|
||||
getResources().getInteger(R.integer.config_removeNotificationViewDuration));
|
||||
collapseFooter.addListener(new AnimatorListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
((ViewGroup) getParent()).removeView(NotificationFooterLayout.this);
|
||||
}
|
||||
});
|
||||
collapseFooter.start();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@ import android.graphics.Rect;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import com.android.launcher3.ItemInfo;
|
||||
@@ -85,8 +84,6 @@ public class NotificationItemView extends PopupItemView implements LogContainerP
|
||||
MeasureSpec.makeMeasureSpec(newHeight, MeasureSpec.EXACTLY));
|
||||
initializeBackgroundClipping(true /* force */);
|
||||
invalidate();
|
||||
} else {
|
||||
((ViewGroup) getParent()).removeView(NotificationItemView.this);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -568,7 +568,7 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra
|
||||
R.integer.config_removeNotificationViewDuration);
|
||||
final int spacing = getResources().getDimensionPixelSize(R.dimen.popup_items_spacing);
|
||||
removeNotification.play(reduceNotificationViewHeight(
|
||||
mNotificationItemView.getHeight() + spacing, duration, mNotificationItemView));
|
||||
mNotificationItemView.getHeight() + spacing, duration));
|
||||
final View removeMarginView = mIsAboveIcon ? getItemViewAt(getItemCount() - 2)
|
||||
: mNotificationItemView;
|
||||
if (removeMarginView != null) {
|
||||
@@ -588,6 +588,7 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation) {
|
||||
removeView(mNotificationItemView);
|
||||
mNotificationItemView = null;
|
||||
if (getItemCount() == 0) {
|
||||
close(false);
|
||||
return;
|
||||
@@ -612,19 +613,19 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra
|
||||
return LauncherAnimUtils.ofPropertyValuesHolder(
|
||||
mArrow, new PropertyListBuilder().scale(scale).build());
|
||||
}
|
||||
|
||||
/**
|
||||
* Animates the height of the notification item and the translationY of other items accordingly.
|
||||
*/
|
||||
public Animator reduceNotificationViewHeight(int heightToRemove, int duration,
|
||||
NotificationItemView notificationItem) {
|
||||
public Animator reduceNotificationViewHeight(int heightToRemove, int duration) {
|
||||
final int translateYBy = mIsAboveIcon ? heightToRemove : -heightToRemove;
|
||||
AnimatorSet animatorSet = LauncherAnimUtils.createAnimatorSet();
|
||||
animatorSet.play(notificationItem.animateHeightRemoval(heightToRemove));
|
||||
animatorSet.play(mNotificationItemView.animateHeightRemoval(heightToRemove));
|
||||
PropertyResetListener<View, Float> resetTranslationYListener
|
||||
= new PropertyResetListener<>(TRANSLATION_Y, 0f);
|
||||
for (int i = 0; i < getItemCount(); i++) {
|
||||
final PopupItemView itemView = getItemViewAt(i);
|
||||
if (!mIsAboveIcon && itemView == notificationItem) {
|
||||
if (!mIsAboveIcon && itemView == mNotificationItemView) {
|
||||
// The notification view is already in the right place when container is below icon.
|
||||
continue;
|
||||
}
|
||||
@@ -647,10 +648,6 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra
|
||||
return animatorSet;
|
||||
}
|
||||
|
||||
public Animator reduceNotificationViewHeight(int heightToRemove, int duration) {
|
||||
return reduceNotificationViewHeight(heightToRemove, duration, mNotificationItemView);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsAppInfoDropTarget() {
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user