hide fingerprints in UI if encryption is disabled

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java | 56 
src/main/java/eu/siacs/conversations/ui/ConversationFragment.java   |  7 
src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java    | 17 
src/main/res/values/strings.xml                                     |  1 
4 files changed, 44 insertions(+), 37 deletions(-)

Detailed changes

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

@@ -390,35 +390,39 @@ public class ContactDetailsActivity extends XmppActivity implements OnAccountUpd
 		keys.removeAllViews();
 		boolean hasKeys = false;
 		LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-		for(final String otrFingerprint : contact.getOtrFingerprints()) {
-			hasKeys = true;
-			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);
-			ImageButton removeButton = (ImageButton) view
-				.findViewById(R.id.button_remove);
-			removeButton.setVisibility(View.VISIBLE);
-			keyType.setText("OTR Fingerprint");
-			key.setText(CryptoHelper.prettifyFingerprint(otrFingerprint));
-			keys.addView(view);
-			removeButton.setOnClickListener(new OnClickListener() {
+		if (Config.supportOtr()) {
+			for (final String otrFingerprint : contact.getOtrFingerprints()) {
+				hasKeys = true;
+				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);
+				ImageButton removeButton = (ImageButton) view
+						.findViewById(R.id.button_remove);
+				removeButton.setVisibility(View.VISIBLE);
+				keyType.setText("OTR Fingerprint");
+				key.setText(CryptoHelper.prettifyFingerprint(otrFingerprint));
+				keys.addView(view);
+				removeButton.setOnClickListener(new OnClickListener() {
 
-				@Override
-				public void onClick(View v) {
-					confirmToDeleteFingerprint(otrFingerprint);
-				}
-			});
+					@Override
+					public void onClick(View v) {
+						confirmToDeleteFingerprint(otrFingerprint);
+					}
+				});
+			}
 		}
