Refactoring

pull/210/head
M66B 3 years ago
parent f3482aea05
commit 7db939eb0f

@ -3640,19 +3640,19 @@ public class MessageHelper {
}
if ("message/rfc822".equals(local.type))
decodeRfc822(context, local);
decodeRfc822(context, local, 1);
else if ("text/calendar".equals(local.type) && ActivityBilling.isPro(context))
decodeICalendar(context, local);
else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && local.isCompressed()) {
decodeCompressed(context, local);
decodeCompressed(context, local, 1);
} else if (Helper.isTnef(local.type, local.name))
decodeTNEF(context, local);
decodeTNEF(context, local, 1);
else if ("msg".equalsIgnoreCase(Helper.getExtension(local.name)))
decodeOutlook(context, local);
decodeOutlook(context, local, 1);
}
}
@ -3685,7 +3685,7 @@ public class MessageHelper {
db.attachment().setDownloaded(local.id, file.length());
}
private void decodeRfc822(Context context, EntityAttachment local) {
private int decodeRfc822(Context context, EntityAttachment local, int subsequence) {
DB db = DB.getInstance(context);
try (FileInputStream fis = new FileInputStream(local.getFile(context))) {
Properties props = MessageHelper.getSessionProperties(true);
@ -3694,7 +3694,6 @@ public class MessageHelper {
MessageHelper helper = new MessageHelper(imessage, context);
MessageParts parts = helper.getMessageParts();
int subsequence = 1;
for (AttachmentPart epart : parts.getAttachmentParts())
try {
Log.i("Embedded attachment seq=" + local.sequence + ":" + subsequence);
@ -3726,14 +3725,16 @@ public class MessageHelper {
else
db.attachment().setWarning(local.id, Log.formatThrowable(ex));
}
return subsequence;
}
private void decodeCompressed(Context context, EntityAttachment local) {
private int decodeCompressed(Context context, EntityAttachment local, int subsequence) {
// https://commons.apache.org/proper/commons-compress/examples.html
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean unzip = prefs.getBoolean("unzip", !BuildConfig.PLAY_STORE_RELEASE);
if (!unzip)
return;
return subsequence;
DB db = DB.getInstance(context);
@ -3753,7 +3754,7 @@ public class MessageHelper {
EntityAttachment attachment = new EntityAttachment();
attachment.message = local.message;
attachment.sequence = local.sequence;
attachment.subsequence = 1;
attachment.subsequence = subsequence++;
attachment.name = name;
attachment.type = Helper.guessMimeType(name);
if (total >= 0)
@ -3815,7 +3816,6 @@ public class MessageHelper {
ais = new ArchiveStreamFactory().createArchiveInputStream(
new BufferedInputStream(local.isTarGzip() ? new GzipCompressorInputStream(fis) : fis));
int subsequence = 1;
while ((entry = ais.getNextEntry()) != null) {
if (!ais.canReadEntryData(entry)) {
Log.w("Zip invalid=" + entry);
@ -3884,6 +3884,8 @@ public class MessageHelper {
else
db.attachment().setWarning(local.id, Log.formatThrowable(ex));
}
return subsequence;
}
private void decodeICalendar(Context context, EntityAttachment local) {
@ -3945,10 +3947,9 @@ public class MessageHelper {
}
}
private void decodeTNEF(Context context, EntityAttachment local) {
private int decodeTNEF(Context context, EntityAttachment local, int subsequence) {
try {
DB db = DB.getInstance(context);
int subsequence = 0;
// https://poi.apache.org/components/hmef/index.html
File file = local.getFile(context);
@ -3959,7 +3960,7 @@ public class MessageHelper {
EntityAttachment attachment = new EntityAttachment();
attachment.message = local.message;
attachment.sequence = local.sequence;
attachment.subsequence = ++subsequence;
attachment.subsequence = subsequence++;
attachment.name = "subject.txt";
attachment.type = "text/plain";
attachment.disposition = Part.ATTACHMENT;
@ -3984,7 +3985,7 @@ public class MessageHelper {
EntityAttachment attachment = new EntityAttachment();
attachment.message = local.message;
attachment.sequence = local.sequence;
attachment.subsequence = ++subsequence;
attachment.subsequence = subsequence++;
if (attr.getProperty().equals(org.apache.poi.hsmf.datatypes.MAPIProperty.BODY_HTML)) {
attachment.name = "body.html";
attachment.type = "text/html";
@ -4008,7 +4009,7 @@ public class MessageHelper {
EntityAttachment attachment = new EntityAttachment();
attachment.message = local.message;
attachment.sequence = local.sequence;
attachment.subsequence = ++subsequence;
attachment.subsequence = subsequence++;
attachment.name = "body.rtf";
attachment.type = "application/rtf";
attachment.disposition = Part.ATTACHMENT;
@ -4036,7 +4037,7 @@ public class MessageHelper {
EntityAttachment attachment = new EntityAttachment();
attachment.message = local.message;
attachment.sequence = local.sequence;
attachment.subsequence = ++subsequence;
attachment.subsequence = subsequence++;
attachment.name = filename;
attachment.type = Helper.guessMimeType(attachment.name);
attachment.disposition = Part.ATTACHMENT;
@ -4067,7 +4068,7 @@ public class MessageHelper {
EntityAttachment attachment = new EntityAttachment();
attachment.message = local.message;
attachment.sequence = local.sequence;
attachment.subsequence = ++subsequence;
attachment.subsequence = subsequence++;
attachment.name = "attributes.txt";
attachment.type = "text/plain";
attachment.disposition = Part.ATTACHMENT;
@ -4084,12 +4085,13 @@ public class MessageHelper {
} catch (Throwable ex) {
Log.w(ex);
}
return subsequence;
}
private void decodeOutlook(Context context, EntityAttachment local) {
private int decodeOutlook(Context context, EntityAttachment local, int subsequence) {
try {
DB db = DB.getInstance(context);
int subsequence = 0;
// https://poi.apache.org/components/hmef/index.html
File file = local.getFile(context);
@ -4100,7 +4102,7 @@ public class MessageHelper {
EntityAttachment attachment = new EntityAttachment();
attachment.message = local.message;
attachment.sequence = local.sequence;
attachment.subsequence = ++subsequence;
attachment.subsequence = subsequence++;
attachment.name = "headers.txt";
attachment.type = "text/rfc822-headers";
attachment.disposition = Part.ATTACHMENT;
@ -4115,7 +4117,7 @@ public class MessageHelper {
EntityAttachment attachment = new EntityAttachment();
attachment.message = local.message;
attachment.sequence = local.sequence;
attachment.subsequence = ++subsequence;
attachment.subsequence = subsequence++;
attachment.name = "body.html";
attachment.type = "text/html";
attachment.disposition = Part.ATTACHMENT;
@ -4132,7 +4134,7 @@ public class MessageHelper {
EntityAttachment attachment = new EntityAttachment();
attachment.message = local.message;
attachment.sequence = local.sequence;
attachment.subsequence = ++subsequence;
attachment.subsequence = subsequence++;
attachment.name = "body.txt";
attachment.type = "text/plain";
attachment.disposition = Part.ATTACHMENT;
@ -4149,7 +4151,7 @@ public class MessageHelper {
EntityAttachment attachment = new EntityAttachment();
attachment.message = local.message;
attachment.sequence = local.sequence;
attachment.subsequence = ++subsequence;
attachment.subsequence = subsequence++;
attachment.name = "body.rtf";
attachment.type = "application/rtf";
attachment.disposition = Part.ATTACHMENT;
@ -4168,7 +4170,7 @@ public class MessageHelper {
EntityAttachment attachment = new EntityAttachment();
attachment.message = local.message;
attachment.sequence = local.sequence;
attachment.subsequence = ++subsequence;
attachment.subsequence = subsequence++;
attachment.name = ofa.getFilename();
attachment.type = ofa.getMimeTag();
attachment.disposition = Part.ATTACHMENT;
@ -4188,6 +4190,8 @@ public class MessageHelper {
} catch (Throwable ex) {
Log.w(ex);
}
return subsequence;
}
String getWarnings(String existing) {

Loading…
Cancel
Save