Refactoring, continued.
[bliper.git] / src / pl / blip / divide / bliper / DashboardView.java
blob31b374cd527597a004ef9ec595a4ebf252143b87
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);
31 @Override
32 protected void onQueryComplete(int token, Object cookie,
33 Cursor cursor) {
34 super.onQueryComplete(token, cookie, cursor);
35 changeCursor(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();
52 @Override
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);
61 else
62 avatarView.setImageURI(Uri.withAppendedPath(Blip.CONTENT_URI, cursor.getString(AVATAR_COLUMN)));
65 @Override
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));