Improve analytics

Removes the existing buggy & verbose analytics classes. Instead adds
the AnalyticsUtil. Like before, analytics will automatically be added
to all activities. They need to be manually setup for fragments
that you care about.

Improving analytics CL #2/4

Bug: 18039620
Change-Id: I99a4062e09e7614e5369d795132172d4d1867600
diff --git a/src/com/android/contacts/common/activity/TransactionSafeActivity.java b/src/com/android/contacts/common/activity/TransactionSafeActivity.java
index 6b50108..6c2e4fe 100644
--- a/src/com/android/contacts/common/activity/TransactionSafeActivity.java
+++ b/src/com/android/contacts/common/activity/TransactionSafeActivity.java
@@ -16,8 +16,6 @@
 
 package com.android.contacts.common.activity;
 
-import com.android.contacts.commonbind.analytics.AnalyticsActivity;
-
 import android.app.Activity;
 import android.os.Bundle;
 
@@ -25,7 +23,7 @@
  * A common superclass that keeps track of whether an {@link Activity} has saved its state yet or
  * not.
  */
-public abstract class TransactionSafeActivity extends AnalyticsActivity {
+public abstract class TransactionSafeActivity extends Activity {
 
     private boolean mIsSafeToCommitTransactions;
 
diff --git a/src/com/android/contacts/common/dialog/ClearFrequentsDialog.java b/src/com/android/contacts/common/dialog/ClearFrequentsDialog.java
index 44bdd95..2cfd36e 100644
--- a/src/com/android/contacts/common/dialog/ClearFrequentsDialog.java
+++ b/src/com/android/contacts/common/dialog/ClearFrequentsDialog.java
@@ -18,6 +18,7 @@
 
 import android.app.AlertDialog;
 import android.app.Dialog;
+import android.app.DialogFragment;
 import android.app.FragmentManager;
 import android.content.ContentResolver;
 import android.content.DialogInterface;
@@ -27,12 +28,11 @@
 import android.provider.ContactsContract;
 
 import com.android.contacts.common.R;
-import com.android.contacts.commonbind.analytics.AnalyticsDialogFragment;
 
 /**
  * Dialog that clears the frequently contacted list after confirming with the user.
  */
-public class ClearFrequentsDialog extends AnalyticsDialogFragment {
+public class ClearFrequentsDialog extends DialogFragment {
     /** Preferred way to show this dialog */
     public static void show(FragmentManager fragmentManager) {
         ClearFrequentsDialog dialog = new ClearFrequentsDialog();
diff --git a/src/com/android/contacts/common/dialog/IndeterminateProgressDialog.java b/src/com/android/contacts/common/dialog/IndeterminateProgressDialog.java
index c26d6b4..2fe059f 100644
--- a/src/com/android/contacts/common/dialog/IndeterminateProgressDialog.java
+++ b/src/com/android/contacts/common/dialog/IndeterminateProgressDialog.java
@@ -16,9 +16,8 @@
 
 package com.android.contacts.common.dialog;
 
-import com.android.contacts.commonbind.analytics.AnalyticsDialogFragment;
-
 import android.app.Dialog;
+import android.app.DialogFragment;
 import android.app.FragmentManager;
 import android.app.ProgressDialog;
 import android.content.DialogInterface;
@@ -42,7 +41,7 @@
  * after a device orientation change because the {@link #setRetainInstance(boolean)} is called
  * internally with true.
  */
-public class IndeterminateProgressDialog extends AnalyticsDialogFragment {
+public class IndeterminateProgressDialog extends DialogFragment {
     private static final String TAG = IndeterminateProgressDialog.class.getSimpleName();
 
     private CharSequence mTitle;
diff --git a/src/com/android/contacts/common/editor/SelectAccountDialogFragment.java b/src/com/android/contacts/common/editor/SelectAccountDialogFragment.java
index 133b0db..c2ebbbf 100644
--- a/src/com/android/contacts/common/editor/SelectAccountDialogFragment.java
+++ b/src/com/android/contacts/common/editor/SelectAccountDialogFragment.java
@@ -18,6 +18,7 @@
 
 import android.app.AlertDialog;
 import android.app.Dialog;
+import android.app.DialogFragment;
 import android.app.Fragment;
 import android.app.FragmentManager;
 import android.content.DialogInterface;
@@ -26,14 +27,13 @@
 import com.android.contacts.common.model.account.AccountWithDataSet;
 import com.android.contacts.common.util.AccountsListAdapter;
 import com.android.contacts.common.util.AccountsListAdapter.AccountListFilter;
-import com.android.contacts.commonbind.analytics.AnalyticsDialogFragment;
 
 /**
  * Shows a dialog asking the user which account to chose.
  *
  * The result is passed to {@code targetFragment} passed to {@link #show}.
  */
-public final class SelectAccountDialogFragment extends AnalyticsDialogFragment {
+public final class SelectAccountDialogFragment extends DialogFragment {
     public static final String TAG = "SelectAccountDialogFragment";
 
     private static final String KEY_TITLE_RES_ID = "title_res_id";
diff --git a/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java b/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java
index 6bfd42a..437d855 100644
--- a/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java
+++ b/src/com/android/contacts/common/interactions/ImportExportDialogFragment.java
@@ -19,6 +19,7 @@
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
+import android.app.DialogFragment;
 import android.app.FragmentManager;
 import android.content.Context;
 import android.content.DialogInterface;
@@ -48,7 +49,7 @@
 import com.android.contacts.common.util.AccountsListAdapter.AccountListFilter;
 import com.android.contacts.common.vcard.ExportVCardActivity;
 import com.android.contacts.common.vcard.VCardCommonArguments;
-import com.android.contacts.commonbind.analytics.AnalyticsDialogFragment;
+import com.android.contacts.commonbind.analytics.AnalyticsUtil;
 
 import java.util.Collections;
 import java.util.List;
@@ -56,7 +57,7 @@
 /**
  * An dialog invoked to import/export contacts.
  */
-public class ImportExportDialogFragment extends AnalyticsDialogFragment
+public class ImportExportDialogFragment extends DialogFragment
         implements SelectAccountDialogFragment.Listener {
     public static final String TAG = "ImportExportDialogFragment";
 
@@ -82,7 +83,7 @@
     @Override
     public void onAttach(Activity activity) {
         super.onAttach(activity);
-        sendScreenView();
+        AnalyticsUtil.sendScreenView(this);
     }
 
     @Override
diff --git a/src/com/android/contacts/common/list/AccountFilterActivity.java b/src/com/android/contacts/common/list/AccountFilterActivity.java
index 91bffba..58450c6 100644
--- a/src/com/android/contacts/common/list/AccountFilterActivity.java
+++ b/src/com/android/contacts/common/list/AccountFilterActivity.java
@@ -38,8 +38,6 @@
 import com.android.contacts.common.model.AccountTypeManager;
 import com.android.contacts.common.model.account.AccountType;
 import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.commonbind.analytics.AnalyticsActivity;
-
 import com.google.common.collect.Lists;
 
 import java.util.ArrayList;
@@ -49,8 +47,7 @@
  * Shows a list of all available accounts, letting the user select under which account to view
  * contacts.
  */
-public class AccountFilterActivity extends AnalyticsActivity
-        implements AdapterView.OnItemClickListener {
+public class AccountFilterActivity extends Activity implements AdapterView.OnItemClickListener {
 
     private static final String TAG = AccountFilterActivity.class.getSimpleName();
 
diff --git a/src/com/android/contacts/common/list/ContactEntryListFragment.java b/src/com/android/contacts/common/list/ContactEntryListFragment.java
index e9ab15d..c38e969 100644
--- a/src/com/android/contacts/common/list/ContactEntryListFragment.java
+++ b/src/com/android/contacts/common/list/ContactEntryListFragment.java
@@ -17,6 +17,7 @@
 package com.android.contacts.common.list;
 
 import android.app.Activity;
+import android.app.Fragment;
 import android.app.LoaderManager;
 import android.app.LoaderManager.LoaderCallbacks;
 import android.content.Context;
@@ -47,7 +48,6 @@
 import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.preference.ContactsPreferences;
 import com.android.contacts.common.util.ContactListViewUtils;
-import com.android.contacts.commonbind.analytics.AnalyticsFragment;
 
 import java.util.Locale;
 
@@ -55,7 +55,7 @@
  * Common base class for various contact-related list fragments.
  */
 public abstract class ContactEntryListFragment<T extends ContactEntryListAdapter>
-        extends AnalyticsFragment
+        extends Fragment
         implements OnItemClickListener, OnScrollListener, OnFocusChangeListener, OnTouchListener,
                 LoaderCallbacks<Cursor> {
     private static final String TAG = "ContactEntryListFragment";
diff --git a/src/com/android/contacts/common/list/CustomContactListFilterActivity.java b/src/com/android/contacts/common/list/CustomContactListFilterActivity.java
index 2a0a46c..feb7df2 100644
--- a/src/com/android/contacts/common/list/CustomContactListFilterActivity.java
+++ b/src/com/android/contacts/common/list/CustomContactListFilterActivity.java
@@ -62,8 +62,6 @@
 import com.android.contacts.common.util.EmptyService;
 import com.android.contacts.common.util.LocalizedNameResolver;
 import com.android.contacts.common.util.WeakAsyncTask;
-import com.android.contacts.commonbind.analytics.AnalyticsActivity;
-
 import com.google.common.collect.Lists;
 
 import java.util.ArrayList;
@@ -75,7 +73,7 @@
  * Shows a list of all available {@link Groups} available, letting the user
  * select which ones they want to be visible.
  */
-public class CustomContactListFilterActivity extends AnalyticsActivity
+public class CustomContactListFilterActivity extends Activity
         implements View.OnClickListener, ExpandableListView.OnChildClickListener,
         LoaderCallbacks<CustomContactListFilterActivity.AccountSet>
 {
diff --git a/src/com/android/contacts/common/list/PhoneNumberPickerFragment.java b/src/com/android/contacts/common/list/PhoneNumberPickerFragment.java
index 47cce8b..968f8db 100644
--- a/src/com/android/contacts/common/list/PhoneNumberPickerFragment.java
+++ b/src/com/android/contacts/common/list/PhoneNumberPickerFragment.java
@@ -15,7 +15,6 @@
  */
 package com.android.contacts.common.list;
 
-import android.content.CursorLoader;
 import android.content.Intent;
 import android.content.Loader;
 import android.database.Cursor;
diff --git a/src/com/android/contacts/common/preference/DisplayOptionsPreferenceFragment.java b/src/com/android/contacts/common/preference/DisplayOptionsPreferenceFragment.java
index 7f0850c..e49f38a 100644
--- a/src/com/android/contacts/common/preference/DisplayOptionsPreferenceFragment.java
+++ b/src/com/android/contacts/common/preference/DisplayOptionsPreferenceFragment.java
@@ -17,14 +17,14 @@
 package com.android.contacts.common.preference;
 
 import android.os.Bundle;
+import android.preference.PreferenceFragment;
 
 import com.android.contacts.common.R;
-import com.android.contacts.commonbind.analytics.AnalyticsPreferenceFragment;
 
 /**
  * This fragment shows the preferences for the first header.
  */
-public class DisplayOptionsPreferenceFragment extends AnalyticsPreferenceFragment {
+public class DisplayOptionsPreferenceFragment extends PreferenceFragment {
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
diff --git a/src/com/android/contacts/common/vcard/CancelActivity.java b/src/com/android/contacts/common/vcard/CancelActivity.java
index 86bfd55..20869f7 100644
--- a/src/com/android/contacts/common/vcard/CancelActivity.java
+++ b/src/com/android/contacts/common/vcard/CancelActivity.java
@@ -15,6 +15,7 @@
  */
 package com.android.contacts.common.vcard;
 
+import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.content.ComponentName;
@@ -28,12 +29,11 @@
 import android.util.Log;
 
 import com.android.contacts.common.R;
-import com.android.contacts.commonbind.analytics.AnalyticsActivity;
 
 /**
  * The Activity for canceling vCard import/export.
  */
-public class CancelActivity extends AnalyticsActivity implements ServiceConnection {
+public class CancelActivity extends Activity implements ServiceConnection {
     private final String LOG_TAG = "VCardCancel";
 
     /* package */ final static String JOB_ID = "job_id";
diff --git a/src/com/android/contacts/common/vcard/ExportVCardActivity.java b/src/com/android/contacts/common/vcard/ExportVCardActivity.java
index f508cd3..008beb6 100644
--- a/src/com/android/contacts/common/vcard/ExportVCardActivity.java
+++ b/src/com/android/contacts/common/vcard/ExportVCardActivity.java
@@ -15,6 +15,7 @@
  */
 package com.android.contacts.common.vcard;
 
+import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.content.ComponentName;
@@ -35,7 +36,6 @@
 import android.util.Log;
 
 import com.android.contacts.common.R;
-import com.android.contacts.commonbind.analytics.AnalyticsActivity;
 
 import java.io.File;
 
@@ -46,7 +46,7 @@
  * a user. After the user's confirmation, it send export request with the file name, assuming the
  * file name is not reserved yet.
  */
-public class ExportVCardActivity extends AnalyticsActivity implements ServiceConnection,
+public class ExportVCardActivity extends Activity implements ServiceConnection,
         DialogInterface.OnClickListener, DialogInterface.OnCancelListener {
     private static final String LOG_TAG = "VCardExport";
     private static final boolean DEBUG = VCardService.DEBUG;
diff --git a/src/com/android/contacts/common/vcard/ImportVCardActivity.java b/src/com/android/contacts/common/vcard/ImportVCardActivity.java
index ca7e39a..62e8431 100644
--- a/src/com/android/contacts/common/vcard/ImportVCardActivity.java
+++ b/src/com/android/contacts/common/vcard/ImportVCardActivity.java
@@ -48,7 +48,7 @@
 import com.android.contacts.common.R;
 import com.android.contacts.common.model.AccountTypeManager;
 import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.commonbind.analytics.AnalyticsActivity;
+import com.android.contacts.common.util.AccountSelectionUtil;
 import com.android.vcard.VCardEntryCounter;
 import com.android.vcard.VCardParser;
 import com.android.vcard.VCardParser_V21;
@@ -85,7 +85,7 @@
  * any Dialog in the instance. So this code is careless about the management around managed
  * dialogs stuffs (like how onCreateDialog() is used).
  */
-public class ImportVCardActivity extends AnalyticsActivity {
+public class ImportVCardActivity extends Activity {
     private static final String LOG_TAG = "VCardImport";
 
     private static final int SELECT_ACCOUNT = 0;
diff --git a/src/com/android/contacts/common/vcard/NfcImportVCardActivity.java b/src/com/android/contacts/common/vcard/NfcImportVCardActivity.java
index dca9046..96f224a 100644
--- a/src/com/android/contacts/common/vcard/NfcImportVCardActivity.java
+++ b/src/com/android/contacts/common/vcard/NfcImportVCardActivity.java
@@ -16,6 +16,7 @@
 
 package com.android.contacts.common.vcard;
 
+import android.app.Activity;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -33,7 +34,6 @@
 import com.android.contacts.common.R;
 import com.android.contacts.common.model.AccountTypeManager;
 import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.commonbind.analytics.AnalyticsActivity;
 import com.android.vcard.VCardEntry;
 import com.android.vcard.VCardEntryCounter;
 import com.android.vcard.VCardParser;
@@ -49,7 +49,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-public class NfcImportVCardActivity extends AnalyticsActivity implements ServiceConnection,
+public class NfcImportVCardActivity extends Activity implements ServiceConnection,
         VCardImportExportListener {
     private static final String TAG = "NfcImportVCardActivity";
 
diff --git a/src/com/android/contacts/common/vcard/SelectAccountActivity.java b/src/com/android/contacts/common/vcard/SelectAccountActivity.java
index 851ae4d..d05810d 100644
--- a/src/com/android/contacts/common/vcard/SelectAccountActivity.java
+++ b/src/com/android/contacts/common/vcard/SelectAccountActivity.java
@@ -15,6 +15,7 @@
  */
 package com.android.contacts.common.vcard;
 
+import android.app.Activity;
 import android.app.Dialog;
 import android.content.DialogInterface;
 import android.content.Intent;
@@ -25,11 +26,10 @@
 import com.android.contacts.common.model.AccountTypeManager;
 import com.android.contacts.common.model.account.AccountWithDataSet;
 import com.android.contacts.common.util.AccountSelectionUtil;
-import com.android.contacts.commonbind.analytics.AnalyticsActivity;
 
 import java.util.List;
 
-public class SelectAccountActivity extends AnalyticsActivity {
+public class SelectAccountActivity extends Activity {
     private static final String LOG_TAG = "SelectAccountActivity";
 
     public static final String ACCOUNT_NAME = "account_name";
diff --git a/src/com/android/contacts/common/widget/SelectPhoneAccountDialogFragment.java b/src/com/android/contacts/common/widget/SelectPhoneAccountDialogFragment.java
index c0bbcce..0dbe70a 100644
--- a/src/com/android/contacts/common/widget/SelectPhoneAccountDialogFragment.java
+++ b/src/com/android/contacts/common/widget/SelectPhoneAccountDialogFragment.java
@@ -20,6 +20,7 @@
 import android.telecom.PhoneAccountHandle;
 import android.app.AlertDialog;
 import android.app.Dialog;
+import android.app.DialogFragment;
 import android.app.FragmentManager;
 import android.content.Context;
 import android.content.DialogInterface;
@@ -37,7 +38,6 @@
 import android.widget.TextView;
 
 import com.android.contacts.common.R;
-import com.android.contacts.commonbind.analytics.AnalyticsDialogFragment;
 
 import java.util.List;
 
@@ -45,7 +45,7 @@
  * Dialog that allows the user to select a phone accounts for a given action. Optionally provides
  * the choice to set the phone account as default.
  */
-public class SelectPhoneAccountDialogFragment extends AnalyticsDialogFragment {
+public class SelectPhoneAccountDialogFragment extends DialogFragment {
     private boolean mCanSetDefault;
     private List<PhoneAccountHandle> mAccountHandles;
     private boolean mIsSelected;
diff --git a/src/com/android/contacts/commonbind/analytics/AnalyticsActivity.java b/src/com/android/contacts/commonbind/analytics/AnalyticsActivity.java
deleted file mode 100644
index 5427bec..0000000
--- a/src/com/android/contacts/commonbind/analytics/AnalyticsActivity.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source 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.commonbind.analytics;
-
-import android.app.Activity;
-
-public abstract class AnalyticsActivity extends Activity implements AnalyticsInterface {
-    @Override
-    public void sendHitEvent(String categoryId, String actionId, String labelId) {
-    }
-
-    @Override
-    public void sendScreenView() {
-    }
-}
diff --git a/src/com/android/contacts/commonbind/analytics/AnalyticsDialogFragment.java b/src/com/android/contacts/commonbind/analytics/AnalyticsDialogFragment.java
deleted file mode 100644
index 4409201..0000000
--- a/src/com/android/contacts/commonbind/analytics/AnalyticsDialogFragment.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source 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.commonbind.analytics;
-
-import android.app.DialogFragment;
-
-public abstract class AnalyticsDialogFragment extends DialogFragment implements AnalyticsInterface {
-    @Override
-    public void sendHitEvent(String categoryId, String actionId, String labelId) {
-    }
-
-    @Override
-    public void sendScreenView() {
-    }
-}
diff --git a/src/com/android/contacts/commonbind/analytics/AnalyticsFragment.java b/src/com/android/contacts/commonbind/analytics/AnalyticsFragment.java
deleted file mode 100644
index ebe2903..0000000
--- a/src/com/android/contacts/commonbind/analytics/AnalyticsFragment.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source 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.commonbind.analytics;
-
-import android.app.Fragment;
-
-public abstract class AnalyticsFragment extends Fragment implements AnalyticsInterface {
-    @Override
-    public void sendHitEvent(String categoryId, String actionId, String labelId) {
-    }
-
-    @Override
-    public void sendScreenView() {
-    }
-}
diff --git a/src/com/android/contacts/commonbind/analytics/AnalyticsInterface.java b/src/com/android/contacts/commonbind/analytics/AnalyticsInterface.java
deleted file mode 100644
index f003d67..0000000
--- a/src/com/android/contacts/commonbind/analytics/AnalyticsInterface.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source 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.commonbind.analytics;
-
-public interface AnalyticsInterface {
-    void sendHitEvent(String categoryId, String actionId, String labelId);
-
-    void sendScreenView();
-}
diff --git a/src/com/android/contacts/commonbind/analytics/AnalyticsListFragment.java b/src/com/android/contacts/commonbind/analytics/AnalyticsListFragment.java
deleted file mode 100644
index 38840ef..0000000
--- a/src/com/android/contacts/commonbind/analytics/AnalyticsListFragment.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source 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.commonbind.analytics;
-
-import android.app.ListFragment;
-
-public abstract class AnalyticsListFragment extends ListFragment implements
-        AnalyticsInterface {
-    @Override
-    public void sendHitEvent(String categoryId, String actionId, String labelId) {
-    }
-
-    @Override
-    public void sendScreenView() {
-    }
-}
diff --git a/src/com/android/contacts/commonbind/analytics/AnalyticsPreferenceActivity.java b/src/com/android/contacts/commonbind/analytics/AnalyticsPreferenceActivity.java
deleted file mode 100644
index 9f3ac98..0000000
--- a/src/com/android/contacts/commonbind/analytics/AnalyticsPreferenceActivity.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source 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.commonbind.analytics;
-
-import android.preference.PreferenceActivity;
-
-public abstract class AnalyticsPreferenceActivity extends PreferenceActivity
-        implements AnalyticsInterface {
-    @Override
-    public void sendHitEvent(String categoryId, String actionId, String labelId) {
-    }
-
-    @Override
-    public void sendScreenView() {
-    }
-}
diff --git a/src/com/android/contacts/commonbind/analytics/AnalyticsPreferenceFragment.java b/src/com/android/contacts/commonbind/analytics/AnalyticsPreferenceFragment.java
deleted file mode 100644
index 827f469..0000000
--- a/src/com/android/contacts/commonbind/analytics/AnalyticsPreferenceFragment.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source 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.commonbind.analytics;
-
-import android.preference.PreferenceFragment;
-
-public abstract class AnalyticsPreferenceFragment extends PreferenceFragment
-        implements AnalyticsInterface {
-    @Override
-    public void sendHitEvent(String categoryId, String actionId, String labelId) {
-    }
-
-    @Override
-    public void sendScreenView() {
-    }
-}
diff --git a/src/com/android/contacts/commonbind/analytics/AnalyticsUtil.java b/src/com/android/contacts/commonbind/analytics/AnalyticsUtil.java
new file mode 100644
index 0000000..251b7f9
--- /dev/null
+++ b/src/com/android/contacts/commonbind/analytics/AnalyticsUtil.java
@@ -0,0 +1,17 @@
+package com.android.contacts.commonbind.analytics;
+
+import android.app.Application;
+import android.app.Fragment;
+
+public class AnalyticsUtil {
+
+    /**
+     * Initialize this class and setup automatic activity tracking.
+     */
+    public static void initialize(Application application) { }
+
+    /**
+     * Log a screen view for {@param fragment}.
+     */
+    public static void sendScreenView(Fragment fragment) { }
+}
\ No newline at end of file