From a4377191c9a8201d983f66979b56b26b6221967b Mon Sep 17 00:00:00 2001 From: yueg Date: Thu, 15 Feb 2018 11:53:09 -0800 Subject: 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 --- .../android/dialer/logging/dialer_impression.proto | 20 +++++++++- .../dialer/main/impl/MainSearchController.java | 19 ++++++++++ .../dialer/main/impl/OldMainActivityPeer.java | 43 ++++++++++++++++++++-- .../searchfragment/list/NewSearchFragment.java | 4 +- 4 files changed, 80 insertions(+), 6 deletions(-) (limited to 'java/com/android/dialer') diff --git a/java/com/android/dialer/logging/dialer_impression.proto b/java/com/android/dialer/logging/dialer_impression.proto index f839b1399..635d8fd02 100644 --- a/java/com/android/dialer/logging/dialer_impression.proto +++ b/java/com/android/dialer/logging/dialer_impression.proto @@ -12,7 +12,7 @@ message DialerImpression { // 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 @@ message DialerImpression { 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 d0e593c80..e0d42abe6 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.constants.ActivityRequestCodes; 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 class MainSearchController implements SearchBarListener { 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 class MainSearchController implements SearchBarListener { 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 @@ public class MainSearchController implements SearchBarListener { */ @Override public void onSearchBarClicked() { + Logger.get(mainActivity).logImpression(DialerImpression.Type.NUI_CLICK_SEARCH_BAR); openSearch(Optional.absent()); } @@ -350,6 +368,7 @@ public class MainSearchController implements SearchBarListener { @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 b63970103..07c7185ae 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.DialpadListener; 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 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen @Override public void onActivityCreate(Bundle savedInstanceState) { + LogUtil.enterBlock("OldMainActivityPeer.onActivityCreate"); mainActivity.setContentView(R.layout.main_activity); initUiListeners(); initLayout(savedInstanceState); @@ -173,14 +176,19 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen 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 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen @Override public void onNewIntent(Intent intent) { + LogUtil.enterBlock("OldMainActivityPeer.onNewIntent"); showTabOnIntent(intent); } @@ -312,10 +321,15 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen @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 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen 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 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen 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 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen @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 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen @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 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen @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 c62d40e59..2d45457d2 100644 --- a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java +++ b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java @@ -488,7 +488,9 @@ public final class NewSearchFragment extends Fragment 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; } -- cgit v1.2.3