summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/calldetails
diff options
context:
space:
mode:
authorlinyuh <linyuh@google.com>2018-03-15 10:13:54 -0700
committerCopybara-Service <copybara-piper@google.com>2018-03-15 10:29:13 -0700
commit6b576be4554a219088b3d24f91c6e79819a4ac1b (patch)
treea32028c87e2535b542358a8a33e35e3b3e76c5f1 /java/com/android/dialer/calldetails
parent94067bd7f3a568fdabfaeb7a4980e9a85cd9b5c3 (diff)
Introduce GlidePhotoManager to CallDetailsActivity
Bug: 74202944 Test: ModulesTest, CallDetailsActivityTest PiperOrigin-RevId: 189204143 Change-Id: I917bac76009522c6a99fdb63299556ec2a454dfa
Diffstat (limited to 'java/com/android/dialer/calldetails')
-rw-r--r--java/com/android/dialer/calldetails/CallDetailsActivity.java19
-rw-r--r--java/com/android/dialer/calldetails/CallDetailsAdapter.java18
-rw-r--r--java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java14
-rw-r--r--java/com/android/dialer/calldetails/proto/call_details_header_info.proto36
4 files changed, 72 insertions, 15 deletions
diff --git a/java/com/android/dialer/calldetails/CallDetailsActivity.java b/java/com/android/dialer/calldetails/CallDetailsActivity.java
index 672043b6e..4dc294e76 100644
--- a/java/com/android/dialer/calldetails/CallDetailsActivity.java
+++ b/java/com/android/dialer/calldetails/CallDetailsActivity.java
@@ -28,7 +28,6 @@ import com.android.dialer.calldetails.CallDetailsFooterViewHolder.ReportCallIdLi
import com.android.dialer.calldetails.CallDetailsHeaderViewHolder.CallDetailsHeaderListener;
import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
import com.android.dialer.common.Assert;
-import com.android.dialer.dialercontact.DialerContact;
import com.android.dialer.enrichedcall.EnrichedCallComponent;
import com.android.dialer.protos.ProtoParsers;
@@ -42,26 +41,27 @@ import com.android.dialer.protos.ProtoParsers;
*/
public final class CallDetailsActivity extends CallDetailsActivityCommon {
public static final String EXTRA_COALESCED_CALL_LOG_IDS = "coalesced_call_log_ids";
- public static final String EXTRA_CONTACT = "contact";
+ public static final String EXTRA_HEADER_INFO = "header_info";
private static final int CALL_DETAILS_LOADER_ID = 0;
/** IDs of call log entries, used to retrieve them from the annotated call log. */
private CoalescedIds coalescedCallLogIds;
- private DialerContact contact;
+ /** Info to be shown in the header. */
+ private CallDetailsHeaderInfo headerInfo;
/** Returns an {@link Intent} to launch this activity. */
public static Intent newInstance(
Context context,
CoalescedIds coalescedAnnotatedCallLogIds,
- DialerContact contact,
+ CallDetailsHeaderInfo callDetailsHeaderInfo,
boolean canReportCallerId,
boolean canSupportAssistedDialing) {
Intent intent = new Intent(context, CallDetailsActivity.class);
- ProtoParsers.put(intent, EXTRA_CONTACT, Assert.isNotNull(contact));
ProtoParsers.put(
intent, EXTRA_COALESCED_CALL_LOG_IDS, Assert.isNotNull(coalescedAnnotatedCallLogIds));
+ ProtoParsers.put(intent, EXTRA_HEADER_INFO, Assert.isNotNull(callDetailsHeaderInfo));
intent.putExtra(EXTRA_CAN_REPORT_CALLER_ID, canReportCallerId);
intent.putExtra(EXTRA_CAN_SUPPORT_ASSISTED_DIALING, canSupportAssistedDialing);
return intent;
@@ -70,14 +70,17 @@ public final class CallDetailsActivity extends CallDetailsActivityCommon {
@Override
protected void handleIntent(Intent intent) {
Assert.checkArgument(intent.hasExtra(EXTRA_COALESCED_CALL_LOG_IDS));
+ Assert.checkArgument(intent.hasExtra(EXTRA_HEADER_INFO));
Assert.checkArgument(intent.hasExtra(EXTRA_CAN_REPORT_CALLER_ID));
Assert.checkArgument(intent.hasExtra(EXTRA_CAN_SUPPORT_ASSISTED_DIALING));
- contact = ProtoParsers.getTrusted(intent, EXTRA_CONTACT, DialerContact.getDefaultInstance());
setCallDetailsEntries(CallDetailsEntries.getDefaultInstance());
coalescedCallLogIds =
ProtoParsers.getTrusted(
intent, EXTRA_COALESCED_CALL_LOG_IDS, CoalescedIds.getDefaultInstance());
+ headerInfo =
+ ProtoParsers.getTrusted(
+ intent, EXTRA_HEADER_INFO, CallDetailsHeaderInfo.getDefaultInstance());
getLoaderManager()
.initLoader(
@@ -91,7 +94,7 @@ public final class CallDetailsActivity extends CallDetailsActivityCommon {
DeleteCallDetailsListener deleteCallDetailsListener) {
return new CallDetailsAdapter(
this,
- contact,
+ headerInfo,
getCallDetailsEntries(),
callDetailsHeaderListener,
reportCallIdListener,
@@ -100,7 +103,7 @@ public final class CallDetailsActivity extends CallDetailsActivityCommon {
@Override
protected String getNumber() {
- return contact.getNumber();
+ return headerInfo.getDialerPhoneNumber().getNormalizedNumber();
}
/**
diff --git a/java/com/android/dialer/calldetails/CallDetailsAdapter.java b/java/com/android/dialer/calldetails/CallDetailsAdapter.java
index dfa472a71..2a4c1efca 100644
--- a/java/com/android/dialer/calldetails/CallDetailsAdapter.java
+++ b/java/com/android/dialer/calldetails/CallDetailsAdapter.java
@@ -16,12 +16,12 @@
package com.android.dialer.calldetails;
+
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.android.dialer.calldetails.CallDetailsFooterViewHolder.DeleteCallDetailsListener;
import com.android.dialer.calldetails.CallDetailsHeaderViewHolder.CallDetailsHeaderListener;
-import com.android.dialer.dialercontact.DialerContact;
/**
* A {@link RecyclerView.Adapter} for {@link CallDetailsActivity}.
@@ -31,11 +31,12 @@ import com.android.dialer.dialercontact.DialerContact;
*/
final class CallDetailsAdapter extends CallDetailsAdapterCommon {
- private final DialerContact contact;
+ /** Info to be shown in the header. */
+ private final CallDetailsHeaderInfo headerInfo;
CallDetailsAdapter(
Context context,
- DialerContact contact,
+ CallDetailsHeaderInfo calldetailsHeaderInfo,
CallDetailsEntries callDetailsEntries,
CallDetailsHeaderListener callDetailsHeaderListener,
CallDetailsFooterViewHolder.ReportCallIdListener reportCallIdListener,
@@ -46,26 +47,29 @@ final class CallDetailsAdapter extends CallDetailsAdapterCommon {
callDetailsHeaderListener,
reportCallIdListener,
deleteCallDetailsListener);
- this.contact = contact;
+ this.headerInfo = calldetailsHeaderInfo;
}
@Override
protected CallDetailsHeaderViewHolder createCallDetailsHeaderViewHolder(
View container, CallDetailsHeaderListener callDetailsHeaderListener) {
return new CallDetailsHeaderViewHolder(
- container, contact.getNumber(), contact.getPostDialDigits(), callDetailsHeaderListener);
+ container,
+ headerInfo.getDialerPhoneNumber().getNormalizedNumber(),
+ headerInfo.getDialerPhoneNumber().getPostDialPortion(),
+ callDetailsHeaderListener);
}
@Override
protected void bindCallDetailsHeaderViewHolder(
CallDetailsHeaderViewHolder callDetailsHeaderViewHolder, int position) {
- callDetailsHeaderViewHolder.updateContactInfo(contact, getCallbackAction());
+ callDetailsHeaderViewHolder.updateContactInfo(headerInfo, getCallbackAction());
callDetailsHeaderViewHolder.updateAssistedDialingInfo(
getCallDetailsEntries().getEntries(position));
}
@Override
protected String getNumber() {
- return contact.getNumber();
+ return headerInfo.getDialerPhoneNumber().getNormalizedNumber();
}
}
diff --git a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
index 34ed68836..e4fded173 100644
--- a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
+++ b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
@@ -37,6 +37,7 @@ import com.android.dialer.common.concurrent.DialerExecutor.SuccessListener;
import com.android.dialer.compat.telephony.TelephonyManagerCompat;
import com.android.dialer.contactphoto.ContactPhotoManager;
import com.android.dialer.dialercontact.DialerContact;
+import com.android.dialer.glidephotomanager.GlidePhotoManagerComponent;
import com.android.dialer.logging.InteractionEvent;
import com.android.dialer.logging.Logger;
@@ -182,6 +183,19 @@ public class CallDetailsHeaderViewHolder extends RecyclerView.ViewHolder
setCallbackAction(callbackAction);
}
+ void updateContactInfo(CallDetailsHeaderInfo headerInfo, @CallbackAction int callbackAction) {
+ GlidePhotoManagerComponent.get(context)
+ .glidePhotoManager()
+ .loadQuickContactBadge(contactPhoto, headerInfo.getPhotoInfo());
+
+ nameView.setText(headerInfo.getPrimaryText());
+ numberView.setText(headerInfo.getSecondaryText());
+
+ // TODO(a bug): show SIM info in the TextView returned by getNetworkView().
+
+ setCallbackAction(callbackAction);
+ }
+
private void setCallbackAction(@CallbackAction int callbackAction) {
this.callbackAction = callbackAction;
switch (callbackAction) {
diff --git a/java/com/android/dialer/calldetails/proto/call_details_header_info.proto b/java/com/android/dialer/calldetails/proto/call_details_header_info.proto
new file mode 100644
index 000000000..ea7ba1e72
--- /dev/null
+++ b/java/com/android/dialer/calldetails/proto/call_details_header_info.proto
@@ -0,0 +1,36 @@
+syntax = "proto2";
+
+option java_package = "com.android.dialer.calldetails";
+option java_multiple_files = true;
+option optimize_for = LITE_RUNTIME;
+
+
+import "java/com/android/dialer/phonenumberproto/dialer_phone_number.proto";
+import "java/com/android/dialer/glidephotomanager/photo_info.proto";
+
+package com.android.dialer.calldetails;
+
+// Contains information for the header in CallDetailsActivity
+// Next ID: 5
+message CallDetailsHeaderInfo {
+ // The number of all call detail entries.
+ optional com.android.dialer.DialerPhoneNumber dialer_phone_number = 1;
+
+ // Information used to load the contact photo.
+ optional com.android.dialer.glidephotomanager.PhotoInfo photo_info = 2;
+
+ // Primary text of the header, which can be
+ // (1) a presentation name (e.g., "Restricted", "Unknown", etc.),
+ // (2) the contact name, or
+ // (3) the formatted number.
+ optional string primary_text = 3;
+
+ // Secondary test of the header, which describes the number.
+ // Some examples are:
+ // "Mobile • 555-1234",
+ // "Blocked • Mobile • 555-1234", and
+ // "Spam • Mobile • 555-1234".
+ optional string secondary_text = 4;
+
+ // TODO(a bug): Add SIM info.
+} \ No newline at end of file