Loading src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProvider.java +4 −7 Original line number Diff line number Diff line Loading @@ -16,24 +16,21 @@ package com.android.settings.homepage.contextualcards; import android.content.Context; import java.util.List; /** Feature provider for the contextual card feature. */ public interface ContextualCardFeatureProvider { /** Homepage displays. */ void logHomepageDisplay(Context context, long latency); void logHomepageDisplay(long latency); /** When user clicks dismiss in contextual card */ void logContextualCardDismiss(Context context, ContextualCard card); void logContextualCardDismiss(ContextualCard card); /** After ContextualCardManager decides which cards will be displayed/hidden */ void logContextualCardDisplay(Context context, List<ContextualCard> showedCards, void logContextualCardDisplay(List<ContextualCard> showedCards, List<ContextualCard> hiddenCards); /** When user clicks toggle/title area of a contextual card. */ void logContextualCardClick(Context context, ContextualCard card, int row, int tapTarget); void logContextualCardClick(ContextualCard card, int row, int tapTarget); } src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImpl.java +23 −12 Original line number Diff line number Diff line Loading @@ -51,6 +51,9 @@ public class ContextualCardFeatureProviderImpl implements ContextualCardFeatureP // contextual card name private static final String EXTRA_CONTEXTUALCARD_NAME = "name"; // contextual card uri private static final String EXTRA_CONTEXTUALCARD_URI = "uri"; // contextual card score private static final String EXTRA_CONTEXTUALCARD_SCORE = "score"; Loading Loading @@ -84,51 +87,59 @@ public class ContextualCardFeatureProviderImpl implements ContextualCardFeatureP // Click slider private static final int TARGET_SLIDER = 3; private final Context mContext; public ContextualCardFeatureProviderImpl(Context context) { mContext = context; } @Override public void logHomepageDisplay(Context context, long latency) { sendBroadcast(context, new Intent() public void logHomepageDisplay(long latency) { sendBroadcast(new Intent() .putExtra(EXTRA_CONTEXTUALCARD_ACTION_TYPE, CONTEXTUAL_HOME_SHOW) .putExtra(EXTRA_LATENCY, latency)); } @Override public void logContextualCardDismiss(Context context, ContextualCard card) { public void logContextualCardDismiss(ContextualCard card) { final Intent intent = new Intent(); intent.putExtra(EXTRA_CONTEXTUALCARD_ACTION_TYPE, CONTEXTUAL_CARD_DISMISS); intent.putExtra(EXTRA_CONTEXTUALCARD_NAME, card.getName()); intent.putExtra(EXTRA_CONTEXTUALCARD_URI, card.getSliceUri().toString()); intent.putExtra(EXTRA_CONTEXTUALCARD_SCORE, card.getRankingScore()); sendBroadcast(context, intent); sendBroadcast(intent); } @Override public void logContextualCardDisplay(Context context, List<ContextualCard> visibleCards, public void logContextualCardDisplay(List<ContextualCard> visibleCards, List<ContextualCard> hiddenCards) { final Intent intent = new Intent(); intent.putExtra(EXTRA_CONTEXTUALCARD_ACTION_TYPE, CONTEXTUAL_CARD_SHOW); intent.putExtra(EXTRA_CONTEXTUALCARD_VISIBLE, serialize(visibleCards)); intent.putExtra(EXTRA_CONTEXTUALCARD_HIDDEN, serialize(hiddenCards)); sendBroadcast(context, intent); sendBroadcast(intent); } @Override public void logContextualCardClick(Context context, ContextualCard card, int row, public void logContextualCardClick(ContextualCard card, int row, int actionType) { final Intent intent = new Intent(); intent.putExtra(EXTRA_CONTEXTUALCARD_ACTION_TYPE, CONTEXTUAL_CARD_CLICK); intent.putExtra(EXTRA_CONTEXTUALCARD_NAME, card.getName()); intent.putExtra(EXTRA_CONTEXTUALCARD_URI, card.getSliceUri().toString()); intent.putExtra(EXTRA_CONTEXTUALCARD_SCORE, card.getRankingScore()); intent.putExtra(EXTRA_CONTEXTUALCARD_ROW, row); intent.putExtra(EXTRA_CONTEXTUALCARD_TAP_TARGET, actionTypeToTapTarget(actionType)); sendBroadcast(context, intent); sendBroadcast(intent); } @VisibleForTesting void sendBroadcast(final Context context, final Intent intent) { intent.setPackage(context.getString(R.string.config_settingsintelligence_package_name)); final String action = context.getString(R.string.config_settingsintelligence_log_action); void sendBroadcast(final Intent intent) { intent.setPackage(mContext.getString(R.string.config_settingsintelligence_package_name)); final String action = mContext.getString(R.string.config_settingsintelligence_log_action); if (!TextUtils.isEmpty(action)) { intent.setAction(action); context.sendBroadcastAsUser(intent, UserHandle.ALL); mContext.sendBroadcastAsUser(intent, UserHandle.ALL); } } Loading src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java +3 −3 Original line number Diff line number Diff line Loading @@ -149,10 +149,10 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard> // Two large cards return visibleCards; } finally { //TODO(b/121196921): Should not call this if user click dismiss final ContextualCardFeatureProvider contextualCardFeatureProvider = FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(); contextualCardFeatureProvider.logContextualCardDisplay(mContext, visibleCards, hiddenCards); FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(mContext); contextualCardFeatureProvider.logContextualCardDisplay(visibleCards, hiddenCards); } } Loading src/com/android/settings/homepage/contextualcards/ContextualCardManager.java +2 −2 Original line number Diff line number Diff line Loading @@ -201,8 +201,8 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo .collect(groupingBy(ContextualCard::getCardType))); } final long totalTime = System.currentTimeMillis() - mStartTime; FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider() .logHomepageDisplay(mContext, totalTime); FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(mContext) .logHomepageDisplay(totalTime); mIsFirstLaunch = false; } Loading src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardController.java +2 −2 Original line number Diff line number Diff line Loading @@ -70,8 +70,8 @@ public class SliceContextualCardController implements ContextualCardController { }); showFeedbackDialog(card); final ContextualCardFeatureProvider contextualCardFeatureProvider = FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(); contextualCardFeatureProvider.logContextualCardDismiss(mContext, card); FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(mContext); contextualCardFeatureProvider.logContextualCardDismiss(card); } @Override Loading Loading
src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProvider.java +4 −7 Original line number Diff line number Diff line Loading @@ -16,24 +16,21 @@ package com.android.settings.homepage.contextualcards; import android.content.Context; import java.util.List; /** Feature provider for the contextual card feature. */ public interface ContextualCardFeatureProvider { /** Homepage displays. */ void logHomepageDisplay(Context context, long latency); void logHomepageDisplay(long latency); /** When user clicks dismiss in contextual card */ void logContextualCardDismiss(Context context, ContextualCard card); void logContextualCardDismiss(ContextualCard card); /** After ContextualCardManager decides which cards will be displayed/hidden */ void logContextualCardDisplay(Context context, List<ContextualCard> showedCards, void logContextualCardDisplay(List<ContextualCard> showedCards, List<ContextualCard> hiddenCards); /** When user clicks toggle/title area of a contextual card. */ void logContextualCardClick(Context context, ContextualCard card, int row, int tapTarget); void logContextualCardClick(ContextualCard card, int row, int tapTarget); }
src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImpl.java +23 −12 Original line number Diff line number Diff line Loading @@ -51,6 +51,9 @@ public class ContextualCardFeatureProviderImpl implements ContextualCardFeatureP // contextual card name private static final String EXTRA_CONTEXTUALCARD_NAME = "name"; // contextual card uri private static final String EXTRA_CONTEXTUALCARD_URI = "uri"; // contextual card score private static final String EXTRA_CONTEXTUALCARD_SCORE = "score"; Loading Loading @@ -84,51 +87,59 @@ public class ContextualCardFeatureProviderImpl implements ContextualCardFeatureP // Click slider private static final int TARGET_SLIDER = 3; private final Context mContext; public ContextualCardFeatureProviderImpl(Context context) { mContext = context; } @Override public void logHomepageDisplay(Context context, long latency) { sendBroadcast(context, new Intent() public void logHomepageDisplay(long latency) { sendBroadcast(new Intent() .putExtra(EXTRA_CONTEXTUALCARD_ACTION_TYPE, CONTEXTUAL_HOME_SHOW) .putExtra(EXTRA_LATENCY, latency)); } @Override public void logContextualCardDismiss(Context context, ContextualCard card) { public void logContextualCardDismiss(ContextualCard card) { final Intent intent = new Intent(); intent.putExtra(EXTRA_CONTEXTUALCARD_ACTION_TYPE, CONTEXTUAL_CARD_DISMISS); intent.putExtra(EXTRA_CONTEXTUALCARD_NAME, card.getName()); intent.putExtra(EXTRA_CONTEXTUALCARD_URI, card.getSliceUri().toString()); intent.putExtra(EXTRA_CONTEXTUALCARD_SCORE, card.getRankingScore()); sendBroadcast(context, intent); sendBroadcast(intent); } @Override public void logContextualCardDisplay(Context context, List<ContextualCard> visibleCards, public void logContextualCardDisplay(List<ContextualCard> visibleCards, List<ContextualCard> hiddenCards) { final Intent intent = new Intent(); intent.putExtra(EXTRA_CONTEXTUALCARD_ACTION_TYPE, CONTEXTUAL_CARD_SHOW); intent.putExtra(EXTRA_CONTEXTUALCARD_VISIBLE, serialize(visibleCards)); intent.putExtra(EXTRA_CONTEXTUALCARD_HIDDEN, serialize(hiddenCards)); sendBroadcast(context, intent); sendBroadcast(intent); } @Override public void logContextualCardClick(Context context, ContextualCard card, int row, public void logContextualCardClick(ContextualCard card, int row, int actionType) { final Intent intent = new Intent(); intent.putExtra(EXTRA_CONTEXTUALCARD_ACTION_TYPE, CONTEXTUAL_CARD_CLICK); intent.putExtra(EXTRA_CONTEXTUALCARD_NAME, card.getName()); intent.putExtra(EXTRA_CONTEXTUALCARD_URI, card.getSliceUri().toString()); intent.putExtra(EXTRA_CONTEXTUALCARD_SCORE, card.getRankingScore()); intent.putExtra(EXTRA_CONTEXTUALCARD_ROW, row); intent.putExtra(EXTRA_CONTEXTUALCARD_TAP_TARGET, actionTypeToTapTarget(actionType)); sendBroadcast(context, intent); sendBroadcast(intent); } @VisibleForTesting void sendBroadcast(final Context context, final Intent intent) { intent.setPackage(context.getString(R.string.config_settingsintelligence_package_name)); final String action = context.getString(R.string.config_settingsintelligence_log_action); void sendBroadcast(final Intent intent) { intent.setPackage(mContext.getString(R.string.config_settingsintelligence_package_name)); final String action = mContext.getString(R.string.config_settingsintelligence_log_action); if (!TextUtils.isEmpty(action)) { intent.setAction(action); context.sendBroadcastAsUser(intent, UserHandle.ALL); mContext.sendBroadcastAsUser(intent, UserHandle.ALL); } } Loading
src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java +3 −3 Original line number Diff line number Diff line Loading @@ -149,10 +149,10 @@ public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard> // Two large cards return visibleCards; } finally { //TODO(b/121196921): Should not call this if user click dismiss final ContextualCardFeatureProvider contextualCardFeatureProvider = FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(); contextualCardFeatureProvider.logContextualCardDisplay(mContext, visibleCards, hiddenCards); FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(mContext); contextualCardFeatureProvider.logContextualCardDisplay(visibleCards, hiddenCards); } } Loading
src/com/android/settings/homepage/contextualcards/ContextualCardManager.java +2 −2 Original line number Diff line number Diff line Loading @@ -201,8 +201,8 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo .collect(groupingBy(ContextualCard::getCardType))); } final long totalTime = System.currentTimeMillis() - mStartTime; FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider() .logHomepageDisplay(mContext, totalTime); FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(mContext) .logHomepageDisplay(totalTime); mIsFirstLaunch = false; } Loading
src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardController.java +2 −2 Original line number Diff line number Diff line Loading @@ -70,8 +70,8 @@ public class SliceContextualCardController implements ContextualCardController { }); showFeedbackDialog(card); final ContextualCardFeatureProvider contextualCardFeatureProvider = FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(); contextualCardFeatureProvider.logContextualCardDismiss(mContext, card); FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(mContext); contextualCardFeatureProvider.logContextualCardDismiss(card); } @Override Loading