aboutsummaryrefslogtreecommitdiff
path: root/WordPress/src/main/java/org/wordpress/android/util/CrashlyticsUtils.java
blob: 34dc1f0fa2aa56bd06fc3410cc7f65732fb501fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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);
    }
}