DivestOS/Patches/CyanogenMod-13.0/android_packages_apps_Contacts/Remove_Analytics.patch
2016-12-21 19:30:02 -05:00

1231 lines
54 KiB
Diff

From 63088e28c95fb7235308ed6c6677a4796de24aa4 Mon Sep 17 00:00:00 2001
From: Tad <tad@spotco.us>
Date: Fri, 8 Apr 2016 21:33:05 -0400
Subject: [PATCH] Remove analytics
Change-Id: Ie162b463d2bf591cc99937dc074d781d6ef8cb88
---
AndroidManifest_cm.xml | 14 -
src/com/android/contacts/ContactsApplication.java | 2 -
.../contacts/activities/PeopleActivity.java | 8 +-
.../editor/CompactContactEditorFragment.java | 2 -
.../contacts/editor/ContactEditorFragment.java | 2 -
.../contacts/incall/InCallMetricsDbHelper.java | 330 -------------
.../contacts/incall/InCallMetricsHelper.java | 533 ---------------------
.../contacts/incall/InCallMetricsReceiver.java | 33 --
.../contacts/incall/InCallMetricsService.java | 35 --
.../list/PluginContactBrowseListFragment.java | 13 +-
.../quickcontact/QuickContactActivity.java | 40 +-
11 files changed, 4 insertions(+), 1008 deletions(-)
delete mode 100644 src/com/android/contacts/incall/InCallMetricsDbHelper.java
delete mode 100644 src/com/android/contacts/incall/InCallMetricsHelper.java
delete mode 100644 src/com/android/contacts/incall/InCallMetricsReceiver.java
delete mode 100644 src/com/android/contacts/incall/InCallMetricsService.java
diff --git a/AndroidManifest_cm.xml b/AndroidManifest_cm.xml
index 1f1e29e..1e33223 100644
--- a/AndroidManifest_cm.xml
+++ b/AndroidManifest_cm.xml
@@ -20,8 +20,6 @@
<!-- Connect to AmbientCore to use InCall Plugins -->
<uses-permission android:name="com.cyanogen.ambient.permission.BIND_INCALL_SERVICE" />
<uses-permission android:name="com.cyanogen.ambient.permission.PLUGIN_STATUS_CHANGED" />
- <permission android:name="com.android.contacts.incall.METRICS_PERMISSION"
- android:protectionLevel="signatureOrSystem" />
<application>
<receiver android:name=".incall.CallMethodStatusReceiver"
android:enabled="true"
@@ -30,17 +28,5 @@
<action android:name="cyanogen.ambient.core.plugin.incall.action.plugin_status_changed"/>
</intent-filter>
</receiver>
-
- <!-- IntentService for InCall plugin metrics update -->
- <service android:name=".incall.InCallMetricsService" android:exported="false"/>
- <receiver android:name=".incall.InCallMetricsReceiver"
- android:exported="true">
- <intent-filter>
- <action android:name="com.android.contacts.incall.CONTACTS_AUTO_MERGE"/>
- </intent-filter>
- </receiver>
-
- <meta-data android:name="com.cyanogen.ambient.analytics.key"
- android:value="e8d60c6f3e05621d6437e67db27ef3b1d8b94e43"/>
</application>
</manifest>
diff --git a/src/com/android/contacts/ContactsApplication.java b/src/com/android/contacts/ContactsApplication.java
index f0f86e9..74fb9e5 100644
--- a/src/com/android/contacts/ContactsApplication.java
+++ b/src/com/android/contacts/ContactsApplication.java
@@ -37,7 +37,6 @@ import com.android.contacts.common.testing.InjectedServices;
import com.android.contacts.common.util.Constants;
import com.android.contacts.commonbind.analytics.AnalyticsUtil;
import com.android.contacts.incall.InCallPluginHelper;
-import com.android.contacts.incall.InCallMetricsHelper;
import com.android.phone.common.incall.CallMethodHelper;
import com.google.common.annotations.VisibleForTesting;
@@ -128,7 +127,6 @@ public final class ContactsApplication extends Application {
AnalyticsUtil.initialize(this);
InCallPluginHelper.init(this);
- InCallMetricsHelper.init(this);
}
private class DelayedInitializer extends AsyncTask<Void, Void, Void> {
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 5df9ebe..c42d6d3 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -56,11 +56,9 @@ import android.view.Window;
import android.widget.ImageButton;
import android.widget.Toast;
import android.widget.Toolbar;
-
-import com.android.contacts.ContactsActivity;
-import com.android.contacts.incall.InCallMetricsHelper;
import com.android.contacts.incall.InCallPluginHelper;
import com.android.contacts.incall.InCallPluginInfo;
+import com.android.contacts.ContactsActivity;
import com.android.contacts.R;
import com.android.contacts.activities.ActionBarAdapter.TabState;
import com.android.contacts.common.ContactsUtils;
@@ -971,10 +969,6 @@ public class PeopleActivity extends ContactsActivity implements
if (fragment != null) {
fragment.setUserVisibleHint(true);
}
- if (mCurrentPrimaryItem instanceof PluginContactBrowseListFragment) {
- InCallMetricsHelper.increaseImpressionCount(PeopleActivity.this,
- ((PluginContactBrowseListFragment) mCurrentPrimaryItem).getPluginInfo());
- }
mCurrentPrimaryItem = fragment;
}
}
diff --git a/src/com/android/contacts/editor/CompactContactEditorFragment.java b/src/com/android/contacts/editor/CompactContactEditorFragment.java
index 28bf078..656c5ae 100644
--- a/src/com/android/contacts/editor/CompactContactEditorFragment.java
+++ b/src/com/android/contacts/editor/CompactContactEditorFragment.java
@@ -26,7 +26,6 @@ import com.android.contacts.common.model.ValuesDelta;
import com.android.contacts.common.model.account.AccountType;
import com.android.contacts.common.util.ImplicitIntentsUtil;
import com.android.contacts.detail.PhotoSelectionHandler;
-import com.android.contacts.incall.InCallMetricsHelper;
import com.android.contacts.util.ContactPhotoUtils;
import android.app.Activity;
@@ -326,7 +325,6 @@ public class CompactContactEditorFragment extends ContactEditorBaseFragment impl
mContext, mContactIdForJoin, contactId, CompactContactEditorActivity.class,
CompactContactEditorActivity.ACTION_JOIN_COMPLETED);
mContext.startService(intent);
- InCallMetricsHelper.increaseContactManualMergeCount(mContext, mContactIdForJoin, contactId);
}
@Override
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index bd15b62..31e8d51 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -46,7 +46,6 @@ import com.android.contacts.common.util.AccountsListAdapter;
import com.android.contacts.common.util.AccountsListAdapter.AccountListFilter;
import com.android.contacts.detail.PhotoSelectionHandler;
import com.android.contacts.editor.Editor.EditorListener;
-import com.android.contacts.incall.InCallMetricsHelper;
import com.android.contacts.util.ContactPhotoUtils;
import com.android.contacts.util.UiClosables;
@@ -536,7 +535,6 @@ public class ContactEditorFragment extends ContactEditorBaseFragment implements
mContext, mContactIdForJoin, contactId, ContactEditorActivity.class,
ContactEditorActivity.ACTION_JOIN_COMPLETED);
mContext.startService(intent);
- InCallMetricsHelper.increaseContactManualMergeCount(mContext, mContactIdForJoin, contactId);
}
/**
diff --git a/src/com/android/contacts/incall/InCallMetricsDbHelper.java b/src/com/android/contacts/incall/InCallMetricsDbHelper.java
deleted file mode 100644
index c511227..0000000
--- a/src/com/android/contacts/incall/InCallMetricsDbHelper.java
+++ /dev/null
@@ -1,330 +0,0 @@
-/*
- * Copyright (C) 2016 The CyanogenMod Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.incall;
-
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.Cursor;
-import android.database.DatabaseUtils;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteOpenHelper;
-import android.util.Log;
-
-import com.google.common.base.Preconditions;
-
-import java.util.LinkedList;
-import java.util.List;
-
-public class InCallMetricsDbHelper extends SQLiteOpenHelper {
- private static final String TAG = InCallMetricsDbHelper.class.getSimpleName();
- private static final boolean DEBUG = false;
-
- private static InCallMetricsDbHelper mInstance = null;
-
- private static final int DATABASE_VERSION = 1;
- private static final String DATABASE_NAME = "contacts_incall_metrics.db";
-
- private final Context mContext;
-
- // db query select statements
- private static final String SELECT_NUDGE_ID_AND_ACCEPT_TIME =
- InAppColumns.NUDGE_ID + "==? AND " + InAppColumns.EVENT_ACCEPTANCE_TIME + " ==? ";
- private static final String SELECT_PROVIDER_AND_EVENT =
- UserActionsColumns.PROVIDER_NAME + "==? AND " + UserActionsColumns.EVENT_NAME + " ==?";
-
- public interface Tables {
- // stores events in the INAPP_ACTIONS category
- static final String INAPP_TABLE = "inapp_metrics";
- // store events in the USER_ACTIONS category
- static final String USER_ACTIONS_TABLE = "user_actions_metrics";
- }
-
- public interface InAppColumns {
- static final String _ID = "id";
- static final String CATEGORY = "category";
- static final String EVENT_NAME = "event_name";
- static final String COUNT = "count";
- static final String NUDGE_ID = "nudge_id";
- static final String EVENT_ACCEPTANCE = "event_acceptance";
- static final String EVENT_ACCEPTANCE_TIME = "event_acceptance_time";
- static final String PROVIDER_NAME = "provider_name";
- }
-
- public interface UserActionsColumns {
- static final String _ID = "id";
- static final String CATEGORY = "category";
- static final String EVENT_NAME = "event_name";
- static final String COUNT = "count";
- static final String PROVIDER_NAME = "provider_name";
- static final String RAW_ID = "raw_id";
- }
-
- private static final String[] INAPP_PROJECTION = new String[] {
- InAppColumns._ID,
- InAppColumns.CATEGORY,
- InAppColumns.EVENT_NAME,
- InAppColumns.COUNT,
- InAppColumns.NUDGE_ID,
- InAppColumns.EVENT_ACCEPTANCE,
- InAppColumns.EVENT_ACCEPTANCE_TIME,
- InAppColumns.PROVIDER_NAME
- };
-
- private static final String[] USER_ACTIONS_PROJECTION = new String[] {
- UserActionsColumns._ID,
- UserActionsColumns.CATEGORY,
- UserActionsColumns.EVENT_NAME,
- UserActionsColumns.COUNT,
- UserActionsColumns.PROVIDER_NAME,
- UserActionsColumns.RAW_ID
- };
-
- /**
- * If there's an existing entry that matches the NUDGE_ID and the EVENT_ACCEPTANCE_TIME
- * is not set, increment the count stored "colName" column. Otherwise, create a new entry.
- *
- * @param provider component name of the InCall provider
- * @param event metric event
- * @param cat metric category
- * @param nudgeId metric nudge ID
- * @param colName database column name to increment
- */
- public void incrementInAppParam(String provider, String event, String cat, String nudgeId,
- String colName) {
- // find entries that match nudge_id, and timestamp 0 to increment count
- if (nudgeId == null) {
- nudgeId = InCallMetricsHelper.NUDGE_ID_INVALID;
- }
- ContentValues entry = new ContentValues();
- entry.put(InAppColumns.EVENT_NAME, event);
- entry.put(InAppColumns.CATEGORY, cat);
- entry.put(InAppColumns.NUDGE_ID, nudgeId);
- entry.put(InAppColumns.PROVIDER_NAME, provider);
- String[] selectionArgs = new String[] {nudgeId, String.valueOf(0)};
- SQLiteDatabase db = getWritableDatabase();
- Cursor queryCursor = db.query(
- Tables.INAPP_TABLE,
- INAPP_PROJECTION,
- SELECT_NUDGE_ID_AND_ACCEPT_TIME,
- selectionArgs,
- null,
- null,
- null);
- if (queryCursor != null && queryCursor.moveToFirst()) {
- // increment existing entry
- entry.put(colName, queryCursor.getInt(queryCursor.getColumnIndex(colName)) + 1);
- db.update(Tables.INAPP_TABLE, entry, SELECT_NUDGE_ID_AND_ACCEPT_TIME, selectionArgs);
- } else {
- // no entry where acceptance time is not set
- entry.put(colName, 1);
- db.insert(Tables.INAPP_TABLE, null, entry);
- }
- queryCursor.close();
- }
-
- /**
- * Tables.INAPP_TABLE stores in-app nudge related interaction events. When a user
- * accepts (accept set to 1)/dismisses (accept set to 0) the in-app nudge, the timestamp
- * is stored in EVENT_ACCEPTANCE_TIME. Once that timestamp is captured, any subsequent in-app
- * nudge interaction events should be recorded in a new entry.
- * If there's an existing entry that matches the NUDGE_ID and the EVENT_ACCEPTANCE_TIME
- * is not set, set the EVENT_ACCEPTANCE and EVENT_ACCEPTANCE_TIME. Otherwise, create a new
- * entry.
- *
- * @param provider component name of the InCall provider
- * @param event metric event
- * @param cat metric category
- * @param nudgeId metric nudge ID
- */
- public void setInAppAcceptance(String provider, String event, String cat, Integer accept,
- String nudgeId) {
- // find entries that match nudge_id, and timestamp 0
- // if all matche entries have timestamp set, create a new entry
- if (nudgeId == null) {
- nudgeId = InCallMetricsHelper.NUDGE_ID_INVALID;
- }
- String[] selectionArgs = new String[] {nudgeId, String.valueOf(0)};
- SQLiteDatabase db = getWritableDatabase();
- Cursor queryCursor = db.query(
- Tables.INAPP_TABLE,
- INAPP_PROJECTION,
- SELECT_NUDGE_ID_AND_ACCEPT_TIME,
- selectionArgs,
- null,
- null,
- null);
- ContentValues entry = new ContentValues();
- entry.put(InAppColumns.EVENT_NAME, event);
- entry.put(InAppColumns.CATEGORY, cat);
- entry.put(InAppColumns.NUDGE_ID, nudgeId);
- entry.put(InAppColumns.PROVIDER_NAME, provider);
- entry.put(InAppColumns.EVENT_ACCEPTANCE, accept);
- entry.put(InAppColumns.EVENT_ACCEPTANCE_TIME, System.currentTimeMillis());
- if (queryCursor != null && queryCursor.moveToFirst()) {
- db.update(Tables.INAPP_TABLE, entry, SELECT_NUDGE_ID_AND_ACCEPT_TIME, selectionArgs);
- } else {
- db.insert(Tables.INAPP_TABLE, null, entry);
- }
- queryCursor.close();
- }
-
- /**
- * Tables.USER_ACTIONS_TABLE stores auto/manual merge counts and invite counts.
- * If there's an existing entry that matches the PROVIDER_NAME and the EVENT_NAME,
- * increment the count stored in the "colName" column. Otherwise, create a new entry.
- *
- * @param provider component name of the InCall provider
- * @param event metric event
- * @param cat metric category
- * @param colName database column name to increment
- */
- public void incrementUserActionsParam(String provider, String rawIds, String event, String
- cat, String colName) {
- // query for event type, update, if not found insert
- ContentValues entry = new ContentValues();
- entry.put(UserActionsColumns.EVENT_NAME, event);
- entry.put(UserActionsColumns.CATEGORY, cat);
- entry.put(UserActionsColumns.PROVIDER_NAME, provider);
- entry.put(UserActionsColumns.RAW_ID, rawIds);
-
- String[] selectionArgs = new String[] {provider, event};
- SQLiteDatabase db = getWritableDatabase();
- Cursor queryCursor = db.query(
- Tables.USER_ACTIONS_TABLE,
- USER_ACTIONS_PROJECTION,
- SELECT_PROVIDER_AND_EVENT,
- selectionArgs,
- null,
- null,
- null);
- if (queryCursor != null && queryCursor.moveToFirst()) {
- // increment existing entry, only increment if it's manual merge
- if (event.equals(InCallMetricsHelper.Events.CONTACTS_MANUAL_MERGED)) {
- entry.put(colName,
- queryCursor.getInt(queryCursor.getColumnIndex(colName)) + 1);
- db.update(Tables.USER_ACTIONS_TABLE, entry, SELECT_PROVIDER_AND_EVENT,
- selectionArgs);
- }
- } else {
- // no existing entry, create one
- entry.put(colName, 1);
- db.insert(Tables.USER_ACTIONS_TABLE, null, entry);
- }
- queryCursor.close();
- }
-
- /**
- * Return all entries in the table storing events from the corresponding category
- *
- * @param cat metric category
- * @param clear if the database table should be cleared afterwards
- * @return List of ContentValues in the respective table
- */
- public List<ContentValues> getAllEntries(InCallMetricsHelper.Categories cat, boolean clear) {
- List<ContentValues> list = new LinkedList<ContentValues>();
- String table = "";
- switch (cat) {
- case USER_ACTIONS:
- table = Tables.USER_ACTIONS_TABLE;
- break;
- case INAPP_NUDGES:
- table = Tables.INAPP_TABLE;
- break;
- default:
- return list;
- }
- SQLiteDatabase db = getWritableDatabase();
- Cursor cursor = db.rawQuery("SELECT * FROM " + table, null);
- if (cursor != null && cursor.moveToFirst()) {
- do {
- ContentValues entry = new ContentValues();
- DatabaseUtils.cursorRowToContentValues(cursor, entry);
- list.add(entry);
- } while (cursor.moveToNext());
- }
- if (!DEBUG && clear) {
- db.delete(table, null, null);
- }
- cursor.close();
- return list;
- }
-
- @Override
- public void onCreate(SQLiteDatabase db) {
- setupTables(db);
- }
-
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- if (oldVersion == 0) {
- Log.e(TAG, "Malformed database version..recreating database");
- }
-
- if (oldVersion <= newVersion) {
- setupTables(db);
- }
- }
-
- public static synchronized InCallMetricsDbHelper getInstance(Context context) {
- if (DEBUG) {
- Log.v(TAG, "Getting Instance");
- }
- if (mInstance == null) {
- // Use application context instead of activity context because this is a singleton,
- // and we don't want to leak the activity if the activity is not running but the
- // database helper is still doing work.
- mInstance = new InCallMetricsDbHelper(context.getApplicationContext(), DATABASE_NAME);
- }
- return mInstance;
- }
-
- protected InCallMetricsDbHelper(Context context, String databaseName) {
- this(context, databaseName, DATABASE_VERSION);
- }
-
- protected InCallMetricsDbHelper(Context context, String databaseName, int dbVersion) {
- super(context, databaseName, null, dbVersion);
- mContext = context;
- }
-
- private void setupTables(SQLiteDatabase db) {
- dropTables(db);
- db.execSQL("CREATE TABLE " + Tables.INAPP_TABLE + " (" +
- InAppColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
- InAppColumns.CATEGORY + " TEXT, " +
- InAppColumns.EVENT_NAME + " TEXT, " +
- InAppColumns.COUNT + " INTEGER DEFAULT 0, " +
- InAppColumns.NUDGE_ID + " TEXT, " +
- InAppColumns.EVENT_ACCEPTANCE + " INTEGER DEFAULT -1, " +
- InAppColumns.EVENT_ACCEPTANCE_TIME + " INTEGER DEFAULT 0, " +
- InAppColumns.PROVIDER_NAME + " TEXT" +
- ");");
- db.execSQL("CREATE TABLE " + Tables.USER_ACTIONS_TABLE + " (" +
- UserActionsColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
- UserActionsColumns.CATEGORY + " TEXT, " +
- UserActionsColumns.EVENT_NAME + " TEXT, " +
- UserActionsColumns.COUNT + " INTEGER DEFAULT 0, " +
- UserActionsColumns.PROVIDER_NAME + " TEXT, " +
- UserActionsColumns.RAW_ID + " INTEGER DEFAULT 0" +
- ");");
- }
-
- public void dropTables(SQLiteDatabase db) {
- db.execSQL("DROP TABLE IF EXISTS " + Tables.INAPP_TABLE);
- db.execSQL("DROP TABLE IF EXISTS " + Tables.USER_ACTIONS_TABLE);
- }
-}
\ No newline at end of file
diff --git a/src/com/android/contacts/incall/InCallMetricsHelper.java b/src/com/android/contacts/incall/InCallMetricsHelper.java
deleted file mode 100644
index 5b041a2..0000000
--- a/src/com/android/contacts/incall/InCallMetricsHelper.java
+++ /dev/null
@@ -1,533 +0,0 @@
-/*
- * Copyright (C) 2016 The CyanogenMod Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.incall;
-
-import android.app.AlarmManager;
-import android.app.PendingIntent;
-import android.content.ComponentName;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.Intent;
-import android.database.Cursor;
-
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.os.SystemClock;
-import android.provider.ContactsContract.RawContacts;
-import android.util.Log;
-
-import com.android.phone.common.ambient.AmbientConnection;
-import com.android.phone.common.incall.CallMethodInfo;
-import com.cyanogen.ambient.analytics.AnalyticsServices;
-import com.cyanogen.ambient.analytics.Event;
-import com.cyanogen.ambient.incall.InCallServices;
-import com.google.common.base.Joiner;
-import cyanogenmod.providers.CMSettings;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-public class InCallMetricsHelper {
- private static final String TAG = InCallMetricsHelper.class.getSimpleName();
-
- private static final boolean DEBUG = false;
- private static final String CATEGORY_PREFIX = "contacts.incall.";
- private static final int REQUEST_CODE = 777;
-
- public static final String NUDGE_ID_INVALID = "-1";
- public static final int EVENT_DISMISS = 0;
- public static final int EVENT_ACCEPT = 1;
-
- private static InCallMetricsHelper sInstance;
- private InCallMetricsDbHelper mDbHelper;
- private static final String HANDLER_THREAD_NAME = "InCallMetricsHandler";
- private HandlerThread mHandlerThread;
- private Handler mHandler;
- private Context mContext;
-
- public enum Categories {
- USER_ACTIONS("USER_ACTIONS"),
- INAPP_NUDGES("INAPP_NUDGES"),
- UNKNOWN("UNKNOWN");
-
- private String mValue;
- Categories(String s) {
- mValue = s;
- }
- public String value() {
- return mValue;
- }
- }
-
- public enum Events {
- CONTACTS_MANUAL_MERGED("CONTACTS_MANUAL_MERGED"),
- CONTACTS_AUTO_MERGED("CONTACTS_AUTO_MERGED"),
- INVITES_SENT("INVITES_SENT"),
- INAPP_NUDGE_CONTACTS_LOGIN("INAPP_NUDGE_CONTACTS_LOGIN"),
- INAPP_NUDGE_CONTACTS_INSTALL("INAPP_NUDGE_CONTACTS_INSTALL"),
- INAPP_NUDGE_CONTACTS_TAB_LOGIN("INAPP_NUDGE_CONTACTS_TAB_LOGIN"),
- UNKNOWN("UNKNOWN");
-
- private String mValue;
- Events(String s) {
- mValue = s;
- }
- public String value() {
- return mValue;
- }
- }
-
- public enum Parameters {
- ACTION_LOCATION("ACTION_LOCATION"),
- CATEGORY("CATEGORY"),
- COUNT("COUNT"),
- EVENT_ACCEPTANCE("EVENT_ACCEPTANCE"),
- EVENT_ACCEPTANCE_TIME("EVENT_ACCEPTANCE_TIME"),
- EVENT_NAME("EVENT_NAME"),
- NUDGE_ID("NUDGE_ID"),
- PROVIDER_NAME("PROVIDER_NAME");
-
- private String mValue;
-
- Parameters(String s) {
- mValue = s;
- }
-
- public String value() {
- return mValue;
- }
-
- public String toCol() {
- return mValue.toLowerCase();
- }
- }
-
- public static void init(Context context) {
- InCallMetricsHelper helper = getInstance(context);
- AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
- Intent i = new Intent(context, InCallMetricsService.class);
-
- // scheduled every 24h
- PendingIntent pendingIntent = PendingIntent.getService(context, REQUEST_CODE, i,
- PendingIntent.FLAG_UPDATE_CURRENT);
- am.setInexactRepeating(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime(),
- AlarmManager.INTERVAL_DAY, pendingIntent);
- }
-
- public static synchronized InCallMetricsHelper getInstance(Context context) {
- if (sInstance == null) {
- sInstance = new InCallMetricsHelper();
- sInstance.mContext = context;
- // init handler
- sInstance.mHandlerThread = new HandlerThread(HANDLER_THREAD_NAME);
- sInstance.mHandlerThread.start();
- sInstance.mHandler = new Handler(sInstance.mHandlerThread.getLooper());
- sInstance.mDbHelper = InCallMetricsDbHelper.getInstance(context);
- }
- return sInstance;
- }
-
- /**
- * Gather all metrics entries from tables and send to Ambient. Called from
- * InCallMetricsService (IntentService)
- *
- * @param context context to be used in db
- */
- public static void prepareAndSend(Context context) {
- if (!statsOptIn(context)) {
- return;
- }
-
- InCallMetricsHelper helper = getInstance(context);
- // In App events
- List<ContentValues> allList = helper.mDbHelper.getAllEntries(Categories.INAPP_NUDGES, true);
- // User Actions events
- allList.addAll(helper.mDbHelper.getAllEntries(Categories.USER_ACTIONS, true));
- for (ContentValues cv : allList) {
- Categories cat = cv.containsKey(Parameters.CATEGORY.toCol()) ?
- Categories.valueOf(cv.getAsString(Parameters.CATEGORY.toCol())) :
- Categories.UNKNOWN;
- Events event = cv.containsKey(Parameters.EVENT_NAME.toCol()) ?
- Events.valueOf(cv.getAsString(Parameters.EVENT_NAME.toCol())) :
- Events.UNKNOWN;
- Set<String> plugins = InCallPluginHelper.getAllPluginComponentNames();
- sendEvent(context, cat, event, getExtraFields(cat, event, cv), plugins);
- }
- }
-
- /**
- * Map ContentValues pair from db to <Parameters, value> pairs
- *
- * @param event metric event
- * @param cat metric category
- * @param cv
- */
- private static HashMap<Parameters, Object> getExtraFields(Categories cat, Events event,
- ContentValues cv) {
- HashMap<Parameters, Object> map = new HashMap<Parameters, Object>();
- map.put(Parameters.PROVIDER_NAME, cv.getAsString(Parameters.PROVIDER_NAME.toCol()));
- switch (cat) {
- case INAPP_NUDGES:
- switch (event) {
- case INAPP_NUDGE_CONTACTS_LOGIN:
- case INAPP_NUDGE_CONTACTS_INSTALL:
- case INAPP_NUDGE_CONTACTS_TAB_LOGIN:
- map.put(Parameters.COUNT, cv.getAsInteger(Parameters.COUNT.toCol()));
- map.put(Parameters.NUDGE_ID, cv.getAsString(Parameters.NUDGE_ID.toCol()));
- map.put(Parameters.EVENT_ACCEPTANCE_TIME,
- cv.getAsInteger(Parameters.EVENT_ACCEPTANCE_TIME.toCol()));
- map.put(Parameters.EVENT_ACCEPTANCE,
- cv.getAsInteger(Parameters.EVENT_ACCEPTANCE.toCol()) == 0 ?
- Boolean.FALSE : Boolean.TRUE);
- break;
- default:
- break;
- }
- break;
- case USER_ACTIONS:
- switch (event) {
- case CONTACTS_AUTO_MERGED:
- case CONTACTS_MANUAL_MERGED:
- case INVITES_SENT:
- map.put(Parameters.COUNT, cv.getAsInteger(Parameters.COUNT.toCol()));
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
- return map;
- }
-
- /**
- * Send AnalyticsService events to Ambient and InCall plugins
- *
- * @param context context
- * @param cat metric category
- * @param eventName metric event name
- * @param extraFields <Parameter, Object> pairs to be included in Ambient Event
- * @param pluginSet a set of available plugin component names for sending lookup
- */
- private static void sendEvent(Context context, Categories cat, Events eventName,
- HashMap<Parameters, Object> extraFields, Set<String> pluginSet) {
- Event.Builder eventBuilder = new Event.Builder(CATEGORY_PREFIX + cat.value(), eventName
- .value());
- if (extraFields != null && extraFields.size() > 0) {
- for (Parameters param : extraFields.keySet()) {
- eventBuilder.addField(param.value(), String.valueOf(extraFields.get(param)));
- }
- }
- Event event = eventBuilder.build();
- if (DEBUG) Log.d(TAG, event.toString());
- // send to Ambient
- AnalyticsServices.AnalyticsApi.sendEvent(AmbientConnection.CLIENT.get(context), event);
- // send to selective plugin
- String providers = extraFields.containsKey(Parameters.PROVIDER_NAME) ?
- (String) extraFields.get(Parameters.PROVIDER_NAME) : "";
- sendEventToProviders(context, cat, eventName, event, providers, pluginSet);
- }
-
- /**
- * Send Ambient Events to InCall providers, if they exist in the set of currently available
- * InCall plugins
- *
- * @param context context
- * @param cat metric category
- * @param eventName metric event name
- * @param pluginSet a set of available plugin component names for sending lookup
- */
- private static void sendEventToProviders(Context context, Categories cat, Events eventName,
- Event event, String providers, Set<String> pluginSet) {
- if (!isWhiteListed(cat, eventName)) {
- return;
- }
- if (DEBUG) Log.d(TAG, "sendEventToProviders:" + providers);
- String[] providerList = providers.split(",");
- for (String provider : providerList) {
- if (pluginSet.contains(provider)) {
- if (DEBUG) Log.d(TAG, "sendEventToProvider:" + provider);
- InCallServices.getInstance().sendAnalyticsEventToPlugin(
- AmbientConnection.CLIENT.get(context),
- ComponentName.unflattenFromString(provider), event);
- }
- }
- }
-
- /**
- * Check if the category/event are whitelisted to be able to sent to InCall providers
- *
- * @param cat metric category
- * @param eventName metric event name
- */
- private static boolean isWhiteListed(Categories cat, Events eventName) {
- return true;
- }
-
- public static void increaseInviteCount(final Context context, final String provider) {
- final InCallMetricsHelper helper = getInstance(context);
- helper.mHandler.post(new Runnable() {
- @Override
- public void run() {
- if (!statsOptIn(context)) {
- return;
- }
- helper.mDbHelper.incrementUserActionsParam(provider, "",
- Events.INVITES_SENT.value(),
- Categories.USER_ACTIONS.value(),
- Parameters.COUNT.value().toLowerCase());
- }
- });
- }
-
- /**
- * Set a specific parameter to a certain value
- *
- * @param context context
- * @param component InCall provider component name
- * @param cat metric category
- * @param event metric event name
- * @param param metric parameter to set
- * @param value metric parameter value to set to
- * @param nudgeId nudge ID corresponding to the
- */
- public static void setValue(final Context context, final ComponentName component,
- final Categories cat, final Events event, final Parameters param,
- final Object value, final String nudgeId) {
- final InCallMetricsHelper helper = getInstance(context);
- helper.mHandler.post(new Runnable() {
- @Override
- public void run() {
- if (!statsOptIn(context)) {
- return;
- }
- switch (cat) {
- case INAPP_NUDGES:
- switch (param) {
- case EVENT_ACCEPTANCE:
- helper.mDbHelper.setInAppAcceptance(component.flattenToString(),
- event.value(), cat.value(), (Integer) value, nudgeId);
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
- }
- });
- }
-
- /**
- * Increases the impression count for different nudges in contacts card
- *
- * @param context context
- * @param cmi CallMethodInfo for the entry
- * @pram even Events type
- */
- public static void increaseImpressionCount(final Context context, final CallMethodInfo cmi,
- final Events event) {
- if (cmi == null) {
- return;
- }
- final InCallMetricsHelper helper = getInstance(context);
- helper.mHandler.post(new Runnable() {
- @Override
- public void run() {
- if (!statsOptIn(context)) {
- return;
- }
- switch (event) {
- case INAPP_NUDGE_CONTACTS_INSTALL:
- helper.mDbHelper.incrementInAppParam(cmi.mComponent.flattenToString(),
- event.value(), Categories.INAPP_NUDGES.value(),
- generateNudgeId(cmi.mInstallNudgeSubtitle),
- Parameters.COUNT.toCol());
- break;
- case INAPP_NUDGE_CONTACTS_LOGIN:
- helper.mDbHelper.incrementInAppParam(cmi.mComponent.flattenToString(),
- event.value(), Categories.INAPP_NUDGES.value(),
- generateNudgeId(cmi.mLoginNudgeSubtitle),
- Parameters.COUNT.toCol());
- break;
- default:
- break;
- }
- }
- });
- }
-
- /**
- * Increases the impression count for contacts tab login
- *
- * @param context context
- * @param pluginInfo list of plugin info
- */
- public static void increaseImpressionCount(final Context context, final InCallPluginInfo
- pluginInfo) {
- final InCallMetricsHelper helper = getInstance(context);
- if (pluginInfo == null) {
- return;
- }
- helper.mHandler.post(new Runnable() {
- @Override
- public void run() {
- if (!statsOptIn(context)) {
- return;
- }
- CallMethodInfo cmi = pluginInfo.mCallMethodInfo;
- if (!cmi.mIsAuthenticated) {
- helper.mDbHelper.incrementInAppParam(cmi.mComponent.flattenToString(),
- Events.INAPP_NUDGE_CONTACTS_TAB_LOGIN.value(),
- Categories.INAPP_NUDGES.value(), generateNudgeId(cmi.mLoginSubtitle),
- Parameters.COUNT.toCol());
- }
- }
- });
- }
-
- /**
- * Increases contact merge counts
- *
- * @param context context
- * @param contactIdForJoin the primary contact ID to be merged
- * @param contactId the secondary contact ID to be merged
- */
- public static void increaseContactManualMergeCount(final Context context,
- final long contactIdForJoin, final long contactId) {
- final InCallMetricsHelper helper = getInstance(context);
- helper.mHandler.post(new Runnable() {
- @Override
- public void run() {
- if (!statsOptIn(context)) {
- return;
- }
- HashMap<ComponentName, CallMethodInfo> plugins = InCallPluginHelper
- .getAllCallMethods();
- HashMap<String, String> pluginMap = new HashMap<String, String>();
- for (CallMethodInfo cmi : plugins.values()) {
- if (DEBUG) {
- Log.d(TAG, "increaseContactMergeCount:" + cmi.mAccountType + " " +
- cmi.mComponent.flattenToString());
- }
- pluginMap.put(cmi.mAccountType, cmi.mComponent.flattenToString());
- }
- Set<String> providerSet = queryContactProviderByContactIds(context,
- contactIdForJoin, contactId, pluginMap);
-
- List<String> providerList = new ArrayList<String>(providerSet);
- Collections.sort(providerList);
- String joinedProvider = providerList.size() == 0 ? "" :
- Joiner.on(",").skipNulls().join(providerList);
- helper.mDbHelper.incrementUserActionsParam(joinedProvider, "",
- InCallMetricsHelper.Events.CONTACTS_MANUAL_MERGED.value(),
- Categories.USER_ACTIONS.value(), Parameters.COUNT.toCol());
- }
- });
- }
-
- public static void increaseContactAutoMergeCount(final Context context, final String rawIds) {
- final InCallMetricsHelper helper = getInstance(context);
- helper.mHandler.post(new Runnable() {
- @Override
- public void run() {
- if (!statsOptIn(context)) {
- return;
- }
- String[] rawIdArray = rawIds.split(",");
- Arrays.sort(rawIdArray);
- Set<String> providerSet = queryContactProviderByRawContactIds(context, rawIdArray);
-
- List<String> providerList = new ArrayList<String>(providerSet);
- Collections.sort(providerList);
- String joinedProvider = providerList.size() == 0 ? "" :
- Joiner.on(",").skipNulls().join(providerList);
- String joinedRawIds = rawIdArray.length == 0 ? "" :
- Joiner.on(",").skipNulls().join(rawIdArray);
- helper.mDbHelper.incrementUserActionsParam(joinedProvider,
- joinedRawIds,
- InCallMetricsHelper.Events.CONTACTS_AUTO_MERGED.value(),
- Categories.USER_ACTIONS.value(), Parameters.COUNT.toCol());
- }
- });
-
- }
-
- /**
- * Check if the provided contact IDs is from an account type that matches a InCall
- * provider.
- *
- * @param context context
- * @param contactId the primary contact ID to be merged
- * @param contactId2 the secondary contact ID to be merged
- * @parma pluginMap the <accountType, plugin name> pairs for lookup
- */
- private static Set<String> queryContactProviderByContactIds(Context context, long contactId,
- long contactId2, HashMap<String, String> pluginMap) {
- Set<String> providerSet = new HashSet<String>();
- Cursor cursor = context.getContentResolver().query(RawContacts.CONTENT_URI,
- new String[] {RawContacts.ACCOUNT_TYPE},
- RawContacts.CONTACT_ID + "=? OR " + RawContacts.CONTACT_ID + "=?",
- new String[]{String.valueOf(contactId), String.valueOf(contactId2)}, null);
- if (cursor != null && cursor.moveToFirst()) {
- do {
- providerSet.add(cursor.getString(0));
- if (DEBUG) Log.d(TAG, "queryContactProvider:" + cursor.getString(0));
- } while (cursor.moveToNext());
- }
- cursor.close();
- return providerSet;
- }
-
- private static Set<String> queryContactProviderByRawContactIds(Context context, String[]
- rawIds) {
- Set<String> providerSet = new HashSet<String>();
- Cursor cursor = null;
- for (String rawId : rawIds) {
- cursor = context.getContentResolver().query(RawContacts.CONTENT_URI,
- new String[]{RawContacts.ACCOUNT_TYPE},
- RawContacts._ID + "=?",
- new String[]{rawId}, null);
- if (cursor != null && cursor.moveToFirst()) {
- do {
- providerSet.add(cursor.getString(0));
- if (DEBUG) Log.d(TAG, "queryContactProvider:" + cursor.getString(0));
- } while (cursor.moveToNext());
- }
- }
- if (cursor != null) {
- cursor.close();
- }
- return providerSet;
- }
-
- public static String generateNudgeId(String data) {
- return java.util.UUID.nameUUIDFromBytes(data.getBytes()).toString();
- }
-
- private static boolean statsOptIn(Context context) {
- return CMSettings.Secure.getInt(context.getContentResolver(),
- CMSettings.Secure.STATS_COLLECTION, 1) == 1;
- }
-}
\ No newline at end of file
diff --git a/src/com/android/contacts/incall/InCallMetricsReceiver.java b/src/com/android/contacts/incall/InCallMetricsReceiver.java
deleted file mode 100644
index 507c7fa..0000000
--- a/src/com/android/contacts/incall/InCallMetricsReceiver.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2016 The CyanogenMod Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.incall;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-
-public class InCallMetricsReceiver extends BroadcastReceiver {
- private static final String CONTACT_AUTO_MERGE_KEY_RAW_IDS = "RAW_IDS";
-
- @Override
- public void onReceive(Context context, Intent intent) {
- String rawIds = intent.getStringExtra(CONTACT_AUTO_MERGE_KEY_RAW_IDS);
- if (rawIds != null) {
- InCallMetricsHelper.increaseContactAutoMergeCount(context, rawIds);
- }
- }
-}
diff --git a/src/com/android/contacts/incall/InCallMetricsService.java b/src/com/android/contacts/incall/InCallMetricsService.java
deleted file mode 100644
index fa56267..0000000
--- a/src/com/android/contacts/incall/InCallMetricsService.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2016 The CyanogenMod Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.incall;
-
-import android.app.IntentService;
-import android.content.Intent;
-
-
-public class InCallMetricsService extends IntentService {
- static final String TAG = InCallMetricsService.class.getSimpleName();
- private static final boolean DEBUG = true;
-
- public InCallMetricsService () {
- super(InCallMetricsService.class.getSimpleName());
- }
-
- @Override
- protected void onHandleIntent(Intent intent) {
- InCallMetricsHelper.prepareAndSend(this);
- }
-}
\ No newline at end of file
diff --git a/src/com/android/contacts/list/PluginContactBrowseListFragment.java b/src/com/android/contacts/list/PluginContactBrowseListFragment.java
index 29ef148..954fc88 100644
--- a/src/com/android/contacts/list/PluginContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/PluginContactBrowseListFragment.java
@@ -49,7 +49,7 @@ import com.android.contacts.common.list.AutoScrollListView;
import com.android.contacts.common.list.ContactEntryListFragment;
import com.android.contacts.common.list.DirectoryPartition;
import com.android.contacts.common.util.ContactLoaderUtils;
-import com.android.contacts.incall.InCallMetricsHelper;
+import com.android.contacts.incall.InCallPluginHelper;
import com.android.contacts.incall.InCallPluginInfo;
import com.android.contacts.R;
import com.android.contacts.common.list.ContactListAdapter;
@@ -650,15 +650,6 @@ public class PluginContactBrowseListFragment extends ContactEntryListFragment<Co
if (view == mLoginBtn) {
if (mInCallPluginInfo.mCallMethodInfo.mLoginIntent != null) {
mInCallPluginInfo.mCallMethodInfo.mLoginIntent.send();
- InCallMetricsHelper.setValue(
- getActivity(),
- mInCallPluginInfo.mCallMethodInfo.mComponent,
- InCallMetricsHelper.Categories.INAPP_NUDGES,
- InCallMetricsHelper.Events.INAPP_NUDGE_CONTACTS_TAB_LOGIN,
- InCallMetricsHelper.Parameters.EVENT_ACCEPTANCE,
- InCallMetricsHelper.EVENT_ACCEPT,
- InCallMetricsHelper.generateNudgeId(mInCallPluginInfo
- .mCallMethodInfo.mLoginSubtitle));
}
} else if (view == mEmptyView) {
if (mInCallPluginInfo.mCallMethodInfo.mDefaultDirectorySearchIntent != null) {
@@ -793,4 +784,4 @@ public class PluginContactBrowseListFragment extends ContactEntryListFragment<Co
mEmptyView.setOnClickListener(this);
}
}
-}
\ No newline at end of file
+}
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 8ad67e0..041902e 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -152,9 +152,8 @@ import com.android.contacts.common.util.ViewUtil;
import com.android.contacts.detail.ContactDisplayUtils;
import com.android.contacts.editor.ContactEditorFragment;
import com.android.contacts.editor.EditorIntents;
-import com.android.contacts.incall.InCallMetricsHelper;
import com.android.contacts.incall.InCallPluginHelper;
-import com.android.contacts.incall.InCallPluginUtils;
+import com.android.contacts.incall.InCallPluginInfo;
import com.android.contacts.interactions.CalendarInteractionsLoader;
import com.android.contacts.interactions.CallLogInteraction;
import com.android.contacts.interactions.CallLogInteractionsLoader;
@@ -3484,8 +3483,6 @@ public class QuickContactActivity extends ContactsActivity implements
if (DEBUG) Log.d(TAG, "Adding INSTALL NUDGE");
containerList.add(entry);
parentList.add(containerList);
- InCallMetricsHelper.increaseImpressionCount(this, cmi,
- InCallMetricsHelper.Events.INAPP_NUDGE_CONTACTS_INSTALL);
}
} else if (cmi.mStatus == PluginStatus.ENABLED) {
if (!hasPluginAccount) {
@@ -3539,8 +3536,6 @@ public class QuickContactActivity extends ContactsActivity implements
if (DEBUG) Log.d(TAG, "Adding LOGIN NUDGE");
containerList.add(entry);
parentList.add(containerList);
- InCallMetricsHelper.increaseImpressionCount(this, cmi,
- InCallMetricsHelper.Events.INAPP_NUDGE_CONTACTS_LOGIN);
}
}
}
@@ -3628,48 +3623,16 @@ public class QuickContactActivity extends ContactsActivity implements
if(intent.getAction().equals(ACTION_INCALL_PLUGIN_INSTALL)) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" +
cmi.mDependentPackage)));
- InCallMetricsHelper.setValue(
- this,
- cmi.mComponent,
- InCallMetricsHelper.Categories.INAPP_NUDGES,
- InCallMetricsHelper.Events.INAPP_NUDGE_CONTACTS_INSTALL,
- InCallMetricsHelper.Parameters.EVENT_ACCEPTANCE,
- InCallMetricsHelper.EVENT_ACCEPT,
- InCallMetricsHelper.generateNudgeId(cmi.mInstallNudgeSubtitle));
} else if (intent.getAction().equals(ACTION_INCALL_PLUGIN_DISMISS_NUDGE)) {
String nudgeKey = intent.getStringExtra(InCallPluginUtils.KEY_NUDGE_KEY);
dismissNudge(tag, nudgeKey);
if (TextUtils.equals(nudgeKey, NudgeKey.INCALL_CONTACT_CARD_LOGIN)) {
- InCallMetricsHelper.setValue(
- this,
- cmi.mComponent,
- InCallMetricsHelper.Categories.INAPP_NUDGES,
- InCallMetricsHelper.Events.INAPP_NUDGE_CONTACTS_LOGIN,
- InCallMetricsHelper.Parameters.EVENT_ACCEPTANCE,
- InCallMetricsHelper.EVENT_DISMISS,
- InCallMetricsHelper.generateNudgeId(cmi.mLoginNudgeSubtitle));
} else if (TextUtils.equals(nudgeKey, NudgeKey.INCALL_CONTACT_CARD_DOWNLOAD)) {
- InCallMetricsHelper.setValue(
- this,
- cmi.mComponent,
- InCallMetricsHelper.Categories.INAPP_NUDGES,
- InCallMetricsHelper.Events.INAPP_NUDGE_CONTACTS_INSTALL,
- InCallMetricsHelper.Parameters.EVENT_ACCEPTANCE,
- InCallMetricsHelper.EVENT_DISMISS,
- InCallMetricsHelper.generateNudgeId(cmi.mInstallNudgeSubtitle));
}
} else if (intent.getAction().equals(ACTION_INCALL_PLUGIN_LOGIN)) {
if (cmi.mLoginIntent != null) {
cmi.mLoginIntent.send();
}
- InCallMetricsHelper.setValue(
- this,
- cmi.mComponent,
- InCallMetricsHelper.Categories.INAPP_NUDGES,
- InCallMetricsHelper.Events.INAPP_NUDGE_CONTACTS_LOGIN,
- InCallMetricsHelper.Parameters.EVENT_ACCEPTANCE,
- InCallMetricsHelper.EVENT_ACCEPT,
- InCallMetricsHelper.generateNudgeId(cmi.mLoginNudgeSubtitle));
} else if (intent.getAction().equals(ACTION_INCALL_PLUGIN_INVITE)) {
if (cmi.mInviteIntent != null) {
cmi.mInviteIntent.send();
@@ -3680,7 +3643,6 @@ public class QuickContactActivity extends ContactsActivity implements
cmi.mInviteIntent.send();
}
}
- InCallMetricsHelper.increaseInviteCount(this, cmi.mComponent.flattenToString());
} else if (intent.getAction().equals(ACTION_INCALL_PLUGIN_DIRECTORY_SEARCH)) {
if (cmi.mDirectorySearchIntent != null) {
cmi.mDirectorySearchIntent.send();
--
2.8.0