1 package org.mozilla.mozstumbler.service.utils;
2 
3 import android.util.Log;
4 import org.mozilla.mozstumbler.service.AppGlobals;
5 import java.lang.reflect.InvocationTargetException;
6 import java.lang.reflect.Method;
7 
8 public class TelemetryWrapper {
9     private static final String LOG_TAG = AppGlobals.makeLogTag(TelemetryWrapper.class.getSimpleName());
10     private static Method mAddToHistogram;
11 
addToHistogram(String key, int value)12     public static void addToHistogram(String key, int value) {
13         if (mAddToHistogram == null) {
14             try {
15                 Class<?> telemetry = Class.forName("org.mozilla.gecko.Telemetry");
16                 mAddToHistogram = telemetry.getMethod("addToHistogram", String.class, int.class);
17             } catch (ClassNotFoundException e) {
18                 Log.d(LOG_TAG, "Class not found!");
19                 return;
20             } catch (NoSuchMethodException e) {
21                 Log.d(LOG_TAG, "Method not found!");
22                 return;
23             }
24         }
25 
26         if (mAddToHistogram != null) {
27             try {
28                 mAddToHistogram.invoke(null, key, value);
29             }
30             catch (IllegalArgumentException | InvocationTargetException | IllegalAccessException e) {
31                 Log.d(LOG_TAG, "Got exception invoking.");
32             }
33         }
34     }
35 }
36