Merge "More work to hook up screen event logging" into ub-contactsdialer-a-dev am: 305eb447e8
am: 7b2f63c7c5

* commit '7b2f63c7c5485bdd62a3e0ed8446b6011a786d3b':
  More work to hook up screen event logging
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index b4dd6c9..b6cf754 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -82,6 +82,7 @@
 import com.android.dialer.list.SmartDialSearchFragment;
 import com.android.dialer.list.SpeedDialFragment;
 import com.android.dialer.logging.Logger;
+import com.android.dialer.logging.ScreenTagConstants;
 import com.android.dialer.settings.DialerSettingsActivity;
 import com.android.dialer.util.DialerUtils;
 import com.android.dialer.util.IntentUtil;
@@ -527,7 +528,8 @@
             // This is only called when the activity goes from resumed -> paused -> resumed, so it
             // will not cause an extra view to be sent out on rotation
             if (mIsDialpadShown) {
-                Logger.logFragmentView(mDialpadFragment);
+                Logger.logScreenView(ScreenTagConstants.DIALPAD, this,
+                        ScreenTagConstants.DIALPAD_DIALER);
             }
             mIsRestarting = false;
         }
@@ -682,6 +684,7 @@
                     ImportExportDialogFragment.show(getFragmentManager(), true,
                             DialtactsActivity.class, ImportExportDialogFragment.EXPORT_MODE_DEFAULT);
                 }
+                Logger.logScreenView(ScreenTagConstants.IMPORT_EXPORT_CONTACTS, this, null);
                 return true;
             case R.id.menu_clear_frequents:
                 ClearFrequentsDialog.show(getFragmentManager());
@@ -744,7 +747,8 @@
         mDialpadFragment.setAnimate(animate);
         // logScreenView is used here explicitly to provide the activity as the DialpadFragment
         // might not have been attached yet.
