diff --git a/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java b/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java index 14f73295716b1f14bdbf859f9112c7000f506abd..78b962be510c8535ca26ea6536fe12715a71ec26 100644 --- a/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java @@ -1336,6 +1336,13 @@ public class EditAccountActivity extends OmemoActivity this.mAccount.getAxolotlService().getOwnFingerprint(); if (ownAxolotlFingerprint != null && Config.supportOmemo()) { this.binding.axolotlFingerprintBox.setVisibility(View.VISIBLE); + this.binding.axolotlFingerprintBox.setOnCreateContextMenuListener( + (menu, v, menuInfo) -> { + getMenuInflater().inflate(R.menu.omemo_key_context, menu); + menu.findItem(R.id.verify_scan).setVisible(false); + menu.findItem(R.id.distrust_key).setVisible(false); + this.mSelectedFingerprint = ownAxolotlFingerprint; + }); if (ownAxolotlFingerprint.equals(messageFingerprint)) { this.binding.ownFingerprintDesc.setTextColor( MaterialColors.getColor( diff --git a/src/main/java/eu/siacs/conversations/ui/OmemoActivity.java b/src/main/java/eu/siacs/conversations/ui/OmemoActivity.java index 7ed58127c0eb7700e64fa0598c833f5f19efdd34..48327e505d6a18e04b8f1c798db646eb458a0b78 100644 --- a/src/main/java/eu/siacs/conversations/ui/OmemoActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/OmemoActivity.java @@ -22,7 +22,7 @@ import eu.siacs.conversations.utils.XmppUri; public abstract class OmemoActivity extends XmppActivity { private Account mSelectedAccount; - private String mSelectedFingerprint; + protected String mSelectedFingerprint; protected XmppUri mPendingFingerprintVerificationUri = null; @@ -50,25 +50,27 @@ public abstract class OmemoActivity extends XmppActivity { distrust.setVisible( status.isVerified() || (!status.isActive() && status.isTrusted())); } + // TODO can we rework this into using Intents? this.mSelectedAccount = (Account) account; this.mSelectedFingerprint = (String) fingerprint; } } @Override - public boolean onContextItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.distrust_key: - showPurgeKeyDialog(mSelectedAccount, mSelectedFingerprint); - break; - case R.id.copy_omemo_key: - copyOmemoFingerprint(mSelectedFingerprint); - break; - case R.id.verify_scan: - ScanActivity.scan(this); - break; + public boolean onContextItemSelected(final MenuItem item) { + final var itemId = item.getItemId(); + if (itemId == R.id.distrust_key) { + showPurgeKeyDialog(mSelectedAccount, mSelectedFingerprint); + return true; + } else if (itemId == R.id.copy_omemo_key) { + copyOmemoFingerprint(mSelectedFingerprint); + return true; + } else if (itemId == R.id.verify_scan) { + ScanActivity.scan(this); + return true; + } else { + return super.onContextItemSelected(item); } - return true; } @Override