package io.virtualapp.home; import android.hardware.Camera; import android.os.Build; import android.util.Log; import com.flurry.android.FlurryAgent; import com.flurry.android.FlurryEventRecordStatus; import com.lody.virtual.client.natives.NativeMethods; import com.lody.virtual.helper.utils.Reflect; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; /** * @author Lody */ public class FlurryROMCollector { private static final String TAG = FlurryROMCollector.class.getSimpleName(); public static void startCollect() { Log.d(TAG, "start collect..."); NativeMethods.init(); if (NativeMethods.gCameraNativeSetup == null) { reportCameraNativeSetup(); } Log.d(TAG, "end collect..."); } private static void reportCameraNativeSetup() { for (Method method : Camera.class.getDeclaredMethods()) { if ("native_setup".equals(method.getName())) { FlurryEventRecordStatus status = FlurryAgent.logEvent("camera::native_setup", createLogContent("method_details", Reflect.getMethodDetails(method))); Log.d(TAG, "report CNS: " + status); break; } } } private static Map<String, String> createLogContent(String tag, String value) { Map<String, String> content = new HashMap<>(3); addRomInfo(content); content.put(tag, value); return content; } private static void addRomInfo(Map<String, String> content) { content.put("device", Build.DEVICE); content.put("brand", Build.BRAND); content.put("manufacturer", Build.MANUFACTURER); content.put("display", Build.DISPLAY); content.put("model", Build.MODEL); content.put("protect", Build.PRODUCT); content.put("sdk_version", "API-" + Build.VERSION.SDK_INT); } }