Add support for voicemailURI to annotated call log for new voicemail tab
VoicemailUri is required to play voicemail audio files. We need it to be able to play the voicemails in the voicemail tab. A follow up CL will be using the uri to play the audio, but via a media player.
Bug: 64882313
Test: Unit tests
PiperOrigin-RevId: 173422683
Change-Id: Ib438e3020c83e11a2c54c3e941c93e83dba9bc90
diff --git a/java/com/android/dialer/binary/aosp/testing/TestActivity.java b/java/com/android/dialer/binary/aosp/testing/TestActivity.java
deleted file mode 100644
index 9cb26da..0000000
--- a/java/com/android/dialer/binary/aosp/testing/TestActivity.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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.binary.aosp.testing;
-
-import android.app.Activity;
-
-/**
- * An empty Activity to use in tests. This can be useful when UI needs to be tested outside an
- * Activity, either as a background or to keep the test framework running.
- */
-public class TestActivity extends Activity {}
diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
index a3180a0..a6a6466 100644
--- a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
+++ b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
@@ -32,6 +32,7 @@
this.maxRows = maxRows;
}
+ // TODO(uabdullah): Use concatenation to avoid klippy warnings
private static final String CREATE_TABLE_SQL =
new StringBuilder()
.append("create table if not exists " + AnnotatedCallLog.TABLE + " (")
@@ -57,8 +58,8 @@
.append(AnnotatedCallLog.IS_BUSINESS + " integer, ")
.append(AnnotatedCallLog.IS_VOICEMAIL + " integer, ")
.append(AnnotatedCallLog.TRANSCRIPTION + " integer, ")
- .append(AnnotatedCallLog.CALL_TYPE)
- .append(" integer")
+ .append(AnnotatedCallLog.VOICEMAIL_URI + " string, ")
+ .append(AnnotatedCallLog.CALL_TYPE + " integer")
.append(");")
.toString();
diff --git a/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java b/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java
index 832a9c2..4f26f0c 100644
--- a/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java
+++ b/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java
@@ -232,6 +232,13 @@
* <p>TYPE: TEXT
*/
public static final String TRANSCRIPTION = "transcription";
+
+ /**
+ * See {@link android.provider.CallLog.Calls#VOICEMAIL_URI}.
+ *
+ * <p>TYPE: TEXT
+ */
+ public static final String VOICEMAIL_URI = "voicemail_uri";
}
/**
diff --git a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
index 5c73933..1fe3507 100644
--- a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
@@ -218,6 +218,7 @@
Calls.CACHED_NUMBER_LABEL,
Calls.DURATION,
Calls.TRANSCRIPTION,
+ Calls.VOICEMAIL_URI,
Calls.IS_READ,
Calls.NEW,
Calls.GEOCODED_LOCATION,
@@ -256,6 +257,7 @@
int cachedNumberLabelColumn = cursor.getColumnIndexOrThrow(Calls.CACHED_NUMBER_LABEL);
int durationsColumn = cursor.getColumnIndexOrThrow(Calls.DURATION);
int transcriptionColumn = cursor.getColumnIndexOrThrow(Calls.TRANSCRIPTION);
+ int voicemailUriColumn = cursor.getColumnIndexOrThrow(Calls.VOICEMAIL_URI);
int isReadColumn = cursor.getColumnIndexOrThrow(Calls.IS_READ);
int newColumn = cursor.getColumnIndexOrThrow(Calls.NEW);
int geocodedLocationColumn = cursor.getColumnIndexOrThrow(Calls.GEOCODED_LOCATION);
@@ -282,6 +284,7 @@
String cachedNumberLabel = cursor.getString(cachedNumberLabelColumn);
int duration = cursor.getInt(durationsColumn);
String transcription = cursor.getString(transcriptionColumn);
+ String voicemailUri = cursor.getString(voicemailUriColumn);
int isRead = cursor.getInt(isReadColumn);
int isNew = cursor.getInt(newColumn);
String geocodedLocation = cursor.getString(geocodedLocationColumn);
@@ -329,6 +332,7 @@
contentValues.put(AnnotatedCallLog.FEATURES, features);
contentValues.put(AnnotatedCallLog.DURATION, duration);
contentValues.put(AnnotatedCallLog.TRANSCRIPTION, transcription);
+ contentValues.put(AnnotatedCallLog.VOICEMAIL_URI, voicemailUri);
if (existingAnnotatedCallLogIds.contains(id)) {
mutations.update(id, contentValues);
diff --git a/java/com/android/dialer/voicemail/listui/VoicemailCursorLoader.java b/java/com/android/dialer/voicemail/listui/VoicemailCursorLoader.java
index e371e5e..3112d95 100644
--- a/java/com/android/dialer/voicemail/listui/VoicemailCursorLoader.java
+++ b/java/com/android/dialer/voicemail/listui/VoicemailCursorLoader.java
@@ -42,7 +42,8 @@
AnnotatedCallLog.DURATION,
AnnotatedCallLog.GEOCODED_LOCATION,
AnnotatedCallLog.CALL_TYPE,
- AnnotatedCallLog.TRANSCRIPTION
+ AnnotatedCallLog.TRANSCRIPTION,
+ AnnotatedCallLog.VOICEMAIL_URI
};
// Indexes for VOICEMAIL_COLUMNS
@@ -58,6 +59,7 @@
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;
// TODO(zachh): Optimize indexes
VoicemailCursorLoader(Context context) {
@@ -90,6 +92,7 @@
.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))
.build();
diff --git a/java/com/android/dialer/voicemail/model/VoicemailEntry.java b/java/com/android/dialer/voicemail/model/VoicemailEntry.java
index fc548f1..df30dee 100644
--- a/java/com/android/dialer/voicemail/model/VoicemailEntry.java
+++ b/java/com/android/dialer/voicemail/model/VoicemailEntry.java
@@ -64,6 +64,9 @@
@Nullable
public abstract String transcription();
+ @Nullable
+ public abstract String voicemailUri();
+
public abstract int callType();
/** Builder for {@link VoicemailEntry}. */
@@ -90,6 +93,8 @@
public abstract Builder setTranscription(@Nullable String transcription);
+ public abstract Builder setVoicemailUri(@Nullable String voicemailUri);
+
public abstract Builder setGeocodedLocation(@Nullable String geocodedLocation);
public abstract Builder setCallType(int callType);