Loading src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -32,5 +32,5 @@ public interface ContextualCardFeatureProvider { List<ContextualCard> hiddenCards); /** When user clicks toggle/title area of a contextual card. */ void logContextualCardClick(ContextualCard card, int row, int tapTarget); void logContextualCardClick(ContextualCard card, int sliceRow, int tapTarget, int uiPosition); } src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImpl.java +5 −1 Original line number Diff line number Diff line Loading @@ -63,6 +63,9 @@ public class ContextualCardFeatureProviderImpl implements ContextualCardFeatureP // contextual card tap target private static final String EXTRA_CONTEXTUALCARD_TAP_TARGET = "target"; // contextual card ui position private static final String EXTRA_CONTEXTUALCARD_UI_POSTITION = "ui_position"; // contextual homepage display latency private static final String EXTRA_LATENCY = "latency"; Loading Loading @@ -122,7 +125,7 @@ public class ContextualCardFeatureProviderImpl implements ContextualCardFeatureP @Override public void logContextualCardClick(ContextualCard card, int row, int actionType) { int actionType, int uiPosition) { final Intent intent = new Intent(); intent.putExtra(EXTRA_CONTEXTUALCARD_ACTION_TYPE, CONTEXTUAL_CARD_CLICK); intent.putExtra(EXTRA_CONTEXTUALCARD_NAME, card.getName()); Loading @@ -130,6 +133,7 @@ public class ContextualCardFeatureProviderImpl implements ContextualCardFeatureP intent.putExtra(EXTRA_CONTEXTUALCARD_SCORE, card.getRankingScore()); intent.putExtra(EXTRA_CONTEXTUALCARD_ROW, row); intent.putExtra(EXTRA_CONTEXTUALCARD_TAP_TARGET, actionTypeToTapTarget(actionType)); intent.putExtra(EXTRA_CONTEXTUALCARD_UI_POSTITION, uiPosition); sendBroadcast(intent); } Loading src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java +1 −4 Original line number Diff line number Diff line Loading @@ -64,7 +64,6 @@ public class SliceContextualCardRenderer implements ContextualCardRenderer, Life private final Context mContext; private final LifecycleOwner mLifecycleOwner; private final ControllerRendererPool mControllerRendererPool; private final Set<ContextualCard> mCardSet; private final SliceDeferredSetupCardRendererHelper mDeferredSetupCardHelper; private final SliceFullCardRendererHelper mFullCardHelper; private final SliceHalfCardRendererHelper mHalfCardHelper; Loading @@ -75,7 +74,6 @@ public class SliceContextualCardRenderer implements ContextualCardRenderer, Life mLifecycleOwner = lifecycleOwner; mSliceLiveDataMap = new ArrayMap<>(); mControllerRendererPool = controllerRendererPool; mCardSet = new ArraySet<>(); mFlippedCardSet = new ArraySet<>(); mLifecycleOwner.getLifecycle().addObserver(this); mFullCardHelper = new SliceFullCardRendererHelper(context); Loading Loading @@ -110,7 +108,6 @@ public class SliceContextualCardRenderer implements ContextualCardRenderer, Life sliceLiveData = SliceLiveData.fromUri(mContext, uri); mSliceLiveDataMap.put(uri, sliceLiveData); } mCardSet.add(card); sliceLiveData.removeObservers(mLifecycleOwner); sliceLiveData.observe(mLifecycleOwner, slice -> { Loading @@ -129,7 +126,7 @@ public class SliceContextualCardRenderer implements ContextualCardRenderer, Life mHalfCardHelper.bindView(holder, card, slice); break; default: mFullCardHelper.bindView(holder, card, slice, mCardSet); mFullCardHelper.bindView(holder, card, slice); } }); Loading src/com/android/settings/homepage/contextualcards/slices/SliceDeferredSetupCardRendererHelper.java +1 −1 Original line number Diff line number Diff line Loading @@ -68,7 +68,7 @@ class SliceDeferredSetupCardRendererHelper { final ContextualCardFeatureProvider contextualCardFeatureProvider = FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(mContext); contextualCardFeatureProvider.logContextualCardClick(card, 0 /* row */, EventInfo.ACTION_TYPE_CONTENT); EventInfo.ACTION_TYPE_CONTENT, view.getAdapterPosition()); }); } Loading src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java +11 −24 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settings.homepage.contextualcards.slices; import android.content.Context; import android.util.Log; import android.view.View; import androidx.annotation.NonNull; Loading @@ -36,13 +37,11 @@ import java.util.Set; /** * Card renderer helper for {@link ContextualCard} built as slice full card. */ class SliceFullCardRendererHelper implements SliceView.OnSliceActionListener { class SliceFullCardRendererHelper { private static final String TAG = "SliceFCRendererHelper"; private final Context mContext; private Set<ContextualCard> mCardSet; SliceFullCardRendererHelper(Context context) { mContext = context; } Loading @@ -51,17 +50,22 @@ class SliceFullCardRendererHelper implements SliceView.OnSliceActionListener { return new SliceViewHolder(view); } void bindView(RecyclerView.ViewHolder holder, ContextualCard card, Slice slice, Set<ContextualCard> cardSet) { void bindView(RecyclerView.ViewHolder holder, ContextualCard card, Slice slice) { final SliceViewHolder cardHolder = (SliceViewHolder) holder; cardHolder.sliceView.setScrollable(false); cardHolder.sliceView.setTag(card.getSliceUri()); //TODO(b/114009676): We will soon have a field to decide what slice mode we should set. cardHolder.sliceView.setMode(SliceView.MODE_LARGE); cardHolder.sliceView.setSlice(slice); mCardSet = cardSet; // Set this listener so we can log the interaction users make on the slice cardHolder.sliceView.setOnSliceActionListener(this); cardHolder.sliceView.setOnSliceActionListener( (eventInfo, sliceItem) -> { final ContextualCardFeatureProvider contextualCardFeatureProvider = FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider( mContext); contextualCardFeatureProvider.logContextualCardClick(card, eventInfo.rowIndex, eventInfo.actionType, cardHolder.getAdapterPosition()); }); // Customize slice view for Settings cardHolder.sliceView.showTitleItems(true); Loading @@ -71,23 +75,6 @@ class SliceFullCardRendererHelper implements SliceView.OnSliceActionListener { } } @Override public void onSliceAction(@NonNull EventInfo eventInfo, @NonNull SliceItem sliceItem) { // sliceItem.getSlice().getUri() is like // content://android.settings.slices/action/wifi/_gen/0/_gen/0 // contextualCard.getSliceUri() is prefix of sliceItem.getSlice().getUri() final ContextualCardFeatureProvider contextualCardFeatureProvider = FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(mContext); for (ContextualCard card : mCardSet) { if (sliceItem.getSlice().getUri().toString().startsWith( card.getSliceUri().toString())) { contextualCardFeatureProvider.logContextualCardClick(card, eventInfo.rowIndex, eventInfo.actionType); break; } } } static class SliceViewHolder extends RecyclerView.ViewHolder { public final SliceView sliceView; Loading Loading
src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -32,5 +32,5 @@ public interface ContextualCardFeatureProvider { List<ContextualCard> hiddenCards); /** When user clicks toggle/title area of a contextual card. */ void logContextualCardClick(ContextualCard card, int row, int tapTarget); void logContextualCardClick(ContextualCard card, int sliceRow, int tapTarget, int uiPosition); }
src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImpl.java +5 −1 Original line number Diff line number Diff line Loading @@ -63,6 +63,9 @@ public class ContextualCardFeatureProviderImpl implements ContextualCardFeatureP // contextual card tap target private static final String EXTRA_CONTEXTUALCARD_TAP_TARGET = "target"; // contextual card ui position private static final String EXTRA_CONTEXTUALCARD_UI_POSTITION = "ui_position"; // contextual homepage display latency private static final String EXTRA_LATENCY = "latency"; Loading Loading @@ -122,7 +125,7 @@ public class ContextualCardFeatureProviderImpl implements ContextualCardFeatureP @Override public void logContextualCardClick(ContextualCard card, int row, int actionType) { int actionType, int uiPosition) { final Intent intent = new Intent(); intent.putExtra(EXTRA_CONTEXTUALCARD_ACTION_TYPE, CONTEXTUAL_CARD_CLICK); intent.putExtra(EXTRA_CONTEXTUALCARD_NAME, card.getName()); Loading @@ -130,6 +133,7 @@ public class ContextualCardFeatureProviderImpl implements ContextualCardFeatureP intent.putExtra(EXTRA_CONTEXTUALCARD_SCORE, card.getRankingScore()); intent.putExtra(EXTRA_CONTEXTUALCARD_ROW, row); intent.putExtra(EXTRA_CONTEXTUALCARD_TAP_TARGET, actionTypeToTapTarget(actionType)); intent.putExtra(EXTRA_CONTEXTUALCARD_UI_POSTITION, uiPosition); sendBroadcast(intent); } Loading
src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java +1 −4 Original line number Diff line number Diff line Loading @@ -64,7 +64,6 @@ public class SliceContextualCardRenderer implements ContextualCardRenderer, Life private final Context mContext; private final LifecycleOwner mLifecycleOwner; private final ControllerRendererPool mControllerRendererPool; private final Set<ContextualCard> mCardSet; private final SliceDeferredSetupCardRendererHelper mDeferredSetupCardHelper; private final SliceFullCardRendererHelper mFullCardHelper; private final SliceHalfCardRendererHelper mHalfCardHelper; Loading @@ -75,7 +74,6 @@ public class SliceContextualCardRenderer implements ContextualCardRenderer, Life mLifecycleOwner = lifecycleOwner; mSliceLiveDataMap = new ArrayMap<>(); mControllerRendererPool = controllerRendererPool; mCardSet = new ArraySet<>(); mFlippedCardSet = new ArraySet<>(); mLifecycleOwner.getLifecycle().addObserver(this); mFullCardHelper = new SliceFullCardRendererHelper(context); Loading Loading @@ -110,7 +108,6 @@ public class SliceContextualCardRenderer implements ContextualCardRenderer, Life sliceLiveData = SliceLiveData.fromUri(mContext, uri); mSliceLiveDataMap.put(uri, sliceLiveData); } mCardSet.add(card); sliceLiveData.removeObservers(mLifecycleOwner); sliceLiveData.observe(mLifecycleOwner, slice -> { Loading @@ -129,7 +126,7 @@ public class SliceContextualCardRenderer implements ContextualCardRenderer, Life mHalfCardHelper.bindView(holder, card, slice); break; default: mFullCardHelper.bindView(holder, card, slice, mCardSet); mFullCardHelper.bindView(holder, card, slice); } }); Loading
src/com/android/settings/homepage/contextualcards/slices/SliceDeferredSetupCardRendererHelper.java +1 −1 Original line number Diff line number Diff line Loading @@ -68,7 +68,7 @@ class SliceDeferredSetupCardRendererHelper { final ContextualCardFeatureProvider contextualCardFeatureProvider = FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(mContext); contextualCardFeatureProvider.logContextualCardClick(card, 0 /* row */, EventInfo.ACTION_TYPE_CONTENT); EventInfo.ACTION_TYPE_CONTENT, view.getAdapterPosition()); }); } Loading
src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java +11 −24 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settings.homepage.contextualcards.slices; import android.content.Context; import android.util.Log; import android.view.View; import androidx.annotation.NonNull; Loading @@ -36,13 +37,11 @@ import java.util.Set; /** * Card renderer helper for {@link ContextualCard} built as slice full card. */ class SliceFullCardRendererHelper implements SliceView.OnSliceActionListener { class SliceFullCardRendererHelper { private static final String TAG = "SliceFCRendererHelper"; private final Context mContext; private Set<ContextualCard> mCardSet; SliceFullCardRendererHelper(Context context) { mContext = context; } Loading @@ -51,17 +50,22 @@ class SliceFullCardRendererHelper implements SliceView.OnSliceActionListener { return new SliceViewHolder(view); } void bindView(RecyclerView.ViewHolder holder, ContextualCard card, Slice slice, Set<ContextualCard> cardSet) { void bindView(RecyclerView.ViewHolder holder, ContextualCard card, Slice slice) { final SliceViewHolder cardHolder = (SliceViewHolder) holder; cardHolder.sliceView.setScrollable(false); cardHolder.sliceView.setTag(card.getSliceUri()); //TODO(b/114009676): We will soon have a field to decide what slice mode we should set. cardHolder.sliceView.setMode(SliceView.MODE_LARGE); cardHolder.sliceView.setSlice(slice); mCardSet = cardSet; // Set this listener so we can log the interaction users make on the slice cardHolder.sliceView.setOnSliceActionListener(this); cardHolder.sliceView.setOnSliceActionListener( (eventInfo, sliceItem) -> { final ContextualCardFeatureProvider contextualCardFeatureProvider = FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider( mContext); contextualCardFeatureProvider.logContextualCardClick(card, eventInfo.rowIndex, eventInfo.actionType, cardHolder.getAdapterPosition()); }); // Customize slice view for Settings cardHolder.sliceView.showTitleItems(true); Loading @@ -71,23 +75,6 @@ class SliceFullCardRendererHelper implements SliceView.OnSliceActionListener { } } @Override public void onSliceAction(@NonNull EventInfo eventInfo, @NonNull SliceItem sliceItem) { // sliceItem.getSlice().getUri() is like // content://android.settings.slices/action/wifi/_gen/0/_gen/0 // contextualCard.getSliceUri() is prefix of sliceItem.getSlice().getUri() final ContextualCardFeatureProvider contextualCardFeatureProvider = FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(mContext); for (ContextualCard card : mCardSet) { if (sliceItem.getSlice().getUri().toString().startsWith( card.getSliceUri().toString())) { contextualCardFeatureProvider.logContextualCardClick(card, eventInfo.rowIndex, eventInfo.actionType); break; } } } static class SliceViewHolder extends RecyclerView.ViewHolder { public final SliceView sliceView; Loading