Merge "Revert "CallStyle: Also handle null label to glue"" into main
diff --git a/core/java/com/android/internal/widget/EmphasizedNotificationButton.java b/core/java/com/android/internal/widget/EmphasizedNotificationButton.java
index 56b93b3..c07e624 100644
--- a/core/java/com/android/internal/widget/EmphasizedNotificationButton.java
+++ b/core/java/com/android/internal/widget/EmphasizedNotificationButton.java
@@ -249,6 +249,14 @@
return;
}
+ if (mIconToGlue == null && mLabelToGlue == null) {
+ if (DEBUG_NEW_ACTION_LAYOUT) {
+ Log.v(TAG, "glueIconAndLabelIfNeeded: no icon or label to glue; doing nothing");
+ }
+ mGluePending = false;
+ return;
+ }
+
if (!evenlyDividedCallStyleActionLayout()) {
Log.e(TAG, "glueIconAndLabelIfNeeded: new action layout disabled; doing nothing");
return;
@@ -264,6 +272,17 @@
return;
}
+ // Ready to glue but don't have an icon *and* a label:
+ //
+ // (Note that this will *not* happen while the button is being initialized, since we won't
+ // be ready to glue. This can only happen if the button is initialized and displayed and
+ // *then* someone calls glueIcon or glueLabel.
+
+ if (mLabelToGlue == null) {
+ Log.w(TAG, "glueIconAndLabelIfNeeded: icon glued without label; doing nothing");
+ return;
+ }
+
// Can't glue:
final int layoutDirection = getLayoutDirection();
@@ -294,26 +313,12 @@
private static final String POP_DIRECTIONAL_ISOLATE = "\u2069";
private void glueIconAndLabel(int layoutDirection) {
- if (mIconToGlue == null && mLabelToGlue == null) {
- if (DEBUG_NEW_ACTION_LAYOUT) {
- Log.d(TAG, "glueIconAndLabel: null icon and label, setting text to empty string");
- }
- setText("");
- return;
- } else if (mIconToGlue == null) {
+ if (mIconToGlue == null) {
if (DEBUG_NEW_ACTION_LAYOUT) {
Log.d(TAG, "glueIconAndLabel: null icon, setting text to label");
}
setText(mLabelToGlue);
return;
- } else if (mLabelToGlue == null) {
- if (DEBUG_NEW_ACTION_LAYOUT) {
- Log.d(TAG, "glueIconAndLabel: null label, setting text to ImageSpan with icon");
- }
- final SpannableStringBuilder builder = new SpannableStringBuilder();
- appendSpan(builder, IMAGE_SPAN_TEXT, new ImageSpan(mIconToGlue, ALIGN_CENTER));
- setText(builder);
- return;
}
final boolean rtlLayout = layoutDirection == LAYOUT_DIRECTION_RTL;