summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/voicemail
diff options
context:
space:
mode:
authortwyen <twyen@google.com>2018-01-11 16:03:11 -0800
committerCopybara-Service <copybara-piper@google.com>2018-01-11 17:02:52 -0800
commit188b42fd10644373175fc204b48da98125004985 (patch)
tree9f7434fe8cb3bbf3cffc513225288e9946851745 /java/com/android/dialer/voicemail
parent98280255db8824cb58caac596cb4f9febcf57306 (diff)
Merge PhoneLookupDataSource results into a proto in annotated call log.
This allow extra information from PhoneLookup to be more easily added. Only PhoneLookupSelector and the proto will be affected for new attributes. Test: Unit tests. PiperOrigin-RevId: 181675568 Change-Id: I4e0bc1c6005b58a9b684b030b55bea6223af9ce3
Diffstat (limited to 'java/com/android/dialer/voicemail')
-rw-r--r--java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java14
-rw-r--r--java/com/android/dialer/voicemail/listui/VoicemailCursorLoader.java40
-rw-r--r--java/com/android/dialer/voicemail/listui/VoicemailEntryText.java4
-rw-r--r--java/com/android/dialer/voicemail/listui/menu/Modules.java4
-rw-r--r--java/com/android/dialer/voicemail/listui/menu/PrimaryAction.java10
-rw-r--r--java/com/android/dialer/voicemail/model/VoicemailEntry.java25
6 files changed, 44 insertions, 53 deletions
diff --git a/java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java b/java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java
index 90581580d..46e29956d 100644
--- a/java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java
+++ b/java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java
@@ -27,6 +27,7 @@ import android.graphics.Typeface;
import android.net.Uri;
import android.provider.VoicemailContract.Voicemails;
import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
import android.support.annotation.WorkerThread;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
@@ -205,13 +206,18 @@ final class NewVoicemailViewHolder extends RecyclerView.ViewHolder implements On
ContactPhotoManager.getInstance(context)
.loadDialerThumbnailOrPhoto(
quickContactBadge,
- voicemailEntry.lookupUri() == null ? null : Uri.parse(voicemailEntry.lookupUri()),
- voicemailEntry.photoId(),
- voicemailEntry.photoUri() == null ? null : Uri.parse(voicemailEntry.photoUri()),
- voicemailEntry.name(),
+ parseUri(voicemailEntry.numberAttributes().getLookupUri()),
+ voicemailEntry.numberAttributes().getPhotoId(),
+ parseUri(voicemailEntry.numberAttributes().getPhotoUri()),
+ VoicemailEntryText.buildPrimaryVoicemailText(context, voicemailEntry),
LetterTileDrawable.TYPE_DEFAULT);
}
+ @Nullable
+ private static Uri parseUri(@Nullable String string) {
+ return TextUtils.isEmpty(string) ? null : Uri.parse(string);
+ }
+
void collapseViewHolder() {
LogUtil.i(
"NewVoicemailViewHolder.collapseViewHolder",
diff --git a/java/com/android/dialer/voicemail/listui/VoicemailCursorLoader.java b/java/com/android/dialer/voicemail/listui/VoicemailCursorLoader.java
index 55d36b364..7e0381871 100644
--- a/java/com/android/dialer/voicemail/listui/VoicemailCursorLoader.java
+++ b/java/com/android/dialer/voicemail/listui/VoicemailCursorLoader.java
@@ -21,6 +21,7 @@ import android.database.Cursor;
import android.provider.CallLog.Calls;
import android.support.v4.content.CursorLoader;
import com.android.dialer.DialerPhoneNumber;
+import com.android.dialer.NumberAttributes;
import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
import com.android.dialer.voicemail.model.VoicemailEntry;
import com.google.protobuf.InvalidProtocolBufferException;
@@ -33,35 +34,29 @@ final class VoicemailCursorLoader extends CursorLoader {
new String[] {
AnnotatedCallLog._ID,
AnnotatedCallLog.TIMESTAMP,
- AnnotatedCallLog.NAME,
AnnotatedCallLog.NUMBER,
AnnotatedCallLog.FORMATTED_NUMBER,
- AnnotatedCallLog.PHOTO_URI,
- AnnotatedCallLog.PHOTO_ID,
- AnnotatedCallLog.LOOKUP_URI,
AnnotatedCallLog.DURATION,
AnnotatedCallLog.GEOCODED_LOCATION,
AnnotatedCallLog.CALL_TYPE,
AnnotatedCallLog.TRANSCRIPTION,
AnnotatedCallLog.VOICEMAIL_URI,
- AnnotatedCallLog.IS_READ
+ AnnotatedCallLog.IS_READ,
+ AnnotatedCallLog.NUMBER_ATTRIBUTES,
};
// Indexes for VOICEMAIL_COLUMNS
private static final int ID = 0;
private static final int TIMESTAMP = 1;
- private static final int NAME = 2;
- private static final int NUMBER = 3;
- private static final int FORMATTED_NUMBER = 4;
- private static final int PHOTO_URI = 5;
- private static final int PHOTO_ID = 6;
- private static final int LOOKUP_URI = 7;
- private static final int DURATION = 8;
- private static final int GEOCODED_LOCATION = 9;
- private static final int CALL_TYPE = 10;
- private static final int TRANSCRIPTION = 11;
- private static final int VOICEMAIL_URI = 12;
- private static final int IS_READ = 13;
+ private static final int NUMBER = 2;
+ private static final int FORMATTED_NUMBER = 3;
+ private static final int DURATION = 4;
+ private static final int GEOCODED_LOCATION = 5;
+ private static final int CALL_TYPE = 6;
+ private static final int TRANSCRIPTION = 7;
+ private static final int VOICEMAIL_URI = 8;
+ private static final int IS_READ = 9;
+ private static final int NUMBER_ATTRIBUTES = 10;
// TODO(zachh): Optimize indexes
VoicemailCursorLoader(Context context) {
@@ -82,22 +77,25 @@ final class VoicemailCursorLoader extends CursorLoader {
} catch (InvalidProtocolBufferException e) {
throw new IllegalStateException("Couldn't parse DialerPhoneNumber bytes");
}
+ NumberAttributes numberAttributes;
+ try {
+ numberAttributes = NumberAttributes.parseFrom(cursor.getBlob(NUMBER_ATTRIBUTES));
+ } catch (InvalidProtocolBufferException e) {
+ throw new IllegalStateException("Couldn't parse NumberAttributes bytes");
+ }
return VoicemailEntry.builder()
.setId(cursor.getInt(ID))
.setTimestamp(cursor.getLong(TIMESTAMP))
- .setName(cursor.getString(NAME))
.setNumber(number)
.setFormattedNumber(cursor.getString(FORMATTED_NUMBER))
- .setPhotoUri(cursor.getString(PHOTO_URI))
- .setPhotoId(cursor.getLong(PHOTO_ID))
- .setLookupUri(cursor.getString(LOOKUP_URI))
.setDuration(cursor.getLong(DURATION))
.setTranscription(cursor.getString(TRANSCRIPTION))
.setVoicemailUri(cursor.getString(VOICEMAIL_URI))
.setGeocodedLocation(cursor.getString(GEOCODED_LOCATION))
.setCallType(cursor.getInt(CALL_TYPE))
.setIsRead(cursor.getInt(IS_READ))
+ .setNumberAttributes(numberAttributes)
.build();
}
diff --git a/java/com/android/dialer/voicemail/listui/VoicemailEntryText.java b/java/com/android/dialer/voicemail/listui/VoicemailEntryText.java
index d73d1f0de..4aaf2d1e7 100644
--- a/java/com/android/dialer/voicemail/listui/VoicemailEntryText.java
+++ b/java/com/android/dialer/voicemail/listui/VoicemailEntryText.java
@@ -33,8 +33,8 @@ public class VoicemailEntryText {
public static String buildPrimaryVoicemailText(Context context, VoicemailEntry data) {
StringBuilder primaryText = new StringBuilder();
- if (!TextUtils.isEmpty(data.name())) {
- primaryText.append(data.name());
+ if (!TextUtils.isEmpty(data.numberAttributes().getName())) {
+ primaryText.append(data.numberAttributes().getName());
} else if (!TextUtils.isEmpty(data.formattedNumber())) {
primaryText.append(data.formattedNumber());
} else {
diff --git a/java/com/android/dialer/voicemail/listui/menu/Modules.java b/java/com/android/dialer/voicemail/listui/menu/Modules.java
index bb98d76eb..bd79932e7 100644
--- a/java/com/android/dialer/voicemail/listui/menu/Modules.java
+++ b/java/com/android/dialer/voicemail/listui/menu/Modules.java
@@ -40,8 +40,8 @@ final class Modules {
context,
modules,
voicemailEntry.number(),
- voicemailEntry.name(),
- voicemailEntry.lookupUri());
+ voicemailEntry.numberAttributes().getName(),
+ voicemailEntry.numberAttributes().getLookupUri());
String originalNumber = voicemailEntry.number().getRawInput().getNumber();
SharedModules.maybeAddModuleForSendingTextMessage(context, modules, originalNumber);
diff --git a/java/com/android/dialer/voicemail/listui/menu/PrimaryAction.java b/java/com/android/dialer/voicemail/listui/menu/PrimaryAction.java
index 7f4ac8052..7b8adfe30 100644
--- a/java/com/android/dialer/voicemail/listui/menu/PrimaryAction.java
+++ b/java/com/android/dialer/voicemail/listui/menu/PrimaryAction.java
@@ -38,12 +38,12 @@ final class PrimaryAction {
.setNumber(voicemailEntry.number())
.setPhotoInfo(
PhotoInfo.builder()
- .setPhotoId(voicemailEntry.photoId())
- .setPhotoUri(voicemailEntry.photoUri())
+ .setPhotoId(voicemailEntry.numberAttributes().getPhotoId())
+ .setPhotoUri(voicemailEntry.numberAttributes().getPhotoUri())
.setIsVideo(false)
.setContactType(
LetterTileDrawable.TYPE_DEFAULT) // TODO(uabdullah): Use proper type.
- .setDisplayName(voicemailEntry.name())
+ .setDisplayName(voicemailEntry.numberAttributes().getName())
.build())
.setPrimaryText(buildPrimaryVoicemailText(context, voicemailEntry))
.setSecondaryText(buildSecondaryVoicemailText(voicemailEntry))
@@ -56,8 +56,8 @@ final class PrimaryAction {
public static String buildPrimaryVoicemailText(Context context, VoicemailEntry data) {
StringBuilder primaryText = new StringBuilder();
- if (!TextUtils.isEmpty(data.name())) {
- primaryText.append(data.name());
+ if (!TextUtils.isEmpty(data.numberAttributes().getName())) {
+ primaryText.append(data.numberAttributes().getName());
} else if (!TextUtils.isEmpty(data.formattedNumber())) {
primaryText.append(data.formattedNumber());
} else {
diff --git a/java/com/android/dialer/voicemail/model/VoicemailEntry.java b/java/com/android/dialer/voicemail/model/VoicemailEntry.java
index 702f52d17..f17a23e54 100644
--- a/java/com/android/dialer/voicemail/model/VoicemailEntry.java
+++ b/java/com/android/dialer/voicemail/model/VoicemailEntry.java
@@ -19,6 +19,7 @@ package com.android.dialer.voicemail.model;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import com.android.dialer.DialerPhoneNumber;
+import com.android.dialer.NumberAttributes;
import com.google.auto.value.AutoValue;
/** Data class containing the contents of a voicemail entry from the AnnotatedCallLog. */
@@ -30,7 +31,7 @@ public abstract class VoicemailEntry {
.setId(0)
.setTimestamp(0)
.setNumber(DialerPhoneNumber.getDefaultInstance())
- .setPhotoId(0)
+ .setNumberAttributes(NumberAttributes.getDefaultInstance())
.setDuration(0)
.setCallType(0)
.setIsRead(0);
@@ -43,21 +44,11 @@ public abstract class VoicemailEntry {
@NonNull
public abstract DialerPhoneNumber number();
- @Nullable
- public abstract String name();
@Nullable
public abstract String formattedNumber();
@Nullable
- public abstract String photoUri();
-
- public abstract long photoId();
-
- @Nullable
- public abstract String lookupUri();
-
- @Nullable
public abstract String geocodedLocation();
public abstract long duration();
@@ -72,6 +63,8 @@ public abstract class VoicemailEntry {
public abstract int isRead();
+ public abstract NumberAttributes numberAttributes();
+
/** Builder for {@link VoicemailEntry}. */
@AutoValue.Builder
public abstract static class Builder {
@@ -82,16 +75,8 @@ public abstract class VoicemailEntry {
public abstract Builder setNumber(@NonNull DialerPhoneNumber number);
- public abstract Builder setName(@Nullable String name);
-
public abstract Builder setFormattedNumber(@Nullable String formattedNumber);
- public abstract Builder setPhotoUri(@Nullable String photoUri);
-
- public abstract Builder setPhotoId(long photoId);
-
- public abstract Builder setLookupUri(@Nullable String lookupUri);
-
public abstract Builder setDuration(long duration);
public abstract Builder setTranscription(@Nullable String transcription);
@@ -104,6 +89,8 @@ public abstract class VoicemailEntry {
public abstract Builder setIsRead(int isRead);
+ public abstract Builder setNumberAttributes(NumberAttributes numberAttributes);
+
public abstract VoicemailEntry build();
}
}