From d20f7796e45dcae0e619d3bb76a3a89674705702 Mon Sep 17 00:00:00 2001 From: Roman Birg Date: Fri, 29 Apr 2016 17:30:26 -0700 Subject: Revert "Trebuchet: send metrics directly when possible" This reverts commit 097b9503f45ae2a50c501fa95d13776d656621bb. Change-Id: I07e8ee6665b8ed112818a4dc596cf91adf94d6f0 --- Android.mk | 1 - AndroidManifest.xml | 3 - src/com/android/launcher3/LauncherApplication.java | 14 ----- .../launcher3/stats/external/StatsUtil.java | 66 ++++++++++++++-------- 4 files changed, 44 insertions(+), 40 deletions(-) diff --git a/Android.mk b/Android.mk index 93cbfabf5..5ef85b480 100644 --- a/Android.mk +++ b/Android.mk @@ -28,7 +28,6 @@ LOCAL_STATIC_JAVA_LIBRARIES := \ android-support-v7-recyclerview \ org.cyanogenmod.platform.internal -LOCAL_STATIC_JAVA_AAR_LIBRARIES := ambientsdk LOCAL_SRC_FILES := $(call all-java-files-under, src) \ $(call all-java-files-under, WallpaperPicker/src) \ diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 8dbabf28f..dbdabfa4d 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -237,8 +237,5 @@ - - diff --git a/src/com/android/launcher3/LauncherApplication.java b/src/com/android/launcher3/LauncherApplication.java index 896963e6d..4bbcec073 100644 --- a/src/com/android/launcher3/LauncherApplication.java +++ b/src/com/android/launcher3/LauncherApplication.java @@ -20,14 +20,10 @@ import android.app.Application; import com.android.launcher3.stats.LauncherStats; import com.android.launcher3.stats.internal.service.AggregationIntentService; -import com.cyanogen.ambient.analytics.AnalyticsServices; -import com.cyanogen.ambient.analytics.Event; -import com.cyanogen.ambient.common.api.AmbientApiClient; public class LauncherApplication extends Application { private static LauncherStats sLauncherStats = null; - private AmbientApiClient mClient; /** * Get the reference handle for LauncherStats commands @@ -41,18 +37,8 @@ public class LauncherApplication extends Application { @Override public void onCreate() { super.onCreate(); - mClient = new AmbientApiClient.Builder(this) - .addApi(AnalyticsServices.API) - .build(); - mClient.connect(); sLauncherStats = LauncherStats.getInstance(this); AggregationIntentService.scheduleService(this); } - public void sendEvent(Event event) { - if (mClient.isConnected()) { - AnalyticsServices.AnalyticsApi.sendEvent(mClient, event); - } - } - } diff --git a/src/com/android/launcher3/stats/external/StatsUtil.java b/src/com/android/launcher3/stats/external/StatsUtil.java index da8e94e6d..697df542c 100644 --- a/src/com/android/launcher3/stats/external/StatsUtil.java +++ b/src/com/android/launcher3/stats/external/StatsUtil.java @@ -24,10 +24,7 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.util.Log; - -import com.android.launcher3.LauncherApplication; import com.android.launcher3.stats.util.Logger; -import com.cyanogen.ambient.analytics.Event; /** * StatsUtil @@ -42,6 +39,42 @@ public class StatsUtil { // Constants private static final String KEY_TRACKING_ID = "tracking_id"; + private static final String ANALYTIC_INTENT = "com.cyngn.stats.action.SEND_ANALYTIC_EVENT"; + private static final String STATS_PACKAGE = "com.cyngn.stats"; + + /** + * Checks if stats collection is enabled + * + * @param context {@link android.content.Context} + * @return {@link java.lang.Boolean} + * @throws IllegalArgumentException {@link IllegalArgumentException} + */ + public static boolean isStatsCollectionEnabled(Context context) + throws IllegalArgumentException { + return isStatsPackageInstalledAndSystemApp(context); + } + + /** + * Checks if the stats package is installed + * + * @param context {@link android.content.Context} + * @return {@link Boolean {@link Boolean {@link Boolean {@link Boolean}}}} + */ + private static boolean isStatsPackageInstalledAndSystemApp(Context context) + throws IllegalArgumentException { + if (context == null) { + throw new IllegalArgumentException("'context' cannot be null!"); + } + try { + PackageInfo pi = context.getPackageManager().getPackageInfo(STATS_PACKAGE, 0); + boolean isSystemApp = (pi.applicationInfo.flags & + (ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_UPDATED_SYSTEM_APP)) != 0; + return pi.applicationInfo.enabled && isSystemApp; + } catch (PackageManager.NameNotFoundException e) { + Log.e(TAG, "stats not found!"); + return false; + } + } /** * Send an event to CyangenStats @@ -58,34 +91,23 @@ public class StatsUtil { if (trackingBundle == null) { throw new IllegalArgumentException("'trackingBundle' cannot be null!"); } + if (!isStatsCollectionEnabled(context)) { + Logger.logd(TAG, "Stats collection: DISABLED!"); + return; + } Logger.logd(TAG, "Stats collection: ENABLED!"); + Intent newIntent = new Intent(ANALYTIC_INTENT); + if (!trackingBundle.containsKey(KEY_TRACKING_ID)) { Logger.logd(TAG, "No tracking id in bundle"); return; } else { if (trackingBundle.containsKey(TrackingBundle.KEY_EVENT_CATEGORY) && trackingBundle.containsKey(TrackingBundle.KEY_EVENT_ACTION)) { - - final Event.Builder builder = new Event.Builder( - trackingBundle.getString(TrackingBundle.KEY_EVENT_CATEGORY), - trackingBundle.getString(TrackingBundle.KEY_EVENT_ACTION)); - - if (trackingBundle.containsKey(TrackingBundle.KEY_METADATA_ORIGIN)) { - builder.addField(TrackingBundle.KEY_METADATA_ORIGIN, - trackingBundle.getString(TrackingBundle.KEY_METADATA_ORIGIN)); - } - if (trackingBundle.containsKey(TrackingBundle.KEY_METADATA_PACKAGE)) { - builder.addField(TrackingBundle.KEY_METADATA_PACKAGE, - trackingBundle.getString(TrackingBundle.KEY_METADATA_PACKAGE)); - } - if (trackingBundle.containsKey(TrackingBundle.KEY_METADATA_VALUE)) { - builder.addField(TrackingBundle.KEY_METADATA_VALUE, - String.valueOf(trackingBundle.get(TrackingBundle.KEY_METADATA_VALUE))); - } - ((LauncherApplication)context.getApplicationContext()).sendEvent(builder.build()); - Logger.logd(TAG, trackingBundle.toString()); + newIntent.putExtras(trackingBundle); + context.sendBroadcast(newIntent); } else { Logger.logd(TAG, "Not a valid tracking bundle"); } -- cgit v1.2.3