Merge "Send metrics log of card dismiss event to SI instantly" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-05-28 11:14:49 +00:00
committed by Android (Google) Code Review

View File

@@ -128,7 +128,12 @@ public class SettingsIntelligenceLogWriter implements LogWriter {
mLogHandler.post(() -> { mLogHandler.post(() -> {
mSettingsLogList.add(settingsLog); mSettingsLogList.add(settingsLog);
}); });
mLogHandler.scheduleSendLog(); if (action == SettingsEnums.ACTION_CONTEXTUAL_CARD_DISMISS) {
// Directly send this event to notify SI instantly that the card is dismissed
mLogHandler.sendLog();
} else {
mLogHandler.scheduleSendLog();
}
} }
@VisibleForTesting @VisibleForTesting
@@ -136,7 +141,7 @@ public class SettingsIntelligenceLogWriter implements LogWriter {
final int size = settingsLogs.size(); final int size = settingsLogs.size();
final ByteArrayOutputStream bout = new ByteArrayOutputStream(); final ByteArrayOutputStream bout = new ByteArrayOutputStream();
final DataOutputStream output = new DataOutputStream(bout); final DataOutputStream output = new DataOutputStream(bout);
// Data is "size, length, bytearray, length, bytearray ..." // The data format is "size, length, byte array, length, byte array ..."
try { try {
output.writeInt(size); output.writeInt(size);
for (SettingsLog settingsLog : settingsLogs) { for (SettingsLog settingsLog : settingsLogs) {
@@ -159,14 +164,19 @@ public class SettingsIntelligenceLogWriter implements LogWriter {
private class SendLogHandler extends Handler { private class SendLogHandler extends Handler {
public SendLogHandler(Looper looper) { SendLogHandler(Looper looper) {
super(looper); super(looper);
} }
public void scheduleSendLog() { void scheduleSendLog() {
removeCallbacks(mSendLogsRunnable); removeCallbacks(mSendLogsRunnable);
postDelayed(mSendLogsRunnable, MESSAGE_DELAY); postDelayed(mSendLogsRunnable, MESSAGE_DELAY);
} }
void sendLog() {
removeCallbacks(mSendLogsRunnable);
post(mSendLogsRunnable);
}
} }
private final Runnable mSendLogsRunnable = () -> { private final Runnable mSendLogsRunnable = () -> {