diff options
Diffstat (limited to 'WordPress/src/main/java/org/wordpress/android/util/CrashlyticsUtils.java')
-rw-r--r-- | WordPress/src/main/java/org/wordpress/android/util/CrashlyticsUtils.java | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/WordPress/src/main/java/org/wordpress/android/util/CrashlyticsUtils.java b/WordPress/src/main/java/org/wordpress/android/util/CrashlyticsUtils.java new file mode 100644 index 000000000..34dc1f0fa --- /dev/null +++ b/WordPress/src/main/java/org/wordpress/android/util/CrashlyticsUtils.java @@ -0,0 +1,65 @@ +package org.wordpress.android.util; + +import com.crashlytics.android.Crashlytics; + +import io.fabric.sdk.android.Fabric; + +public class CrashlyticsUtils { + final private static String EXCEPTION_KEY = "exception"; + final private static String TAG_KEY = "tag"; + final private static String MESSAGE_KEY = "message"; + public enum ExceptionType {USUAL, SPECIFIC} + public enum ExtraKey {IMAGE_ANGLE, IMAGE_WIDTH, IMAGE_HEIGHT, IMAGE_RESIZE_SCALE, NOTE_HTMLDATA, ENTERED_URL} + + public static void logException(Throwable tr, ExceptionType exceptionType, AppLog.T tag, String message) { + if (!Fabric.isInitialized()) { + return; + } + if (tag != null) { + Crashlytics.setString(TAG_KEY, tag.name()); + } + if (message != null) { + Crashlytics.setString(MESSAGE_KEY, message); + } + Crashlytics.setString(EXCEPTION_KEY, exceptionType.name()); + Crashlytics.logException(tr); + } + + public static void logException(Throwable tr, ExceptionType exceptionType, AppLog.T tag) { + logException(tr, exceptionType, tag, null); + } + + public static void logException(Throwable tr, ExceptionType exceptionType) { + logException(tr, exceptionType, null, null); + } + + // Utility functions to force us to use and reuse a limited set of keys + + public static void setInt(ExtraKey key, int value) { + if (!Fabric.isInitialized()) { + return; + } + Crashlytics.setInt(key.name(), value); + } + + public static void setFloat(ExtraKey key, float value) { + if (!Fabric.isInitialized()) { + return; + } + Crashlytics.setFloat(key.name(), value); + } + + public static void setString(ExtraKey key, String value) { + if (!Fabric.isInitialized()) { + return; + } + Crashlytics.setString(key.name(), value); + } + + public static void setBool(ExtraKey key, boolean value) { + if (!Fabric.isInitialized()) { + return; + } + Crashlytics.setBool(key.name(), value); + } +} |