[Replicant] [PATCH 4/4] Revert "Trebuchet: send metrics directly when possible"

belgin belginstirbu at hotmail.com
Mon Nov 23 23:46:41 UTC 2020


This reverts commit 90106d85b75a60a8bdc9c4ad891e4a2e7ce548dd.
---
 Android.mk                                         |  4 +-
 AndroidManifest.xml                                |  3 -
 src/com/android/launcher3/LauncherApplication.java | 14 -----
 .../launcher3/stats/external/StatsUtil.java        | 66 ++++++++++++++--------
 4 files changed, 45 insertions(+), 42 deletions(-)

diff --git a/Android.mk b/Android.mk
index 38edafaea..9b6d23c58 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-proto-files-under, protos)
@@ -43,8 +42,7 @@ LOCAL_PROTOC_OPTIMIZE_TYPE := nano
 LOCAL_PROTOC_FLAGS := --proto_path=$(LOCAL_PATH)/protos/
 LOCAL_AAPT_FLAGS := \
     --auto-add-overlay \
-    --extra-packages android.support.v7.recyclerview \
-    --extra-packages com.cyanogen.ambient
+    --extra-packages android.support.v7.recyclerview
 
 #LOCAL_SDK_VERSION := current
 LOCAL_PACKAGE_NAME := Trebuchet
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 09ed01d14..6012b9e4a 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -240,8 +240,5 @@
 
         <meta-data android:name="android.nfc.disable_beam_default"
                        android:value="true" />
-
-        <meta-data android:name="com.cyanogen.ambient.analytics.key"
-                   android:value="DScKo29EpMBx1833F7ln1811KFPf14UT"/>
     </application>
 </manifest>
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");
             }
-- 
2.11.0



More information about the Replicant mailing list