Change summary
src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java | 7
src/main/java/eu/siacs/conversations/ui/OmemoActivity.java | 28 +
2 files changed, 22 insertions(+), 13 deletions(-)
Detailed changes
@@ -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(
@@ -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