diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2017-08-31 16:17:04 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2017-08-31 16:17:04 +0000 |
commit | c39ea3c55fac807c0b98aabdf56c70dc8a49036c (patch) | |
tree | e282668a9587cf6c1ec7b604dea860400c75c6c7 /java/com/android/dialer/calldetails/CallDetailsFooterViewHolder.java | |
parent | 68038172793ee0e2ab3e2e56ddfbeb82879d1f58 (diff) | |
parent | 2ca4318cc1ee57dda907ba2069bd61d162b1baef (diff) |
Merge "Update Dialer source to latest internal Google revision."
Diffstat (limited to 'java/com/android/dialer/calldetails/CallDetailsFooterViewHolder.java')
-rw-r--r-- | java/com/android/dialer/calldetails/CallDetailsFooterViewHolder.java | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/java/com/android/dialer/calldetails/CallDetailsFooterViewHolder.java b/java/com/android/dialer/calldetails/CallDetailsFooterViewHolder.java index 3f894366f..9d3f4bcbc 100644 --- a/java/com/android/dialer/calldetails/CallDetailsFooterViewHolder.java +++ b/java/com/android/dialer/calldetails/CallDetailsFooterViewHolder.java @@ -26,33 +26,41 @@ import com.android.contacts.common.ClipboardUtils; import com.android.dialer.common.Assert; import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.Logger; +import com.android.dialer.logging.UiAction; +import com.android.dialer.performancereport.PerformanceReport; import com.android.dialer.util.CallUtil; import com.android.dialer.util.DialerUtils; /** ViewHolder container for {@link CallDetailsActivity} footer. */ -public class CallDetailsFooterViewHolder extends RecyclerView.ViewHolder - implements OnClickListener { +final class CallDetailsFooterViewHolder extends RecyclerView.ViewHolder implements OnClickListener { + private final ReportCallIdListener listener; private final View container; private final View copy; private final View edit; + private final View reportCallerId; private String number; - public CallDetailsFooterViewHolder(View view) { + CallDetailsFooterViewHolder(View view, ReportCallIdListener listener) { super(view); + this.listener = listener; container = view.findViewById(R.id.footer_container); copy = view.findViewById(R.id.call_detail_action_copy); edit = view.findViewById(R.id.call_detail_action_edit_before_call); + reportCallerId = view.findViewById(R.id.call_detail_action_report_caller_id); copy.setOnClickListener(this); edit.setOnClickListener(this); + reportCallerId.setOnClickListener(this); } public void setPhoneNumber(String number) { this.number = number; if (TextUtils.isEmpty(number)) { container.setVisibility(View.GONE); + } else if (listener.canReportCallerId(number)) { + reportCallerId.setVisibility(View.VISIBLE); } } @@ -60,14 +68,32 @@ public class CallDetailsFooterViewHolder extends RecyclerView.ViewHolder public void onClick(View view) { Context context = view.getContext(); if (view == copy) { + PerformanceReport.recordClick(UiAction.Type.COPY_NUMBER_IN_CALL_DETAIL); + Logger.get(context).logImpression(DialerImpression.Type.CALL_DETAILS_COPY_NUMBER); ClipboardUtils.copyText(context, null, number, true); } else if (view == edit) { + PerformanceReport.recordClick(UiAction.Type.EDIT_NUMBER_BEFORE_CALL_IN_CALL_DETAIL); + // Dialpad will be filled with this number, but we don't want to record it as user action + PerformanceReport.setIgnoreActionOnce(UiAction.Type.TEXT_CHANGE_WITH_INPUT); + Logger.get(context).logImpression(DialerImpression.Type.CALL_DETAILS_EDIT_BEFORE_CALL); Intent dialIntent = new Intent(Intent.ACTION_DIAL, CallUtil.getCallUri(number)); DialerUtils.startActivityWithErrorToast(context, dialIntent); + } else if (view == reportCallerId) { + listener.reportCallId(number); } else { Assert.fail("View on click not implemented: " + view); } } + + /** Listener for reporting caller id */ + interface ReportCallIdListener { + + /** Tell listener that the user requested to report caller id info as inaccurate. */ + void reportCallId(String number); + + /** returns true if the number can be reported as inaccurate. */ + boolean canReportCallerId(String number); + } } |