Mark voicemail as read when call details page is opened.
Bug: 5059737
Change-Id: I875ae49f36af0bfe329dea26bb2e7ca2e9d2e709
diff --git a/src/com/android/contacts/CallDetailActivity.java b/src/com/android/contacts/CallDetailActivity.java
index d093453..9df33ba 100644
--- a/src/com/android/contacts/CallDetailActivity.java
+++ b/src/com/android/contacts/CallDetailActivity.java
@@ -28,17 +28,20 @@
import android.app.ListActivity;
import android.content.ContentResolver;
import android.content.ContentUris;
+import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.database.Cursor;
import android.net.Uri;
+import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.CallLog;
import android.provider.CallLog.Calls;
import android.provider.Contacts.Intents.Insert;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.PhoneLookup;
+import android.provider.VoicemailContract.Voicemails;
import android.telephony.PhoneNumberUtils;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
@@ -192,6 +195,7 @@
getFragmentManager().beginTransaction()
.add(R.id.voicemail_container, playbackFragment).commit();
mAsyncQueryHandler.startVoicemailStatusQuery(getVoicemailUri());
+ markVoicemailAsRead(getVoicemailUri());
} else {
// No voicemail uri: hide the status view.
mStatusMessageView.setVisibility(View.GONE);
@@ -206,6 +210,18 @@
return getIntent().getParcelableExtra(EXTRA_VOICEMAIL_URI);
}
+ private void markVoicemailAsRead(final Uri voicemailUri) {
+ new AsyncTask<Void, Void, Void>() {
+ @Override
+ protected Void doInBackground(Void... params) {
+ ContentValues values = new ContentValues();
+ values.put(Voicemails.IS_READ, true);
+ getContentResolver().update(voicemailUri, values, null, null);
+ return null;
+ }
+ }.execute();
+ }
+
/**
* Returns the list of URIs to show.
* <p>