mirror of
https://github.com/oxen-io/session-android.git
synced 2024-11-25 02:55:23 +00:00
723fb4ffdd
1) Display the individual sender name in a group conversation. 2) Add an "address" column to MmsDatabase and keep FROM there. 3) Remove all blocking operations from MmsDatabase.Reader path. 4) Strip SMIL and other undisplayable parts from part count. 5) Fix places where messages weren't being correctly decrypted.
65 lines
1.7 KiB
Java
65 lines
1.7 KiB
Java
package org.thoughtcrime.securesms.mms;
|
|
|
|
import android.util.Log;
|
|
|
|
import org.thoughtcrime.securesms.util.Util;
|
|
|
|
import java.io.UnsupportedEncodingException;
|
|
|
|
import ws.com.google.android.mms.ContentType;
|
|
import ws.com.google.android.mms.pdu.CharacterSets;
|
|
import ws.com.google.android.mms.pdu.PduBody;
|
|
|
|
public class PartParser {
|
|
public static String getMessageText(PduBody body) {
|
|
String bodyText = null;
|
|
|
|
for (int i=0;i<body.getPartsNum();i++) {
|
|
if (ContentType.isTextType(Util.toIsoString(body.getPart(i).getContentType()))) {
|
|
String partText;
|
|
|
|
try {
|
|
partText = new String(body.getPart(i).getData(),
|
|
CharacterSets.getMimeName(body.getPart(i).getCharset()));
|
|
} catch (UnsupportedEncodingException e) {
|
|
Log.w("PartParser", e);
|
|
partText = "Unsupported Encoding!";
|
|
}
|
|
|
|
bodyText = (bodyText == null) ? partText : bodyText + " " + partText;
|
|
}
|
|
}
|
|
|
|
return bodyText;
|
|
}
|
|
|
|
public static PduBody getNonTextParts(PduBody body) {
|
|
PduBody stripped = new PduBody();
|
|
|
|
for (int i=0;i<body.getPartsNum();i++) {
|
|
if (!ContentType.isTextType(Util.toIsoString(body.getPart(i).getContentType()))) {
|
|
stripped.addPart(body.getPart(i));
|
|
}
|
|
}
|
|
|
|
return stripped;
|
|
}
|
|
|
|
public static int getDisplayablePartCount(PduBody body) {
|
|
int partCount = 0;
|
|
|
|
for (int i=0;i<body.getPartsNum();i++) {
|
|
String contentType = Util.toIsoString(body.getPart(i).getContentType());
|
|
|
|
if (ContentType.isImageType(contentType) ||
|
|
ContentType.isAudioType(contentType) ||
|
|
ContentType.isVideoType(contentType))
|
|
{
|
|
partCount++;
|
|
}
|
|
}
|
|
|
|
return partCount;
|
|
}
|
|
}
|