Add logging for smart replies in notifications.
Log the first time a notification with smart
replies is visible.
Log each click on a smart reply.
Test: atest SystemUITests
Bug: 72153458
Change-Id: I6dc498871000dbb9af978567db3d258b20978781
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyView.java
index 74b3926..4c79ee3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyView.java
@@ -23,6 +23,8 @@
import com.android.keyguard.KeyguardHostView.OnDismissAction;
import com.android.systemui.Dependency;
import com.android.systemui.R;
+import com.android.systemui.statusbar.NotificationData;
+import com.android.systemui.statusbar.SmartReplyLogger;
import com.android.systemui.statusbar.phone.KeyguardDismissUtil;
import java.text.BreakIterator;
@@ -109,14 +111,16 @@
Math.max(getChildCount(), 1), DECREASING_MEASURED_WIDTH_WITHOUT_PADDING_COMPARATOR);
}
- public void setRepliesFromRemoteInput(RemoteInput remoteInput, PendingIntent pendingIntent) {
+ public void setRepliesFromRemoteInput(RemoteInput remoteInput, PendingIntent pendingIntent,
+ SmartReplyLogger smartReplyLogger, NotificationData.Entry entry) {
removeAllViews();
if (remoteInput != null && pendingIntent != null) {
CharSequence[] choices = remoteInput.getChoices();
if (choices != null) {
- for (CharSequence choice : choices) {
+ for (int i = 0; i < choices.length; ++i) {
Button replyButton = inflateReplyButton(
- getContext(), this, choice, remoteInput, pendingIntent);
+ getContext(), this, i, choices[i], remoteInput, pendingIntent,
+ smartReplyLogger, entry);
addView(replyButton);
}
}
@@ -130,8 +134,9 @@
}
@VisibleForTesting
- Button inflateReplyButton(Context context, ViewGroup root, CharSequence choice,
- RemoteInput remoteInput, PendingIntent pendingIntent) {
+ Button inflateReplyButton(Context context, ViewGroup root, int replyIndex,
+ CharSequence choice, RemoteInput remoteInput, PendingIntent pendingIntent,
+ SmartReplyLogger smartReplyLogger, NotificationData.Entry entry) {
Button b = (Button) LayoutInflater.from(context).inflate(
R.layout.smart_reply_button, root, false);
b.setText(choice);
@@ -147,6 +152,7 @@
} catch (PendingIntent.CanceledException e) {
Log.w(TAG, "Unable to send smart reply", e);
}
+ smartReplyLogger.smartReplySent(entry, replyIndex);
return false; // do not defer
};