package org.wikipedia.analytics; import android.support.annotation.NonNull; import org.wikipedia.WikipediaApp; import org.wikipedia.feed.model.CardType; import java.util.Arrays; import java.util.List; public class FeedFunnel extends TimedFunnel { private static final String SCHEMA_NAME = "MobileWikiAppFeed"; private static final int REVISION = 16432467; private boolean entered; private static List<CardType> EXCLUDED_CARDS = Arrays.asList(CardType.SEARCH_BAR, CardType.PROGRESS); public FeedFunnel(WikipediaApp app) { super(app, SCHEMA_NAME, REVISION, Funnel.SAMPLE_LOG_100); } public void enter() { if (!entered) { entered = true; resetDuration(); log( "action", "enter" ); } } public void exit() { if (entered) { entered = false; log( "action", "exit" ); } } public void cardShown(@NonNull CardType cardType) { if (EXCLUDED_CARDS.contains(cardType)) { return; } log( "action", "cardShown", "cardType", cardType.code() ); } public void cardClicked(@NonNull CardType cardType) { if (EXCLUDED_CARDS.contains(cardType)) { return; } log( "action", "cardClicked", "cardType", cardType.code() ); } public void requestMore(int age) { log( "action", "more", "age", age ); } public void refresh(int age) { log( "action", "refresh", "age", age ); } public void dismissCard(@NonNull CardType cardType, int position) { log( "action", "dismiss", "cardType", cardType.code(), "position", position ); } }