summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java1
-rw-r--r--java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java18
-rw-r--r--java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java36
-rw-r--r--java/com/android/dialer/calllog/ui/CoalescedAnnotatedCallLogCursorLoader.java24
4 files changed, 28 insertions, 51 deletions
diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
index 507a51af6..78c329a0e 100644
--- a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
+++ b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
@@ -39,6 +39,7 @@ class AnnotatedCallLogDatabaseHelper extends SQLiteOpenHelper {
.append(AnnotatedCallLog._ID + " integer primary key, ")
.append(AnnotatedCallLog.TIMESTAMP + " integer, ")
.append(AnnotatedCallLog.NAME + " string, ")
+ .append(AnnotatedCallLog.FORMATTED_NUMBER + " string, ")
.append(AnnotatedCallLog.NEW + " integer, ")
.append(AnnotatedCallLog.TYPE + " integer, ")
.append(AnnotatedCallLog.CONTACT_PHOTO_URI + " string, ")
diff --git a/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java b/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java
index c669bdae5..be891c534 100644
--- a/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java
+++ b/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java
@@ -53,6 +53,13 @@ public class AnnotatedCallLogContract {
String NAME = "name";
/**
+ * Copied from {@link android.provider.CallLog.Calls#CACHED_FORMATTED_NUMBER}.
+ *
+ * <p>Type: TEXT
+ */
+ String FORMATTED_NUMBER = "formatted_number";
+
+ /**
* Local photo URI for the contact associated with the phone number, if it exists.
*
* <p>Photos currently only come from local contacts database and not caller ID sources. If
@@ -136,6 +143,7 @@ public class AnnotatedCallLogContract {
_ID,
TIMESTAMP,
NAME,
+ FORMATTED_NUMBER,
CONTACT_PHOTO_URI,
NUMBER_TYPE_LABEL,
IS_READ,
@@ -213,14 +221,6 @@ public class AnnotatedCallLogContract {
public static final String NUMBER_CALLS = "number_calls";
/**
- * The phone number formatted in a way suitable for display to the user. This value is generated
- * on the fly when the {@link CoalescedAnnotatedCallLog} is generated.
- *
- * <p>Type: TEXT
- */
- public static final String FORMATTED_NUMBER = "formatted_number";
-
- /**
* The call types of the most recent 3 calls, encoded as a CallTypes proto.
*
* <p>TYPE: BLOB
@@ -232,7 +232,7 @@ public class AnnotatedCallLogContract {
* AnnotatedCallLog}.
*/
private static final String[] COLUMNS_ONLY_IN_COALESCED_CALL_LOG =
- new String[] {NUMBER_CALLS, FORMATTED_NUMBER, CALL_TYPES};
+ new String[] {NUMBER_CALLS, CALL_TYPES};
/** All columns in the {@link CoalescedAnnotatedCallLog}. */
public static final String[] ALL_COLUMNS =
diff --git a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
index 7bf2972c5..e4af4170c 100644
--- a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
@@ -38,7 +38,6 @@ import android.telecom.PhoneAccountHandle;
import android.text.TextUtils;
import android.util.ArraySet;
import com.android.dialer.CallTypes;
-import com.android.dialer.DialerPhoneNumber;
import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog;
import com.android.dialer.calllog.datasources.CallLogDataSource;
@@ -52,7 +51,6 @@ import com.android.dialer.phonenumberproto.DialerPhoneNumberUtil;
import com.android.dialer.theme.R;
import com.android.dialer.util.PermissionsUtil;
import com.google.i18n.phonenumbers.PhoneNumberUtil;
-import com.google.protobuf.InvalidProtocolBufferException;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
@@ -160,18 +158,9 @@ public class SystemCallLogDataSource implements CallLogDataSource {
.useMostRecentLong(AnnotatedCallLog.NEW)
.useMostRecentString(AnnotatedCallLog.NUMBER_TYPE_LABEL)
.useMostRecentString(AnnotatedCallLog.GEOCODED_LOCATION)
+ .useMostRecentString(AnnotatedCallLog.FORMATTED_NUMBER)
.combine();
- // All phone numbers in the provided group should be equivalent (but could be formatted
- // differently). Arbitrarily show the raw phone number of the most recent call.
- DialerPhoneNumber mostRecentPhoneNumber =
- getMostRecentPhoneNumber(individualRowsSortedByTimestampDesc);
- if (mostRecentPhoneNumber != null) {
- coalescedValues.put(
- CoalescedAnnotatedCallLog.FORMATTED_NUMBER,
- mostRecentPhoneNumber.getRawInput().getNumber());
- }
-
CallTypes.Builder callTypes = CallTypes.newBuilder();
// Store a maximum of 3 call types since that's all we show to users via icons.
for (int i = 0; i < 3 && i < individualRowsSortedByTimestampDesc.size(); i++) {
@@ -183,23 +172,6 @@ public class SystemCallLogDataSource implements CallLogDataSource {
return coalescedValues;
}
- @Nullable
- private static DialerPhoneNumber getMostRecentPhoneNumber(
- List<ContentValues> individualRowsSortedByTimestampDesc) {
- byte[] protoBytes =
- individualRowsSortedByTimestampDesc.get(0).getAsByteArray(AnnotatedCallLog.NUMBER);
- if (protoBytes == null) {
- return null;
- }
- DialerPhoneNumber dialerPhoneNumber;
- try {
- dialerPhoneNumber = DialerPhoneNumber.parseFrom(protoBytes);
- } catch (InvalidProtocolBufferException e) {
- throw Assert.createAssertionFailException("couldn't parse DialerPhoneNumber", e);
- }
- return dialerPhoneNumber;
- }
-
@TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
private void handleInsertsAndUpdates(
Context appContext, CallLogMutations mutations, Set<Long> existingAnnotatedCallLogIds) {
@@ -223,6 +195,7 @@ public class SystemCallLogDataSource implements CallLogDataSource {
Calls.NUMBER,
Calls.TYPE,
Calls.COUNTRY_ISO,
+ Calls.CACHED_FORMATTED_NUMBER,
Calls.CACHED_NUMBER_TYPE,
Calls.CACHED_NUMBER_LABEL,
Calls.IS_READ,
@@ -253,6 +226,8 @@ public class SystemCallLogDataSource implements CallLogDataSource {
int numberColumn = cursor.getColumnIndexOrThrow(Calls.NUMBER);
int typeColumn = cursor.getColumnIndexOrThrow(Calls.TYPE);
int countryIsoColumn = cursor.getColumnIndexOrThrow(Calls.COUNTRY_ISO);
+ int cachedFormattedNumberColumn =
+ cursor.getColumnIndexOrThrow(Calls.CACHED_FORMATTED_NUMBER);
int cachedNumberTypeColumn = cursor.getColumnIndexOrThrow(Calls.CACHED_NUMBER_TYPE);
int cachedNumberLabelColumn = cursor.getColumnIndexOrThrow(Calls.CACHED_NUMBER_LABEL);
int isReadColumn = cursor.getColumnIndexOrThrow(Calls.IS_READ);
@@ -272,7 +247,7 @@ public class SystemCallLogDataSource implements CallLogDataSource {
String numberAsStr = cursor.getString(numberColumn);
long type = cursor.getType(typeColumn);
String countryIso = cursor.getString(countryIsoColumn);
- // TODO(zachh): Decide if should use "cached" columns from call log or recompute.
+ String formattedNumber = cursor.getString(cachedFormattedNumberColumn);
int cachedNumberType = cursor.getInt(cachedNumberTypeColumn);
String cachedNumberLabel = cursor.getString(cachedNumberLabelColumn);
int isRead = cursor.getInt(isReadColumn);
@@ -293,6 +268,7 @@ public class SystemCallLogDataSource implements CallLogDataSource {
}
contentValues.put(AnnotatedCallLog.TYPE, type);
+ contentValues.put(AnnotatedCallLog.FORMATTED_NUMBER, formattedNumber);
// Phone.getTypeLabel returns "Custom" if given (0, null) which is not of any use. Just
// omit setting the label if there's no information for it.
diff --git a/java/com/android/dialer/calllog/ui/CoalescedAnnotatedCallLogCursorLoader.java b/java/com/android/dialer/calllog/ui/CoalescedAnnotatedCallLogCursorLoader.java
index 654591688..488e8f430 100644
--- a/java/com/android/dialer/calllog/ui/CoalescedAnnotatedCallLogCursorLoader.java
+++ b/java/com/android/dialer/calllog/ui/CoalescedAnnotatedCallLogCursorLoader.java
@@ -31,18 +31,18 @@ final class CoalescedAnnotatedCallLogCursorLoader extends CursorLoader {
private static final int TIMESTAMP = 1;
private static final int NAME = 2;
- private static final int CONTACT_PHOTO_URI = 3;
- private static final int NUMBER_TYPE_LABEL = 4;
- private static final int IS_READ = 5;
- private static final int NEW = 6;
- private static final int GEOCODED_LOCATION = 7;
- private static final int PHONE_ACCOUNT_LABEL = 8;
- private static final int PHONE_ACCOUNT_COLOR = 9;
- private static final int FEATURES = 10;
- private static final int IS_BUSINESS = 11;
- private static final int IS_VOICEMAIL = 12;
- private static final int NUMBER_CALLS = 13;
- private static final int FORMATTED_NUMBER = 14;
+ private static final int FORMATTED_NUMBER = 3;
+ private static final int CONTACT_PHOTO_URI = 4;
+ private static final int NUMBER_TYPE_LABEL = 5;
+ private static final int IS_READ = 6;
+ private static final int NEW = 7;
+ private static final int GEOCODED_LOCATION = 8;
+ private static final int PHONE_ACCOUNT_LABEL = 9;
+ private static final int PHONE_ACCOUNT_COLOR = 10;
+ private static final int FEATURES = 11;
+ private static final int IS_BUSINESS = 12;
+ private static final int IS_VOICEMAIL = 13;
+ private static final int NUMBER_CALLS = 14;
private static final int CALL_TYPES = 15;
/** Convenience class for accessing values using an abbreviated syntax. */