summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/main
diff options
context:
space:
mode:
authoryueg <yueg@google.com>2018-03-06 15:23:24 -0800
committerCopybara-Service <copybara-piper@google.com>2018-03-06 16:52:45 -0800
commita05ee285f99e06efa130453eac12f02161cd3a64 (patch)
tree6a6a18330fbe24c7335d16318d800c1e986290e3 /java/com/android/dialer/main
parent43b6a3ffe8953ec4efba356f863aabbcddcc3b45 (diff)
NUI logging
- Add screen events for 4 tabs, dialpad and search. - Add impressions for opening MainActivity with tabs/dialpad (non user tab selection). - Add impression for VVM visible. Bug: 72525843 Test: MainActivityOldPeerTest, MainSearchControllerTest PiperOrigin-RevId: 188090249 Change-Id: Ifdf3519f07d7230f20b5d82691a96747b1944d63
Diffstat (limited to 'java/com/android/dialer/main')
-rw-r--r--java/com/android/dialer/main/impl/MainSearchController.java5
-rw-r--r--java/com/android/dialer/main/impl/OldMainActivityPeer.java59
-rw-r--r--java/com/android/dialer/main/impl/bottomnav/BottomNavBar.java50
3 files changed, 80 insertions, 34 deletions
diff --git a/java/com/android/dialer/main/impl/MainSearchController.java b/java/com/android/dialer/main/impl/MainSearchController.java
index 993ed3d8c..7d57f9867 100644
--- a/java/com/android/dialer/main/impl/MainSearchController.java
+++ b/java/com/android/dialer/main/impl/MainSearchController.java
@@ -114,6 +114,8 @@ public class MainSearchController implements SearchBarListener {
private void showDialpad(boolean animate, boolean fromNewIntent) {
Assert.checkArgument(!isDialpadVisible());
+ Logger.get(mainActivity).logScreenView(ScreenEvent.Type.MAIN_DIALPAD, mainActivity);
+
fab.hide();
toolbar.slideUp(animate);
toolbar.expand(animate, Optional.absent());
@@ -357,6 +359,9 @@ public class MainSearchController implements SearchBarListener {
private void openSearch(Optional<String> query) {
LogUtil.enterBlock("MainSearchController.openSearch");
+
+ Logger.get(mainActivity).logScreenView(ScreenEvent.Type.MAIN_SEARCH, mainActivity);
+
fab.hide();
toolbar.expand(/* animate=*/ true, query);
toolbar.showKeyboard();
diff --git a/java/com/android/dialer/main/impl/OldMainActivityPeer.java b/java/com/android/dialer/main/impl/OldMainActivityPeer.java
index e87fb0eca..d0dd2c0d6 100644
--- a/java/com/android/dialer/main/impl/OldMainActivityPeer.java
+++ b/java/com/android/dialer/main/impl/OldMainActivityPeer.java
@@ -83,6 +83,7 @@ import com.android.dialer.duo.DuoComponent;
import com.android.dialer.interactions.PhoneNumberInteraction;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
+import com.android.dialer.logging.ScreenEvent;
import com.android.dialer.main.MainActivityPeer;
import com.android.dialer.main.impl.bottomnav.BottomNavBar;
import com.android.dialer.main.impl.bottomnav.BottomNavBar.OnBottomNavTabSelectedListener;
@@ -242,6 +243,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
onPhoneNumberPickerActionListener = new MainOnPhoneNumberPickerActionListener(mainActivity);
oldSpeedDialFragmentHost =
new MainOldSpeedDialFragmentHost(
+ mainActivity,
bottomNav,
mainActivity.findViewById(R.id.contact_tile_drag_shadow_overlay),
mainActivity.findViewById(R.id.remove_view),
@@ -337,31 +339,35 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
// select a tab here.
// 2) Don't return early here in case the intent does contain extra data.
// 3) External intents should take priority over other intents (like Calls.CONTENT_TYPE).
+ @TabIndex int tabToSelect;
if (Calls.CONTENT_TYPE.equals(intent.getType())) {
Bundle extras = intent.getExtras();
if (extras != null && extras.getInt(Calls.EXTRA_CALL_TYPE_FILTER) == Calls.VOICEMAIL_TYPE) {
LogUtil.i("OldMainActivityPeer.onHandleIntent", "Voicemail content type intent");
- bottomNav.selectTab(TabIndex.VOICEMAIL);
+ tabToSelect = TabIndex.VOICEMAIL;
Logger.get(mainActivity).logImpression(DialerImpression.Type.VVM_NOTIFICATION_CLICKED);
} else {
LogUtil.i("OldMainActivityPeer.onHandleIntent", "Call log content type intent");
- bottomNav.selectTab(TabIndex.CALL_LOG);
+ tabToSelect = TabIndex.CALL_LOG;
}
} else if (isShowTabIntent(intent)) {
LogUtil.i("OldMainActivityPeer.onHandleIntent", "Show tab intent");
- bottomNav.selectTab(getTabFromIntent(intent));
+ tabToSelect = getTabFromIntent(intent);
} else if (lastTabController.isEnabled) {
LogUtil.i("OldMainActivityPeer.onHandleIntent", "Show last tab");
- lastTabController.selectLastTab();
+ tabToSelect = lastTabController.getLastTab();
} else {
- bottomNav.selectTab(TabIndex.SPEED_DIAL);
+ tabToSelect = TabIndex.SPEED_DIAL;
}
+ logImpressionForSelectedTab(tabToSelect);
+ bottomNav.selectTab(tabToSelect);
if (isDialOrAddCallIntent(intent)) {
LogUtil.i("OldMainActivityPeer.onHandleIntent", "Dial or add call intent");
// Dialpad will grab the intent and populate the number
searchController.showDialpadFromNewIntent();
+ Logger.get(mainActivity).logImpression(DialerImpression.Type.MAIN_OPEN_WITH_DIALPAD);
}
if (intent.getBooleanExtra(DialtactsActivity.EXTRA_CLEAR_NEW_VOICEMAILS, false)) {
@@ -370,6 +376,21 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
}
}
+ /** Log impression for non user tab selection. */
+ private void logImpressionForSelectedTab(@TabIndex int tab) {
+ if (tab == TabIndex.SPEED_DIAL) {
+ Logger.get(mainActivity).logImpression(DialerImpression.Type.MAIN_OPEN_WITH_TAB_FAVORITE);
+ } else if (tab == TabIndex.CALL_LOG) {
+ Logger.get(mainActivity).logImpression(DialerImpression.Type.MAIN_OPEN_WITH_TAB_CALL_LOG);
+ } else if (tab == TabIndex.CONTACTS) {
+ Logger.get(mainActivity).logImpression(DialerImpression.Type.MAIN_OPEN_WITH_TAB_CONTACTS);
+ } else if (tab == TabIndex.VOICEMAIL) {
+ Logger.get(mainActivity).logImpression(DialerImpression.Type.MAIN_OPEN_WITH_TAB_VOICEMAIL);
+ } else {
+ throw new IllegalStateException("Invalid tab: " + tab);
+ }
+ }
+
/** Returns true if the given intent is a Dial intent with data or an Add Call intent. */
private boolean isDialOrAddCallIntent(Intent intent) {
if (intent == null) {
@@ -819,8 +840,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
numberOfActiveVoicemailSources));
if (hasActiveVoicemailProvider) {
- // TODO(yueg): Use new logging for VVM_TAB_VISIBLE
- // Logger.get(context).logImpression(DialerImpression.Type.VVM_TAB_VISIBLE);
+ Logger.get(context).logImpression(DialerImpression.Type.MAIN_VVM_TAB_VISIBLE);
bottomNavBar.showVoicemail(true);
callLogQueryHandler.fetchVoicemailUnreadCount();
} else {
@@ -994,6 +1014,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
private static final class MainOldSpeedDialFragmentHost
implements OldSpeedDialFragment.HostInterface, OnDragDropListener {
+ private final Context context;
private final BottomNavBar bottomNavBar;
private final ImageView dragShadowOverlay;
private final RemoveView removeView;
@@ -1005,11 +1026,13 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
private DragDropController dragDropController;
MainOldSpeedDialFragmentHost(
+ Context context,
BottomNavBar bottomNavBar,
ImageView dragShadowOverlay,
RemoveView removeView,
View searchViewContainer,
MainToolbar toolbar) {
+ this.context = context;
this.bottomNavBar = bottomNavBar;
this.dragShadowOverlay = dragShadowOverlay;
this.removeView = removeView;
@@ -1025,6 +1048,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
@Override
public void showAllContactsTab() {
bottomNavBar.selectTab(TabIndex.CONTACTS);
+ Logger.get(context).logImpression(DialerImpression.Type.MAIN_OPEN_WITH_TAB_CONTACTS);
}
@Override
@@ -1077,22 +1101,22 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
private static final String CONTACTS_TAG = "contacts";
private static final String VOICEMAIL_TAG = "voicemail";
- private final Context context;
+ private final MainActivity mainActivity;
private final FragmentManager fragmentManager;
private final FloatingActionButton fab;
@TabIndex private int selectedTab = -1;
private MainBottomNavBarBottomNavTabListener(
- Context context, FragmentManager fragmentManager, FloatingActionButton fab) {
- this.context = context;
+ MainActivity mainActivity, FragmentManager fragmentManager, FloatingActionButton fab) {
+ this.mainActivity = mainActivity;
this.fragmentManager = fragmentManager;
this.fab = fab;
preloadCallLogFragment();
}
private void preloadCallLogFragment() {
- if (ConfigProviderBindings.get(context).getBoolean("nui_preload_call_log", true)) {
+ if (ConfigProviderBindings.get(mainActivity).getBoolean("nui_preload_call_log", true)) {
CallLogFragment fragment = new CallLogFragment();
fragmentManager
.beginTransaction()
@@ -1106,7 +1130,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
public void onSpeedDialSelected() {
LogUtil.enterBlock("MainBottomNavBarBottomNavTabListener.onSpeedDialSelected");
if (selectedTab != TabIndex.SPEED_DIAL) {
- Logger.get(context).logImpression(DialerImpression.Type.MAIN_SWITCH_TAB_TO_FAVORITE);
+ Logger.get(mainActivity).logScreenView(ScreenEvent.Type.MAIN_SPEED_DIAL, mainActivity);
selectedTab = TabIndex.SPEED_DIAL;
}
hideAllFragments();
@@ -1126,7 +1150,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
public void onCallLogSelected() {
LogUtil.enterBlock("MainBottomNavBarBottomNavTabListener.onCallLogSelected");
if (selectedTab != TabIndex.CALL_LOG) {
- Logger.get(context).logImpression(DialerImpression.Type.MAIN_SWITCH_TAB_TO_CALL_LOG);
+ Logger.get(mainActivity).logScreenView(ScreenEvent.Type.MAIN_CALL_LOG, mainActivity);
selectedTab = TabIndex.CALL_LOG;
}
hideAllFragments();
@@ -1146,7 +1170,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
public void onContactsSelected() {
LogUtil.enterBlock("MainBottomNavBarBottomNavTabListener.onContactsSelected");
if (selectedTab != TabIndex.CONTACTS) {
- Logger.get(context).logImpression(DialerImpression.Type.MAIN_SWITCH_TAB_TO_CONTACTS);
+ Logger.get(mainActivity).logScreenView(ScreenEvent.Type.MAIN_CONTACTS, mainActivity);
selectedTab = TabIndex.CONTACTS;
}
hideAllFragments();
@@ -1170,7 +1194,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
public void onVoicemailSelected() {
LogUtil.enterBlock("MainBottomNavBarBottomNavTabListener.onVoicemailSelected");
if (selectedTab != TabIndex.VOICEMAIL) {
- Logger.get(context).logImpression(DialerImpression.Type.MAIN_SWITCH_TAB_TO_VOICEMAIL);
+ Logger.get(mainActivity).logScreenView(ScreenEvent.Type.MAIN_VOICEMAIL, mainActivity);
selectedTab = TabIndex.VOICEMAIL;
}
hideAllFragments();
@@ -1228,7 +1252,8 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
}
/** Sets the last tab if the feature is enabled, otherwise defaults to speed dial. */
- void selectLastTab() {
+ @TabIndex
+ int getLastTab() {
@TabIndex int tabIndex = TabIndex.SPEED_DIAL;
if (isEnabled) {
tabIndex =
@@ -1242,7 +1267,7 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen
tabIndex = TabIndex.SPEED_DIAL;
}
- bottomNavBar.selectTab(tabIndex);
+ return tabIndex;
}
void onActivityStop() {
diff --git a/java/com/android/dialer/main/impl/bottomnav/BottomNavBar.java b/java/com/android/dialer/main/impl/bottomnav/BottomNavBar.java
index 5ee33fc71..903f51fd2 100644
--- a/java/com/android/dialer/main/impl/bottomnav/BottomNavBar.java
+++ b/java/com/android/dialer/main/impl/bottomnav/BottomNavBar.java
@@ -24,6 +24,8 @@ import android.view.View;
import android.widget.LinearLayout;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.logging.DialerImpression;
+import com.android.dialer.logging.Logger;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
@@ -74,27 +76,35 @@ public final class BottomNavBar extends LinearLayout {
speedDial.setOnClickListener(
v -> {
- selectedTab = TabIndex.SPEED_DIAL;
- setSelected(speedDial);
- updateListeners(selectedTab);
+ if (selectedTab != TabIndex.SPEED_DIAL) {
+ Logger.get(getContext())
+ .logImpression(DialerImpression.Type.MAIN_SWITCH_TAB_TO_FAVORITE);
+ }
+ selectTab(TabIndex.SPEED_DIAL);
});
callLog.setOnClickListener(
v -> {
- selectedTab = TabIndex.CALL_LOG;
- setSelected(callLog);
- updateListeners(selectedTab);
+ if (selectedTab != TabIndex.CALL_LOG) {
+ Logger.get(getContext())
+ .logImpression(DialerImpression.Type.MAIN_SWITCH_TAB_TO_CALL_LOG);
+ }
+ selectTab(TabIndex.CALL_LOG);
});
contacts.setOnClickListener(
v -> {
- selectedTab = TabIndex.CONTACTS;
- setSelected(contacts);
- updateListeners(selectedTab);
+ if (selectedTab != TabIndex.CONTACTS) {
+ Logger.get(getContext())
+ .logImpression(DialerImpression.Type.MAIN_SWITCH_TAB_TO_CONTACTS);
+ }
+ selectTab(TabIndex.CONTACTS);
});
voicemail.setOnClickListener(
v -> {
- selectedTab = TabIndex.VOICEMAIL;
- setSelected(voicemail);
- updateListeners(selectedTab);
+ if (selectedTab != TabIndex.VOICEMAIL) {
+ Logger.get(getContext())
+ .logImpression(DialerImpression.Type.MAIN_SWITCH_TAB_TO_VOICEMAIL);
+ }
+ selectTab(TabIndex.VOICEMAIL);
});
}
@@ -106,22 +116,28 @@ public final class BottomNavBar extends LinearLayout {
}
/**
- * Calls {@link View#performClick()} on the desired tab.
+ * Select tab for uesr and non-user click.
*
* @param tab {@link TabIndex}
*/
public void selectTab(@TabIndex int tab) {
if (tab == TabIndex.SPEED_DIAL) {
- speedDial.performClick();
+ selectedTab = TabIndex.SPEED_DIAL;
+ setSelected(speedDial);
} else if (tab == TabIndex.CALL_LOG) {
- callLog.performClick();
+ selectedTab = TabIndex.CALL_LOG;
+ setSelected(callLog);
} else if (tab == TabIndex.CONTACTS) {
- contacts.performClick();
+ selectedTab = TabIndex.CONTACTS;
+ setSelected(contacts);
} else if (tab == TabIndex.VOICEMAIL) {
- voicemail.performClick();
+ selectedTab = TabIndex.VOICEMAIL;
+ setSelected(voicemail);
} else {
throw new IllegalStateException("Invalid tab: " + tab);
}
+
+ updateListeners(selectedTab);
}
/**