summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/calllog/model/CoalescedRow.java
diff options
context:
space:
mode:
authorZachary Heidepriem <zachh@google.com>2017-10-11 16:03:06 -0700
committerZachary Heidepriem <zachh@google.com>2017-10-11 16:03:06 -0700
commita0df9f7f52b4d7f926581f30bd0a7774a6abac43 (patch)
treec83d8715c6c6ed61423c285bb71b8fe71e1bad5c /java/com/android/dialer/calllog/model/CoalescedRow.java
parent36a5f1a127ca18869cd25cef0315076591a0b518 (diff)
Added basic bottom sheet to new call log.
Also added ability to click on row to call. Required plumbing through the original phone number and phone account info through AnnotatedCallLog and CoalescedAnnotatedCallLog, so that clicking to dial doesn't require an additional lookup. Required some refactoring: -created autovalue for CoalescedRow. -created autovalue for ContactPrimaryActionInfo and use it in ContactActionBottomSheet -moved logic for building primary and secondary text into CallLogUtils so it can be shared between call log list and bottom sheets -moved clipboard logic to own package for copying numbers Bug: 34672501 Test: unit PiperOrigin-RevId: 171760252 Change-Id: I645d89974460b611c1d9668c3ca3e50a716c7f8f
Diffstat (limited to 'java/com/android/dialer/calllog/model/CoalescedRow.java')
-rw-r--r--java/com/android/dialer/calllog/model/CoalescedRow.java147
1 files changed, 147 insertions, 0 deletions
diff --git a/java/com/android/dialer/calllog/model/CoalescedRow.java b/java/com/android/dialer/calllog/model/CoalescedRow.java
new file mode 100644
index 000000000..091467430
--- /dev/null
+++ b/java/com/android/dialer/calllog/model/CoalescedRow.java
@@ -0,0 +1,147 @@
+/*
+ * Copyright (C) 2017 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.calllog.model;
+
+import android.support.annotation.ColorInt;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import com.android.dialer.DialerPhoneNumber;
+import com.google.auto.value.AutoValue;
+
+/** Data class containing the contents of a row from the CoalescedAnnotatedCallLog. */
+@AutoValue
+public abstract class CoalescedRow {
+
+ public static Builder builder() {
+ return new AutoValue_CoalescedRow.Builder()
+ .setId(0)
+ .setTimestamp(0)
+ .setNumber(DialerPhoneNumber.getDefaultInstance())
+ .setPhotoId(0)
+ .setIsRead(false)
+ .setIsNew(false)
+ .setPhoneAccountColor(0)
+ .setFeatures(0)
+ .setIsBusiness(false)
+ .setIsVoicemail(false)
+ .setNumberCalls(0)
+ .setCallType(0);
+ }
+
+ public abstract int id();
+
+ public abstract long timestamp();
+
+ @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 numberTypeLabel();
+
+ public abstract boolean isRead();
+
+ public abstract boolean isNew();
+
+ @Nullable
+ public abstract String geocodedLocation();
+
+ @Nullable
+ public abstract String phoneAccountComponentName();
+
+ @Nullable
+ public abstract String phoneAccountId();
+
+ @Nullable
+ public abstract String phoneAccountLabel();
+
+ @ColorInt
+ public abstract int phoneAccountColor();
+
+ public abstract int features();
+
+ public abstract boolean isBusiness();
+
+ public abstract boolean isVoicemail();
+
+ public abstract int callType();
+
+ public abstract int numberCalls();
+
+ /** Builder for {@link CoalescedRow}. */
+ @AutoValue.Builder
+ public abstract static class Builder {
+
+ public abstract Builder setId(int id);
+
+ public abstract Builder setTimestamp(long timestamp);
+
+ 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 setNumberTypeLabel(@Nullable String numberTypeLabel);
+
+ public abstract Builder setIsRead(boolean isRead);
+
+ public abstract Builder setIsNew(boolean isNew);
+
+ public abstract Builder setGeocodedLocation(@Nullable String geocodedLocation);
+
+ public abstract Builder setPhoneAccountComponentName(
+ @Nullable String phoneAccountComponentName);
+
+ public abstract Builder setPhoneAccountId(@Nullable String phoneAccountId);
+
+ public abstract Builder setPhoneAccountLabel(@Nullable String phoneAccountLabel);
+
+ public abstract Builder setPhoneAccountColor(@ColorInt int phoneAccountColor);
+
+ public abstract Builder setFeatures(int features);
+
+ public abstract Builder setIsBusiness(boolean isBusiness);
+
+ public abstract Builder setIsVoicemail(boolean isVoicemail);
+
+ public abstract Builder setCallType(int callType);
+
+ public abstract Builder setNumberCalls(int numberCalls);
+
+ public abstract CoalescedRow build();
+ }
+}