package com.novoda.bonfire.analytics; import android.os.Bundle; import com.google.firebase.analytics.FirebaseAnalytics; import static com.google.firebase.analytics.FirebaseAnalytics.Event; import static com.google.firebase.analytics.FirebaseAnalytics.Param; public class FirebaseAnalyticsAnalytics implements Analytics { private static final String PARAM_CHANNEL_NAME = "channel_name"; private static final String PARAM_SENDER = "sender"; private static final String PARAM_USER_ID = "user_id"; private static final String PARAM_ADDED_OWNER = "added_owner"; private static final String PARAM_REMOVED_OWNER = "removed_owner"; private static final String EVENT_SIGN_UP_SUCCESS = "sign_up_success"; private static final String EVENT_MESSAGE_LENGTH = "message_length"; private static final String EVENT_INVITE_OPENED = "invite_opened"; private static final String EVENT_INVITE_ACCEPTED = "invite_accepted"; private static final String EVENT_MANAGE_OWNERS = "manage_owners"; private static final String EVENT_ADD_CHANNEL_OWNER = "add_channel_owner"; private static final String EVENT_REMOVE_CHANNEL_OWNER = "remove_channel_owner"; private static final String EVENT_SEND_INVITES = "send_invites"; private static final String EVENT_CREATE_CHANNEL = "create_channel"; private static final String CONTENT_TYPE_CHANNEL = "channel"; private final FirebaseAnalytics firebaseAnalytics; public FirebaseAnalyticsAnalytics(FirebaseAnalytics firebaseAnalytics) { this.firebaseAnalytics = firebaseAnalytics; } @Override public void trackSignInStarted(String method) { Bundle bundle = new Bundle(); bundle.putString(Param.SIGN_UP_METHOD, method); firebaseAnalytics.logEvent(Event.SIGN_UP, bundle); } @Override public void trackSignInSuccessful(String method) { Bundle bundle = new Bundle(); bundle.putString(Param.SIGN_UP_METHOD, method); firebaseAnalytics.logEvent(EVENT_SIGN_UP_SUCCESS, bundle); } @Override public void trackSelectChannel(String channelName) { Bundle bundle = new Bundle(); bundle.putString(Param.CONTENT_TYPE, CONTENT_TYPE_CHANNEL); bundle.putString(Param.ITEM_ID, channelName); firebaseAnalytics.logEvent(Event.SELECT_CONTENT, bundle); } @Override public void trackMessageLength(int messageLength, String userId, String channelName) { Bundle bundle = new Bundle(); bundle.putInt(Param.VALUE, messageLength); bundle.putString(PARAM_CHANNEL_NAME, channelName); bundle.putString(PARAM_USER_ID, userId); firebaseAnalytics.logEvent(EVENT_MESSAGE_LENGTH, bundle); } @Override public void trackInvitationOpened(String senderId) { Bundle bundle = new Bundle(); bundle.putString(PARAM_SENDER, senderId); firebaseAnalytics.logEvent(EVENT_INVITE_OPENED, bundle); } @Override public void trackInvitationAccepted(String senderId) { Bundle bundle = new Bundle(); bundle.putString(PARAM_SENDER, senderId); firebaseAnalytics.logEvent(EVENT_INVITE_ACCEPTED, bundle); } @Override public void trackManageOwners(String userId, String channelName) { Bundle bundle = new Bundle(); bundle.putString(PARAM_USER_ID, userId); bundle.putString(PARAM_CHANNEL_NAME, channelName); firebaseAnalytics.logEvent(EVENT_MANAGE_OWNERS, bundle); } @Override public void trackAddChannelOwner(String channelName, String userId) { Bundle bundle = new Bundle(); bundle.putString(PARAM_CHANNEL_NAME, channelName); bundle.putString(PARAM_ADDED_OWNER, userId); firebaseAnalytics.logEvent(EVENT_ADD_CHANNEL_OWNER, bundle); } @Override public void trackRemoveChannelOwner(String channelName, String userId) { Bundle bundle = new Bundle(); bundle.putString(PARAM_CHANNEL_NAME, channelName); bundle.putString(PARAM_REMOVED_OWNER, userId); firebaseAnalytics.logEvent(EVENT_REMOVE_CHANNEL_OWNER, bundle); } @Override public void trackSendInvitesSelected(String userId) { Bundle bundle = new Bundle(); bundle.putString(PARAM_USER_ID, userId); firebaseAnalytics.logEvent(EVENT_SEND_INVITES, bundle); } @Override public void trackCreateChannel(String userId) { Bundle bundle = new Bundle(); bundle.putString(PARAM_USER_ID, userId); firebaseAnalytics.logEvent(EVENT_CREATE_CHANNEL, bundle); } }