Merge "NUI favorite logging"
am: 3d97f592b5
Change-Id: Iaef07b61c6125ce28c232239c1747a019efbfb34
diff --git a/java/com/android/dialer/callintent/call_initiation_type.proto b/java/com/android/dialer/callintent/call_initiation_type.proto
index 27d4461..3823e49 100644
--- a/java/com/android/dialer/callintent/call_initiation_type.proto
+++ b/java/com/android/dialer/callintent/call_initiation_type.proto
@@ -21,6 +21,7 @@
DIALPAD = 2;
SPEED_DIAL = 3;
+ SPEED_DIAL_DISAMBIG_DIALOG = 20;
REMOTE_DIRECTORY = 4;
diff --git a/java/com/android/dialer/logging/dialer_impression.proto b/java/com/android/dialer/logging/dialer_impression.proto
index 96775ca..f3173f8 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: 1399
+ // Next Tag: 1409
enum Type {
UNKNOWN_AOSP_EVENT_TYPE = 1000;
@@ -783,5 +783,19 @@
// Impressions for PhoneLookup
PEOPLE_API_PHONE_LOOKUP_TIMEOUT = 1397;
CP2_EXTENDED_DIRECTORY_PHONE_LOOKUP_TIMEOUT = 1398;
+
+ // Favorite general
+ FAVORITE_ADD_FAVORITE = 1399;
+ FAVORITE_OPEN_DISAMBIG_DIALOG = 1400;
+ FAVORITE_REMOVE_FAVORITE_BY_DRAG_AND_DROP = 1401;
+ FAVORITE_MOVE_FAVORITE_BY_DRAG_AND_DROP = 1402;
+ // Favorite menu
+ FAVORITE_OPEN_FAVORITE_MENU = 1403;
+ FAVORITE_SEND_MESSAGE = 1404;
+ FAVORITE_OPEN_CONTACT_CARD = 1405;
+ FAVORITE_REMOVE_FAVORITE = 1406; // Include drag and drop
+ // Favorite disambig
+ FAVORITE_SET_VIDEO_DEFAULT = 1407;
+ FAVORITE_SET_VOICE_DEFAULT = 1408;
}
}
diff --git a/java/com/android/dialer/speeddial/DisambigDialog.java b/java/com/android/dialer/speeddial/DisambigDialog.java
index 868f91d..15b8109 100644
--- a/java/com/android/dialer/speeddial/DisambigDialog.java
+++ b/java/com/android/dialer/speeddial/DisambigDialog.java
@@ -61,7 +61,7 @@
private SpeedDialUiItem speedDialUiItem;
@VisibleForTesting public List<Channel> channels;
@VisibleForTesting public LinearLayout container;
- private CheckBox rememberThisChoice;
+ @VisibleForTesting public CheckBox rememberThisChoice;
/** Show a disambiguation dialog for a starred contact without a favorite communication avenue. */
public static DisambigDialog show(SpeedDialUiItem speedDialUiItem, FragmentManager manager) {
@@ -174,6 +174,7 @@
private void onVideoOptionClicked(Channel channel) {
if (rememberThisChoice.isChecked()) {
+ Logger.get(getContext()).logImpression(DialerImpression.Type.FAVORITE_SET_VIDEO_DEFAULT);
setDefaultChannel(getContext().getApplicationContext(), speedDialUiItem, channel);
}
@@ -185,7 +186,7 @@
PreCall.start(
getContext(),
- new CallIntentBuilder(channel.number(), CallInitiationType.Type.SPEED_DIAL)
+ new CallIntentBuilder(channel.number(), CallInitiationType.Type.SPEED_DIAL_DISAMBIG_DIALOG)
.setAllowAssistedDial(true)
.setIsVideoCall(true)
.setIsDuoCall(channel.technology() == Channel.DUO));
@@ -194,12 +195,13 @@
private void onVoiceOptionClicked(Channel channel) {
if (rememberThisChoice.isChecked()) {
+ Logger.get(getContext()).logImpression(DialerImpression.Type.FAVORITE_SET_VOICE_DEFAULT);
setDefaultChannel(getContext().getApplicationContext(), speedDialUiItem, channel);
}
PreCall.start(
getContext(),
- new CallIntentBuilder(channel.number(), CallInitiationType.Type.SPEED_DIAL)
+ new CallIntentBuilder(channel.number(), CallInitiationType.Type.SPEED_DIAL_DISAMBIG_DIALOG)
.setAllowAssistedDial(true));
dismiss();
}
diff --git a/java/com/android/dialer/speeddial/SpeedDialFragment.java b/java/com/android/dialer/speeddial/SpeedDialFragment.java
index aabf28b..a958d44 100644
--- a/java/com/android/dialer/speeddial/SpeedDialFragment.java
+++ b/java/com/android/dialer/speeddial/SpeedDialFragment.java
@@ -28,6 +28,7 @@
import android.provider.ContactsContract.Contacts;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.support.annotation.VisibleForTesting;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
@@ -162,7 +163,7 @@
recyclerView.setAdapter(adapter);
// Setup drag and drop touch helper
- ItemTouchHelper.Callback callback = new SpeedDialItemTouchHelperCallback(adapter);
+ ItemTouchHelper.Callback callback = new SpeedDialItemTouchHelperCallback(getContext(), adapter);
ItemTouchHelper touchHelper = new ItemTouchHelper(callback);
touchHelper.attachToRecyclerView(recyclerView);
adapter.setItemTouchHelper(touchHelper);
@@ -249,6 +250,7 @@
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == ActivityRequestCodes.SPEED_DIAL_ADD_FAVORITE) {
if (resultCode == AppCompatActivity.RESULT_OK && data.getData() != null) {
+ Logger.get(getContext()).logImpression(DialerImpression.Type.FAVORITE_ADD_FAVORITE);
updateSpeedDialItemsOnResume = false;
speedDialLoaderListener.listen(
getContext(),
@@ -335,7 +337,8 @@
}
}
- private static final class SpeedDialFavoritesListener implements FavoriteContactsListener {
+ @VisibleForTesting
+ static final class SpeedDialFavoritesListener implements FavoriteContactsListener {
private final FragmentActivity activity;
private final FragmentManager childFragmentManager;
@@ -369,6 +372,7 @@
return;
}
+ Logger.get(activity).logImpression(DialerImpression.Type.FAVORITE_OPEN_DISAMBIG_DIALOG);
DisambigDialog.show(speedDialUiItem, childFragmentManager);
}
@@ -389,6 +393,7 @@
@Override
public void showContextMenu(View view, SpeedDialUiItem speedDialUiItem) {
+ Logger.get(activity).logImpression(DialerImpression.Type.FAVORITE_OPEN_FAVORITE_MENU);
layoutManager.setScrollEnabled(false);
contextMenu =
ContextMenu.show(activity, view, speedDialContextMenuItemListener, speedDialUiItem);
@@ -406,6 +411,8 @@
@Override
public void onRequestRemove(SpeedDialUiItem speedDialUiItem) {
+ Logger.get(activity)
+ .logImpression(DialerImpression.Type.FAVORITE_REMOVE_FAVORITE_BY_DRAG_AND_DROP);
speedDialContextMenuItemListener.removeFavoriteContact(speedDialUiItem);
}
@@ -439,11 +446,13 @@
@Override
public void openSmsConversation(String number) {
+ Logger.get(activity).logImpression(DialerImpression.Type.FAVORITE_SEND_MESSAGE);
activity.startActivity(IntentUtil.getSendSmsIntent(number));
}
@Override
public void removeFavoriteContact(SpeedDialUiItem speedDialUiItem) {
+ Logger.get(activity).logImpression(DialerImpression.Type.FAVORITE_REMOVE_FAVORITE);
speedDialLoaderListener.listen(
activity,
UiItemLoaderComponent.get(activity)
@@ -457,6 +466,7 @@
@Override
public void openContactInfo(SpeedDialUiItem speedDialUiItem) {
+ Logger.get(activity).logImpression(DialerImpression.Type.FAVORITE_OPEN_CONTACT_CARD);
activity.startActivity(
new Intent(
Intent.ACTION_VIEW,
diff --git a/java/com/android/dialer/speeddial/draghelper/SpeedDialItemTouchHelperCallback.java b/java/com/android/dialer/speeddial/draghelper/SpeedDialItemTouchHelperCallback.java
index fc963a1..2f5d87c 100644
--- a/java/com/android/dialer/speeddial/draghelper/SpeedDialItemTouchHelperCallback.java
+++ b/java/com/android/dialer/speeddial/draghelper/SpeedDialItemTouchHelperCallback.java
@@ -16,17 +16,21 @@
package com.android.dialer.speeddial.draghelper;
+import android.content.Context;
import android.graphics.Canvas;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.support.v7.widget.helper.ItemTouchHelper;
+import com.android.dialer.logging.DialerImpression;
+import com.android.dialer.logging.Logger;
/** {@link ItemTouchHelper} for Speed Dial favorite contacts. */
public class SpeedDialItemTouchHelperCallback extends ItemTouchHelper.Callback {
private final ItemTouchHelperAdapter adapter;
+ private final Context context;
// When dragged item is in removeView, onMove() and onChildDraw() are called in turn. This
// behavior changes when dragged item entering/leaving removeView. The boolean field
@@ -34,7 +38,8 @@
private boolean movedOverRemoveView;
private boolean inRemoveView;
- public SpeedDialItemTouchHelperCallback(ItemTouchHelperAdapter adapter) {
+ public SpeedDialItemTouchHelperCallback(Context context, ItemTouchHelperAdapter adapter) {
+ this.context = context;
this.adapter = adapter;
}
@@ -91,6 +96,20 @@
}
@Override
+ public void onMoved(
+ @NonNull RecyclerView recyclerView,
+ @NonNull ViewHolder viewHolder,
+ int fromPos,
+ @NonNull ViewHolder viewHolder1,
+ int toPos,
+ int x,
+ int y) {
+ Logger.get(context)
+ .logImpression(DialerImpression.Type.FAVORITE_MOVE_FAVORITE_BY_DRAG_AND_DROP);
+ super.onMoved(recyclerView, viewHolder, fromPos, viewHolder1, toPos, x, y);
+ }
+
+ @Override
public void onChildDraw(
@NonNull Canvas canvas,
@NonNull RecyclerView recyclerView,