15 import android.view.View; |
15 import android.view.View; |
16 import android.view.ViewGroup; |
16 import android.view.ViewGroup; |
17 import android.widget.BaseAdapter; |
17 import android.widget.BaseAdapter; |
18 import android.widget.TextView; |
18 import android.widget.TextView; |
19 |
19 |
20 public class RoomListAdapter extends BaseAdapter { |
20 public class RoomlistAdapter extends BaseAdapter { |
21 private List<Pair<Room, Long>> rooms = new ArrayList<Pair<Room, Long>>(); |
21 private List<Pair<Room, Long>> rooms = new ArrayList<Pair<Room, Long>>(); |
22 private Context context; |
22 private Context context; |
23 private RoomList roomList; |
23 private Roomlist roomlist; |
24 |
24 |
25 private DataSetObserver observer = new DataSetObserver() { |
25 private DataSetObserver observer = new DataSetObserver() { |
26 @Override |
26 @Override |
27 public void onChanged() { |
27 public void onChanged() { |
28 reloadFromList(roomList); |
28 reloadFromList(roomlist); |
29 } |
29 } |
30 |
30 |
31 @Override |
31 @Override |
32 public void onInvalidated() { |
32 public void onInvalidated() { |
33 invalidate(); |
33 invalidate(); |
34 } |
34 } |
35 }; |
35 }; |
36 |
36 |
37 public RoomListAdapter(Context context) { |
37 public RoomlistAdapter(Context context) { |
38 this.context = context; |
38 this.context = context; |
39 } |
39 } |
40 |
40 |
41 public int getCount() { |
41 public int getCount() { |
42 return rooms.size(); |
42 return rooms.size(); |
52 |
52 |
53 public boolean hasStableIds() { |
53 public boolean hasStableIds() { |
54 return true; |
54 return true; |
55 } |
55 } |
56 |
56 |
57 public void setList(RoomList roomList) { |
57 public void setList(Roomlist roomlist) { |
58 if(this.roomList != null) { |
58 if(this.roomlist != null) { |
59 this.roomList.unregisterObserver(observer); |
59 this.roomlist.unregisterObserver(observer); |
60 } |
60 } |
61 this.roomList = roomList; |
61 this.roomlist = roomlist; |
62 this.roomList.registerObserver(observer); |
62 this.roomlist.registerObserver(observer); |
63 reloadFromList(roomList); |
63 reloadFromList(roomlist); |
64 } |
64 } |
65 |
65 |
66 public void invalidate() { |
66 public void invalidate() { |
67 if(roomList != null) { |
67 if(roomlist != null) { |
68 roomList.unregisterObserver(observer); |
68 roomlist.unregisterObserver(observer); |
69 } |
69 } |
70 roomList = null; |
70 roomlist = null; |
71 notifyDataSetInvalidated(); |
71 notifyDataSetInvalidated(); |
72 } |
72 } |
73 |
73 |
74 private void reloadFromList(RoomList list) { |
74 private void reloadFromList(Roomlist list) { |
75 rooms = new ArrayList<Pair<Room, Long>>(roomList.getMap().values()); |
75 rooms = new ArrayList<Pair<Room, Long>>(roomlist.getMap().values()); |
76 Collections.sort(rooms, RoomAgeComparator.INSTANCE); |
76 Collections.sort(rooms, RoomAgeComparator.INSTANCE); |
77 notifyDataSetChanged(); |
77 notifyDataSetChanged(); |
78 } |
78 } |
79 |
79 |
80 private static CharSequence formatExtra(Resources res, Room room) { |
80 private static CharSequence formatExtra(Resources res, Room room) { |