Record all contextual card log to MetricsFeatureProvider

Use ContextualCardLogUtils to serialize contextual card event to
string, and records the string using regular MetricFeatureProvider
logging APIs.

Bug: 124701288
Test: Robolectric, integrating test with SettingsIntelligence
Change-Id: Ie139b4f4b8a2b0f0dcc4bb8df9bdec8f5fd824a6
This commit is contained in:
Raff Tsai
2019-03-29 17:17:08 +08:00
committed by Fan Zhang
parent 8b3cde0fb1
commit 40976d461e
9 changed files with 428 additions and 25 deletions

View File

@@ -16,6 +16,7 @@
package com.android.settings.homepage.contextualcards.slices;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.view.View;
import android.widget.LinearLayout;
@@ -26,8 +27,9 @@ import androidx.slice.widget.SliceView;
import com.android.settings.R;
import com.android.settings.homepage.contextualcards.ContextualCard;
import com.android.settings.homepage.contextualcards.ContextualCardFeatureProvider;
import com.android.settings.homepage.contextualcards.logging.ContextualCardLogUtils;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
/**
* Card renderer helper for {@link ContextualCard} built as slice full card.
@@ -54,11 +56,14 @@ class SliceFullCardRendererHelper {
// Set this listener so we can log the interaction users make on the slice
cardHolder.sliceView.setOnSliceActionListener(
(eventInfo, sliceItem) -> {
final ContextualCardFeatureProvider contextualCardFeatureProvider =
FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(
mContext);
contextualCardFeatureProvider.logContextualCardClick(card, eventInfo.rowIndex,
final String log = ContextualCardLogUtils.buildCardClickLog(card, eventInfo.rowIndex,
eventInfo.actionType, cardHolder.getAdapterPosition());
final MetricsFeatureProvider metricsFeatureProvider =
FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
metricsFeatureProvider.action(mContext,
SettingsEnums.ACTION_CONTEXTUAL_CARD_CLICK, log);
});
// Customize slice view for Settings