OSDN Git Service

Fix a merge problem with html mms
authorTom Taylor <tomtaylor@google.com>
Wed, 21 Jul 2010 17:49:48 +0000 (10:49 -0700)
committerTom Taylor <tomtaylor@google.com>
Wed, 21 Jul 2010 17:49:48 +0000 (10:49 -0700)
Html mms message support was added back in Jan '10. At that time, we
had moved the mms code out of the framework into the mms app. We decided
to back out that change and leave the mms code in its original place.
As a result, the changes to support html messages were lost. This
handmerged CL restores those changes. I'll cherry-pick this into master
as well. Bug 2858888

Change-Id: Icf8835edc8ac396698c167be5433a6fe1cfe6103

core/java/com/google/android/mms/ContentType.java
core/java/com/google/android/mms/pdu/PduParser.java
core/java/com/google/android/mms/pdu/PduPersister.java

index 94bc9fd..b066fad 100644 (file)
@@ -26,6 +26,7 @@ public class ContentType {
     public static final String MMS_GENERIC       = "application/vnd.wap.mms-generic";
     public static final String MULTIPART_MIXED   = "application/vnd.wap.multipart.mixed";
     public static final String MULTIPART_RELATED = "application/vnd.wap.multipart.related";
+    public static final String MULTIPART_ALTERNATIVE = "application/vnd.wap.multipart.alternative";
 
     public static final String TEXT_PLAIN        = "text/plain";
     public static final String TEXT_HTML         = "text/html";
index d465c5a..131ac51 100644 (file)
@@ -157,9 +157,11 @@ public class PduParser {
                 }
                 String ctTypeStr = new String(contentType);
                 if (ctTypeStr.equals(ContentType.MULTIPART_MIXED)
-                        || ctTypeStr.equals(ContentType.MULTIPART_RELATED)) {
+                        || ctTypeStr.equals(ContentType.MULTIPART_RELATED)
+                        || ctTypeStr.equals(ContentType.MULTIPART_ALTERNATIVE)) {
                     // The MMS content type must be "application/vnd.wap.multipart.mixed"
                     // or "application/vnd.wap.multipart.related"
+                    // or "application/vnd.wap.multipart.alternative"
                     return retrieveConf;
                 }
                 return null;
index d4ac24a..9fdd204 100644 (file)
@@ -422,7 +422,8 @@ public class PduPersister {
                     // Store simple string values directly in the database instead of an
                     // external file.  This makes the text searchable and retrieval slightly
                     // faster.
-                    if ("text/plain".equals(type) || "application/smil".equals(type)) {
+                    if (ContentType.TEXT_PLAIN.equals(type) || ContentType.APP_SMIL.equals(type)
+                            || ContentType.TEXT_HTML.equals(type)) {
                         String text = c.getString(PART_COLUMN_TEXT);
                         byte [] blob = new EncodedStringValue(text != null ? text : "")
                             .getTextString();
@@ -736,7 +737,9 @@ public class PduPersister {
 
         try {
             byte[] data = part.getData();
-            if ("text/plain".equals(contentType) || "application/smil".equals(contentType)) {
+            if (ContentType.TEXT_PLAIN.equals(contentType)
+                    || ContentType.APP_SMIL.equals(contentType)
+                    || ContentType.TEXT_HTML.equals(contentType)) {
                 ContentValues cv = new ContentValues();
                 cv.put(Telephony.Mms.Part.TEXT, new EncodedStringValue(data).getString());
                 if (mContentResolver.update(uri, cv, null, null) != 1) {