package co.smartreceipts.android.analytics.impl.firebase;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import com.google.firebase.crash.FirebaseCrash;
import java.util.List;
import javax.inject.Inject;
import co.smartreceipts.android.analytics.Analytics;
import co.smartreceipts.android.analytics.events.DataPoint;
import co.smartreceipts.android.analytics.events.ErrorEvent;
import co.smartreceipts.android.analytics.events.Event;
public class FirebaseAnalytics implements Analytics {
private final com.google.firebase.analytics.FirebaseAnalytics mFirebaseAnalytics;
@Inject
public FirebaseAnalytics(Context context) {
mFirebaseAnalytics = com.google.firebase.analytics.FirebaseAnalytics.getInstance(
context.getApplicationContext());
}
@Override
public void record(@NonNull Event event) {
if (event instanceof ErrorEvent) {
FirebaseCrash.report(((ErrorEvent) event).getThrowable());
} else {
Bundle b = new Bundle();
List<DataPoint> dataPoints = event.getDataPoints();
for (DataPoint dataPoint : dataPoints) {
b.putString(dataPoint.getName(), dataPoint.getValue());
}
mFirebaseAnalytics.logEvent(event.name().name(), b);
}
}
}