redesigned contact details a bit

iNPUTmice created

Change summary

res/layout/activity_contact_details.xml                   | 158 +++-----
res/layout/contact_key.xml                                |   5 
res/values/strings.xml                                    |   3 
src/eu/siacs/conversations/ui/ContactDetailsActivity.java |  10 
4 files changed, 84 insertions(+), 92 deletions(-)

Detailed changes

res/layout/activity_contact_details.xml ๐Ÿ”—

@@ -1,128 +1,110 @@
 <?xml version="1.0" encoding="utf-8"?>
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="@color/primarybackground" >
+    android:background="@color/secondarybackground"
+    android:orientation="vertical" >
 
-    <LinearLayout
-        android:layout_width="match_parent"
+    <RelativeLayout
+        android:layout_width="fill_parent"
         android:layout_height="wrap_content"
-        android:orientation="vertical" >
+        android:layout_margin="8dp"
+        android:background="@drawable/infocard_border"
+        android:padding="8dp" >
 
-        <TextView
-            style="@style/sectionHeader"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:padding="8dp"
-            android:text="@string/action_contact_details"
-            android:textColor="@color/primarytext" />
+        <QuickContactBadge
+            android:id="@+id/details_contact_badge"
+            android:layout_width="72dp"
+            android:layout_height="72dp"
+            android:layout_alignParentTop="true"
+            android:scaleType="centerCrop" />
 
-        <RelativeLayout
+        <LinearLayout
+            android:id="@+id/details_jidbox"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:minHeight="88dp"
-            android:padding="8dp" >
+            android:layout_marginLeft="16dp"
+            android:layout_toRightOf="@+id/details_contact_badge"
+            android:orientation="vertical" >
 
-            <QuickContactBadge
-                android:id="@+id/details_contact_badge"
-                android:layout_width="72dp"
-                android:layout_height="72dp"
-                android:layout_centerVertical="true"
-                android:scaleType="centerCrop" />
+            <TextView
+                android:id="@+id/details_contactjid"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:singleLine="true"
+                android:text="@string/account_settings_example_jabber_id"
+                android:textColor="@color/primarytext"
+                android:textSize="?attr/TextSizeHeadline"
+                android:textStyle="bold" />
 
             <LinearLayout
-                android:id="@+id/details_jidbox"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_centerVertical="true"
-                android:layout_toRightOf="@+id/details_contact_badge"
-                android:orientation="vertical"
-                android:paddingLeft="8dp" >
+                android:orientation="horizontal" >
 
                 <TextView
-                    android:id="@+id/details_contactjid"
+                    android:id="@+id/details_contactstatus"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:paddingLeft="8dp"
-                    android:singleLine="true"
-                    android:textColor="@color/primarytext"
+                    android:textColor="@color/secondarytext"
                     android:textSize="?attr/TextSizeBody" />
 
                 <TextView
-                    android:id="@+id/details_contactstatus"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:paddingLeft="16dp"
-                    android:textColor="@color/primarytext"
-                    android:textSize="?attr/TextSizeHeadline"
-                    android:textStyle="bold" />
+                    android:text=" ยท "
+                    android:textColor="@color/secondarytext"
+                    android:textSize="?attr/TextSizeBody" />
 
                 <TextView
                     android:id="@+id/details_lastseen"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:paddingLeft="8dp"
                     android:singleLine="true"
-                    android:textColor="@color/primarytext"
+                    android:textColor="@color/secondarytext"
                     android:textSize="?attr/TextSizeBody" />
             </LinearLayout>
-        </RelativeLayout>
-
-        <TextView
-            style="@style/sectionHeader"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:padding="8dp"
-            android:text="@string/your_account"
-            android:textColor="@color/primarytext" />
-
-        <TextView
-            android:id="@+id/details_account"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:paddingLeft="8dp"
-            android:textColor="@color/primarytext"
-            android:textSize="?attr/TextSizeBody" />
 
-        <TextView
-            style="@style/sectionHeader"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:padding="8dp"
-            android:text="@string/subscriptions"
-            android:textColor="@color/primarytext" />
-
-        <CheckBox
-            android:id="@+id/details_send_presence"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="@string/send_presence_updates"
-            android:textColor="@color/primarytext"
-            android:textSize="?attr/TextSizeBody" />
+            <CheckBox
+                android:id="@+id/details_send_presence"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="8dp"
+                android:text="@string/send_presence_updates"
+                android:textColor="@color/primarytext"
+                android:textSize="?attr/TextSizeBody" />
 
