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;