More readable formatting for events mismatch message

This helps for longer event lists.

Change-Id: Ie3565d2ccdde27d23770d01b4f9d4680bd8e229b
diff --git a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java
index a510df5..7154444 100644
--- a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java
+++ b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java
@@ -411,7 +411,7 @@
         final String eventMismatch = getEventMismatchMessage(false);
 
         if (eventMismatch != null) {
-            message = message + ",\nhaving produced wrong events:\n    " + eventMismatch;
+            message = message + ", having produced " + eventMismatch;
         }
 
         Assert.fail(formatSystemHealthMessage(message));
@@ -1262,7 +1262,7 @@
                     return formatEventMismatchMessage("too few actual events", actual, i);
                 }
                 if (!mExpectedEvents.get(i).matcher(actual.get(i)).find()) {
-                    return formatEventMismatchMessage("mismatched event", actual, i);
+                    return formatEventMismatchMessage("a mismatched event", actual, i);
                 }
             }
 
@@ -1277,9 +1277,20 @@
         return null;
     }
 
+    private String formatEventList(List events, int position) {
+        final StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < events.size(); ++i) {
+            sb.append("\n| ");
+            sb.append(i == position ? "---> " : "     ");
+            sb.append(events.get(i).toString());
+        }
+        if (position == events.size()) sb.append("\n| ---> (end)");
+        return sb.toString();
+    }
+
     private String formatEventMismatchMessage(String message, List<String> actual, int position) {
-        return message + ", pos=" + position
-                + ", expected=" + mExpectedEvents
-                + ", actual=" + actual;
+        return message + ":"
+                + "\nExpected:" + formatEventList(mExpectedEvents, position)
+                + "\nActual:" + formatEventList(actual, position);
     }
 }
\ No newline at end of file