-        <CheckBox
-            android:id="@+id/details_receive_presence"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="@string/receive_presence_updates"
-            android:textColor="@color/primarytext"
-            android:textSize="?attr/TextSizeBody" />
+            <CheckBox
+                android:id="@+id/details_receive_presence"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/receive_presence_updates"
+                android:textColor="@color/primarytext"
+                android:textSize="?attr/TextSizeBody" />
+        </LinearLayout>
 
         <TextView
-            style="@style/sectionHeader"
+            android:id="@+id/details_account"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:padding="8dp"
-            android:text="@string/keys" />
+            android:layout_alignParentRight="true"
+            android:layout_below="@+id/details_jidbox"
+            android:layout_marginTop="32dp"
+            android:text="@string/using_account"
+            android:textColor="@color/secondarytext"
+            android:textSize="?attr/TextSizeInfo" />
+    </RelativeLayout>
 
-        <LinearLayout
-            android:id="@+id/details_contact_keys"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:divider="?android:dividerHorizontal"
-            android:orientation="vertical"
-            android:showDividers="middle" >
-        </LinearLayout>
+    <LinearLayout
+        android:id="@+id/details_contact_keys"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_margin="8dp"
+        android:background="@drawable/infocard_border"
+        android:divider="?android:dividerHorizontal"
+        android:orientation="vertical"
+        android:padding="8dp"
+        android:showDividers="middle" >
     </LinearLayout>
 
-</ScrollView>
+</LinearLayout>

res/layout/contact_key.xml ๐Ÿ”—

@@ -16,14 +16,15 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:textColor="@color/primarytext"
-            android:textSize="?attr/TextSizeHeadline"
+            android:textSize="?attr/TextSizeBody"
             android:typeface="monospace" />
 
         <TextView
             android:id="@+id/key_type"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:textColor="@color/secondarytext" />
+            android:textColor="@color/secondarytext"
+            android:textSize="?attr/TextSizeInfo"/>
     </LinearLayout>
 
     <ImageButton

res/values/strings.xml ๐Ÿ”—

@@ -265,5 +265,6 @@
     <string name="conference_banned">You are banned from this conference</string>
     <string name="conference_members_only">This conference is members only</string>
     <string name="conference_kicked">You have been kicked from this conference</string>
+    <string name="using_account">using account %s</string>
 
-</resources>
+</resources>

src/eu/siacs/conversations/ui/ContactDetailsActivity.java ๐Ÿ”—

@@ -309,7 +309,7 @@ public class ContactDetailsActivity extends XmppActivity {
 		} else {
 			contactJidTv.setText(contact.getJid());
 		}
-		accountJidTv.setText(contact.getAccount().getJid());
+		accountJidTv.setText(getString(R.string.using_account,contact.getAccount().getJid()));
 
 		UIHelper.prepareContactBadge(this, badge, contact,
 				getApplicationContext());
@@ -319,9 +319,11 @@ public class ContactDetailsActivity extends XmppActivity {
 		}
 
 		keys.removeAllViews();
+		boolean hasKeys = false;
 		LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 		for (Iterator<String> iterator = contact.getOtrFingerprints()
 				.iterator(); iterator.hasNext();) {
+			hasKeys = true;
 			final String otrFingerprint = iterator.next();
 			View view = (View) inflater.inflate(R.layout.contact_key, keys,
 					false);
@@ -342,6 +344,7 @@ public class ContactDetailsActivity extends XmppActivity {
 			});
 		}
 		if (contact.getPgpKeyId() != 0) {
+			hasKeys = true;
 			View view = (View) inflater.inflate(R.layout.contact_key, keys,
 					false);
 			TextView key = (TextView) view.findViewById(R.id.key);
@@ -370,6 +373,11 @@ public class ContactDetailsActivity extends XmppActivity {
 			});
 			keys.addView(view);
 		}
+		if (hasKeys) {
+			keys.setVisibility(View.VISIBLE);
+		} else {
+			keys.setVisibility(View.GONE);
+		}
 	}
 
 	protected void confirmToDeleteFingerprint(final String fingerprint) {