Use analytics activities and fragments

All Contacts's activities and fragments now inherit from
analytics base classes.

Bug: 18039620
Change-Id: Ia550263640f60bc3f7daa7e85cd9f612f0dfc8a8
diff --git a/src/com/android/contacts/activities/ConfirmAddDetailActivity.java b/src/com/android/contacts/activities/ConfirmAddDetailActivity.java
index e3fa7e2..a1ff6d9 100644
--- a/src/com/android/contacts/activities/ConfirmAddDetailActivity.java
+++ b/src/com/android/contacts/activities/ConfirmAddDetailActivity.java
@@ -58,6 +58,7 @@
 import android.widget.TextView;
 import android.widget.Toast;
 
+import com.android.contacts.ContactsActivity;
 import com.android.contacts.R;
 import com.android.contacts.editor.Editor;
 import com.android.contacts.editor.EditorUiUtils;
@@ -102,7 +103,7 @@
  * Note when there's no accounts, it *is* okay to show the picker / dialog, because the local-only
  * contacts are writable.
  */
-public class ConfirmAddDetailActivity extends Activity implements
+public class ConfirmAddDetailActivity extends ContactsActivity implements
         DialogManager.DialogShowingViewActivity {
 
     private static final String TAG = "ConfirmAdd"; // The class name is too long to be a tag.
diff --git a/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
index bf3b1c1..197d3bd 100644
--- a/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
+++ b/src/com/android/contacts/activities/ContactEditorAccountsChangedActivity.java
@@ -28,6 +28,7 @@
 import android.widget.ListView;
 import android.widget.TextView;
 
+import com.android.contacts.ContactsActivity;
 import com.android.contacts.R;
 import com.android.contacts.editor.ContactEditorUtils;
 import com.android.contacts.common.model.AccountTypeManager;
@@ -45,7 +46,7 @@
  * the new contact in. If the activity result doesn't contain intent data, then there is no
  * account for this contact.
  */
-public class ContactEditorAccountsChangedActivity extends Activity {
+public class ContactEditorAccountsChangedActivity extends ContactsActivity {
 
     private static final String TAG = ContactEditorAccountsChangedActivity.class.getSimpleName();
 
diff --git a/src/com/android/contacts/activities/PhotoSelectionActivity.java b/src/com/android/contacts/activities/PhotoSelectionActivity.java
index da0d2e4..a773f11 100644
--- a/src/com/android/contacts/activities/PhotoSelectionActivity.java
+++ b/src/com/android/contacts/activities/PhotoSelectionActivity.java
@@ -19,7 +19,6 @@
 import android.animation.AnimatorListenerAdapter;
 import android.animation.ObjectAnimator;
 import android.animation.PropertyValuesHolder;
-import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Configuration;
@@ -33,6 +32,7 @@
 import android.widget.FrameLayout.LayoutParams;
 import android.widget.ImageView;
 
+import com.android.contacts.ContactsActivity;
 import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.ContactSaveService;
 import com.android.contacts.R;
@@ -44,7 +44,7 @@
 /**
  * Popup activity for choosing a contact photo within the Contacts app.
  */
-public class PhotoSelectionActivity extends Activity {
+public class PhotoSelectionActivity extends ContactsActivity {
 
     private static final String TAG = "PhotoSelectionActivity";
 
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index ed2520d..a2e32c9 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -93,6 +93,8 @@
 import com.android.contacts.util.HelpUtils;
 import com.android.contacts.util.PhoneCapabilityTester;
 import com.android.contacts.util.UiClosables;
+import com.android.contacts.commonbind.analytics.AnalyticsFragment;
+
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 
@@ -102,7 +104,7 @@
 import java.util.Comparator;
 import java.util.List;
 
-public class ContactEditorFragment extends Fragment implements
+public class ContactEditorFragment extends AnalyticsFragment implements
         SplitContactConfirmationDialogFragment.Listener,
         AggregationSuggestionEngine.Listener, AggregationSuggestionView.Listener,
         RawContactReadOnlyEditorView.Listener {
diff --git a/src/com/android/contacts/editor/SplitContactConfirmationDialogFragment.java b/src/com/android/contacts/editor/SplitContactConfirmationDialogFragment.java
index c790e0b..423052e 100644
--- a/src/com/android/contacts/editor/SplitContactConfirmationDialogFragment.java
+++ b/src/com/android/contacts/editor/SplitContactConfirmationDialogFragment.java
@@ -24,6 +24,7 @@
 import android.os.Bundle;
 
 import com.android.contacts.R;
+import com.android.contacts.commonbind.analytics.AnalyticsDialogFragment;
 
 /**
  * Shows a dialog asking the user whether to split the contact. The result is passed back
@@ -31,7 +32,7 @@
  * has to implement {@link SplitContactConfirmationDialogFragment.Listener}.
  * Does not split the contact itself.
  */
-public class SplitContactConfirmationDialogFragment extends DialogFragment {
+public class SplitContactConfirmationDialogFragment extends AnalyticsDialogFragment {
     public static final String TAG = "SplitContactConfirmationDialog";
 
     public SplitContactConfirmationDialogFragment() {
diff --git a/src/com/android/contacts/group/GroupBrowseListFragment.java b/src/com/android/contacts/group/GroupBrowseListFragment.java
index 81cc28c..e511d52 100644
--- a/src/com/android/contacts/group/GroupBrowseListFragment.java
+++ b/src/com/android/contacts/group/GroupBrowseListFragment.java
@@ -47,11 +47,12 @@
 import com.android.contacts.group.GroupBrowseListAdapter.GroupListItemViewCache;
 import com.android.contacts.common.ContactsUtils;
 import com.android.contacts.common.list.AutoScrollListView;
+import com.android.contacts.commonbind.analytics.AnalyticsFragment;
 
 /**
  * Fragment to display the list of groups.
  */
-public class GroupBrowseListFragment extends Fragment
+public class GroupBrowseListFragment extends AnalyticsFragment
         implements OnFocusChangeListener, OnTouchListener {
 
     /**
diff --git a/src/com/android/contacts/group/GroupDetailFragment.java b/src/com/android/contacts/group/GroupDetailFragment.java
index c12595d..b8f8975 100644
--- a/src/com/android/contacts/group/GroupDetailFragment.java
+++ b/src/com/android/contacts/group/GroupDetailFragment.java
@@ -57,11 +57,12 @@
 import com.android.contacts.list.GroupMemberTileAdapter;
 import com.android.contacts.common.model.AccountTypeManager;
 import com.android.contacts.common.model.account.AccountType;
+import com.android.contacts.commonbind.analytics.AnalyticsFragment;
 
 /**
  * Displays the details of a group and shows a list of actions possible for the group.
  */
-public class GroupDetailFragment extends Fragment implements OnScrollListener {
+public class GroupDetailFragment extends AnalyticsFragment implements OnScrollListener {
 
     public static interface Listener {
         /**
diff --git a/src/com/android/contacts/group/GroupEditorFragment.java b/src/com/android/contacts/group/GroupEditorFragment.java
index 3d13bdd..1b91ab8 100644
--- a/src/com/android/contacts/group/GroupEditorFragment.java
+++ b/src/com/android/contacts/group/GroupEditorFragment.java
@@ -72,13 +72,15 @@
 import com.android.contacts.common.model.AccountTypeManager;
 import com.android.contacts.common.util.AccountsListAdapter.AccountListFilter;
 import com.android.contacts.common.util.ViewUtil;
+import com.android.contacts.commonbind.analytics.AnalyticsFragment;
 
 import com.google.common.base.Objects;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class GroupEditorFragment extends Fragment implements SelectAccountDialogFragment.Listener {
+public class GroupEditorFragment extends AnalyticsFragment
+        implements SelectAccountDialogFragment.Listener {
     private static final String TAG = "GroupEditorFragment";
 
     private static final String LEGACY_CONTACTS_AUTHORITY = "contacts";
diff --git a/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java b/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java
index 2df7fe2..7925ac0 100644
--- a/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java
+++ b/src/com/android/contacts/interactions/GroupDeletionDialogFragment.java
@@ -17,18 +17,18 @@
 
 import android.app.AlertDialog;
 import android.app.Dialog;
-import android.app.DialogFragment;
 import android.app.FragmentManager;
 import android.content.DialogInterface;
 import android.os.Bundle;
 
 import com.android.contacts.ContactSaveService;
 import com.android.contacts.R;
+import com.android.contacts.commonbind.analytics.AnalyticsDialogFragment;
 
 /**
  * A dialog for deleting a group.
  */
-public class GroupDeletionDialogFragment extends DialogFragment {
+public class GroupDeletionDialogFragment extends AnalyticsDialogFragment {
 
     private static final String ARG_GROUP_ID = "groupId";
     private static final String ARG_LABEL = "label";
diff --git a/src/com/android/contacts/interactions/GroupNameDialogFragment.java b/src/com/android/contacts/interactions/GroupNameDialogFragment.java
index b0ad9c9..8059fd4 100644
--- a/src/com/android/contacts/interactions/GroupNameDialogFragment.java
+++ b/src/com/android/contacts/interactions/GroupNameDialogFragment.java
@@ -31,11 +31,12 @@
 import android.widget.EditText;
 
 import com.android.contacts.R;
+import com.android.contacts.commonbind.analytics.AnalyticsDialogFragment;
 
 /**
  * A common superclass for creating and renaming groups.
  */
-public abstract class GroupNameDialogFragment extends DialogFragment {
+public abstract class GroupNameDialogFragment extends AnalyticsDialogFragment {
     protected abstract int getTitleResourceId();
     protected abstract void initializeGroupLabelEditText(EditText editText);
     protected abstract void onCompleted(String groupLabel);
diff --git a/src/com/android/contacts/list/ContactTileListFragment.java b/src/com/android/contacts/list/ContactTileListFragment.java
index 189cfd3..77c22e0 100644
--- a/src/com/android/contacts/list/ContactTileListFragment.java
+++ b/src/com/android/contacts/list/ContactTileListFragment.java
@@ -39,7 +39,7 @@
 import com.android.contacts.common.list.ContactTileAdapter.DisplayType;
 import com.android.contacts.common.list.ContactTileView;
 import com.android.contacts.common.util.ContactListViewUtils;
-import com.android.contacts.common.util.SchedulingUtils;
+import com.android.contacts.commonbind.analytics.AnalyticsFragment;
 
 /**
  * Fragment containing a list of starred contacts followed by a list of frequently contacted.
@@ -49,7 +49,7 @@
  * (i.e. adding header views to the ListViews in the fragment). This work was started
  * by creating {@link ContactTileFrequentFragment}.
  */
-public class ContactTileListFragment extends Fragment {
+public class ContactTileListFragment extends AnalyticsFragment {
     private static final String TAG = ContactTileListFragment.class.getSimpleName();
 
     public interface Listener {
diff --git a/src/com/android/contacts/list/ContactsUnavailableFragment.java b/src/com/android/contacts/list/ContactsUnavailableFragment.java
index 70d224a..46f2138 100644
--- a/src/com/android/contacts/list/ContactsUnavailableFragment.java
+++ b/src/com/android/contacts/list/ContactsUnavailableFragment.java
@@ -15,7 +15,6 @@
  */
 package com.android.contacts.list;
 
-import android.app.Fragment;
 import android.content.Context;
 import android.os.Bundle;
 import android.provider.ContactsContract.ProviderStatus;
@@ -29,12 +28,13 @@
 import android.widget.TextView;
 
 import com.android.contacts.R;
+import com.android.contacts.commonbind.analytics.AnalyticsFragment;
 
 /**
  * Fragment shown when contacts are unavailable. It contains provider status
  * messaging as well as instructions for the user.
  */
-public class ContactsUnavailableFragment extends Fragment implements OnClickListener {
+public class ContactsUnavailableFragment extends AnalyticsFragment implements OnClickListener {
 
     private View mView;
     private TextView mMessageView;
diff --git a/src/com/android/contacts/preference/ContactsPreferenceActivity.java b/src/com/android/contacts/preference/ContactsPreferenceActivity.java
index d47cb22..3ddffbb 100644
--- a/src/com/android/contacts/preference/ContactsPreferenceActivity.java
+++ b/src/com/android/contacts/preference/ContactsPreferenceActivity.java
@@ -20,18 +20,18 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
-import android.preference.PreferenceActivity;
 import android.view.MenuItem;
 
 import com.android.contacts.R;
 import com.android.contacts.activities.PeopleActivity;
+import com.android.contacts.commonbind.analytics.AnalyticsPreferenceActivity;
 
 import java.util.List;
 
 /**
  * Contacts settings.
  */
-public final class ContactsPreferenceActivity extends PreferenceActivity {
+public final class ContactsPreferenceActivity extends AnalyticsPreferenceActivity {
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {