Add logging to NUI.

Including:
- switching tabs
- touch search list
- press back button
- click search bar and voice button
- click FAB
Test: MainActivityOldPeerTest, MainSearchControllerTest
PiperOrigin-RevId: 185875596
Change-Id: Ie7824ce2f7a2570327abdb35cef1538cad786e73
diff --git a/java/com/android/dialer/logging/dialer_impression.proto b/java/com/android/dialer/logging/dialer_impression.proto
index f839b13..635d8fd 100644
--- a/java/com/android/dialer/logging/dialer_impression.proto
+++ b/java/com/android/dialer/logging/dialer_impression.proto
@@ -12,7 +12,7 @@
   // Event enums to be used for Impression Logging in Dialer.
   // It's perfectly acceptable for this enum to be large
   // Values should be from 1000 to 100000.
-  // Next Tag: 1327
+  // Next Tag: 1341
   enum Type {
     UNKNOWN_AOSP_EVENT_TYPE = 1000;
 
@@ -657,5 +657,23 @@
     DUO_CALL_LOG_SET_UP_INSTALL_SHOWN = 1324;
     DUO_CALL_LOG_SET_UP_ACTIVATE_SHOWN = 1325;
     DUO_CALL_LOG_INVITE_SHOWN = 1326;
+
+    // NUI bottom navigation bar
+    NUI_SWITCH_TAB_TO_FAVORITE = 1327;
+    NUI_SWITCH_TAB_TO_CALL_LOG = 1328;
+    NUI_SWITCH_TAB_TO_CONTACTS = 1329;
+    NUI_SWITCH_TAB_TO_VOICEMAIL = 1330;
+    // NUI search
+    NUI_TOUCH_DIALPAD_SEARCH_LIST_TO_CLOSE_SEARCH_AND_DIALPAD = 1331;
+    NUI_TOUCH_DIALPAD_SEARCH_LIST_TO_HIDE_DIALPAD = 1332;
+    NUI_TOUCH_SEARCH_LIST_TO_CLOSE_SEARCH = 1333;
+    NUI_TOUCH_SEARCH_LIST_TO_HIDE_KEYBOARD = 1334;
+    NUI_PRESS_BACK_BUTTON_TO_CLOSE_SEARCH = 1335;
+    NUI_PRESS_BACK_BUTTON_TO_CLOSE_SEARCH_AND_DIALPAD = 1336;
+    NUI_PRESS_BACK_BUTTON_TO_HIDE_DIALPAD = 1337;
+    NUI_CLICK_SEARCH_BAR = 1338;
+    NUI_CLICK_SEARCH_BAR_VOICE_BUTTON = 1339;
+    // NUI FAB
+    NUI_CLICK_FAB_TO_OPEN_DIALPAD = 1340;
   }
 }
diff --git a/java/com/android/dialer/main/impl/MainSearchController.java b/java/com/android/dialer/main/impl/MainSearchController.java
index d0e593c..e0d42ab 100644
--- a/java/com/android/dialer/main/impl/MainSearchController.java
+++ b/java/com/android/dialer/main/impl/MainSearchController.java
@@ -40,6 +40,7 @@
 import com.android.dialer.dialpadview.DialpadFragment;
 import com.android.dialer.dialpadview.DialpadFragment.DialpadListener;
 import com.android.dialer.dialpadview.DialpadFragment.OnDialpadQueryChangedListener;
+import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.logging.ScreenEvent;
 import com.android.dialer.main.impl.bottomnav.BottomNavBar;
@@ -204,14 +205,23 @@
   public void onSearchListTouch() {
     if (isDialpadVisible()) {
       if (TextUtils.isEmpty(getDialpadFragment().getQuery())) {
+        Logger.get(mainActivity)
+            .logImpression(
+                DialerImpression.Type.NUI_TOUCH_DIALPAD_SEARCH_LIST_TO_CLOSE_SEARCH_AND_DIALPAD);
         closeSearch(true);
       } else {
+        Logger.get(mainActivity)
+            .logImpression(DialerImpression.Type.NUI_TOUCH_DIALPAD_SEARCH_LIST_TO_HIDE_DIALPAD);
         hideDialpad(/* animate=*/ true, /* bottomNavVisible=*/ false);
       }
     } else if (isSearchVisible()) {
       if (TextUtils.isEmpty(toolbar.getQuery())) {
+        Logger.get(mainActivity)
+            .logImpression(DialerImpression.Type.NUI_TOUCH_SEARCH_LIST_TO_CLOSE_SEARCH);
         closeSearch(true);
       } else {
+        Logger.get(mainActivity)
+            .logImpression(DialerImpression.Type.NUI_TOUCH_SEARCH_LIST_TO_HIDE_KEYBOARD);
         toolbar.hideKeyboard();
       }
     }
@@ -225,10 +235,17 @@
   public boolean onBackPressed() {
     if (isDialpadVisible() && !TextUtils.isEmpty(getDialpadFragment().getQuery())) {
       LogUtil.i("MainSearchController#onBackPressed", "Dialpad visible with query");
+      Logger.get(mainActivity)
+          .logImpression(DialerImpression.Type.NUI_PRESS_BACK_BUTTON_TO_HIDE_DIALPAD);
       hideDialpad(/* animate=*/ true, /* bottomNavVisible=*/ false);
       return true;
     } else if (isSearchVisible()) {
       LogUtil.i("MainSearchController#onBackPressed", "Search is visible");
+      Logger.get(mainActivity)
+          .logImpression(
+              isDialpadVisible()
+                  ? DialerImpression.Type.NUI_PRESS_BACK_BUTTON_TO_CLOSE_SEARCH_AND_DIALPAD
+                  : DialerImpression.Type.NUI_PRESS_BACK_BUTTON_TO_CLOSE_SEARCH);
       closeSearch(true);
       return true;
     } else {
@@ -297,6 +314,7 @@
    */
   @Override
   public void onSearchBarClicked() {
+    Logger.get(mainActivity).logImpression(DialerImpression.Type.NUI_CLICK_SEARCH_BAR);
     openSearch(Optional.absent());
   }
 
@@ -350,6 +368,7 @@
 
   @Override
   public void onVoiceButtonClicked(VoiceSearchResultCallback voiceSearchResultCallback) {
+    Logger.get(mainActivity).logImpression(DialerImpression.Type.NUI_CLICK_SEARCH_BAR_VOICE_BUTTON);
     try {
       Intent voiceIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
       mainActivity.startActivityForResult(voiceIntent, ActivityRequestCodes.DIALTACTS_VOICE_SEARCH);
diff --git a/java/com/android/dialer/main/impl/OldMainActivityPeer.java b/java/com/android/dialer/main/impl/OldMainActivityPeer.java
index b639701..07c7185 100644
--- a/java/com/android/dialer/main/impl/OldMainActivityPeer.java
+++ b/java/com/android/dialer/main/impl/OldMainActivityPeer.java
@@ -66,6 +66,8 @@
 import com.android.dialer.dialpadview.DialpadFragment.LastOutgoingCallCallback;
 import com.android.dialer.dialpadview.DialpadFragment.OnDialpadQueryChangedListener;
 import com.android.dialer.interactions.PhoneNumberInteraction;
+import com.android.dialer.logging.DialerImpression;
+import com.android.dialer.logging.Logger;
 import com.android.dialer.main.MainActivityPeer;
 import com.android.dialer.main.impl.bottomnav.BottomNavBar;
 import com.android.dialer.main.impl.bottomnav.BottomNavBar.OnBottomNavTabSelectedListener;
@@ -154,6 +156,7 @@
 
   @Override
   public void onActivityCreate(Bundle savedInstanceState) {
+    LogUtil.enterBlock("OldMainActivityPeer.onActivityCreate");
     mainActivity.setContentView(R.layout.main_activity);
     initUiListeners();
     initLayout(savedInstanceState);
@@ -173,14 +176,19 @@
     snackbarContainer = mainActivity.findViewById(R.id.coordinator_layout);
 
     FloatingActionButton fab = mainActivity.findViewById(R.id.fab);
-    fab.setOnClickListener(v -> searchController.showDialpad(true));
+    fab.setOnClickListener(
+        v -> {
+          Logger.get(mainActivity)
+              .logImpression(DialerImpression.Type.NUI_CLICK_FAB_TO_OPEN_DIALPAD);
+          searchController.showDialpad(true);
+        });
 
     MainToolbar toolbar = mainActivity.findViewById(R.id.toolbar);
     mainActivity.setSupportActionBar(mainActivity.findViewById(R.id.toolbar));
 
     bottomNav = mainActivity.findViewById(R.id.bottom_nav_bar);
     MainBottomNavBarBottomNavTabListener bottomNavTabListener =
-        new MainBottomNavBarBottomNavTabListener(mainActivity.getFragmentManager());
+        new MainBottomNavBarBottomNavTabListener(mainActivity, mainActivity.getFragmentManager());
     bottomNav.addOnTabSelectedListener(bottomNavTabListener);
 
     callLogFragmentListener =
@@ -222,6 +230,7 @@
 
   @Override
   public void onNewIntent(Intent intent) {
+    LogUtil.enterBlock("OldMainActivityPeer.onNewIntent");
     showTabOnIntent(intent);
   }
 
@@ -312,10 +321,15 @@
 
   @Override
   public void onActivityResult(int requestCode, int resultCode, Intent data) {
+    LogUtil.i(
+        "OldMainActivityPeer.onActivityResult",
+        "requestCode:%d, resultCode:%d",
+        requestCode,
+        resultCode);
     if (requestCode == ActivityRequestCodes.DIALTACTS_VOICE_SEARCH) {
       searchController.onVoiceResults(resultCode, data);
     } else {
-      LogUtil.e("MainActivity.onActivityResult", "Unknown request code: " + requestCode);
+      LogUtil.e("OldMainActivityPeer.onActivityResult", "Unknown request code: " + requestCode);
     }
   }
 
@@ -353,6 +367,8 @@
       return (T) onPhoneNumberPickerActionListener;
     } else if (callbackInterface.isInstance(oldSpeedDialFragmentHost)) {
       return (T) oldSpeedDialFragmentHost;
+    } else if (callbackInterface.isInstance(searchController)) {
+      return (T) searchController;
     } else {
       return null;
     }
@@ -802,13 +818,20 @@
     private static final String VOICEMAIL_TAG = "voicemail";
 
     private final FragmentManager fragmentManager;
+    private final Context context;
+    @TabIndex private int selectedTab = -1;
 
-    private MainBottomNavBarBottomNavTabListener(FragmentManager fragmentManager) {
+    private MainBottomNavBarBottomNavTabListener(Context context, FragmentManager fragmentManager) {
       this.fragmentManager = fragmentManager;
+      this.context = context;
     }
 
     @Override
     public void onSpeedDialSelected() {
+      if (selectedTab != TabIndex.SPEED_DIAL) {
+        Logger.get(context).logImpression(DialerImpression.Type.NUI_SWITCH_TAB_TO_FAVORITE);
+        selectedTab = TabIndex.SPEED_DIAL;
+      }
       hideAllFragments();
       Fragment fragment = fragmentManager.findFragmentByTag(SPEED_DIAL_TAG);
       if (fragment == null) {
@@ -823,6 +846,10 @@
 
     @Override
     public void onCallLogSelected() {
+      if (selectedTab != TabIndex.CALL_LOG) {
+        Logger.get(context).logImpression(DialerImpression.Type.NUI_SWITCH_TAB_TO_CALL_LOG);
+        selectedTab = TabIndex.CALL_LOG;
+      }
       hideAllFragments();
       CallLogFragment fragment = (CallLogFragment) fragmentManager.findFragmentByTag(CALL_LOG_TAG);
       if (fragment == null) {
@@ -837,6 +864,10 @@
 
     @Override
     public void onContactsSelected() {
+      if (selectedTab != TabIndex.CONTACTS) {
+        Logger.get(context).logImpression(DialerImpression.Type.NUI_SWITCH_TAB_TO_CONTACTS);
+        selectedTab = TabIndex.CONTACTS;
+      }
       hideAllFragments();
       ContactsFragment fragment =
           (ContactsFragment) fragmentManager.findFragmentByTag(CONTACTS_TAG);
@@ -855,6 +886,10 @@
 
     @Override
     public void onVoicemailSelected() {
+      if (selectedTab != TabIndex.VOICEMAIL) {
+        Logger.get(context).logImpression(DialerImpression.Type.NUI_SWITCH_TAB_TO_VOICEMAIL);
+        selectedTab = TabIndex.VOICEMAIL;
+      }
       hideAllFragments();
       VisualVoicemailCallLogFragment fragment =
           (VisualVoicemailCallLogFragment) fragmentManager.findFragmentByTag(VOICEMAIL_TAG);
diff --git a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
index c62d40e..2d45457 100644
--- a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
+++ b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
@@ -488,7 +488,9 @@
     if (event.getAction() == MotionEvent.ACTION_UP) {
       v.performClick();
     }
-    FragmentUtils.getParentUnsafe(this, SearchFragmentListener.class).onSearchListTouch();
+    if (event.getAction() == MotionEvent.ACTION_DOWN) {
+      FragmentUtils.getParentUnsafe(this, SearchFragmentListener.class).onSearchListTouch();
+    }
     return false;
   }