package com.aracem.sample.tracking; import android.app.Activity; import android.app.Application; import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import java.util.Map; public interface TrackingHelper { void initializeTrackingInApplication(Application application); /** * Track the end of an application session. We know that there aren't any form to know when the app finish but some * trackers needs to know when more or less the user exit the app to flush the info or other stuff. * Call this method in your onDestroy MainActivity method */ void onFinalizeAppTracking(Activity activity); void onStartPage(Context context); void onResumePage(Context context); void onPausePage(Context context); void trackVisitEvent(Context context, VisitEventInfo eventInfo); void trackClickEvent(Context context, ClickEventInfo eventInfo); void trackEvent(@NonNull String eventName, @Nullable Map eventInfo); void identifyUser(@Nullable User user); void resetUser(); void updateSuperproperties(@Nullable User user); }