diff --git a/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java b/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java
index 4ff47f9ec135a6e2bbc13b279cb3a3a5c84ca0f1..ebc1ae8392f6f898032db3131bda30747f860296 100644
--- a/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java
@@ -35,6 +35,7 @@ import java.util.List;
import eu.siacs.conversations.R;
import eu.siacs.conversations.crypto.PgpEngine;
+import eu.siacs.conversations.crypto.axolotl.AxolotlService;
import eu.siacs.conversations.entities.Account;
import eu.siacs.conversations.entities.Contact;
import eu.siacs.conversations.entities.ListItem;
@@ -363,13 +364,13 @@ public class ContactDetailsActivity extends XmppActivity implements OnAccountUpd
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 remove = (ImageButton) view
+ ImageButton removeButton = (ImageButton) view
.findViewById(R.id.button_remove);
- remove.setVisibility(View.VISIBLE);
+ removeButton.setVisibility(View.VISIBLE);
keyType.setText("OTR Fingerprint");
key.setText(CryptoHelper.prettifyFingerprint(otrFingerprint));
keys.addView(view);
- remove.setOnClickListener(new OnClickListener() {
+ removeButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
@@ -384,19 +385,47 @@ public class ContactDetailsActivity extends XmppActivity implements OnAccountUpd
TextView key = (TextView) view.findViewById(R.id.key);
TextView keyType = (TextView) view.findViewById(R.id.key_type);
TextView keyTrust = (TextView) view.findViewById(R.id.key_trust);
- ImageButton remove = (ImageButton) view
+ ImageButton removeButton = (ImageButton) view
.findViewById(R.id.button_remove);
- remove.setVisibility(View.VISIBLE);
- keyTrust.setVisibility(View.VISIBLE);
+ ImageButton trustButton = (ImageButton) view
+ .findViewById(R.id.button_trust);
+ final AxolotlService axolotlService = contact.getAccount().getAxolotlService();
+ final String fingerprint = identityKey.getFingerprint().replaceAll("\\s", "");
+ final Jid bareJid = contactJid.toBareJid();
+ AxolotlService.SQLiteAxolotlStore.Trust trust = contact.getAccount().getAxolotlService()
+ .getFingerprintTrust(bareJid.toString(), fingerprint);
+ switch (trust) {
+ case TRUSTED:
+ removeButton.setVisibility(View.VISIBLE);
+ //Log.d(Config.LOGTAG, AxolotlService.getLogprefix(contact.getAccount()) + "Setting remove button visible!");
+ break;
+ case UNDECIDED:
+ case UNTRUSTED:
+ //Log.d(Config.LOGTAG, AxolotlService.getLogprefix(contact.getAccount()) + "Setting trust button visible!");
+ trustButton.setVisibility(View.VISIBLE);
+ break;
+ }
keyType.setText("Axolotl Fingerprint");
key.setText(CryptoHelper.prettifyFingerprint(identityKey.getFingerprint()));
- keyTrust.setText(contact.getAccount().getAxolotlService().getFingerprintTrust(contact.getJid().toBareJid().toString(), identityKey.getFingerprint().replaceAll("\\s","")).toString());
+ keyTrust.setText(trust.toString());
+ keyTrust.setVisibility(View.VISIBLE);
keys.addView(view);
- remove.setOnClickListener(new OnClickListener() {
-
+ removeButton.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ axolotlService.setFingerprintTrust(bareJid.toString(), fingerprint,
+ AxolotlService.SQLiteAxolotlStore.Trust.UNTRUSTED);
+ refreshUi();
+ xmppConnectionService.updateConversationUi();
+ }
+ });
+ trustButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
- //confirmToDeleteFingerprint(otrFingerprint);
+ axolotlService.setFingerprintTrust(bareJid.toString(), fingerprint,
+ AxolotlService.SQLiteAxolotlStore.Trust.TRUSTED);
+ refreshUi();
+ xmppConnectionService.updateConversationUi();
}
});
}
diff --git a/src/main/res/drawable-hdpi/ic_action_done.png b/src/main/res/drawable-hdpi/ic_action_done.png
new file mode 100644
index 0000000000000000000000000000000000000000..58bf972171f199c359dcdb3bc6233ac84c7853d3
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_action_done.png differ
diff --git a/src/main/res/drawable-hdpi/ic_done_black_24dp.png b/src/main/res/drawable-hdpi/ic_done_black_24dp.png
new file mode 100644
index 0000000000000000000000000000000000000000..d4c06072b56dace7da1ab5fcfc5cb0a494adc5cf
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_done_black_24dp.png differ
diff --git a/src/main/res/drawable-mdpi/ic_action_done.png b/src/main/res/drawable-mdpi/ic_action_done.png
new file mode 100644
index 0000000000000000000000000000000000000000..cf5fab3adf243318d11ec95448c6deae3f52d9b1
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_action_done.png differ
diff --git a/src/main/res/drawable-mdpi/ic_done_black_24dp.png b/src/main/res/drawable-mdpi/ic_done_black_24dp.png
new file mode 100644
index 0000000000000000000000000000000000000000..5e5e7cf2b14732802095661e2de6a8c6eac3e8b5
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_done_black_24dp.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_action_done.png b/src/main/res/drawable-xhdpi/ic_action_done.png
new file mode 100644
index 0000000000000000000000000000000000000000..b8915716e06792d926f397a7b17346f656c86aa1
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_action_done.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_done_black_24dp.png b/src/main/res/drawable-xhdpi/ic_done_black_24dp.png
new file mode 100644
index 0000000000000000000000000000000000000000..64a4944f7531ab9fb745fd34dd00c778cff1573f
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_done_black_24dp.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_done_black_24dp.png b/src/main/res/drawable-xxhdpi/ic_done_black_24dp.png
new file mode 100644
index 0000000000000000000000000000000000000000..c9c017410928bb4c9ee56d705130377537886c81
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_done_black_24dp.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_done_black_24dp.png b/src/main/res/drawable-xxxhdpi/ic_done_black_24dp.png
new file mode 100644
index 0000000000000000000000000000000000000000..2f6d6386de9510fa6dd8c83cbb61a6f2e0fab9b2
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_done_black_24dp.png differ
diff --git a/src/main/res/layout/contact_key.xml b/src/main/res/layout/contact_key.xml
index 79b9af620b78d2c2700761acdd0e84e7583b492b..a43f8083b997dbc38a44a8ec80e82ff7501b12ff 100644
--- a/src/main/res/layout/contact_key.xml
+++ b/src/main/res/layout/contact_key.xml
@@ -50,4 +50,14 @@
android:src="?attr/icon_remove"
android:visibility="invisible" />
+
\ No newline at end of file
diff --git a/src/main/res/values-v21/themes.xml b/src/main/res/values-v21/themes.xml
index d1679f928b0fdbf28fd77ea4f36fa6b8eb89cc98..78deb772f16c958afcf711142fcca11405f34b35 100644
--- a/src/main/res/values-v21/themes.xml
+++ b/src/main/res/values-v21/themes.xml
@@ -18,6 +18,7 @@
- @drawable/ic_file_download_white_24dp
- @drawable/ic_edit_white_24dp
- @drawable/ic_edit_grey600_24dp
+ - @drawable/ic_done_black_24dp
- @drawable/ic_group_white_24dp
- @drawable/ic_add_white_24dp
- @drawable/ic_attach_file_white_24dp
diff --git a/src/main/res/values/attrs.xml b/src/main/res/values/attrs.xml
index e314f752f1813487b1c6b01d409c4dcdd7a2a13c..d471e54ac812b9f83d024f226986a24d5d26833b 100644
--- a/src/main/res/values/attrs.xml
+++ b/src/main/res/values/attrs.xml
@@ -14,6 +14,7 @@
+
diff --git a/src/main/res/values/themes.xml b/src/main/res/values/themes.xml
index 5c67203be86d0e342b173db7e0db1a24b41d9dc4..afdc3e809ff2ace871aa0b1d65589e07b5e25059 100644
--- a/src/main/res/values/themes.xml
+++ b/src/main/res/values/themes.xml
@@ -18,6 +18,7 @@
- @drawable/ic_action_download
- @drawable/ic_action_edit
- @drawable/ic_action_edit_dark
+ - @drawable/ic_action_done
- @drawable/ic_action_group
- @drawable/ic_action_new