From c0f590c59ef0179d25a8cbe951a55d80ef33690b Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Thu, 28 Jan 2021 22:07:08 +0100 Subject: [PATCH 1/9] update deltachat-core-rust submodule --- jni/deltachat-core-rust | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jni/deltachat-core-rust b/jni/deltachat-core-rust index b09e27c53..4508eced3 160000 --- a/jni/deltachat-core-rust +++ b/jni/deltachat-core-rust @@ -1 +1 @@ -Subproject commit b09e27c536883777f6900ec0e7a305ac78a4f63d +Subproject commit 4508eced376fc4833a86d6faf3b2034fdf361378 From 8d9c02dd7a2be33fe588e0b9469be56fb0435a62 Mon Sep 17 00:00:00 2001 From: bjoern Date: Thu, 28 Jan 2021 22:53:15 +0100 Subject: [PATCH 2/9] add option to view full (html) message (#1763) * add get-mime-original apis * remove unused control * add 'Show full message' buttons * split reusable WebViewActivity from LocalHelpActivity * add FullMsgActivity * load html via AsyncTask * adapt to changed api * handle mailto:-links in WebView * block loading remote images by default, add user setting always/once/never * do not hide 'Once' button in always-mode, playing around a day with hidden 'Once' that looks more like a bug :) * wording: as 'Always' affects all messages, it is better to speak of multiple senders * wording: use 'Load remote images' this makes it easier for the user to find the option if one sees, images are missing in the document. * wording: shorten text. * wording: change 'may' to 'can'. 'may' sounds a bit as if someone allows this. * Don't use AsyncTask * check 'once' if appropriate * use lite-colored checkbox-emoji in dark-theme * add comment about missing error logging Co-authored-by: Hocuri --- AndroidManifest.xml | 5 + jni/dc_wrapper.c | 15 + res/layout/conversation_item_received.xml | 17 + res/layout/conversation_item_sent.xml | 18 +- ...elp_activity.xml => web_view_activity.xml} | 0 res/menu/full_msg.xml | 8 + res/menu/local_help.xml | 24 +- res/menu/web_view.xml | 27 ++ res/values/strings.xml | 6 + src/com/b44t/messenger/DcContext.java | 1 + src/com/b44t/messenger/DcMsg.java | 1 + .../securesms/BindableConversationItem.java | 1 + .../securesms/ConversationFragment.java | 8 + .../securesms/ConversationItem.java | 15 + .../securesms/ConversationListActivity.java | 2 +- .../securesms/FullMsgActivity.java | 141 ++++++++ .../securesms/LocalHelpActivity.java | 305 ++++-------------- .../securesms/WebViewActivity.java | 220 +++++++++++++ .../securesms/util/DynamicTheme.java | 5 + .../thoughtcrime/securesms/util/Prefs.java | 8 + 20 files changed, 553 insertions(+), 274 deletions(-) rename res/layout/{local_help_activity.xml => web_view_activity.xml} (100%) create mode 100644 res/menu/full_msg.xml create mode 100644 res/menu/web_view.xml create mode 100644 src/org/thoughtcrime/securesms/FullMsgActivity.java create mode 100644 src/org/thoughtcrime/securesms/WebViewActivity.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index e765691ad..2a1f35ec4 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -277,6 +277,11 @@ android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"> + + + diff --git a/jni/dc_wrapper.c b/jni/dc_wrapper.c index 5a2f9beb1..36003db47 100644 --- a/jni/dc_wrapper.c +++ b/jni/dc_wrapper.c @@ -506,6 +506,15 @@ JNIEXPORT jstring Java_com_b44t_messenger_DcContext_getMsgInfo(JNIEnv *env, jobj } +JNIEXPORT jstring Java_com_b44t_messenger_DcContext_getMsgHtml(JNIEnv *env, jobject obj, jint msg_id) +{ + char* temp = dc_get_msg_html(get_dc_context(env, obj), msg_id); + jstring ret = JSTRING_NEW(temp); + dc_str_unref(temp); + return ret; +} + + JNIEXPORT void Java_com_b44t_messenger_DcContext_deleteMsgs(JNIEnv *env, jobject obj, jintArray msg_ids) { int msg_ids_cnt = 0; @@ -1337,6 +1346,12 @@ JNIEXPORT jboolean Java_com_b44t_messenger_DcMsg_isSetupMessage(JNIEnv *env, job } +JNIEXPORT jboolean Java_com_b44t_messenger_DcMsg_hasHtml(JNIEnv *env, jobject obj) +{ + return dc_msg_has_html(get_dc_msg(env, obj))!=0; +} + + JNIEXPORT jstring Java_com_b44t_messenger_DcMsg_getSetupCodeBegin(JNIEnv *env, jobject obj) { char* temp = dc_msg_get_setupcodebegin(get_dc_msg(env, obj)); diff --git a/res/layout/conversation_item_received.xml b/res/layout/conversation_item_received.xml index 12eb090f8..0c2677295 100644 --- a/res/layout/conversation_item_received.xml +++ b/res/layout/conversation_item_received.xml @@ -151,6 +151,23 @@ app:scaleEmojis="true" tools:text="Mango pickle lorem ipsum"/> +