--- a/src/com/beem/project/beem/BeemService.java Thu Jan 05 22:12:25 2012 +0100
+++ b/src/com/beem/project/beem/BeemService.java Thu Jan 05 23:26:33 2012 +0100
@@ -580,8 +580,6 @@
// Create a MultiUserChat using a Connection for a room
MultiUserChat muc2 = new MultiUserChat(xmppCo, bookmarkedConference.getJid());
- // User2 joins the new room using a password and specifying
- // the amount of history to receive. In this example we are requesting the last 5 messages.
DiscussionHistory history = new DiscussionHistory();
history.setMaxStanzas(5);
try {
--- a/src/com/beem/project/beem/ui/ContactList.java Thu Jan 05 22:12:25 2012 +0100
+++ b/src/com/beem/project/beem/ui/ContactList.java Thu Jan 05 23:26:33 2012 +0100
@@ -28,6 +28,8 @@
*/
package com.beem.project.beem.ui;
+import java.io.IOException;
+
import android.app.Activity;
import android.content.ContentUris;
import android.content.Context;
@@ -35,6 +37,10 @@
import android.content.SharedPreferences;
import android.database.ContentObserver;
import android.database.Cursor;
+import android.graphics.BitmapFactory;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.LayerDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
@@ -54,6 +60,7 @@
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.Gallery;
+import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
@@ -61,6 +68,7 @@
import com.beem.project.beem.BeemApplication;
import com.beem.project.beem.BeemIntent;
import com.beem.project.beem.R;
+import com.beem.project.beem.service.BeemAvatarCache;
import com.beem.project.beem.ui.wizard.AccountConfigure;
/**
@@ -311,6 +319,7 @@
private Context mContext;
private int mLayout;
+ private BeemAvatarCache mBeemAvatarCache;
private final ContactFilter mContactFilter = new ContactFilter();
private final GroupFilter mGroupFilter = new GroupFilter();
@@ -318,6 +327,7 @@
super(context, layout, c, from, to);
mContext = context;
mLayout = layout;
+ mBeemAvatarCache = new BeemAvatarCache(context);
}
@Override
@@ -337,7 +347,6 @@
new String[] { ContactsContract.RawContacts.SOURCE_ID, ContactsContract.RawContacts.Entity.DATA_ID,
ContactsContract.RawContacts.Entity.MIMETYPE, ContactsContract.RawContacts.Entity.DATA1 }, null,
null, null);
- Log.e(TAG, "BINDVIEW");
try {
while (cursorContact.moveToNext()) {
if (!cursorContact.isNull(1)) {
@@ -346,7 +355,7 @@
if (mimeType.equals(ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)) {
TextView nameText = (TextView) view.findViewById(R.id.contactlistpseudo);
nameText.setText(data);
- }
+ }
//else if other mimetype
}
@@ -359,12 +368,11 @@
String jid = cursor.getString(cursor.getColumnIndex(ContactsContract.RawContacts.SOURCE_ID));
view.setTag(jid);
- // ImageView img = (ImageView) view.findViewById(R.id.avatar);
- // String avatarId = curContact.getAvatarId();
- // int contactStatus = curContact.getStatus();
- // Drawable avatar = getAvatarStatusDrawable(avatarId);
- // img.setImageDrawable(avatar);
- // img.setImageLevel(contactStatus);
+ ImageView img = (ImageView) view.findViewById(R.id.avatar);
+ int contactStatus = 1;
+ Drawable avatar = getAvatarStatusDrawable(jid);
+ img.setImageDrawable(avatar);
+ img.setImageLevel(contactStatus);
}
public Filter getContactFilter() {
@@ -381,33 +389,23 @@
* @param avatarId the avatar id to retrieve or null to get default
* @return a LayerDrawable
*/
- // private Drawable getAvatarStatusDrawable(String avatarId) {
- // Drawable avatarDrawable = null;
- // if (avatarId != null) {
- // Uri uri =
- // AvatarProvider.CONTENT_URI.buildUpon().appendPath(avatarId).build();
- // InputStream in = null;
- // try {
- // try {
- // in = getContentResolver().openInputStream(uri);
- // avatarDrawable = Drawable.createFromStream(in, avatarId);
- // } finally {
- // if (in != null)
- // in.close();
- // }
- // } catch (IOException e) {
- // Log.w(TAG, "Error while setting the avatar", e);
- // }
- // }
- // if (avatarDrawable == null)
- // avatarDrawable =
- // getResources().getDrawable(R.drawable.beem_launcher_icon_silver);
- // LayerDrawable ld = (LayerDrawable)
- // getResources().getDrawable(R.drawable.avatar_status);
- // ld.setLayerInset(1, 36, 36, 0, 0);
- // ld.setDrawableByLayerId(R.id.avatar, avatarDrawable);
- // return ld;
- // }
+ private Drawable getAvatarStatusDrawable(String jid) {
+ Drawable avatarDrawable = null;
+ if (jid != null) {
+ try {
+ byte[] bb = mBeemAvatarCache.get(jid);
+ avatarDrawable = new BitmapDrawable(BitmapFactory.decodeByteArray(bb, 0, bb.length));
+ } catch (IOException e) {
+ Log.w(TAG, "Error while setting the avatar", e);
+ }
+ }
+ if (avatarDrawable == null)
+ avatarDrawable = mContext.getResources().getDrawable(R.drawable.beem_launcher_icon_silver);
+ LayerDrawable ld = (LayerDrawable) mContext.getResources().getDrawable(R.drawable.avatar_status);
+ ld.setLayerInset(1, 36, 36, 0, 0);
+ ld.setDrawableByLayerId(R.id.avatar, avatarDrawable);
+ return ld;
+ }
/**
* A Filter which select Contact to display by searching in ther Jid.