mark used otr fingprint in contact details and highlight pgp

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java | 12 
src/main/java/eu/siacs/conversations/ui/ConversationFragment.java   | 18 
src/main/res/values/strings.xml                                     |  2 
3 files changed, 28 insertions(+), 4 deletions(-)

Detailed changes

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

@@ -419,8 +419,13 @@ public class ContactDetailsActivity extends XmppActivity implements OnAccountUpd
 				ImageButton removeButton = (ImageButton) view
 						.findViewById(R.id.button_remove);
 				removeButton.setVisibility(View.VISIBLE);
-				keyType.setText("OTR Fingerprint");
 				key.setText(CryptoHelper.prettifyFingerprint(otrFingerprint));
+				if (otrFingerprint != null && otrFingerprint.equals(messageFingerprint)) {
+					keyType.setText(R.string.otr_fingerprint_selected_message);
+					keyType.setTextColor(getResources().getColor(R.color.accent));
+				} else {
+					keyType.setText(R.string.otr_fingerprint);
+				}
 				keys.addView(view);
 				removeButton.setOnClickListener(new OnClickListener() {
 
@@ -447,7 +452,10 @@ public class ContactDetailsActivity extends XmppActivity implements OnAccountUpd
 			View view = inflater.inflate(R.layout.contact_key, keys, false);
 			TextView key = (TextView) view.findViewById(R.id.key);
 			TextView keyType = (TextView) view.findViewById(R.id.key_type);
-			keyType.setText("PGP Key ID");
+			keyType.setText(R.string.openpgp_key_id);
+			if ("pgp".equals(messageFingerprint)) {
+				keyType.setTextColor(getResources().getColor(R.color.accent));
+			}
 			key.setText(OpenPgpUtils.convertKeyIdToHex(contact.getPgpKeyId()));
 			view.setOnClickListener(new OnClickListener() {
 

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

@@ -449,7 +449,14 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
 						}
 					} else {
 						if (!message.getContact().isSelf()) {
-							activity.switchToContactDetails(message.getContact(), message.getFingerprint());
+							String fingerprint;
+							if (message.getEncryption() == Message.ENCRYPTION_PGP
+									|| message.getEncryption() == Message.ENCRYPTION_DECRYPTED) {
+								fingerprint = "pgp";
+							} else {
+								fingerprint = message.getFingerprint();
+							}
+							activity.switchToContactDetails(message.getContact(), fingerprint);
 						}
 					}
 				} else {
@@ -461,7 +468,14 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
 					} else {
 						intent = new Intent(activity, EditAccountActivity.class);
 						intent.putExtra("jid", account.getJid().toBareJid().toString());
-						intent.putExtra("fingerprint", message.getFingerprint());
+						String fingerprint;
+						if (message.getEncryption() == Message.ENCRYPTION_PGP
+								|| message.getEncryption() == Message.ENCRYPTION_DECRYPTED) {
+							fingerprint = "pgp";
+						} else {
+							fingerprint = message.getFingerprint();
+						}
+						intent.putExtra("fingerprint", fingerprint);
 					}
 					startActivity(intent);
 				}

src/main/res/values/strings.xml 🔗

@@ -219,6 +219,8 @@
 	<string name="reception_failed">Reception failed</string>
 	<string name="your_fingerprint">Your fingerprint</string>
 	<string name="otr_fingerprint">OTR fingerprint</string>
+	<string name="otr_fingerprint_selected_message">OTR fingerprint of message</string>
+	<string name="openpgp_key_id">OpenPGP Key ID</string>
 	<string name="omemo_fingerprint">OMEMO fingerprint</string>
 	<string name="omemo_fingerprint_x509">v\\OMEMO fingerprint</string>
 	<string name="omemo_fingerprint_selected_message">OMEMO fingerprint of message</string>