-        Logger.logScreenView(DialpadFragment.class.getSimpleName(), this, null);
+        Logger.logScreenView(ScreenTagConstants.DIALPAD, this,
+                ScreenTagConstants.DIALPAD_DIALER);
         ft.commit();
 
         if (animate) {
diff --git a/src/com/android/dialer/calllog/CallLogActivity.java b/src/com/android/dialer/calllog/CallLogActivity.java
index f6defcf..fb1a4fb 100644
--- a/src/com/android/dialer/calllog/CallLogActivity.java
+++ b/src/com/android/dialer/calllog/CallLogActivity.java
@@ -41,6 +41,7 @@
 import com.android.dialer.R;
 import com.android.dialer.TransactionSafeActivity;
 import com.android.dialer.logging.Logger;
+import com.android.dialer.logging.ScreenTagConstants;
 import com.android.dialer.util.DialerUtils;
 
 public class CallLogActivity extends TransactionSafeActivity implements ViewPager.OnPageChangeListener {
@@ -223,7 +224,7 @@
     }
 
     private void sendScreenViewForChildFragment(int position) {
-        Logger.logScreenView(CallLogFragment.class.getSimpleName(), this,
+        Logger.logScreenView(ScreenTagConstants.CALL_LOG, this,
                 getFragmentTagForPosition(position));
     }
 
@@ -234,9 +235,9 @@
     private String getFragmentTagForPosition(int position) {
         switch (position) {
             case TAB_INDEX_ALL:
-                return "All";
+                return ScreenTagConstants.CALL_LOG_ALL;
             case TAB_INDEX_MISSED:
-                return "Missed";
+                return ScreenTagConstants.CALL_LOG_MISSED;
         }
         return null;
     }
diff --git a/src/com/android/dialer/list/ListsFragment.java b/src/com/android/dialer/list/ListsFragment.java
index 4735926..c4f4b13 100644
--- a/src/com/android/dialer/list/ListsFragment.java
+++ b/src/com/android/dialer/list/ListsFragment.java
@@ -38,6 +38,7 @@
 import com.android.dialer.calllog.CallLogFragment;
 import com.android.dialer.calllog.CallLogQueryHandler;
 import com.android.dialer.logging.Logger;
+import com.android.dialer.logging.ScreenTagConstants;
 import com.android.dialer.util.DialerUtils;
 import com.android.dialer.voicemail.VisualVoicemailEnabledChecker;
 import com.android.dialer.voicemail.VoicemailStatusHelper;
@@ -401,14 +402,14 @@
                 break;
             case TAB_INDEX_HISTORY:
                 fragmentName = CallLogFragment.class.getSimpleName();
-                tag = "History";
+                tag = ScreenTagConstants.CALL_LOG_HISTORY;
                 break;
             case TAB_INDEX_ALL_CONTACTS:
                 fragmentName = AllContactsFragment.class.getSimpleName();
                 break;
             case TAB_INDEX_VOICEMAIL:
                 fragmentName = CallLogFragment.class.getSimpleName();
-                tag = "Voicemail";
+                tag = ScreenTagConstants.CALL_LOG_VOICEMAIL;
             default:
                 return;
         }
diff --git a/src/com/android/dialer/logging/ScreenTagConstants.java b/src/com/android/dialer/logging/ScreenTagConstants.java
new file mode 100644
index 0000000..5175cc5
--- /dev/null
+++ b/src/com/android/dialer/logging/ScreenTagConstants.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2015 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.dialer.logging;
+
+import com.google.android.dialer.settings.GoogleDialerSettingsActivity;
+
+import com.android.contacts.common.dialog.ClearFrequentsDialog;
+import com.android.contacts.common.interactions.ImportExportDialogFragment;
+import com.android.dialer.calllog.CallLogFragment;
+import com.android.dialer.dialpad.DialpadFragment;
+import com.android.dialer.list.AllContactsFragment;
+import com.android.dialer.list.RegularSearchFragment;
+import com.android.dialer.list.SmartDialSearchFragment;
+import com.android.dialer.list.SpeedDialFragment;
+import com.android.incallui.AnswerFragment;
+import com.android.incallui.CallCardFragment;
+import com.android.incallui.ConferenceManagerFragment;
+
+/**
+ * Central repository of all string constants used to identify screens/fragments/dialogs for
+ * logging purposes.
+ */
+public class ScreenTagConstants {
+    /**
+     * Unique identifiers for each screen that is displayed in the Dialer
+     */
+    public static final String DIALPAD = DialpadFragment.class.getSimpleName();
+    public static final String SPEED_DIAL = SpeedDialFragment.class.getSimpleName();
+    public static final String CALL_LOG = CallLogFragment.class.getSimpleName();
+    public static final String ALL_CONTACTS = AllContactsFragment.class.getSimpleName();
+    public static final String REGULAR_SEARCH = RegularSearchFragment.class.getSimpleName();
+    public static final String SMART_DIAL_SEARCH = SmartDialSearchFragment.class.getSimpleName();
+    public static final String SETTINGS = GoogleDialerSettingsActivity.class.getSimpleName();
+    public static final String IMPORT_EXPORT_CONTACTS =
+            ImportExportDialogFragment.class.getSimpleName();
+    public static final String CLEAR_FREQUENTS = ClearFrequentsDialog.class.getSimpleName();
+    public static final String SEND_FEEDBACK = "SendFeedback";
+    public static final String INCALL = CallCardFragment.class.getSimpleName();
+    public static final String INCOMING_CALL = AnswerFragment.class.getSimpleName();
+    public static final String CONFERENCE_MANAGEMENT =
+            ConferenceManagerFragment.class.getSimpleName();
+
+    /**
+     * Additional constants that allow disambiguation between similar fragments in different
+     * activities.
+     */
+    // The dialpad in DialtactsActivity
+    public static final String DIALPAD_DIALER = "Dialer";
+    // The dialpad in InCallActivity
+    public static final String DIALPAD_INCALL = "InCall";
+
+    // The HISTORY tab in DialtactsActivity
+    public static final String CALL_LOG_HISTORY = "History";
+    // The VOICEMAIL tab in DialtactsActivity
+    public static final String CALL_LOG_VOICEMAIL = "Voicemail";
+    // The ALL tab in CallLogActivity
+    public static final String CALL_LOG_ALL = "All";
+    // The MISSED tab in CallLogActivity
+    public static final String CALL_LOG_MISSED = "Missed";
+}