Use "collapsible indent" for actions of any notification type.
Fixes: 175291676
Test: manual visual testing
Change-Id: I30dc2c021338d8c8710781ff6e1d209e01757310
diff --git a/core/java/com/android/internal/widget/ConversationLayout.java b/core/java/com/android/internal/widget/ConversationLayout.java
index 2c92b91..16c205a 100644
--- a/core/java/com/android/internal/widget/ConversationLayout.java
+++ b/core/java/com/android/internal/widget/ConversationLayout.java
@@ -137,9 +137,7 @@
private int mContentMarginEnd;
private Rect mMessagingClipRect;
private ObservableTextView mAppName;
- private ViewGroup mActions;
- private int mConversationContentStart;
- private int mInternalButtonPadding;
+ private NotificationActionListLayout mActions;
private boolean mAppNameGone;
private int mFacePileAvatarSize;
private int mFacePileAvatarSizeExpandedGroup;
@@ -286,11 +284,6 @@
mAppName.setOnVisibilityChangedListener((visibility) -> {
onAppNameVisibilityChanged();
});
- mConversationContentStart = getResources().getDimensionPixelSize(
- R.dimen.conversation_content_start);
- mInternalButtonPadding
- = getResources().getDimensionPixelSize(R.dimen.button_padding_horizontal_material)
- + getResources().getDimensionPixelSize(R.dimen.button_inset_horizontal_material);
mNotificationHeaderSeparatingMargin = getResources().getDimensionPixelSize(
R.dimen.notification_header_separating_margin);
}
@@ -547,22 +540,8 @@
}
private void updateActionListPadding() {
- if (mActions == null) {
- return;
- }
- View firstAction = mActions.getChildAt(0);
- if (firstAction != null) {
- // Let's visually position the first action where the content starts
- int paddingStart = mConversationContentStart;
-
- MarginLayoutParams layoutParams = (MarginLayoutParams) firstAction.getLayoutParams();
- paddingStart -= layoutParams.getMarginStart();
- paddingStart -= mInternalButtonPadding;
-
- mActions.setPaddingRelative(paddingStart,
- mActions.getPaddingTop(),
- mActions.getPaddingEnd(),
- mActions.getPaddingBottom());
+ if (mActions != null) {
+ mActions.setCollapsibleIndentDimen(R.dimen.call_notification_collapsible_indent);
}
}
diff --git a/core/java/com/android/internal/widget/NotificationActionListLayout.java b/core/java/com/android/internal/widget/NotificationActionListLayout.java
index a4d6a60..0c2d2a9 100644
--- a/core/java/com/android/internal/widget/NotificationActionListLayout.java
+++ b/core/java/com/android/internal/widget/NotificationActionListLayout.java
@@ -30,6 +30,8 @@
import android.widget.RemoteViews;
import android.widget.TextView;
+import com.android.internal.R;
+
import java.util.ArrayList;
import java.util.Comparator;
@@ -50,7 +52,7 @@
private int mDefaultPaddingTop;
private int mEmphasizedHeight;
private int mRegularHeight;
- @DimenRes private int mCollapsibleIndentDimen;
+ @DimenRes private int mCollapsibleIndentDimen = R.dimen.notification_actions_padding_start;
public NotificationActionListLayout(Context context, AttributeSet attrs) {
this(context, attrs, 0);
@@ -313,7 +315,10 @@
*/
@RemotableViewMethod
public void setCollapsibleIndentDimen(@DimenRes int collapsibleIndentDimen) {
- mCollapsibleIndentDimen = collapsibleIndentDimen;
+ if (mCollapsibleIndentDimen != collapsibleIndentDimen) {
+ mCollapsibleIndentDimen = collapsibleIndentDimen;
+ requestLayout();
+ }
}
/**
diff --git a/core/res/res/layout/notification_material_action_list.xml b/core/res/res/layout/notification_material_action_list.xml
index 9662b8e..a5608af 100644
--- a/core/res/res/layout/notification_material_action_list.xml
+++ b/core/res/res/layout/notification_material_action_list.xml
@@ -38,7 +38,6 @@
android:layout_height="@dimen/notification_action_list_height"
android:orientation="horizontal"
android:gravity="center_vertical"
- android:paddingStart="@dimen/notification_actions_padding_start"
android:visibility="gone"
>
<!-- actions will be added here -->
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index f2328567..4ed3298 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -3164,6 +3164,7 @@
<java-symbol type="bool" name="config_supportPreRebootSecurityLogs" />
<java-symbol type="id" name="notification_action_list_margin_target" />
+ <java-symbol type="dimen" name="notification_actions_padding_start"/>
<java-symbol type="dimen" name="notification_action_disabled_alpha" />
<java-symbol type="id" name="tag_margin_end_when_icon_visible" />
<java-symbol type="id" name="tag_margin_end_when_icon_gone" />