Log where quick contact was opened from (1/3)

Bug 27341012
Bug 18388581

Change-Id: I0628e9ad842ab64fc1bf6196500a64fddf465466
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 66d4f08..76da135 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -27,11 +27,8 @@
 import android.content.pm.ResolveInfo;
 import android.graphics.Rect;
 import android.net.Uri;
-import android.os.Build;
 import android.os.Bundle;
 import android.os.Parcelable;
-import android.os.UserManager;
-import android.preference.PreferenceActivity;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.ProviderStatus;
@@ -70,9 +67,8 @@
 import com.android.contacts.common.list.DirectoryListLoader;
 import com.android.contacts.common.list.ViewPagerTabs;
 import com.android.contacts.common.logging.Logger;
-import com.android.contacts.common.logging.ScreenEvent;
+import com.android.contacts.common.logging.ScreenEvent.ScreenType;
 import com.android.contacts.common.preference.ContactsPreferenceActivity;
-import com.android.contacts.common.preference.DisplayOptionsPreferenceFragment;
 import com.android.contacts.common.util.AccountFilterUtil;
 import com.android.contacts.common.util.Constants;
 import com.android.contacts.common.util.ImplicitIntentsUtil;
@@ -293,6 +289,7 @@
         if (mRequest.getActionCode() == ContactsRequest.ACTION_VIEW_CONTACT) {
             final Intent intent = ImplicitIntentsUtil.composeQuickContactIntent(
                     mRequest.getContactUri(), QuickContactActivity.MODE_FULLY_EXPANDED);
+            intent.putExtra(QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE, ScreenType.UNKNOWN);
             ImplicitIntentsUtil.startActivityInApp(this, intent);
             return false;
         }
@@ -560,7 +557,7 @@
                 break;
             case ActionBarAdapter.Listener.Action.START_SEARCH_MODE:
                 if (!mIsRecreatedInstance) {
-                    Logger.logScreenView(ScreenEvent.SEARCH, this, ScreenEvent.TAG_SEARCH);
+                    Logger.logScreenView(this, ScreenType.SEARCH);
                 }
                 startSearchOrSelectionMode();
                 break;
@@ -944,8 +941,9 @@
                         QuickContactActivity.MODE_FULLY_EXPANDED, null);
             } else {
                 final Intent intent = ImplicitIntentsUtil.composeQuickContactIntent(
-                        contactLookupUri,
-                        QuickContactActivity.MODE_FULLY_EXPANDED);
+                        contactLookupUri, QuickContactActivity.MODE_FULLY_EXPANDED);
+                intent.putExtra(QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE,
+                        mAllFragment.isSearchMode() ? ScreenType.SEARCH : ScreenType.ALL_CONTACTS);
                 ImplicitIntentsUtil.startActivityInApp(PeopleActivity.this, intent);
             }
         }
@@ -1027,6 +1025,7 @@
         public void onContactSelected(Uri contactUri, Rect targetRect) {
             final Intent intent = ImplicitIntentsUtil.composeQuickContactIntent(contactUri,
                     QuickContactActivity.MODE_FULLY_EXPANDED);
+            intent.putExtra(QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE, ScreenType.FAVORITES);
             ImplicitIntentsUtil.startActivityInApp(PeopleActivity.this, intent);
         }
 
@@ -1366,7 +1365,7 @@
             if (mAllFragment.wasSearchResultClicked()) {
                 mAllFragment.resetSearchResultClicked();
             } else {
-                Logger.logScreenView(ScreenEvent.SEARCH_EXIT, this, ScreenEvent.TAG_SEARCH_EXIT);
+                Logger.logScreenView(this, ScreenType.SEARCH_EXIT);
                 Logger.logSearchEvent(mAllFragment.createSearchState());
             }
         } else {
diff --git a/src/com/android/contacts/editor/ContactEditorBaseFragment.java b/src/com/android/contacts/editor/ContactEditorBaseFragment.java
index 181bc44..4182e1f 100644
--- a/src/com/android/contacts/editor/ContactEditorBaseFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorBaseFragment.java
@@ -16,6 +16,7 @@
 
 package com.android.contacts.editor;
 
+import com.android.contacts.common.logging.ScreenEvent.ScreenType;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 
@@ -1469,6 +1470,8 @@
                             mContext, contactLookupUri, mLookupUri);
                     resultIntent = ImplicitIntentsUtil.composeQuickContactIntent(lookupUri,
                             QuickContactActivity.MODE_FULLY_EXPANDED);
+                    resultIntent.putExtra(QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE,
+                            ScreenType.EDITOR);
                 } else {
                     resultIntent = null;
                 }
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 6aac921..7897782 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -118,6 +118,8 @@
 import com.android.contacts.common.lettertiles.LetterTileDrawable;
 import com.android.contacts.common.list.ShortcutIntentBuilder;
 import com.android.contacts.common.list.ShortcutIntentBuilder.OnShortcutIntentCreatedListener;
+import com.android.contacts.common.logging.Logger;
+import com.android.contacts.common.logging.ScreenEvent.ScreenType;
 import com.android.contacts.common.model.AccountTypeManager;
 import com.android.contacts.common.model.Contact;
 import com.android.contacts.common.model.ContactLoader;
@@ -203,6 +205,9 @@
      */
     public static final int MODE_FULLY_EXPANDED = 4;
 
+    /** Used to pass the screen where the user came before launching this Activity. */
+    public static final String EXTRA_PREVIOUS_SCREEN_TYPE = "previous_screen_type";
+
     private static final String TAG = "QuickContact";
 
     private static final String KEY_THEME_COLOR = "theme_color";
@@ -919,6 +924,10 @@
             return;
         }
 
+        final int previousScreenType = getIntent().getExtras()
+                .getInt(EXTRA_PREVIOUS_SCREEN_TYPE, ScreenType.UNKNOWN);
+        Logger.logScreenView(this, ScreenType.QUICK_CONTACT, previousScreenType);
+
         if (CompatUtils.isLollipopCompatible()) {
             getWindow().setStatusBarColor(Color.TRANSPARENT);
         }