Log undo of notification importance change.
Updated unit tests with a custom matcher, to check logging more
precisely.
Bug: 121311593
Test: atest com.android.systemui.statusbar.notification.row.NotificationInfoTest and manual test.
Change-Id: If8e0ebe3be942e6e03735a37f5e574748370fa98
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java
index 5329541..b1eab80 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java
@@ -40,6 +40,7 @@
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.drawable.Drawable;
+import android.metrics.LogMaker;
import android.os.Handler;
import android.os.RemoteException;
import android.service.notification.StatusBarNotification;
@@ -150,6 +151,7 @@
// Reset exit counter that we'll log and record an undo event separately (not an exit event)
mExitReason = NotificationCounters.BLOCKING_HELPER_DISMISSED;
logBlockingHelperCounter(NotificationCounters.BLOCKING_HELPER_UNDO);
+ mMetricsLogger.write(importanceChangeLogMaker().setType(MetricsEvent.TYPE_DISMISS));
swapContent(ACTION_UNDO, true /* animate */);
};
@@ -381,6 +383,17 @@
}
}
+ /**
+ * Returns an initialized LogMaker for logging importance changes.
+ * The caller may override the type (to DISMISS) before passing it to mMetricsLogger.
+ * @return new LogMaker
+ */
+ private LogMaker importanceChangeLogMaker() {
+ return new LogMaker(MetricsEvent.ACTION_SAVE_IMPORTANCE)
+ .setType(MetricsEvent.TYPE_ACTION)
+ .setSubtype(mChosenImportance - mStartingChannelImportance);
+ }
+
private boolean hasImportanceChanged() {
return mSingleNotificationChannel != null
&& mStartingChannelImportance != mChosenImportance;
@@ -397,8 +410,7 @@
* Commits the updated importance values on the background thread.
*/
private void updateImportance() {
- MetricsLogger.action(mContext, MetricsEvent.ACTION_SAVE_IMPORTANCE,
- mChosenImportance - mStartingChannelImportance);
+ mMetricsLogger.write(importanceChangeLogMaker());
Handler bgHandler = new Handler(Dependency.get(Dependency.BG_LOOPER));
bgHandler.post(new UpdateImportanceRunnable(mINotificationManager, mPackageName, mAppUid,