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