am f9b4961d: am ce9fea39: am 660322d8: Merge "Add transcription field to voicemail object and related changes." into mnc-dev

* commit 'f9b4961da0485cad97b65ee5357622a5b1373ec5':
  Add transcription field to voicemail object and related changes.
diff --git a/core/java/android/provider/VoicemailContract.java b/core/java/android/provider/VoicemailContract.java
index e1b5a6d..76eaea9 100644
--- a/core/java/android/provider/VoicemailContract.java
+++ b/core/java/android/provider/VoicemailContract.java
@@ -314,11 +314,16 @@
             contentValues.put(Voicemails.IS_READ, voicemail.isRead() ? 1 : 0);
 
             PhoneAccountHandle phoneAccount = voicemail.getPhoneAccount();
-            if (voicemail.getPhoneAccount() != null) {
+            if (phoneAccount != null) {
                 contentValues.put(Voicemails.PHONE_ACCOUNT_COMPONENT_NAME,
                         phoneAccount.getComponentName().flattenToString());
                 contentValues.put(Voicemails.PHONE_ACCOUNT_ID, phoneAccount.getId());
             }
+
+            if (voicemail.getTranscription() != null) {
+                contentValues.put(Voicemails.TRANSCRIPTION, voicemail.getTranscription());
+            }
+
             return contentValues;
         }
     }
diff --git a/telecomm/java/android/telecom/Voicemail.java b/telecomm/java/android/telecom/Voicemail.java
index 151917e..ca235bf 100644
--- a/telecomm/java/android/telecom/Voicemail.java
+++ b/telecomm/java/android/telecom/Voicemail.java
@@ -36,10 +36,11 @@
     private final Uri mUri;
     private final Boolean mIsRead;
     private final Boolean mHasContent;
+    private final String mTranscription;
 
     private Voicemail(Long timestamp, String number, PhoneAccountHandle phoneAccountHandle, Long id,
             Long duration, String source, String providerData, Uri uri, Boolean isRead,
-            Boolean hasContent) {
+            Boolean hasContent, String transcription) {
         mTimestamp = timestamp;
         mNumber = number;
         mPhoneAccount = phoneAccountHandle;
@@ -50,6 +51,7 @@
         mUri = uri;
         mIsRead = isRead;
         mHasContent = hasContent;
+        mTranscription = transcription;
     }
 
     /**
@@ -88,6 +90,7 @@
         private Uri mBuilderUri;
         private Boolean mBuilderIsRead;
         private boolean mBuilderHasContent;
+        private String mBuilderTranscription;
 
         /** You should use the correct factory method to construct a builder. */
         private Builder() {
@@ -143,6 +146,11 @@
             return this;
         }
 
+        public Builder setTranscription(String transcription) {
+            mBuilderTranscription = transcription;
+            return this;
+        }
+
         public Voicemail build() {
             mBuilderId = mBuilderId == null ? -1 : mBuilderId;
             mBuilderTimestamp = mBuilderTimestamp == null ? 0 : mBuilderTimestamp;
@@ -150,7 +158,7 @@
             mBuilderIsRead = mBuilderIsRead == null ? false : mBuilderIsRead;
             return new Voicemail(mBuilderTimestamp, mBuilderNumber, mBuilderPhoneAccount,
                     mBuilderId, mBuilderDuration, mBuilderSourcePackage, mBuilderSourceData,
-                    mBuilderUri, mBuilderIsRead, mBuilderHasContent);
+                    mBuilderUri, mBuilderIsRead, mBuilderHasContent, mBuilderTranscription);
         }
     }
 
@@ -230,6 +238,13 @@
         return mHasContent;
     }
 
+    /**
+     * Returns the text transcription of this voicemail, or null if this field is not set.
+     */
+    public String getTranscription() {
+        return mTranscription;
+    }
+
     @Override
     public int describeContents() {
         return 0;
@@ -265,6 +280,7 @@
         } else {
             dest.writeInt(0);
         }
+        dest.writeCharSequence(mTranscription);
     }
 
     public static final Creator<Voicemail> CREATOR
@@ -299,5 +315,6 @@
         }
         mIsRead = in.readInt() > 0 ? true : false;
         mHasContent = in.readInt() > 0 ? true : false;
+        mTranscription = (String) in.readCharSequence();
     }
 }