aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Straub <andy@strb.org>2015-07-10 02:56:44 +0200
committerAndreas Straub <andy@strb.org>2015-07-10 02:56:44 +0200
commit7ebfe7f10853d8f6ef80aad19fd668a78c5d481c (patch)
treec76e0505c634ed5b36a49a4f6072f1684750c766
parent3615b12cbbc016df0c3a33b8b311308f9037bbc1 (diff)
Add key trust toggle to ContactDetailsActivity
Can now toggle IdentityKey trust
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java49
-rw-r--r--src/main/res/drawable-hdpi/ic_action_done.pngbin0 -> 1320 bytes
-rw-r--r--src/main/res/drawable-hdpi/ic_done_black_24dp.pngbin0 -> 177 bytes
-rw-r--r--src/main/res/drawable-mdpi/ic_action_done.pngbin0 -> 1197 bytes
-rw-r--r--src/main/res/drawable-mdpi/ic_done_black_24dp.pngbin0 -> 130 bytes
-rw-r--r--src/main/res/drawable-xhdpi/ic_action_done.pngbin0 -> 1546 bytes
-rw-r--r--src/main/res/drawable-xhdpi/ic_done_black_24dp.pngbin0 -> 188 bytes
-rw-r--r--src/main/res/drawable-xxhdpi/ic_done_black_24dp.pngbin0 -> 227 bytes
-rw-r--r--src/main/res/drawable-xxxhdpi/ic_done_black_24dp.pngbin0 -> 277 bytes
-rw-r--r--src/main/res/layout/contact_key.xml10
-rw-r--r--src/main/res/values-v21/themes.xml1
-rw-r--r--src/main/res/values/attrs.xml1
-rw-r--r--src/main/res/values/themes.xml1
13 files changed, 52 insertions, 10 deletions
diff --git a/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java b/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java
index 4ff47f9e..ebc1ae83 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 00000000..58bf9721
--- /dev/null
+++ b/src/main/res/drawable-hdpi/ic_action_done.png
Binary files 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 00000000..d4c06072
--- /dev/null
+++ b/src/main/res/drawable-hdpi/ic_done_black_24dp.png
Binary files 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 00000000..cf5fab3a
--- /dev/null
+++ b/src/main/res/drawable-mdpi/ic_action_done.png
Binary files 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 00000000..5e5e7cf2
--- /dev/null
+++ b/src/main/res/drawable-mdpi/ic_done_black_24dp.png
Binary files 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 00000000..b8915716
--- /dev/null
+++ b/src/main/res/drawable-xhdpi/ic_action_done.png
Binary files 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 00000000..64a4944f
--- /dev/null
+++ b/src/main/res/drawable-xhdpi/ic_done_black_24dp.png
Binary files 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 00000000..c9c01741
--- /dev/null
+++ b/src/main/res/drawable-xxhdpi/ic_done_black_24dp.png
Binary files 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 00000000..2f6d6386
--- /dev/null
+++ b/src/main/res/drawable-xxxhdpi/ic_done_black_24dp.png
Binary files differ
diff --git a/src/main/res/layout/contact_key.xml b/src/main/res/layout/contact_key.xml
index e8eecf48..5ed0845a 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" />
+ <ImageButton
+ android:id="@+id/button_trust"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:background="?android:selectableItemBackground"
+ android:padding="@dimen/image_button_padding"
+ android:src="?attr/icon_done"
+ android:visibility="invisible" />
</RelativeLayout> \ 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 a1f3d0c5..0a7b41c3 100644
--- a/src/main/res/values-v21/themes.xml
+++ b/src/main/res/values-v21/themes.xml
@@ -18,6 +18,7 @@
<item name="attr/icon_download">@drawable/ic_file_download_white_24dp</item>
<item name="attr/icon_edit">@drawable/ic_edit_white_24dp</item>
<item name="attr/icon_edit_dark">@drawable/ic_edit_grey600_24dp</item>
+ <item name="attr/icon_done">@drawable/ic_done_black_24dp</item>
<item name="attr/icon_group">@drawable/ic_group_white_24dp</item>
<item name="attr/icon_new">@drawable/ic_add_white_24dp</item>
<item name="attr/icon_new_attachment">@drawable/ic_attach_file_white_24dp</item>
diff --git a/src/main/res/values/attrs.xml b/src/main/res/values/attrs.xml
index e314f752..d471e54a 100644
--- a/src/main/res/values/attrs.xml
+++ b/src/main/res/values/attrs.xml
@@ -14,6 +14,7 @@
<attr name="icon_download" format="reference"/>
<attr name="icon_edit" format="reference"/>
<attr name="icon_edit_dark" format="reference"/>
+ <attr name="icon_done" format="reference"/>
<attr name="icon_group" format="reference"/>
<attr name="icon_new" format="reference"/>
<attr name="icon_new_attachment" format="reference"/>
diff --git a/src/main/res/values/themes.xml b/src/main/res/values/themes.xml
index 80f2bfe6..93e385ce 100644
--- a/src/main/res/values/themes.xml
+++ b/src/main/res/values/themes.xml
@@ -18,6 +18,7 @@
<item name="attr/icon_download">@drawable/ic_action_download</item>
<item name="attr/icon_edit">@drawable/ic_action_edit</item>
<item name="attr/icon_edit_dark">@drawable/ic_action_edit_dark</item>
+ <item name="attr/icon_done">@drawable/ic_action_done</item>
<item name="attr/icon_group">@drawable/ic_action_group</item>
<item name="attr/icon_new">@drawable/ic_action_new</item>