diff options
-rw-r--r-- | res/layout/activity_contact_details.xml | 15 | ||||
-rw-r--r-- | res/layout/contact_key.xml | 22 | ||||
-rw-r--r-- | src/eu/siacs/conversations/ui/ContactDetailsActivity.java | 37 |
3 files changed, 73 insertions, 1 deletions
diff --git a/res/layout/activity_contact_details.xml b/res/layout/activity_contact_details.xml index cd49f1bf..1c38f4a3 100644 --- a/res/layout/activity_contact_details.xml +++ b/res/layout/activity_contact_details.xml @@ -91,5 +91,20 @@ android:text="Receive presence updates" android:textSize="18sp" android:textColor="#5b5b5b" /> + <TextView + style="@style/sectionHeader" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="8dp" + android:text="Keys" /> + <LinearLayout + android:id="@+id/details_contact_keys" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:divider="?android:dividerHorizontal" + android:showDividers="middle"> + </LinearLayout> + </LinearLayout>
\ No newline at end of file diff --git a/res/layout/contact_key.xml b/res/layout/contact_key.xml new file mode 100644 index 00000000..dcac42e9 --- /dev/null +++ b/res/layout/contact_key.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> + <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="vertical" + android:padding="8dp" > + + <TextView + android:id="@+id/key" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="18sp" + android:textColor="#5b5b5b" + android:typeface="monospace" + /> + <TextView + android:id="@+id/key_type" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textColor="#5b5b5b" + /> + </LinearLayout>
\ No newline at end of file diff --git a/src/eu/siacs/conversations/ui/ContactDetailsActivity.java b/src/eu/siacs/conversations/ui/ContactDetailsActivity.java index 23fb68a1..e1fb25d4 100644 --- a/src/eu/siacs/conversations/ui/ContactDetailsActivity.java +++ b/src/eu/siacs/conversations/ui/ContactDetailsActivity.java @@ -1,6 +1,11 @@ package eu.siacs.conversations.ui; +import java.math.BigInteger; +import java.util.Iterator; +import java.util.zip.Inflater; + import android.app.AlertDialog; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; @@ -8,12 +13,15 @@ import android.os.Bundle; import android.provider.ContactsContract.CommonDataKinds; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Intents; +import android.util.Log; +import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.CheckBox; import android.widget.EditText; +import android.widget.LinearLayout; import android.widget.QuickContactBadge; import android.widget.TextView; import eu.siacs.conversations.R; @@ -83,6 +91,8 @@ public class ContactDetailsActivity extends XmppActivity { } }; + private LinearLayout keys; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -97,7 +107,7 @@ public class ContactDetailsActivity extends XmppActivity { send = (CheckBox) findViewById(R.id.details_send_presence); receive = (CheckBox) findViewById(R.id.details_receive_presence); badge = (QuickContactBadge) findViewById(R.id.details_contact_badge); - + keys = (LinearLayout) findViewById(R.id.details_contact_keys); getActionBar().setHomeButtonEnabled(true); getActionBar().setDisplayHomeAsUpEnabled(true); @@ -211,6 +221,31 @@ public class ContactDetailsActivity extends XmppActivity { if (contact.getSystemAccount() == null) { badge.setOnClickListener(onBadgeClick); } + + keys.removeAllViews(); + LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); + for (Iterator<String> iterator = contact.getOtrFingerprints().iterator(); iterator + .hasNext();) { + String otrFingerprint = iterator.next(); + View view = (View) inflater.inflate(R.layout.contact_key, null); + TextView key = (TextView) view.findViewById(R.id.key); + TextView keyType =(TextView) view.findViewById(R.id.key_type); + keyType.setText("OTR Fingerprint"); + key.setText(otrFingerprint); + keys.addView(view); + } + Log.d("gultsch","pgp key id "+contact.getPgpKeyId()); + if (contact.getPgpKeyId()!=0) { + View view = (View) inflater.inflate(R.layout.contact_key, null); + TextView key = (TextView) view.findViewById(R.id.key); + TextView keyType =(TextView) view.findViewById(R.id.key_type); + keyType.setText("PGP Key ID"); + BigInteger bi = new BigInteger(""+contact.getPgpKeyId()); + StringBuilder builder = new StringBuilder(bi.toString(16).toUpperCase()); + builder.insert(8, " "); + key.setText(builder.toString()); + keys.addView(view); + } } @Override |