Loading src/com/android/launcher3/notification/NotificationFooterLayout.java +11 −9 Original line number Diff line number Diff line Loading @@ -198,6 +198,7 @@ public class NotificationFooterLayout extends FrameLayout { // There are no more icons in the footer, so hide it. PopupContainerWithArrow popup = PopupContainerWithArrow.getOpen( Launcher.getLauncher(getContext())); if (popup != null) { Animator collapseFooter = popup.reduceNotificationViewHeight(getHeight(), getResources().getInteger(R.integer.config_removeNotificationViewDuration)); collapseFooter.addListener(new AnimatorListenerAdapter() { Loading @@ -209,6 +210,7 @@ public class NotificationFooterLayout extends FrameLayout { collapseFooter.start(); } } } public void trimNotifications(List<String> notifications) { if (!isAttachedToWindow() || mIconRow.getChildCount() == 0) { Loading src/com/android/launcher3/notification/NotificationItemView.java +0 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } } }); Loading src/com/android/launcher3/popup/PopupContainerWithArrow.java +6 −9 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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; Loading @@ -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; } Loading @@ -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; Loading Loading
src/com/android/launcher3/notification/NotificationFooterLayout.java +11 −9 Original line number Diff line number Diff line Loading @@ -198,6 +198,7 @@ public class NotificationFooterLayout extends FrameLayout { // There are no more icons in the footer, so hide it. PopupContainerWithArrow popup = PopupContainerWithArrow.getOpen( Launcher.getLauncher(getContext())); if (popup != null) { Animator collapseFooter = popup.reduceNotificationViewHeight(getHeight(), getResources().getInteger(R.integer.config_removeNotificationViewDuration)); collapseFooter.addListener(new AnimatorListenerAdapter() { Loading @@ -209,6 +210,7 @@ public class NotificationFooterLayout extends FrameLayout { collapseFooter.start(); } } } public void trimNotifications(List<String> notifications) { if (!isAttachedToWindow() || mIconRow.getChildCount() == 0) { Loading
src/com/android/launcher3/notification/NotificationItemView.java +0 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } } }); Loading
src/com/android/launcher3/popup/PopupContainerWithArrow.java +6 −9 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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; Loading @@ -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; } Loading @@ -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; Loading