summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorlinyuh <linyuh@google.com>2018-03-06 12:13:27 -0800
committerCopybara-Service <copybara-piper@google.com>2018-03-06 12:17:15 -0800
commit9e8b6733962641d137c4d084b843c069b6545953 (patch)
tree505df3fffb3147adddf2f569e1d11def6c098bf0 /java
parentf7539b6d7f483462082370e9972edb5c5a9a0401 (diff)
Covnert @AutoValue PhotoInfo into a proto.
Bug: 74202944 Test: Existing tests PiperOrigin-RevId: 188060790 Change-Id: I4d79a353abf767935383d4149f261f5e96fd7acb
Diffstat (limited to 'java')
-rw-r--r--java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java14
-rw-r--r--java/com/android/dialer/calllog/ui/menu/PrimaryAction.java16
-rw-r--r--java/com/android/dialer/calllogutils/NumberAttributesConverter.java2
-rw-r--r--java/com/android/dialer/glidephotomanager/PhotoInfo.java100
-rw-r--r--java/com/android/dialer/glidephotomanager/impl/GlidePhotoManagerImpl.java30
-rw-r--r--java/com/android/dialer/glidephotomanager/photo_info.proto44
-rw-r--r--java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java13
-rw-r--r--java/com/android/dialer/voicemail/listui/menu/PrimaryAction.java12
8 files changed, 97 insertions, 134 deletions
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
index cf016083f..4c2d124d7 100644
--- a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
+++ b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
@@ -22,6 +22,7 @@ import android.database.Cursor;
import android.provider.CallLog.Calls;
import android.support.annotation.DrawableRes;
import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.QuickContactBadge;
@@ -35,6 +36,7 @@ import com.android.dialer.common.concurrent.DialerExecutorComponent;
import com.android.dialer.compat.AppCompatConstants;
import com.android.dialer.compat.telephony.TelephonyManagerCompat;
import com.android.dialer.glidephotomanager.GlidePhotoManager;
+import com.android.dialer.glidephotomanager.PhotoInfo;
import com.android.dialer.oem.MotorolaUtils;
import com.android.dialer.time.Clock;
import com.google.common.util.concurrent.FutureCallback;
@@ -150,11 +152,13 @@ final class NewCallLogViewHolder extends RecyclerView.ViewHolder {
}
private void setPhoto(CoalescedRow row) {
- glidePhotoManager.loadQuickContactBadge(
- quickContactBadge,
- NumberAttributesConverter.toPhotoInfoBuilder(row.numberAttributes())
- .setFormattedNumber(row.formattedNumber())
- .build());
+ PhotoInfo.Builder photoInfoBuilder =
+ NumberAttributesConverter.toPhotoInfoBuilder(row.numberAttributes());
+ if (!TextUtils.isEmpty(row.formattedNumber())) {
+ photoInfoBuilder.setFormattedNumber(row.formattedNumber());
+ }
+
+ glidePhotoManager.loadQuickContactBadge(quickContactBadge, photoInfoBuilder.build());
}
private void setFeatureIcons(CoalescedRow row) {
diff --git a/java/com/android/dialer/calllog/ui/menu/PrimaryAction.java b/java/com/android/dialer/calllog/ui/menu/PrimaryAction.java
index de4a70c30..aec4dc6d8 100644
--- a/java/com/android/dialer/calllog/ui/menu/PrimaryAction.java
+++ b/java/com/android/dialer/calllog/ui/menu/PrimaryAction.java
@@ -18,10 +18,12 @@ package com.android.dialer.calllog.ui.menu;
import android.content.Context;
import android.provider.CallLog.Calls;
+import android.text.TextUtils;
import com.android.dialer.calllog.model.CoalescedRow;
import com.android.dialer.calllogutils.CallLogEntryText;
import com.android.dialer.calllogutils.CallLogIntents;
import com.android.dialer.calllogutils.NumberAttributesConverter;
+import com.android.dialer.glidephotomanager.PhotoInfo;
import com.android.dialer.historyitemactions.HistoryItemPrimaryActionInfo;
/** Configures the primary action row (top row) for the bottom sheet. */
@@ -29,13 +31,17 @@ final class PrimaryAction {
static HistoryItemPrimaryActionInfo fromRow(Context context, CoalescedRow row) {
CharSequence primaryText = CallLogEntryText.buildPrimaryText(context, row);
+
+ PhotoInfo.Builder photoInfoBuilder =
+ NumberAttributesConverter.toPhotoInfoBuilder(row.numberAttributes())
+ .setIsVideo((row.features() & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO);
+ if (!TextUtils.isEmpty(row.formattedNumber())) {
+ photoInfoBuilder.setFormattedNumber(row.formattedNumber());
+ }
+
return HistoryItemPrimaryActionInfo.builder()
.setNumber(row.number())
- .setPhotoInfo(
- NumberAttributesConverter.toPhotoInfoBuilder(row.numberAttributes())
- .setFormattedNumber(row.formattedNumber())
- .setIsVideo((row.features() & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO)
- .build())
+ .setPhotoInfo(photoInfoBuilder.build())
.setPrimaryText(primaryText)
.setSecondaryText(CallLogEntryText.buildSecondaryTextForBottomSheet(context, row))
.setIntent(CallLogIntents.getCallBackIntent(context, row))
diff --git a/java/com/android/dialer/calllogutils/NumberAttributesConverter.java b/java/com/android/dialer/calllogutils/NumberAttributesConverter.java
index a9376bb98..df6b680db 100644
--- a/java/com/android/dialer/calllogutils/NumberAttributesConverter.java
+++ b/java/com/android/dialer/calllogutils/NumberAttributesConverter.java
@@ -27,7 +27,7 @@ public final class NumberAttributesConverter {
/** Converts {@link NumberAttributes} to {@link PhotoInfo.Builder} */
public static PhotoInfo.Builder toPhotoInfoBuilder(NumberAttributes numberAttributes) {
- return PhotoInfo.builder()
+ return PhotoInfo.newBuilder()
.setName(numberAttributes.getName())
.setPhotoUri(numberAttributes.getPhotoUri())
.setPhotoId(numberAttributes.getPhotoId())
diff --git a/java/com/android/dialer/glidephotomanager/PhotoInfo.java b/java/com/android/dialer/glidephotomanager/PhotoInfo.java
deleted file mode 100644
index 016221f40..000000000
--- a/java/com/android/dialer/glidephotomanager/PhotoInfo.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dialer.glidephotomanager;
-
-import android.support.annotation.Nullable;
-import com.google.auto.value.AutoValue;
-
-/** The number information used to create the photo.. */
-@AutoValue
-public abstract class PhotoInfo {
-
- /** The display name of the number */
- @Nullable
- public abstract String name();
-
- /** The number displayed to the user. */
- @Nullable
- public abstract String formattedNumber();
-
- /** The URI to the photo */
- @Nullable
- public abstract String photoUri();
-
- /** Value of {@link android.provider.ContactsContract.CommonDataKinds.Photo#_ID} */
- public abstract long photoId();
-
- /** The contacts provider lookup URI for the contact associated with the number */
- @Nullable
- public abstract String lookupUri();
-
- /** Should a business icon be displayed */
- public abstract boolean isBusiness();
-
- /** Should a voicemail icon be displayed */
- public abstract boolean isVoicemail();
-
- /** Should a blocked icon be displayed */
- public abstract boolean isBlocked();
-
- /** Should a spam icon be displayed */
- public abstract boolean isSpam();
-
- /**
- * Should the photo be badged as video call.
- *
- * <p>Defaults to false.
- */
- public abstract boolean isVideo();
-
- /** Builder for {@link PhotoInfo} */
- @AutoValue.Builder
- public abstract static class Builder {
-
- public abstract Builder setName(@Nullable String name);
-
- public abstract Builder setFormattedNumber(@Nullable String formattedNumber);
-
- public abstract Builder setPhotoUri(@Nullable String uri);
-
- public abstract Builder setPhotoId(long id);
-
- public abstract Builder setLookupUri(@Nullable String uri);
-
- public abstract Builder setIsBusiness(boolean isBusiness);
-
- public abstract Builder setIsVoicemail(boolean isVoicemail);
-
- public abstract Builder setIsBlocked(boolean isBlocked);
-
- public abstract Builder setIsSpam(boolean isSpam);
-
- public abstract Builder setIsVideo(boolean isVideo);
-
- public abstract PhotoInfo build();
- }
-
- public static PhotoInfo.Builder builder() {
- return new AutoValue_PhotoInfo.Builder()
- .setPhotoId(0)
- .setIsBusiness(false)
- .setIsVoicemail(false)
- .setIsBlocked(false)
- .setIsSpam(false)
- .setIsVideo(false);
- }
-}
diff --git a/java/com/android/dialer/glidephotomanager/impl/GlidePhotoManagerImpl.java b/java/com/android/dialer/glidephotomanager/impl/GlidePhotoManagerImpl.java
index e14e604a1..45af4e3e2 100644
--- a/java/com/android/dialer/glidephotomanager/impl/GlidePhotoManagerImpl.java
+++ b/java/com/android/dialer/glidephotomanager/impl/GlidePhotoManagerImpl.java
@@ -49,7 +49,7 @@ public class GlidePhotoManagerImpl implements GlidePhotoManager {
@Override
public void loadQuickContactBadge(QuickContactBadge badge, PhotoInfo photoInfo) {
Assert.isMainThread();
- badge.assignContactUri(parseUri(photoInfo.lookupUri()));
+ badge.assignContactUri(parseUri(photoInfo.getLookupUri()));
badge.setOverlay(null);
GlideRequest<Drawable> request = buildRequest(GlideApp.with(badge), photoInfo);
request.into(badge);
@@ -62,20 +62,20 @@ public class GlidePhotoManagerImpl implements GlidePhotoManager {
GlideRequest<Drawable> request;
boolean circleCrop = true; // Photos are cropped to a circle by default.
- if (photoInfo.isBlocked()) {
+ if (photoInfo.getIsBlocked()) {
// Whether the number is blocked takes precedence over the spam status.
request = requestManager.load(R.drawable.ic_block_grey_48dp);
- } else if (photoInfo.isSpam()) {
+ } else if (photoInfo.getIsSpam()) {
request = requestManager.load(R.drawable.quantum_ic_report_vd_red_24);
circleCrop = false; // The spam icon is an octagon so we don't crop it.
- } else if (!TextUtils.isEmpty(photoInfo.photoUri())) {
- request = requestManager.load(parseUri(photoInfo.photoUri()));
+ } else if (!TextUtils.isEmpty(photoInfo.getPhotoUri())) {
+ request = requestManager.load(parseUri(photoInfo.getPhotoUri()));
- } else if (photoInfo.photoId() != 0) {
+ } else if (photoInfo.getPhotoId() != 0) {
request =
- requestManager.load(ContentUris.withAppendedId(Data.CONTENT_URI, photoInfo.photoId()));
+ requestManager.load(ContentUris.withAppendedId(Data.CONTENT_URI, photoInfo.getPhotoId()));
} else {
// load null to indicate fallback should be used.
@@ -102,23 +102,25 @@ public class GlidePhotoManagerImpl implements GlidePhotoManager {
LetterTileDrawable letterTileDrawable = new LetterTileDrawable(appContext.getResources());
String displayName;
String identifier;
- if (TextUtils.isEmpty(photoInfo.lookupUri())) {
+ if (TextUtils.isEmpty(photoInfo.getLookupUri())) {
// Use generic avatar instead of letter for non-contacts.
displayName = null;
identifier =
- TextUtils.isEmpty(photoInfo.name()) ? photoInfo.formattedNumber() : photoInfo.name();
+ TextUtils.isEmpty(photoInfo.getName())
+ ? photoInfo.getFormattedNumber()
+ : photoInfo.getName();
} else {
- displayName = photoInfo.name();
- identifier = photoInfo.lookupUri();
+ displayName = photoInfo.getName();
+ identifier = photoInfo.getLookupUri();
}
letterTileDrawable.setCanonicalDialerLetterTileDetails(
displayName,
identifier,
LetterTileDrawable.SHAPE_CIRCLE,
LetterTileDrawable.getContactTypeFromPrimitives(
- photoInfo.isVoicemail(),
- photoInfo.isSpam(),
- photoInfo.isBusiness(),
+ photoInfo.getIsVoicemail(),
+ photoInfo.getIsSpam(),
+ photoInfo.getIsBusiness(),
TelecomManager.PRESENTATION_ALLOWED, // TODO(twyen):implement
false)); // TODO(twyen):implement
return letterTileDrawable;
diff --git a/java/com/android/dialer/glidephotomanager/photo_info.proto b/java/com/android/dialer/glidephotomanager/photo_info.proto
new file mode 100644
index 000000000..447cfe83f
--- /dev/null
+++ b/java/com/android/dialer/glidephotomanager/photo_info.proto
@@ -0,0 +1,44 @@
+syntax = "proto2";
+
+option java_package = "com.android.dialer.glidephotomanager";
+option java_multiple_files = true;
+option optimize_for = LITE_RUNTIME;
+
+
+package com.android.dialer.glidephotomanager;
+
+// Contains information associated with a number, which is used to create the
+// photo.
+// Next ID: 11
+message PhotoInfo {
+ // The display name of the number.
+ optional string name = 1;
+
+ // The number presented to the user.
+ optional string formatted_number = 2;
+
+ // The URI of the photo.
+ optional string photo_uri = 3;
+
+ // Value of android.provider.ContactsContract.CommonDataKinds.Photo#_ID
+ optional int64 photo_id = 4;
+
+ // The Contacts Provider lookup URI for the contact associated with the
+ // number.
+ optional string lookup_uri = 5;
+
+ // Whether a business icon should be displayed.
+ optional bool is_business = 6;
+
+ // Whether a voicemail icon should be displayed.
+ optional bool is_voicemail = 7;
+
+ // Whether a "blocked" icon should be displayed.
+ optional bool is_blocked = 8;
+
+ // Whether a "spam" icon should be displayed.
+ optional bool is_spam = 9;
+
+ // Whether the photo should be badged as video call.
+ optional bool is_video = 10;
+}
diff --git a/java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java b/java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java
index 5328dd33e..1d42e647a 100644
--- a/java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java
+++ b/java/com/android/dialer/voicemail/listui/NewVoicemailViewHolder.java
@@ -45,6 +45,7 @@ import com.android.dialer.common.concurrent.DialerExecutor.Worker;
import com.android.dialer.common.concurrent.DialerExecutorComponent;
import com.android.dialer.compat.android.provider.VoicemailCompat;
import com.android.dialer.glidephotomanager.GlidePhotoManager;
+import com.android.dialer.glidephotomanager.PhotoInfo;
import com.android.dialer.time.Clock;
import com.android.dialer.voicemail.listui.menu.NewVoicemailMenu;
import com.android.dialer.voicemail.model.VoicemailEntry;
@@ -210,11 +211,13 @@ final class NewVoicemailViewHolder extends RecyclerView.ViewHolder implements On
}
private void setPhoto(VoicemailEntry voicemailEntry) {
- glidePhotoManager.loadQuickContactBadge(
- quickContactBadge,
- NumberAttributesConverter.toPhotoInfoBuilder(voicemailEntry.numberAttributes())
- .setFormattedNumber(voicemailEntry.formattedNumber())
- .build());
+ PhotoInfo.Builder photoInfoBuilder =
+ NumberAttributesConverter.toPhotoInfoBuilder(voicemailEntry.numberAttributes());
+ if (!TextUtils.isEmpty(voicemailEntry.formattedNumber())) {
+ photoInfoBuilder.setFormattedNumber(voicemailEntry.formattedNumber());
+ }
+
+ glidePhotoManager.loadQuickContactBadge(quickContactBadge, photoInfoBuilder.build());
}
void collapseViewHolder() {
diff --git a/java/com/android/dialer/voicemail/listui/menu/PrimaryAction.java b/java/com/android/dialer/voicemail/listui/menu/PrimaryAction.java
index 9a5aa1886..dbc417c6c 100644
--- a/java/com/android/dialer/voicemail/listui/menu/PrimaryAction.java
+++ b/java/com/android/dialer/voicemail/listui/menu/PrimaryAction.java
@@ -19,6 +19,7 @@ package com.android.dialer.voicemail.listui.menu;
import android.content.Context;
import android.text.TextUtils;
import com.android.dialer.calllogutils.NumberAttributesConverter;
+import com.android.dialer.glidephotomanager.PhotoInfo;
import com.android.dialer.historyitemactions.HistoryItemPrimaryActionInfo;
import com.android.dialer.voicemail.model.VoicemailEntry;
@@ -33,12 +34,15 @@ final class PrimaryAction {
// setSecondaryText - check in with UX
static HistoryItemPrimaryActionInfo fromVoicemailEntry(
Context context, VoicemailEntry voicemailEntry) {
+ PhotoInfo.Builder photoInfoBuilder =
+ NumberAttributesConverter.toPhotoInfoBuilder(voicemailEntry.numberAttributes());
+ if (!TextUtils.isEmpty(voicemailEntry.formattedNumber())) {
+ photoInfoBuilder.setFormattedNumber(voicemailEntry.formattedNumber());
+ }
+
return HistoryItemPrimaryActionInfo.builder()
.setNumber(voicemailEntry.number())
- .setPhotoInfo(
- NumberAttributesConverter.toPhotoInfoBuilder(voicemailEntry.numberAttributes())
- .setFormattedNumber(voicemailEntry.formattedNumber())
- .build())
+ .setPhotoInfo(photoInfoBuilder.build())
.setPrimaryText(buildPrimaryVoicemailText(context, voicemailEntry))
.setSecondaryText(buildSecondaryVoicemailText(voicemailEntry))
.build();