@TrackEvent("event_java") public void trackFoo() { } }
AssertTracker noTags() { assertThat(trackEvent.tags()).isEmpty(); return this; }
AssertTracker noFilters() { assertThat(trackEvent.filters()).isEmpty(); return this; }
AssertTracker event(String name) { assertThat(trackEvent.value()).isEqualTo(name); return this; }
AssertTracker tags(String... tags) { for (String tag : tags) { assertThat(trackEvent.tags()).asList().contains(tag); } return this; }
AssertTracker filters(int... tags) { for (int tag : tags) { assertThat(trackEvent.filters()).asList().contains(tag); } return this; }
@TrackEvent("button_click") @FixedAttribute(key = "button_name", value = "Login") @Override public void onClick(View v) { } });
@TrackEvent("another_event") @Attribute("user_id") // This attribute will use return value as attribute value. private String userId() { return "2342"; }
@TrackEvent("transform") @TransformAttributeMap( keys = {1, 2}, values = {"finished", "accepted"} ) private void onItemSelected(@TransformAttribute("status") int position) { }
@TrackEvent("login") private void onLoggedIn(@TrackableAttribute User user, @Attribute("id") String id) { }
@TrackEvent("on_create") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Tracklytics.init(new EventSubscriber() { @Override public void onEventTracked(Event event) { // Send your events to Mixpanel, Fabric etc } }).setEventLogListener(new EventLogListener() { @Override public void log(String message) { // Set your logger here. ie: Logger or Timber Log.d("Tracker", message); } }); findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @TrackEvent("button_click") @FixedAttribute(key = "button_name", value = "Login") @Override public void onClick(View v) { } }); }