Loading packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/NotificationMenuRowPlugin.java +3 −0 Original line number Diff line number Diff line Loading @@ -96,4 +96,7 @@ public interface NotificationMenuRowPlugin extends Plugin { public default boolean useDefaultMenuItems() { return false; } public default void onConfigurationChanged() { } } packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java +25 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,8 @@ import android.animation.ObjectAnimator; import android.animation.ValueAnimator.AnimatorUpdateListener; import android.annotation.Nullable; import android.content.Context; import android.content.res.Resources; import android.content.res.Configuration; import android.graphics.drawable.AnimatedVectorDrawable; import android.graphics.drawable.AnimationDrawable; import android.graphics.drawable.ColorDrawable; Loading Loading @@ -84,6 +86,11 @@ public class ExpandableNotificationRow extends ActivatableNotificationView private static final int COLORED_DIVIDER_ALPHA = 0x7B; private static final int MENU_VIEW_INDEX = 0; public interface LayoutListener { public void onLayout(); } private LayoutListener mLayoutListener; private final NotificationInflater mNotificationInflater; private int mIconTransformContentShift; private int mIconTransformContentShiftNoIcon; Loading Loading @@ -834,6 +841,13 @@ public class ExpandableNotificationRow extends ActivatableNotificationView onNotificationUpdated(); } @Override public void onConfigurationChanged(Configuration newConfig) { if (mMenuRow.getMenuView() != null) { mMenuRow.onConfigurationChanged(); } } public void setContentBackground(int customBackgroundColor, boolean animate, NotificationContentView notificationContentView) { if (getShowingLayout() == notificationContentView) { Loading Loading @@ -1580,6 +1594,14 @@ public class ExpandableNotificationRow extends ActivatableNotificationView mIsSystemChildExpanded = expanded; } public void setLayoutListener(LayoutListener listener) { mLayoutListener = listener; } public void removeListener() { mLayoutListener = null; } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); Loading @@ -1588,6 +1610,9 @@ public class ExpandableNotificationRow extends ActivatableNotificationView mMenuRow.onHeightUpdate(); } updateContentShiftHeight(); if (mLayoutListener != null) { mLayoutListener.onLayout(); } } /** Loading packages/SystemUI/src/com/android/systemui/statusbar/NotificationMenuRow.java +19 −11 Original line number Diff line number Diff line Loading @@ -45,7 +45,8 @@ import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.FrameLayout.LayoutParams; public class NotificationMenuRow implements NotificationMenuRowPlugin, View.OnClickListener { public class NotificationMenuRow implements NotificationMenuRowPlugin, View.OnClickListener, ExpandableNotificationRow.LayoutListener { private static final boolean DEBUG = false; private static final String TAG = "swipe"; Loading Loading @@ -166,6 +167,18 @@ public class NotificationMenuRow implements NotificationMenuRowPlugin, View.OnCl createMenuViews(); } @Override public void onConfigurationChanged() { mParent.setLayoutListener(this); } @Override public void onLayout() { mIconsPlaced = false; // Force icons to be re-placed setMenuLocation(); mParent.removeListener(); } private void createMenuViews() { // Filter the menu items based on the notification if (mParent != null && mParent.getStatusBarNotification() != null) { Loading Loading @@ -460,22 +473,17 @@ public class NotificationMenuRow implements NotificationMenuRowPlugin, View.OnCl private void setMenuLocation() { boolean showOnLeft = mTranslation > 0; if ((mIconsPlaced && showOnLeft == mOnLeft) || mSnapping || mParent == null) { if ((mIconsPlaced && showOnLeft == mOnLeft) || mSnapping || !mMenuContainer.isAttachedToWindow()) { // Do nothing return; } final boolean isRtl = mParent.isLayoutRtl(); final int count = mMenuContainer.getChildCount(); final int width = mParent.getWidth(); for (int i = 0; i < count; i++) { final View v = mMenuContainer.getChildAt(i); final float left = isRtl ? -(width - mHorizSpaceForIcon * (i + 1)) : i * mHorizSpaceForIcon; final float right = isRtl ? -i * mHorizSpaceForIcon : width - (mHorizSpaceForIcon * (i + 1)); v.setTranslationX(showOnLeft ? left : right); final float left = i * mHorizSpaceForIcon; final float right = mParent.getWidth() - (mHorizSpaceForIcon * (i + 1)); v.setX(showOnLeft ? left : right); } mOnLeft = showOnLeft; mIconsPlaced = true; Loading Loading
packages/SystemUI/plugin/src/com/android/systemui/plugins/statusbar/NotificationMenuRowPlugin.java +3 −0 Original line number Diff line number Diff line Loading @@ -96,4 +96,7 @@ public interface NotificationMenuRowPlugin extends Plugin { public default boolean useDefaultMenuItems() { return false; } public default void onConfigurationChanged() { } }
packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java +25 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,8 @@ import android.animation.ObjectAnimator; import android.animation.ValueAnimator.AnimatorUpdateListener; import android.annotation.Nullable; import android.content.Context; import android.content.res.Resources; import android.content.res.Configuration; import android.graphics.drawable.AnimatedVectorDrawable; import android.graphics.drawable.AnimationDrawable; import android.graphics.drawable.ColorDrawable; Loading Loading @@ -84,6 +86,11 @@ public class ExpandableNotificationRow extends ActivatableNotificationView private static final int COLORED_DIVIDER_ALPHA = 0x7B; private static final int MENU_VIEW_INDEX = 0; public interface LayoutListener { public void onLayout(); } private LayoutListener mLayoutListener; private final NotificationInflater mNotificationInflater; private int mIconTransformContentShift; private int mIconTransformContentShiftNoIcon; Loading Loading @@ -834,6 +841,13 @@ public class ExpandableNotificationRow extends ActivatableNotificationView onNotificationUpdated(); } @Override public void onConfigurationChanged(Configuration newConfig) { if (mMenuRow.getMenuView() != null) { mMenuRow.onConfigurationChanged(); } } public void setContentBackground(int customBackgroundColor, boolean animate, NotificationContentView notificationContentView) { if (getShowingLayout() == notificationContentView) { Loading Loading @@ -1580,6 +1594,14 @@ public class ExpandableNotificationRow extends ActivatableNotificationView mIsSystemChildExpanded = expanded; } public void setLayoutListener(LayoutListener listener) { mLayoutListener = listener; } public void removeListener() { mLayoutListener = null; } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); Loading @@ -1588,6 +1610,9 @@ public class ExpandableNotificationRow extends ActivatableNotificationView mMenuRow.onHeightUpdate(); } updateContentShiftHeight(); if (mLayoutListener != null) { mLayoutListener.onLayout(); } } /** Loading
packages/SystemUI/src/com/android/systemui/statusbar/NotificationMenuRow.java +19 −11 Original line number Diff line number Diff line Loading @@ -45,7 +45,8 @@ import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.FrameLayout.LayoutParams; public class NotificationMenuRow implements NotificationMenuRowPlugin, View.OnClickListener { public class NotificationMenuRow implements NotificationMenuRowPlugin, View.OnClickListener, ExpandableNotificationRow.LayoutListener { private static final boolean DEBUG = false; private static final String TAG = "swipe"; Loading Loading @@ -166,6 +167,18 @@ public class NotificationMenuRow implements NotificationMenuRowPlugin, View.OnCl createMenuViews(); } @Override public void onConfigurationChanged() { mParent.setLayoutListener(this); } @Override public void onLayout() { mIconsPlaced = false; // Force icons to be re-placed setMenuLocation(); mParent.removeListener(); } private void createMenuViews() { // Filter the menu items based on the notification if (mParent != null && mParent.getStatusBarNotification() != null) { Loading Loading @@ -460,22 +473,17 @@ public class NotificationMenuRow implements NotificationMenuRowPlugin, View.OnCl private void setMenuLocation() { boolean showOnLeft = mTranslation > 0; if ((mIconsPlaced && showOnLeft == mOnLeft) || mSnapping || mParent == null) { if ((mIconsPlaced && showOnLeft == mOnLeft) || mSnapping || !mMenuContainer.isAttachedToWindow()) { // Do nothing return; } final boolean isRtl = mParent.isLayoutRtl(); final int count = mMenuContainer.getChildCount(); final int width = mParent.getWidth(); for (int i = 0; i < count; i++) { final View v = mMenuContainer.getChildAt(i); final float left = isRtl ? -(width - mHorizSpaceForIcon * (i + 1)) : i * mHorizSpaceForIcon; final float right = isRtl ? -i * mHorizSpaceForIcon : width - (mHorizSpaceForIcon * (i + 1)); v.setTranslationX(showOnLeft ? left : right); final float left = i * mHorizSpaceForIcon; final float right = mParent.getWidth() - (mHorizSpaceForIcon * (i + 1)); v.setX(showOnLeft ? left : right); } mOnLeft = showOnLeft; mIconsPlaced = true; Loading