summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorRoman Birg <roman@cyngn.com>2016-04-29 17:30:26 -0700
committerRoman Birg <roman@cyngn.com>2016-04-29 17:30:26 -0700
commitd20f7796e45dcae0e619d3bb76a3a89674705702 (patch)
tree3673dabe45a14e35cda0f7bd3eb8b05a6aaf2e82 /src/com/android
parent097b9503f45ae2a50c501fa95d13776d656621bb (diff)
downloadandroid_packages_apps_Trebuchet-d20f7796e45dcae0e619d3bb76a3a89674705702.tar.gz
android_packages_apps_Trebuchet-d20f7796e45dcae0e619d3bb76a3a89674705702.tar.bz2
android_packages_apps_Trebuchet-d20f7796e45dcae0e619d3bb76a3a89674705702.zip
Revert "Trebuchet: send metrics directly when possible"
This reverts commit 097b9503f45ae2a50c501fa95d13776d656621bb. Change-Id: I07e8ee6665b8ed112818a4dc596cf91adf94d6f0
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/launcher3/LauncherApplication.java14
-rw-r--r--src/com/android/launcher3/stats/external/StatsUtil.java66
2 files changed, 44 insertions, 36 deletions
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");
}