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();
}
}