1 package pl
.blip
.divide
.bliper
;
3 import android
.app
.Activity
;
4 import android
.content
.AsyncQueryHandler
;
5 import android
.content
.Context
;
6 import android
.database
.Cursor
;
7 import android
.net
.Uri
;
8 import android
.util
.AttributeSet
;
9 import android
.view
.LayoutInflater
;
10 import android
.view
.View
;
11 import android
.view
.ViewGroup
;
12 import android
.widget
.CursorAdapter
;
13 import android
.widget
.ImageView
;
14 import android
.widget
.ListView
;
15 import android
.widget
.TextView
;
17 public class DashboardView
extends ListView
{
18 private class DashboardAdapter
extends CursorAdapter
{
19 private LayoutInflater inflater
;
20 private final Uri uri
= Blip
.DASHBOARD_URI
;
22 private class QueryHandler
extends AsyncQueryHandler
{
23 public QueryHandler() {
24 super(getContext().getContentResolver());
27 public void startQuery() {
28 startQuery(0, null, uri
, PROJECTION
, null, null, null);
32 protected void onQueryComplete(int token
, Object cookie
,
34 super.onQueryComplete(token
, cookie
, cursor
);
39 private final QueryHandler queryHandler
= new QueryHandler();
41 private final String
[] PROJECTION
= {
42 "_id", "body", "user/avatar/url_50"
44 private final int BODY_COLUMN
= 1, AVATAR_COLUMN
= 2;
46 public DashboardAdapter(Context context
) {
47 super(context
, null, false);
48 inflater
= (LayoutInflater
) activity
.getSystemService(Context
.LAYOUT_INFLATER_SERVICE
);
49 queryHandler
.startQuery();
53 public void bindView(View view
, Context context
, Cursor cursor
) {
54 TextView bodyView
= (TextView
) view
.findViewById(R
.id
.update
);
56 ImageView avatarView
= (ImageView
) view
.findViewById(R
.id
.avatar
);
57 bodyView
.setText(cursor
.getString(BODY_COLUMN
));
58 if (avatarView
!= null)
59 if (cursor
.isNull(AVATAR_COLUMN
))
60 avatarView
.setImageResource(R
.drawable
.nn_standard
);
62 avatarView
.setImageURI(Uri
.withAppendedPath(Blip
.CONTENT_URI
, cursor
.getString(AVATAR_COLUMN
)));
66 public View
newView(Context context
, Cursor cursor
, ViewGroup parent
) {
67 return inflater
.inflate(R
.layout
.update_list_item
, parent
, false);
71 private Activity activity
;
73 public DashboardView(Context context
, AttributeSet attrs
) {
74 super(context
, attrs
);
75 activity
= (Activity
) context
;
78 public void bindDashboard() {
79 setAdapter(new DashboardAdapter(activity
));