-		for (final String fingerprint : contact.getAccount().getAxolotlService().getFingerprintsForContact(contact)) {
-			boolean highlight = fingerprint.equals(messageFingerprint);
-			hasKeys |= addFingerprintRow(keys, contact.getAccount(), fingerprint, highlight, new OnClickListener() {
-				@Override
-				public void onClick(View v) {
-					onOmemoKeyClicked(contact.getAccount(), fingerprint);
-				}
-			});
+		if (Config.supportOmemo()) {
+			for (final String fingerprint : contact.getAccount().getAxolotlService().getFingerprintsForContact(contact)) {
+				boolean highlight = fingerprint.equals(messageFingerprint);
+				hasKeys |= addFingerprintRow(keys, contact.getAccount(), fingerprint, highlight, new OnClickListener() {
+					@Override
+					public void onClick(View v) {
+						onOmemoKeyClicked(contact.getAccount(), fingerprint);
+					}
+				});
+			}
 		}
-		if (contact.getPgpKeyId() != 0) {
+		if (Config.supportOpenPgp() && contact.getPgpKeyId() != 0) {
 			hasKeys = true;
 			View view = inflater.inflate(R.layout.contact_key, keys, false);
 			TextView key = (TextView) view.findViewById(R.id.key);

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

@@ -390,8 +390,11 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
 		} else {
 			switch (conversation.getNextEncryption()) {
 				case Message.ENCRYPTION_NONE:
-					mEditMessage
-							.setHint(getString(R.string.send_unencrypted_message));
+					if (Config.multipleEncryptionChoices()) {
+						mEditMessage.setHint(getString(R.string.send_unencrypted_message));
+					} else {
+						mEditMessage.setHint(getString(R.string.send_message_to_x,conversation.getName()));
+					}
 					break;
 				case Message.ENCRYPTION_OTR:
 					mEditMessage.setHint(getString(R.string.send_otr_message));

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

@@ -523,7 +523,7 @@ public class EditAccountActivity extends XmppActivity implements OnAccountUpdate
 			}
 			mamPrefs.setVisible(mAccount.getXmppConnection().getFeatures().mam());
 			Set<Integer> otherDevices = mAccount.getAxolotlService().getOwnDeviceIds();
-			if (otherDevices == null || otherDevices.isEmpty()) {
+			if (otherDevices == null || otherDevices.isEmpty() || Config.supportOmemo()) {
 				clearDevices.setVisible(false);
 			}
 			changePresence.setVisible(manuallyChangePresence());
@@ -776,7 +776,7 @@ public class EditAccountActivity extends XmppActivity implements OnAccountUpdate
 				this.mServerInfoPush.setText(R.string.server_info_unavailable);
 			}
 			final String otrFingerprint = this.mAccount.getOtrFingerprint();
-			if (otrFingerprint != null) {
+			if (otrFingerprint != null && Config.supportOtr()) {
 				this.mOtrFingerprintBox.setVisibility(View.VISIBLE);
 				this.mOtrFingerprint.setText(CryptoHelper.prettifyFingerprint(otrFingerprint));
 				this.mOtrFingerprintToClipboardButton
@@ -798,10 +798,10 @@ public class EditAccountActivity extends XmppActivity implements OnAccountUpdate
 			} else {
 				this.mOtrFingerprintBox.setVisibility(View.GONE);
 			}
-			final String axolotlFingerprint = this.mAccount.getAxolotlService().getOwnFingerprint();
-			if (axolotlFingerprint != null) {
+			final String ownAxolotlFingerprint = this.mAccount.getAxolotlService().getOwnFingerprint();
+			if (ownAxolotlFingerprint != null && Config.supportOmemo()) {
 				this.mAxolotlFingerprintBox.setVisibility(View.VISIBLE);
-				this.mAxolotlFingerprint.setText(CryptoHelper.prettifyFingerprint(axolotlFingerprint.substring(2)));
+				this.mAxolotlFingerprint.setText(CryptoHelper.prettifyFingerprint(ownAxolotlFingerprint.substring(2)));
 				this.mAxolotlFingerprintToClipboardButton
 						.setVisibility(View.VISIBLE);
 				this.mAxolotlFingerprintToClipboardButton
@@ -810,7 +810,7 @@ public class EditAccountActivity extends XmppActivity implements OnAccountUpdate
 							@Override
 							public void onClick(final View v) {
 
-								if (copyTextToClipboard(axolotlFingerprint.substring(2), R.string.omemo_fingerprint)) {
+								if (copyTextToClipboard(ownAxolotlFingerprint.substring(2), R.string.omemo_fingerprint)) {
 									Toast.makeText(
 											EditAccountActivity.this,
 											R.string.toast_message_omemo_fingerprint,
@@ -833,17 +833,16 @@ public class EditAccountActivity extends XmppActivity implements OnAccountUpdate
 			} else {
 				this.mAxolotlFingerprintBox.setVisibility(View.GONE);
 			}
-			final String ownFingerprint = mAccount.getAxolotlService().getOwnFingerprint();
 			boolean hasKeys = false;
 			keys.removeAllViews();
 			for (final String fingerprint : mAccount.getAxolotlService().getFingerprintsForOwnSessions()) {
-				if (ownFingerprint.equals(fingerprint)) {
+				if (ownAxolotlFingerprint.equals(fingerprint)) {
 					continue;
 				}
 				boolean highlight = fingerprint.equals(messageFingerprint);
 				hasKeys |= addFingerprintRow(keys, mAccount, fingerprint, highlight, null);
 			}
-			if (hasKeys) {
+			if (hasKeys && Config.supportOmemo()) {
 				keysCard.setVisibility(View.VISIBLE);
 			} else {
 				keysCard.setVisibility(View.GONE);

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

@@ -81,6 +81,7 @@
 	<string name="also_end_conversation">End this conversation afterwards</string>
 	<string name="choose_presence">Choose presence to contact</string>
 	<string name="send_unencrypted_message">Send unencrypted message</string>
+	<string name="send_message_to_x">Send message to %s</string>
 	<string name="send_otr_message">Send OTR encrypted message</string>
 	<string name="send_omemo_message">Send OMEMO encrypted message</string>
 	<string name="send_omemo_x509_message">Send v\\OMEMO encrypted message</string>