Add sliceUri in broadcast intent
Bug: 119748954 Test: robolectric Change-Id: I24eb8d5a274be60ba3395d05d2b306e185e7dcab
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
@@ -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";
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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
|
||||
|
@@ -173,8 +173,9 @@ public class SliceContextualCardRenderer implements ContextualCardRenderer,
|
||||
if (sliceItem.getSlice().getUri().toString().startsWith(
|
||||
card.getSliceUri().toString())) {
|
||||
ContextualCardFeatureProvider contexualCardFeatureProvider =
|
||||
FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider();
|
||||
contexualCardFeatureProvider.logContextualCardClick(mContext, card,
|
||||
FeatureFactory.getFactory(mContext)
|
||||
.getContextualCardFeatureProvider(mContext);
|
||||
contexualCardFeatureProvider.logContextualCardClick(card,
|
||||
eventInfo.rowIndex, eventInfo.actionType);
|
||||
break;
|
||||
}
|
||||
|
@@ -110,7 +110,7 @@ public abstract class FeatureFactory {
|
||||
|
||||
public abstract PanelFeatureProvider getPanelFeatureProvider();
|
||||
|
||||
public abstract ContextualCardFeatureProvider getContextualCardFeatureProvider();
|
||||
public abstract ContextualCardFeatureProvider getContextualCardFeatureProvider(Context context);
|
||||
|
||||
public abstract FaceFeatureProvider getFaceFeatureProvider();
|
||||
|
||||
|
@@ -228,9 +228,10 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ContextualCardFeatureProvider getContextualCardFeatureProvider() {
|
||||
public ContextualCardFeatureProvider getContextualCardFeatureProvider(Context context) {
|
||||
if (mContextualCardFeatureProvider == null) {
|
||||
mContextualCardFeatureProvider = new ContextualCardFeatureProviderImpl();
|
||||
mContextualCardFeatureProvider = new ContextualCardFeatureProviderImpl(
|
||||
context.getApplicationContext());
|
||||
}
|
||||
return mContextualCardFeatureProvider;
|
||||
}
|
||||
|
@@ -49,13 +49,13 @@ public class ContextualCardFeatureProviderImplTest {
|
||||
@Before
|
||||
public void setUp() {
|
||||
mContext = spy(RuntimeEnvironment.application);
|
||||
mImpl = new ContextualCardFeatureProviderImpl();
|
||||
mImpl = new ContextualCardFeatureProviderImpl(mContext);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void sendBroadcast_emptyAction_notSendBroadcast() {
|
||||
final Intent intent = new Intent();
|
||||
mImpl.sendBroadcast(mContext, intent);
|
||||
mImpl.sendBroadcast(intent);
|
||||
|
||||
verify(mContext, never()).sendBroadcastAsUser(intent, UserHandle.ALL);
|
||||
}
|
||||
@@ -64,7 +64,7 @@ public class ContextualCardFeatureProviderImplTest {
|
||||
@Config(qualifiers = "mcc999")
|
||||
public void sendBroadcast_hasAction_sendBroadcast() {
|
||||
final Intent intent = new Intent();
|
||||
mImpl.sendBroadcast(mContext, intent);
|
||||
mImpl.sendBroadcast(intent);
|
||||
|
||||
verify(mContext).sendBroadcastAsUser(intent, UserHandle.ALL);
|
||||
}
|
||||
@@ -72,7 +72,7 @@ public class ContextualCardFeatureProviderImplTest {
|
||||
@Test
|
||||
@Config(qualifiers = "mcc999")
|
||||
public void logContextualCardDisplay_hasAction_sendBroadcast() {
|
||||
mImpl.logContextualCardDisplay(mContext, new ArrayList<>(), new ArrayList<>());
|
||||
mImpl.logContextualCardDisplay(new ArrayList<>(), new ArrayList<>());
|
||||
|
||||
verify(mContext).sendBroadcastAsUser(any(Intent.class), any());
|
||||
}
|
||||
|
@@ -91,8 +91,7 @@ public class SliceContextualCardControllerTest {
|
||||
cr.close();
|
||||
|
||||
assertThat(qryDismissed).isEqualTo(1);
|
||||
verify(mFeatureFactory.mContextualCardFeatureProvider).logContextualCardDismiss(
|
||||
mContext, card);
|
||||
verify(mFeatureFactory.mContextualCardFeatureProvider).logContextualCardDismiss(card);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@@ -198,8 +198,7 @@ public class FakeFeatureFactory extends FeatureFactory {
|
||||
return panelFeatureProvider;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ContextualCardFeatureProvider getContextualCardFeatureProvider() {
|
||||
public ContextualCardFeatureProvider getContextualCardFeatureProvider(Context context) {
|
||||
return mContextualCardFeatureProvider;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user