do not show last-seen metric in UI

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/parser/AbstractParser.java          | 8 
src/main/java/eu/siacs/conversations/parser/MessageParser.java           | 7 
src/main/java/eu/siacs/conversations/parser/PresenceParser.java          | 1 
src/main/java/eu/siacs/conversations/services/XmppConnectionService.java | 6 
src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java      | 8 
src/main/res/layout/activity_contact_details.xml                         | 9 
6 files changed, 7 insertions(+), 32 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/parser/AbstractParser.java 🔗

@@ -48,16 +48,12 @@ public abstract class AbstractParser {
 		return dateFormat.parse(timestamp);
 	}
 
-	protected void updateLastseen(final AbstractStanza packet, final Account account, final boolean presenceOverwrite) {
-		updateLastseen(getTimestamp(packet), account, packet.getFrom(), presenceOverwrite);
-	}
-
-	protected void updateLastseen(long timestamp, final Account account, final Jid from, final boolean presenceOverwrite) {
+	protected void updateLastseen(long timestamp, final Account account, final Jid from) {
 		final String presence = from == null || from.isBareJid() ? "" : from.getResourcepart();
 		final Contact contact = account.getRoster().getContact(from);
 		if (timestamp >= contact.lastseen.time) {
 			contact.lastseen.time = timestamp;
-			if (!presence.isEmpty() && presenceOverwrite) {
+			if (!presence.isEmpty()) {
 				contact.lastseen.presence = presence;
 			}
 		}

src/main/java/eu/siacs/conversations/parser/MessageParser.java 🔗

@@ -395,14 +395,11 @@ public class MessageParser extends AbstractParser implements
 			if (conversation.getMode() == Conversation.MODE_MULTI) {
 				Jid trueCounterpart = conversation.getMucOptions().getTrueCounterpart(counterpart.getResourcepart());
 				message.setTrueCounterpart(trueCounterpart);
-				if (trueCounterpart != null) {
-					updateLastseen(timestamp, account, trueCounterpart, false);
-				}
 				if (!isTypeGroupChat) {
 					message.setType(Message.TYPE_PRIVATE);
 				}
 			} else {
-				updateLastseen(timestamp, account, packet.getFrom(), true);
+				updateLastseen(timestamp, account, from);
 			}
 
 			if (replacementId != null && mXmppConnectionService.allowMessageCorrection()) {
@@ -543,7 +540,7 @@ public class MessageParser extends AbstractParser implements
 					mXmppConnectionService.markRead(conversation);
 				}
 			} else {
-				updateLastseen(timestamp, account, packet.getFrom(), true);
+				updateLastseen(timestamp, account, from);
 				final Message displayedMessage = mXmppConnectionService.markMessage(account, from.toBareJid(), displayed.getAttribute("id"), Message.STATUS_SEND_DISPLAYED);
 				Message message = displayedMessage == null ? null : displayedMessage.prev();
 				while (message != null

src/main/java/eu/siacs/conversations/parser/PresenceParser.java 🔗

@@ -211,7 +211,6 @@ public class PresenceParser extends AbstractParser implements
 				contact.setPgpKeyId(pgp.fetchKeyId(account, msg, x.getContent()));
 			}
 			boolean online = sizeBefore < contact.getPresences().size();
-			updateLastseen(packet, account, false);
 			mXmppConnectionService.onContactStatusChanged.onContactStatusChanged(contact, online);
 		} else if (type.equals("unavailable")) {
 			if (from.isBareJid()) {

src/main/java/eu/siacs/conversations/services/XmppConnectionService.java 🔗

@@ -2817,17 +2817,15 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
 	}
 
 	public boolean displayCaptchaRequest(Account account, String id, Data data, Bitmap captcha) {
-		boolean rc = false;
 		if (mOnCaptchaRequested != null) {
 			DisplayMetrics metrics = getApplicationContext().getResources().getDisplayMetrics();
 			Bitmap scaled = Bitmap.createScaledBitmap(captcha, (int) (captcha.getWidth() * metrics.scaledDensity),
 					(int) (captcha.getHeight() * metrics.scaledDensity), false);
 
 			mOnCaptchaRequested.onCaptchaRequested(account, id, data, scaled);
-			rc = true;
+			return true;
 		}
-
-		return rc;
+		return false;
 	}
 
 	public void updateBlocklistUi(final OnUpdateBlocklist.Status status) {

src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java 🔗

@@ -107,7 +107,6 @@ public class ContactDetailsActivity extends XmppActivity implements OnAccountUpd
 	private Jid contactJid;
 	private TextView contactJidTv;
 	private TextView accountJidTv;
-	private TextView lastseen;
 	private TextView statusMessage;
 	private CheckBox send;
 	private CheckBox receive;
@@ -204,7 +203,6 @@ public class ContactDetailsActivity extends XmppActivity implements OnAccountUpd
 
 		contactJidTv = (TextView) findViewById(R.id.details_contactjid);
 		accountJidTv = (TextView) findViewById(R.id.details_account);
-		lastseen = (TextView) findViewById(R.id.details_lastseen);
 		statusMessage = (TextView) findViewById(R.id.status_message);
 		send = (CheckBox) findViewById(R.id.details_send_presence);
 		receive = (CheckBox) findViewById(R.id.details_receive_presence);
@@ -373,12 +371,6 @@ public class ContactDetailsActivity extends XmppActivity implements OnAccountUpd
 			statusMessage.setVisibility(View.GONE);
 		}
 
-		if (contact.isBlocked() && !this.showDynamicTags) {
-			lastseen.setText(R.string.contact_blocked);
-		} else {
-			lastseen.setText(UIHelper.lastseen(getApplicationContext(), contact.lastseen.time));
-		}
-
 		if (contact.getPresences().size() > 1) {
 			contactJidTv.setText(contact.getDisplayJid() + " ("
 					+ contact.getPresences().size() + ")");

src/main/res/layout/activity_contact_details.xml 🔗

@@ -53,19 +53,12 @@
                     android:orientation="horizontal">
                 </LinearLayout>
 
-                <TextView
-                    android:id="@+id/details_lastseen"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:textColor="@color/black54"
-                    android:textSize="?attr/TextSizeBody" />
-
                 <TextView
                     android:layout_marginTop="8dp"
                     android:id="@+id/status_message"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:textColor="@color/black87"
+                    android:textColor="@color/black54"
                     android:textStyle="italic"
                     android:textSize="?attr/TextSizeBody" />