summaryrefslogtreecommitdiff
path: root/src/com/android/dialer/calllog
diff options
context:
space:
mode:
authorSarmad Hashmi <mhashmi@google.com>2016-02-18 21:14:02 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-02-18 21:14:02 +0000
commitd874962833eb0aab8a75d3f1a837bfd58eb3e46e (patch)
tree45a0bfc9d6763282227f89e7bd84ea0c7a3c5c61 /src/com/android/dialer/calllog
parent011264fbb1d443592753f8728eed2f1c9992227f (diff)
parent6f3016d9065564bf09a5759f16563a05abbe105d (diff)
Merge "Fix bug where 00:00 duration is shown for voicemails without a duration."
Diffstat (limited to 'src/com/android/dialer/calllog')
-rw-r--r--src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java28
-rw-r--r--src/com/android/dialer/calllog/PhoneCallDetailsHelper.java2
2 files changed, 29 insertions, 1 deletions
diff --git a/src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java b/src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java
index 5bcfa6bd5..f331dd008 100644
--- a/src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java
+++ b/src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java
@@ -54,6 +54,7 @@ public class CallLogAsyncTaskUtil {
MARK_VOICEMAIL_READ,
MARK_CALL_READ,
GET_CALL_DETAILS,
+ UPDATE_DURATION
}
private static final class CallDetailQuery {
@@ -413,6 +414,33 @@ public class CallLogAsyncTaskUtil {
});
}
+
+ /**
+ * Updates the duration of a voicemail call log entry.
+ */
+ public static void updateVoicemailDuration(
+ final Context context,
+ final Uri voicemailUri,
+ final int duration) {
+ if (!PermissionsUtil.hasPhonePermissions(context)) {
+ return;
+ }
+
+ if (sAsyncTaskExecutor == null) {
+ initTaskExecutor();
+ }
+
+ sAsyncTaskExecutor.submit(Tasks.UPDATE_DURATION, new AsyncTask<Void, Void, Void>() {
+ @Override
+ public Void doInBackground(Void... params) {
+ ContentValues values = new ContentValues(1);
+ values.put(CallLog.Calls.DURATION, duration);
+ context.getContentResolver().update(voicemailUri, values, null, null);
+ return null;
+ }
+ });
+ }
+
@VisibleForTesting
public static void resetForTest() {
sAsyncTaskExecutor = null;
diff --git a/src/com/android/dialer/calllog/PhoneCallDetailsHelper.java b/src/com/android/dialer/calllog/PhoneCallDetailsHelper.java
index be02e4c1b..7b149e24e 100644
--- a/src/com/android/dialer/calllog/PhoneCallDetailsHelper.java
+++ b/src/com/android/dialer/calllog/PhoneCallDetailsHelper.java
@@ -326,7 +326,7 @@ public class PhoneCallDetailsHelper {
text = dateText;
}
- if (details.callTypes[0] == Calls.VOICEMAIL_TYPE) {
+ if (details.callTypes[0] == Calls.VOICEMAIL_TYPE && details.duration > 0) {
views.callLocationAndDate.setText(mResources.getString(
R.string.voicemailCallLogDateTimeFormatWithDuration, text,
getVoicemailDuration(details)));