From 3e50d4831fc1cfff2fb5774cc4efdad3b35abda4 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sun, 17 Jul 2016 20:31:04 +0200 Subject: [PATCH] show toast hint when touching inactive omemo fingerprints --- .../conversations/ui/EditAccountActivity.java | 7 +++++ .../siacs/conversations/ui/XmppActivity.java | 31 ++++++++++++++++++- src/main/res/layout/activity_edit_account.xml | 1 + src/main/res/values/strings.xml | 1 + 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java b/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java index f6c2c7afe..18f3239c4 100644 --- a/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java @@ -86,6 +86,7 @@ public class EditAccountActivity extends XmppActivity implements OnAccountUpdate private TextView mSessionEst; private TextView mOtrFingerprint; private TextView mAxolotlFingerprint; + private TextView mOwnFingerprintDesc; private TextView mAccountJidLabel; private ImageView mAvatar; private RelativeLayout mOtrFingerprintBox; @@ -468,6 +469,7 @@ public class EditAccountActivity extends XmppActivity implements OnAccountUpdate this.mAxolotlFingerprintBox = (RelativeLayout) findViewById(R.id.axolotl_fingerprint_box); this.mAxolotlFingerprintToClipboardButton = (ImageButton) findViewById(R.id.action_copy_axolotl_to_clipboard); this.mRegenerateAxolotlKeyButton = (ImageButton) findViewById(R.id.action_regenerate_axolotl_key); + this.mOwnFingerprintDesc = (TextView) findViewById(R.id.own_fingerprint_desc); this.keysCard = (LinearLayout) findViewById(R.id.other_device_keys_card); this.keys = (LinearLayout) findViewById(R.id.other_device_keys); this.mNamePort = (LinearLayout) findViewById(R.id.name_port); @@ -801,6 +803,11 @@ public class EditAccountActivity extends XmppActivity implements OnAccountUpdate final String ownAxolotlFingerprint = this.mAccount.getAxolotlService().getOwnFingerprint(); if (ownAxolotlFingerprint != null && Config.supportOmemo()) { this.mAxolotlFingerprintBox.setVisibility(View.VISIBLE); + if (ownAxolotlFingerprint.equals(messageFingerprint)) { + this.mOwnFingerprintDesc.setTextColor(getResources().getColor(R.color.accent)); + } else { + this.mOwnFingerprintDesc.setTextColor(getSecondaryTextColor()); + } this.mAxolotlFingerprint.setText(CryptoHelper.prettifyFingerprint(ownAxolotlFingerprint.substring(2))); this.mAxolotlFingerprintToClipboardButton .setVisibility(View.VISIBLE); diff --git a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java index 3f2308e19..b745afeca 100644 --- a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java @@ -128,8 +128,12 @@ public abstract class XmppActivity extends Activity { } protected void replaceToast(String msg) { + replaceToast(msg, true); + } + + protected void replaceToast(String msg, boolean showlong) { hideToast(); - mToast = Toast.makeText(this, msg ,Toast.LENGTH_LONG); + mToast = Toast.makeText(this, msg ,showlong ? Toast.LENGTH_LONG : Toast.LENGTH_SHORT); mToast.show(); } @@ -806,6 +810,7 @@ public abstract class XmppActivity extends Activity { return true; } }; + boolean active = true; view.setOnLongClickListener(purge); key.setOnLongClickListener(purge); keyType.setOnLongClickListener(purge); @@ -836,6 +841,7 @@ public abstract class XmppActivity extends Activity { trustToggle.setEnabled(false); key.setTextColor(getTertiaryTextColor()); keyType.setTextColor(getTertiaryTextColor()); + active = false; break; case INACTIVE_TRUSTED: case INACTIVE_TRUSTED_X509: @@ -844,6 +850,7 @@ public abstract class XmppActivity extends Activity { trustToggle.setEnabled(false); key.setTextColor(getTertiaryTextColor()); keyType.setTextColor(getTertiaryTextColor()); + active = false; break; } @@ -860,6 +867,28 @@ public abstract class XmppActivity extends Activity { } key.setText(CryptoHelper.prettifyFingerprint(fingerprint.substring(2))); + + final View.OnClickListener toast; + if (!active) { + toast = new View.OnClickListener() { + @Override + public void onClick(View v) { + replaceToast(getString(R.string.this_device_is_no_longer_in_use), false); + } + }; + trustToggle.setOnClickListener(toast); + } else { + toast = new View.OnClickListener() { + @Override + public void onClick(View v) { + hideToast(); + } + }; + } + view.setOnClickListener(toast); + key.setOnClickListener(toast); + keyType.setOnClickListener(toast); + keys.addView(view); return true; } diff --git a/src/main/res/layout/activity_edit_account.xml b/src/main/res/layout/activity_edit_account.xml index e180f1be4..555f18ffe 100644 --- a/src/main/res/layout/activity_edit_account.xml +++ b/src/main/res/layout/activity_edit_account.xml @@ -506,6 +506,7 @@ android:typeface="monospace"/> Green Background Use green background for received messages Unable to connect to OpenKeychain + This device is no longer in use