Log ACTION_CONTEXTUAL_CARD_SHOW in different place

Fixes: 132396134
Test: robolectric
Change-Id: I7d46df15fbc42838da0fa53f4db7e1aa026c3174
This commit is contained in:
Raff Tsai
2019-05-10 12:46:56 +08:00
parent 30a9392b21
commit 3d2655c100
3 changed files with 13 additions and 11 deletions

View File

@@ -145,10 +145,6 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>
final MetricsFeatureProvider metricsFeatureProvider = final MetricsFeatureProvider metricsFeatureProvider =
FeatureFactory.getFactory(mContext).getMetricsFeatureProvider(); FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
metricsFeatureProvider.action(mContext,
SettingsEnums.ACTION_CONTEXTUAL_CARD_SHOW,
ContextualCardLogUtils.buildCardListLog(visibleCards));
metricsFeatureProvider.action(mContext, metricsFeatureProvider.action(mContext,
SettingsEnums.ACTION_CONTEXTUAL_CARD_NOT_SHOW, SettingsEnums.ACTION_CONTEXTUAL_CARD_NOT_SHOW,
ContextualCardLogUtils.buildCardListLog(hiddenCards)); ContextualCardLogUtils.buildCardListLog(hiddenCards));

View File

@@ -38,6 +38,7 @@ import androidx.loader.app.LoaderManager;
import androidx.loader.content.Loader; import androidx.loader.content.Loader;
import com.android.settings.homepage.contextualcards.conditional.ConditionalCardController; import com.android.settings.homepage.contextualcards.conditional.ConditionalCardController;
import com.android.settings.homepage.contextualcards.logging.ContextualCardLogUtils;
import com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer; import com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -208,19 +209,26 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo
final List<ContextualCard> cardsToKeep = getCardsToKeep(cards); final List<ContextualCard> cardsToKeep = getCardsToKeep(cards);
final MetricsFeatureProvider metricsFeatureProvider =
FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
//navigate back to the homepage, screen rotate or after card dismissal //navigate back to the homepage, screen rotate or after card dismissal
if (!mIsFirstLaunch) { if (!mIsFirstLaunch) {
onContextualCardUpdated(cardsToKeep.stream() onContextualCardUpdated(cardsToKeep.stream()
.collect(groupingBy(ContextualCard::getCardType))); .collect(groupingBy(ContextualCard::getCardType)));
metricsFeatureProvider.action(mContext,
SettingsEnums.ACTION_CONTEXTUAL_CARD_SHOW,
ContextualCardLogUtils.buildCardListLog(cardsToKeep));
return; return;
} }
final MetricsFeatureProvider metricsFeatureProvider =
FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
final long timeoutLimit = getCardLoaderTimeout(); final long timeoutLimit = getCardLoaderTimeout();
if (loadTime <= timeoutLimit) { if (loadTime <= timeoutLimit) {
onContextualCardUpdated(cards.stream() onContextualCardUpdated(cards.stream()
.collect(groupingBy(ContextualCard::getCardType))); .collect(groupingBy(ContextualCard::getCardType)));
metricsFeatureProvider.action(mContext,
SettingsEnums.ACTION_CONTEXTUAL_CARD_SHOW,
ContextualCardLogUtils.buildCardListLog(cards));
} else { } else {
// log timeout occurrence // log timeout occurrence
metricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN, metricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,

View File

@@ -91,25 +91,23 @@ public class ContextualCardLoaderTest {
} }
@Test @Test
public void getDisplayableCards_refreshCardUri_shouldLogContextualCardDisplay() { public void getDisplayableCards_refreshCardUri_shouldLogContextualCard() {
mContextualCardLoader.mNotifyUri = CardContentProvider.REFRESH_CARD_URI; mContextualCardLoader.mNotifyUri = CardContentProvider.REFRESH_CARD_URI;
mContextualCardLoader.getDisplayableCards(new ArrayList<>()); mContextualCardLoader.getDisplayableCards(new ArrayList<>());
verify(mFakeFeatureFactory.metricsFeatureProvider).action(any(),
eq(SettingsEnums.ACTION_CONTEXTUAL_CARD_SHOW), any(String.class));
verify(mFakeFeatureFactory.metricsFeatureProvider).action(any(), verify(mFakeFeatureFactory.metricsFeatureProvider).action(any(),
eq(SettingsEnums.ACTION_CONTEXTUAL_CARD_NOT_SHOW), any(String.class)); eq(SettingsEnums.ACTION_CONTEXTUAL_CARD_NOT_SHOW), any(String.class));
} }
@Test @Test
public void getDisplayableCards_deleteCardUri_shouldNotLogContextualCardDisplay() { public void getDisplayableCards_deleteCardUri_shouldNotLogContextualCard() {
mContextualCardLoader.mNotifyUri = CardContentProvider.DELETE_CARD_URI; mContextualCardLoader.mNotifyUri = CardContentProvider.DELETE_CARD_URI;
mContextualCardLoader.getDisplayableCards(new ArrayList<>()); mContextualCardLoader.getDisplayableCards(new ArrayList<>());
verify(mFakeFeatureFactory.metricsFeatureProvider, never()).action(any(), verify(mFakeFeatureFactory.metricsFeatureProvider, never()).action(any(),
eq(SettingsEnums.ACTION_CONTEXTUAL_CARD_SHOW), any(String.class)); eq(SettingsEnums.ACTION_CONTEXTUAL_CARD_NOT_SHOW), any(String.class));
} }
private List<ContextualCard> getContextualCardList() { private List<ContextualCard> getContextualCardList() {