changed design language to match BTBV proposal

Daniel Gultsch created

* untrusted messages have red background
* unverified message have normal background and red lock

Change summary

src/main/java/eu/siacs/conversations/entities/Message.java          |  4 
src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java | 17 
src/main/res/values/strings.xml                                     |  1 
3 files changed, 14 insertions(+), 8 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/entities/Message.java πŸ”—

@@ -493,7 +493,7 @@ public class Message extends AbstractEntity {
 						!this.getBody().startsWith(ME_COMMAND) &&
 						!this.bodyIsHeart() &&
 						!message.bodyIsHeart() &&
-						this.isTrusted() == message.isTrusted()
+						((this.axolotlFingerprint == null && message.axolotlFingerprint == null) || this.axolotlFingerprint.equals(message.getFingerprint()))
 				);
 	}
 
@@ -813,7 +813,7 @@ public class Message extends AbstractEntity {
 
 	public boolean isTrusted() {
 		FingerprintStatus s = conversation.getAccount().getAxolotlService().getFingerprintTrust(axolotlFingerprint);
-		return s != null && s.isTrustedAndActive();
+		return s != null && s.isTrusted();
 	}
 
 	private  int getPreviousEncryption() {

src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java πŸ”—

@@ -128,7 +128,7 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
 		}
 	}
 
-	private void displayStatus(ViewHolder viewHolder, Message message, int type, boolean darkBackground) {
+	private void displayStatus(ViewHolder viewHolder, Message message, int type, boolean darkBackground, boolean inValidSession) {
 		String filesize = null;
 		String info = null;
 		boolean error = false;
@@ -208,8 +208,8 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
 						.getAccount().getAxolotlService().getFingerprintTrust(
 								message.getFingerprint());
 
-				if(status == null || (!status.isTrustedAndActive())) {
-					viewHolder.indicator.setColorFilter(activity.getWarningTextColor());
+				if(status == null || (!status.isVerified() && inValidSession)) {
+					viewHolder.indicator.setColorFilter(0xffc64545);
 					viewHolder.indicator.setAlpha(1.0f);
 				} else {
 					viewHolder.indicator.clearColorFilter();
@@ -465,7 +465,8 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
 	@Override
 	public View getView(int position, View view, ViewGroup parent) {
 		final Message message = getItem(position);
-		final boolean isInValidSession = message.isValidInSession();
+		final boolean omemoEncryption = message.getEncryption() == Message.ENCRYPTION_AXOLOTL;
+		final boolean isInValidSession = message.isValidInSession() && (!omemoEncryption || message.isTrusted());
 		final Conversation conversation = message.getConversation();
 		final Account account = conversation.getAccount();
 		final int type = getItemViewType(position);
@@ -671,11 +672,15 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
 			} else {
 				viewHolder.message_box.setBackgroundResource(R.drawable.message_bubble_received_warning);
 				viewHolder.encryption.setVisibility(View.VISIBLE);
-				viewHolder.encryption.setText(CryptoHelper.encryptionTypeToText(message.getEncryption()));
+				if (omemoEncryption && !message.isTrusted()) {
+					viewHolder.encryption.setText(R.string.not_trusted);
+				} else {
+					viewHolder.encryption.setText(CryptoHelper.encryptionTypeToText(message.getEncryption()));
+				}
 			}
 		}
 
-		displayStatus(viewHolder, message, type, darkBackground);
+		displayStatus(viewHolder, message, type, darkBackground, isInValidSession);
 
 		return view;
 	}

src/main/res/values/strings.xml πŸ”—

@@ -713,4 +713,5 @@
 	<string name="pref_blind_trust_before_verification">Blind Trust Before Verification</string>
 	<string name="pref_blind_trust_before_verification_summary">Automatically trust all new devices from contacts that haven’t been verified before.</string>
 	<string name="blindly_trusted_omemo_keys">Blindly trusted OMEMO keys</string>
+	<string name="not_trusted">Untrusted</string>
 </resources>