(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, IMAPFolder ifolder)
| 2176 | } |
| 2177 | |
| 2178 | private static void onBody(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, IMAPFolder ifolder) throws MessagingException, IOException { |
| 2179 | SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); |
| 2180 | boolean download_plain = prefs.getBoolean("download_plain", false); |
| 2181 | |
| 2182 | boolean plain_text = jargs.optBoolean(0, download_plain); |
| 2183 | String charset = (jargs.isNull(1) ? null : jargs.optString(1, null)); |
| 2184 | |
| 2185 | if (message.uid == null) |
| 2186 | throw new IllegalArgumentException("uid missing"); |
| 2187 | |
| 2188 | // Download message body |
| 2189 | DB db = DB.getInstance(context); |
| 2190 | |
| 2191 | if (message.content && message.isPlainOnly() == plain_text && charset == null) |
| 2192 | return; |
| 2193 | |
| 2194 | // Get message |
| 2195 | Message imessage = ifolder.getMessageByUID(message.uid); |
| 2196 | if (imessage == null) { |
| 2197 | File file = message.getFile(context); |
| 2198 | Helper.writeText(file, ""); |
| 2199 | db.message().setMessageContent(message.id, |
| 2200 | true, |
| 2201 | null, |
| 2202 | null, |
| 2203 | null, |
| 2204 | context.getString(R.string.title_not_existing)); |
| 2205 | return; |
| 2206 | //throw new MessageRemovedException(); |
| 2207 | } |
| 2208 | |
| 2209 | MessageHelper helper = new MessageHelper((MimeMessage) imessage, context); |
| 2210 | MessageHelper.MessageParts parts = helper.getMessageParts(); |
| 2211 | String body = parts.getHtml(context, plain_text, charset); |
| 2212 | File file = message.getFile(context); |
| 2213 | Helper.writeText(file, body); |
| 2214 | String text = HtmlHelper.getFullText(context, body); |
| 2215 | message.preview = HtmlHelper.getPreview(text); |
| 2216 | message.language = HtmlHelper.getLanguage(context, message.subject, text); |
| 2217 | Integer plain_only = parts.isPlainOnly(); |
| 2218 | if (plain_text) |
| 2219 | plain_only = 1 | (plain_only == null ? 0 : plain_only & 0x80); |
| 2220 | db.message().setMessageContent(message.id, |
| 2221 | true, |
| 2222 | message.language, |
| 2223 | plain_only, |
| 2224 | message.preview, |
| 2225 | parts.getWarnings(message.warning)); |
| 2226 | MessageClassifier.classify(message, folder, true, context); |
| 2227 | |
| 2228 | if (body != null) |
| 2229 | EntityLog.log(context, "Operation body size=" + body.length()); |
| 2230 | } |
| 2231 | |
| 2232 | private static void onAttachment(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, EntityOperation op, IMAPFolder ifolder) throws JSONException, MessagingException, IOException { |
| 2233 | // Download attachment |
no test coverage detected