aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu/siacs/conversations/ui/XmppActivity.java
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel@gultsch.de>2016-11-14 22:27:41 +0100
committerDaniel Gultsch <daniel@gultsch.de>2016-11-14 22:27:41 +0100
commit05fc15be3d45815e98f3d1fe0b527990fccf4fa6 (patch)
treee4b92adf3e4feeee9c5d13ff4b89c51d634c6a54 /src/main/java/eu/siacs/conversations/ui/XmppActivity.java
parent6da8b50d951ce8998986d2082fa27fc862ded03c (diff)
refactore trust enum to be FingerprintStatus class with trust and active
Diffstat (limited to '')
-rw-r--r--src/main/java/eu/siacs/conversations/ui/XmppActivity.java112
1 files changed, 41 insertions, 71 deletions
diff --git a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java
index deb51ec4..144febdf 100644
--- a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java
@@ -78,6 +78,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import eu.siacs.conversations.Config;
import eu.siacs.conversations.R;
+import eu.siacs.conversations.crypto.axolotl.FingerprintStatus;
import eu.siacs.conversations.crypto.axolotl.XmppAxolotlSession;
import eu.siacs.conversations.entities.Account;
import eu.siacs.conversations.entities.Contact;
@@ -780,25 +781,21 @@ public abstract class XmppActivity extends Activity {
}
protected boolean addFingerprintRow(LinearLayout keys, final Account account, final String fingerprint, boolean highlight, View.OnClickListener onKeyClickedListener) {
- final XmppAxolotlSession.Trust trust = account.getAxolotlService()
- .getFingerprintTrust(fingerprint);
- if (trust == null) {
+ final FingerprintStatus status = account.getAxolotlService().getFingerprintTrust(fingerprint);
+ if (status == null) {
return false;
}
- return addFingerprintRowWithListeners(keys, account, fingerprint, highlight, trust, true,
+ return addFingerprintRowWithListeners(keys, account, fingerprint, highlight, status, true,
new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- account.getAxolotlService().setFingerprintTrust(fingerprint,
- (isChecked) ? XmppAxolotlSession.Trust.TRUSTED :
- XmppAxolotlSession.Trust.UNTRUSTED);
+ account.getAxolotlService().setFingerprintTrust(fingerprint,FingerprintStatus.createActive(isChecked));
}
},
new View.OnClickListener() {
@Override
public void onClick(View v) {
- account.getAxolotlService().setFingerprintTrust(fingerprint,
- XmppAxolotlSession.Trust.UNTRUSTED);
+ account.getAxolotlService().setFingerprintTrust(fingerprint,FingerprintStatus.createActive(true));
v.setEnabled(true);
}
},
@@ -810,13 +807,13 @@ public abstract class XmppActivity extends Activity {
protected boolean addFingerprintRowWithListeners(LinearLayout keys, final Account account,
final String fingerprint,
boolean highlight,
- XmppAxolotlSession.Trust trust,
+ FingerprintStatus status,
boolean showTag,
CompoundButton.OnCheckedChangeListener
onCheckedChangeListener,
View.OnClickListener onClickListener,
View.OnClickListener onKeyClickedListener) {
- if (trust == XmppAxolotlSession.Trust.COMPROMISED) {
+ if (status.isCompromised()) {
return false;
}
View view = getLayoutInflater().inflate(R.layout.contact_key, keys, false);
@@ -826,8 +823,6 @@ public abstract class XmppActivity extends Activity {
keyType.setOnClickListener(onKeyClickedListener);
Switch trustToggle = (Switch) view.findViewById(R.id.tgl_trust);
trustToggle.setVisibility(View.VISIBLE);
- trustToggle.setOnCheckedChangeListener(onCheckedChangeListener);
- trustToggle.setOnClickListener(onClickListener);
final View.OnLongClickListener purge = new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
@@ -835,84 +830,59 @@ public abstract class XmppActivity extends Activity {
return true;
}
};
- boolean active = true;
view.setOnLongClickListener(purge);
key.setOnLongClickListener(purge);
keyType.setOnLongClickListener(purge);
- boolean x509 = Config.X509_VERIFICATION
- && (trust == XmppAxolotlSession.Trust.TRUSTED_X509 || trust == XmppAxolotlSession.Trust.INACTIVE_TRUSTED_X509);
- switch (trust) {
- case UNTRUSTED:
- case TRUSTED:
- case TRUSTED_X509:
- trustToggle.setChecked(trust.trusted(), false);
- trustToggle.setEnabled(!Config.X509_VERIFICATION || trust != XmppAxolotlSession.Trust.TRUSTED_X509);
- if (Config.X509_VERIFICATION && trust == XmppAxolotlSession.Trust.TRUSTED_X509) {
- trustToggle.setOnClickListener(null);
- }
- key.setTextColor(getPrimaryTextColor());
- keyType.setTextColor(getSecondaryTextColor());
- break;
- case UNDECIDED:
- trustToggle.setChecked(false, false);
- trustToggle.setEnabled(false);
- key.setTextColor(getPrimaryTextColor());
- keyType.setTextColor(getSecondaryTextColor());
- break;
- case INACTIVE_UNTRUSTED:
- case INACTIVE_UNDECIDED:
- trustToggle.setOnClickListener(null);
- trustToggle.setChecked(false, false);
+ boolean x509 = Config.X509_VERIFICATION && status.getTrust() == FingerprintStatus.Trust.VERIFIED_X509;
+ final View.OnClickListener toast;
+ if (status.isActive()) {
+ key.setTextColor(getPrimaryTextColor());
+ keyType.setTextColor(getSecondaryTextColor());
+ trustToggle.setOnCheckedChangeListener(onCheckedChangeListener);
+ if (status.getTrust() == FingerprintStatus.Trust.UNDECIDED) {
+ trustToggle.setOnClickListener(onClickListener);
trustToggle.setEnabled(false);
- key.setTextColor(getTertiaryTextColor());
- keyType.setTextColor(getTertiaryTextColor());
- active = false;
- break;
- case INACTIVE_TRUSTED:
- case INACTIVE_TRUSTED_X509:
+ } else {
trustToggle.setOnClickListener(null);
- trustToggle.setChecked(true, false);
- trustToggle.setEnabled(false);
- key.setTextColor(getTertiaryTextColor());
- keyType.setTextColor(getTertiaryTextColor());
- active = false;
- break;
- }
-
- if (showTag) {
- keyType.setText(getString(x509 ? R.string.omemo_fingerprint_x509 : R.string.omemo_fingerprint));
- } else {
- keyType.setVisibility(View.GONE);
- }
- if (highlight) {
- keyType.setTextColor(getResources().getColor(R.color.accent));
- keyType.setText(getString(x509 ? R.string.omemo_fingerprint_x509_selected_message : R.string.omemo_fingerprint_selected_message));
- } else {
- keyType.setText(getString(x509 ? R.string.omemo_fingerprint_x509 : R.string.omemo_fingerprint));
- }
-
- key.setText(CryptoHelper.prettifyFingerprint(fingerprint.substring(2)));
-
- final View.OnClickListener toast;
- if (!active) {
+ trustToggle.setChecked(status.isTrusted(), false);
+ trustToggle.setEnabled(true);
+ }
toast = new View.OnClickListener() {
@Override
public void onClick(View v) {
- replaceToast(getString(R.string.this_device_is_no_longer_in_use), false);
+ hideToast();
}
};
- trustToggle.setOnClickListener(toast);
} else {
+ key.setTextColor(getTertiaryTextColor());
+ keyType.setTextColor(getTertiaryTextColor());
+ trustToggle.setOnClickListener(null);
+ trustToggle.setEnabled(false);
+ trustToggle.setChecked(status.isTrusted(), false);
toast = new View.OnClickListener() {
@Override
public void onClick(View v) {
- hideToast();
+ replaceToast(getString(R.string.this_device_is_no_longer_in_use), false);
}
};
+ trustToggle.setOnClickListener(toast);
}
view.setOnClickListener(toast);
key.setOnClickListener(toast);
keyType.setOnClickListener(toast);
+ if (showTag) {
+ keyType.setText(getString(x509 ? R.string.omemo_fingerprint_x509 : R.string.omemo_fingerprint));
+ } else {
+ keyType.setVisibility(View.GONE);
+ }
+ if (highlight) {
+ keyType.setTextColor(getResources().getColor(R.color.accent));
+ keyType.setText(getString(x509 ? R.string.omemo_fingerprint_x509_selected_message : R.string.omemo_fingerprint_selected_message));
+ } else {
+ keyType.setText(getString(x509 ? R.string.omemo_fingerprint_x509 : R.string.omemo_fingerprint));
+ }
+
+ key.setText(CryptoHelper.prettifyFingerprint(fingerprint.substring(2)));
keys.addView(view);
return true;