Adding thumbnail and link.

Cutting corners for the sake of expedient prototyping.
diff --git a/src/com/android/contacts/SocialStreamActivity.java b/src/com/android/contacts/SocialStreamActivity.java
index 157100e..9412287 100644
--- a/src/com/android/contacts/SocialStreamActivity.java
+++ b/src/com/android/contacts/SocialStreamActivity.java
@@ -32,6 +32,7 @@
 import android.content.ContentResolver;
 import android.content.ContentUris;
 import android.content.Context;
+import android.content.Intent;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
@@ -57,6 +58,7 @@
 import android.widget.CursorAdapter;
 import android.widget.ImageView;
 import android.widget.ListAdapter;
+import android.widget.ListView;
 import android.widget.TextView;
 
 import java.io.IOException;
@@ -78,6 +80,8 @@
         Activities.TITLE,
         Activities.SUMMARY,
         Activities.THREAD_PUBLISHED,
+        Activities.LINK,
+        Activities.THUMBNAIL,
     };
 
     private static final int COL_ID = 0;
@@ -90,8 +94,11 @@
     private static final int COL_TITLE = 7;
     private static final int COL_SUMMARY = 8;
     private static final int COL_THREAD_PUBLISHED = 9;
+    private static final int COL_LINK = 10;
+    private static final int COL_THUMBNAIL = 11;
 
-    public static final int PHOTO_SIZE = 58;
+    public static final int PHOTO_SIZE = 54;
+    public static final int THUMBNAIL_SIZE = 54;
 
     private ListAdapter mAdapter;
 
@@ -145,6 +152,19 @@
 
     }
 
+    @Override
+    protected void onListItemClick(ListView l, View v, int position, long id) {
+        Cursor cursor = (Cursor)getListAdapter().getItem(position);
+
+        // TODO check mime type and if it is supported, launch the corresponding app
+        String link = cursor.getString(COL_LINK);
+        if (link == null) {
+            return;
+        }
+
+        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(link)));
+    }
+
     /**
      * List adapter for social stream data queried from
      * {@link Activities#CONTENT_URI}.
@@ -161,6 +181,8 @@
             ImageView sourceIcon;
             TextView content;
             SpannableStringBuilder contentBuilder = new SpannableStringBuilder();
+            TextView summary;
+            ImageView thumbnail;
             TextView published;
         }
 
@@ -192,7 +214,9 @@
             long contactId = cursor.getLong(COL_AUTHOR_CONTACT_ID);
             String name = cursor.getString(COL_DISPLAY_NAME);
             String title = cursor.getString(COL_TITLE);
+            String summary = cursor.getString(COL_SUMMARY);
             long published = cursor.getLong(COL_PUBLISHED);
+            byte[] thumbnailBlob = cursor.getBlob(COL_THUMBNAIL);
 
             // TODO: trigger async query to find actual name and photo instead
             // of using this lazy caching mechanism
@@ -209,6 +233,22 @@
             holder.contentBuilder.setSpan(mTextStyleName, 0, name.length(), 0);
             holder.content.setText(holder.contentBuilder);
 
+            if (summary == null) {
+                holder.summary.setVisibility(View.GONE);
+            } else {
+                holder.summary.setText(summary);
+                holder.summary.setVisibility(View.VISIBLE);
+            }
+
+            if (thumbnailBlob != null) {
+                Bitmap thumbnail =
+                        BitmapFactory.decodeByteArray(thumbnailBlob, 0, thumbnailBlob.length);
+                holder.thumbnail.setImageBitmap(thumbnail);
+                holder.thumbnail.setVisibility(View.VISIBLE);
+            } else {
+                holder.thumbnail.setVisibility(View.GONE);
+            }
+
             CharSequence relativePublished = DateUtils.getRelativeTimeSpanString(published,
                     System.currentTimeMillis(), DateUtils.MINUTE_IN_MILLIS);
             holder.published.setText(relativePublished);
@@ -235,6 +275,8 @@
             holder.photo = (ImageView) view.findViewById(R.id.photo);
             holder.sourceIcon = (ImageView) view.findViewById(R.id.sourceIcon);
             holder.content = (TextView) view.findViewById(R.id.content);
+            holder.summary = (TextView) view.findViewById(R.id.summary);
+            holder.thumbnail = (ImageView) view.findViewById(R.id.thumbnail);
             holder.published = (TextView) view.findViewById(R.id.published);
             view.setTag(holder);