Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a49c4c7b authored by Yining Liu's avatar Yining Liu
Browse files

Fix the height of NotificationContentView when there's no actions but bubble button

Added margin dynamic update for the condition when a NotificationContentView has bubble button but no actions

Bug: 244522899
Test: Visual:
1. Mock a message notification that has bubble button but no actions, there shouldn't be a 20dp margin between notification_action_list_margin_target and actions_container.
2. Mock a message notification that has bubble button and actions, there shouldn't be a 20dp margin between notification_action_list_margin_target and actions_container.
3. Mock a message notification that has no bubble button or actions, notification_action_list_margin_target should have a 20dp bottom margin.
Change-Id: Ie834309872c786dcf120023e7449099ee415e38e
parent e6fe7f5d
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -1369,6 +1369,8 @@ public class NotificationContentView extends FrameLayout implements Notification
        }
        ImageView bubbleButton = layout.findViewById(com.android.internal.R.id.bubble_button);
        View actionContainer = layout.findViewById(com.android.internal.R.id.actions_container);
        LinearLayout actionListMarginTarget = layout.findViewById(
                com.android.internal.R.id.notification_action_list_margin_target);
        if (bubbleButton == null || actionContainer == null) {
            return;
        }
@@ -1393,6 +1395,16 @@ public class NotificationContentView extends FrameLayout implements Notification
            bubbleButton.setOnClickListener(mContainingNotification.getBubbleClickListener());
            bubbleButton.setVisibility(VISIBLE);
            actionContainer.setVisibility(VISIBLE);
            // Set notification_action_list_margin_target's bottom margin to 0 when showing bubble
            if (actionListMarginTarget != null) {
                ViewGroup.LayoutParams lp = actionListMarginTarget.getLayoutParams();
                if (lp instanceof ViewGroup.MarginLayoutParams) {
                    final ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams) lp;
                    if (mlp.bottomMargin > 0) {
                        mlp.setMargins(mlp.leftMargin, mlp.topMargin, mlp.rightMargin, 0);
                    }
                }
            }
        } else  {
            bubbleButton.setVisibility(GONE);
        }