diff --git a/jni/dc_wrapper.c b/jni/dc_wrapper.c index 4556801be..326057b9c 100644 --- a/jni/dc_wrapper.c +++ b/jni/dc_wrapper.c @@ -1922,6 +1922,11 @@ JNIEXPORT jboolean Java_com_b44t_messenger_DcContact_isBlocked(JNIEnv *env, jobj return (jboolean)(dc_contact_is_blocked(get_dc_contact(env, obj))!=0); } +JNIEXPORT jboolean Java_com_b44t_messenger_DcContact_isBot(JNIEnv *env, jobject obj) +{ + return (jboolean)(dc_contact_is_bot(get_dc_contact(env, obj))!=0); +} + JNIEXPORT jboolean Java_com_b44t_messenger_DcContact_isVerified(JNIEnv *env, jobject obj) { diff --git a/jni/deltachat-core-rust b/jni/deltachat-core-rust index b3f93deb0..f93b00b36 160000 --- a/jni/deltachat-core-rust +++ b/jni/deltachat-core-rust @@ -1 +1 @@ -Subproject commit b3f93deb0e839afe32ef4193ac248fd18108f6f4 +Subproject commit f93b00b36c530914f2154c52138b3b3262c77129 diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 20f45150a..619578e80 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -100,10 +100,11 @@ La semana pasada El mes pasado - Visto por última vez: %1$s + últ. vez: %1$s - Visto por última vez: %1$s - Visto por última vez: Desconocido + últ. vez: %1$s + últ. vez: Desconocido + en línea %d min diff --git a/res/values/strings.xml b/res/values/strings.xml index 3ab7b1c01..2bc2d6b8b 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -8,6 +8,7 @@ or Clear Search + bot Yes No Select @@ -101,10 +102,11 @@ Last week Last month - Last seen at %1$s + last seen at %1$s - Last seen %1$s - Last seen: Unknown + last seen %1$s + last seen: Unknown + online %d min diff --git a/src/com/b44t/messenger/DcContact.java b/src/com/b44t/messenger/DcContact.java index 91afae6f0..62b24a8df 100644 --- a/src/com/b44t/messenger/DcContact.java +++ b/src/com/b44t/messenger/DcContact.java @@ -56,6 +56,7 @@ public class DcContact { public native long getLastSeen (); public native boolean wasSeenRecently(); public native boolean isBlocked (); + public native boolean isBot (); public native boolean isVerified (); public native int getVerifierId (); diff --git a/src/org/thoughtcrime/securesms/ConversationActivity.java b/src/org/thoughtcrime/securesms/ConversationActivity.java index be6fff601..40716e82e 100644 --- a/src/org/thoughtcrime/securesms/ConversationActivity.java +++ b/src/org/thoughtcrime/securesms/ConversationActivity.java @@ -255,8 +255,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity if (!isMultiUser()) { eventCenter.addObserver(DcContext.DC_EVENT_INCOMING_MSG, this); eventCenter.addObserver(DcContext.DC_EVENT_MSG_READ, this); - // handle DC_EVENT_MSG_DELIVERED to hide the seen-recently indicator if needed: - eventCenter.addObserver(DcContext.DC_EVENT_MSG_DELIVERED, this); } handleRelaying(); @@ -1489,11 +1487,10 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity setComposePanelVisibility(); initializeContactRequest(); } else if ((eventId == DcContext.DC_EVENT_INCOMING_MSG - || eventId == DcContext.DC_EVENT_MSG_READ - || eventId == DcContext.DC_EVENT_MSG_DELIVERED) + || eventId == DcContext.DC_EVENT_MSG_READ) && event.getData1Int() == chatId) { - DcContact contact = recipient.getDcContact(); - titleView.setSeenRecently(contact!=null? dcContext.getContact(contact.getId()).wasSeenRecently() : false); + dcChat = dcContext.getChat(chatId); + titleView.setTitle(glideRequests, dcChat); } } diff --git a/src/org/thoughtcrime/securesms/ConversationTitleView.java b/src/org/thoughtcrime/securesms/ConversationTitleView.java index 41b21dc1b..45fa81e0d 100644 --- a/src/org/thoughtcrime/securesms/ConversationTitleView.java +++ b/src/org/thoughtcrime/securesms/ConversationTitleView.java @@ -110,8 +110,13 @@ public class ConversationTitleView extends RelativeLayout { } else { DcContact dcContact = dcContext.getContact(chatContacts[0]); - if (profileView || !dcChat.isProtected()) { + isOnline = dcContact.wasSeenRecently(); + if (profileView) { subtitleStr = dcContact.getAddr(); + } else if (false && dcContact.isBot()) { + subtitleStr = context.getString(R.string.bot); + } else if (isOnline) { + subtitleStr = context.getString(R.string.online); } else { long timestamp = dcContact.getLastSeen(); if (timestamp != 0) { @@ -119,7 +124,6 @@ public class ConversationTitleView extends RelativeLayout { subtitleStr = context.getString(R.string.last_seen_at, DateUtils.getExtendedTimeSpanString(context, locale, timestamp)); } } - isOnline = dcContact.wasSeenRecently(); } }