package com.simplecity.amp_library.utils; import android.app.Activity; import android.os.Bundle; import com.crashlytics.android.answers.Answers; import com.crashlytics.android.answers.CustomEvent; import com.crashlytics.android.core.CrashlyticsCore; import com.google.firebase.analytics.FirebaseAnalytics; import com.simplecity.amp_library.BuildConfig; import com.simplecity.amp_library.ShuttleApplication; public class AnalyticsManager { private static final String TAG = "AnalyticsManager"; private static boolean analyticsEnabled() { return !BuildConfig.DEBUG; } public @interface UpgradeType { String NAG = "Nag"; String FOLDER = "Folder"; String COLORS = "Colors"; String UPGRADE = "Upgrade"; } public interface ColorType { String PRIMARY = "primary"; String ACCENT = "accent"; } public static void logColorPicked(String colorType, int color) { if (!analyticsEnabled()) { return; } switch (colorType) { case ColorType.PRIMARY: Answers.getInstance().logCustom(new CustomEvent("Primary Color Changed") .putCustomAttribute("Color", String.format("#%06X", (0xFFFFFF & color)))); break; case ColorType.ACCENT: Answers.getInstance().logCustom(new CustomEvent("Accent Color Changed") .putCustomAttribute("Color", String.format("#%06X", (0xFFFFFF & color)))); break; } } public static void logChangelogViewed() { if (!analyticsEnabled()) { return; } Bundle bundle = new Bundle(); bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "changelog"); bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "0"); FirebaseAnalytics.getInstance(ShuttleApplication.getInstance()) .logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle); Answers.getInstance().logCustom(new CustomEvent("Changelog Viewed")); } public static void logTabVisibilityChanged(boolean visible, String title) { if (!analyticsEnabled()) { return; } if (visible) { Answers.getInstance().logCustom(new CustomEvent("Tab Enabled") .putCustomAttribute("Tab", title)); } else { Answers.getInstance().logCustom(new CustomEvent("Tab Disabled") .putCustomAttribute("Tab", title)); } } public static void logUpgrade(@UpgradeType String upgradeType) { if (!analyticsEnabled()) { return; } Bundle bundle = new Bundle(); bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "0"); bundle.putLong(FirebaseAnalytics.Param.QUANTITY, 0); bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, upgradeType); bundle.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "upgrade"); FirebaseAnalytics.getInstance(ShuttleApplication.getInstance()) .logEvent(FirebaseAnalytics.Event.PRESENT_OFFER, bundle); } public static void logScreenName(Activity activity, String name) { if (!analyticsEnabled()) { return; } CrashlyticsCore.getInstance().log(String.format("Screen: %s", name)); FirebaseAnalytics.getInstance(ShuttleApplication.getInstance()).setCurrentScreen(activity, name, null); } public static void setIsUpgraded() { if (!analyticsEnabled()) { return; } FirebaseAnalytics.getInstance(ShuttleApplication.getInstance()).setUserProperty("Upgraded", String.valueOf(ShuttleUtils.isUpgraded())); } }