From 7571aac0cc336fcb2809a7762df178853ffaf79a Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Wed, 6 Nov 2019 00:19:11 +0100 Subject: [PATCH] adapt to device-messages api --- jni/dc_wrapper.c | 18 ++++++++++++++++++ res/values/strings.xml | 2 ++ src/com/b44t/messenger/DcChat.java | 2 ++ src/com/b44t/messenger/DcContext.java | 1 + .../securesms/ConversationActivity.java | 5 ++++- .../securesms/ConversationTitleView.java | 3 +++ .../connect/ApplicationDcContext.java | 1 + 7 files changed, 31 insertions(+), 1 deletion(-) diff --git a/jni/dc_wrapper.c b/jni/dc_wrapper.c index a71c0ada4..6d489179e 100644 --- a/jni/dc_wrapper.c +++ b/jni/dc_wrapper.c @@ -656,6 +656,12 @@ JNIEXPORT jint Java_com_b44t_messenger_DcContext_sendTextMsg(JNIEnv *env, jobjec } +JNIEXPORT jint Java_com_b44t_messenger_DcContext_addDeviceMsg(JNIEnv *env, jobject obj, jobject msg) +{ + return dc_add_device_msg(get_dc_context(env, obj), get_dc_msg(env, msg)); +} + + /* DcContext - handle config */ JNIEXPORT void Java_com_b44t_messenger_DcContext_setConfig(JNIEnv *env, jobject obj, jstring key, jstring value /*may be NULL*/) @@ -1058,6 +1064,18 @@ JNIEXPORT jboolean Java_com_b44t_messenger_DcChat_isSelfTalk(JNIEnv *env, jobjec } +JNIEXPORT jboolean Java_com_b44t_messenger_DcChat_isDeviceTalk(JNIEnv *env, jobject obj) +{ + return dc_chat_is_device_talk(get_dc_chat(env, obj))!=0; +} + + +JNIEXPORT jboolean Java_com_b44t_messenger_DcChat_canSend(JNIEnv *env, jobject obj) +{ + return dc_chat_can_send(get_dc_chat(env, obj))!=0; +} + + JNIEXPORT jboolean Java_com_b44t_messenger_DcChat_isVerified(JNIEnv *env, jobject obj) { return dc_chat_is_verified(get_dc_chat(env, obj))!=0; diff --git a/res/values/strings.xml b/res/values/strings.xml index 3e6d1b7c1..a38e53cc6 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -169,6 +169,8 @@ Zoom out Save log Share location with all group members + Device Messages + Locally generated messages Mute for 1 hour Mute for 2 hours diff --git a/src/com/b44t/messenger/DcChat.java b/src/com/b44t/messenger/DcChat.java index cf2d74012..87c717006 100644 --- a/src/com/b44t/messenger/DcChat.java +++ b/src/com/b44t/messenger/DcChat.java @@ -27,6 +27,8 @@ public class DcChat { public native int getColor (); public native boolean isUnpromoted (); public native boolean isSelfTalk (); + public native boolean isDeviceTalk (); + public native boolean canSend (); public native boolean isVerified (); public native boolean isSendingLocations(); diff --git a/src/com/b44t/messenger/DcContext.java b/src/com/b44t/messenger/DcContext.java index 78fe9480e..58cc9de3f 100644 --- a/src/com/b44t/messenger/DcContext.java +++ b/src/com/b44t/messenger/DcContext.java @@ -156,6 +156,7 @@ public class DcContext { public native int prepareMsg (int chat_id, DcMsg msg); public native int sendMsg (int chat_id, DcMsg msg); public native int sendTextMsg (int chat_id, String text); + public native int addDeviceMsg (DcMsg msg); public native int checkQrCPtr (String qr); public @NonNull DcLot checkQr (String qr) { return new DcLot(checkQrCPtr(qr)); } public native String getSecurejoinQr (int chat_id); diff --git a/src/org/thoughtcrime/securesms/ConversationActivity.java b/src/org/thoughtcrime/securesms/ConversationActivity.java index 26c87b962..83d945343 100644 --- a/src/org/thoughtcrime/securesms/ConversationActivity.java +++ b/src/org/thoughtcrime/securesms/ConversationActivity.java @@ -840,8 +840,11 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity conversationContainer.setClipToPadding(true); } - if(chatId == DcChat.DC_CHAT_ID_DEADDROP) { + if (!dcChat.canSend()) { composePanel.setVisibility(View.GONE); + } + + if (chatId == DcChat.DC_CHAT_ID_DEADDROP) { titleView.hideAvatar(); } } diff --git a/src/org/thoughtcrime/securesms/ConversationTitleView.java b/src/org/thoughtcrime/securesms/ConversationTitleView.java index 2a3e81d27..660789aa3 100644 --- a/src/org/thoughtcrime/securesms/ConversationTitleView.java +++ b/src/org/thoughtcrime/securesms/ConversationTitleView.java @@ -136,6 +136,9 @@ public class ConversationTitleView extends RelativeLayout { if( dcChat.isSelfTalk() ) { subtitle = context.getString(R.string.chat_self_talk_subtitle); } + else if( dcChat.isDeviceTalk() ) { + subtitle = context.getString(R.string.device_talk_subtitle); + } else { subtitle = dcContext.getContact(chatContacts[0]).getAddr(); } diff --git a/src/org/thoughtcrime/securesms/connect/ApplicationDcContext.java b/src/org/thoughtcrime/securesms/connect/ApplicationDcContext.java index 432e12b83..ebc1693c4 100644 --- a/src/org/thoughtcrime/securesms/connect/ApplicationDcContext.java +++ b/src/org/thoughtcrime/securesms/connect/ApplicationDcContext.java @@ -148,6 +148,7 @@ public class ApplicationDcContext extends DcContext { setStockTranslation(61, context.getString(R.string.login_error_server_response)); setStockTranslation(62, context.getString(R.string.systemmsg_action_by_user)); setStockTranslation(63, context.getString(R.string.systemmsg_action_by_me)); + setStockTranslation(68, context.getString(R.string.device_talk)); } public File getImexDir() {