14 import android.view.View; |
14 import android.view.View; |
15 import android.view.ViewGroup; |
15 import android.view.ViewGroup; |
16 import android.widget.BaseAdapter; |
16 import android.widget.BaseAdapter; |
17 import android.widget.TextView; |
17 import android.widget.TextView; |
18 |
18 |
19 public class PlayerListAdapter extends BaseAdapter { |
19 public class PlayerlistAdapter extends BaseAdapter { |
20 private List<Pair<Player, Long>> players = new ArrayList<Pair<Player, Long>>(); |
20 private List<Pair<Player, Long>> players = new ArrayList<Pair<Player, Long>>(); |
21 private Context context; |
21 private Context context; |
22 private PlayerList playerList; |
22 private Playerlist playerlist; |
23 |
23 |
24 private DataSetObserver observer = new DataSetObserver() { |
24 private DataSetObserver observer = new DataSetObserver() { |
25 @Override |
25 @Override |
26 public void onChanged() { |
26 public void onChanged() { |
27 reloadFromList(playerList); |
27 reloadFromList(playerlist); |
28 } |
28 } |
29 |
29 |
30 @Override |
30 @Override |
31 public void onInvalidated() { |
31 public void onInvalidated() { |
32 invalidate(); |
32 invalidate(); |
33 } |
33 } |
34 }; |
34 }; |
35 |
35 |
36 public PlayerListAdapter(Context context) { |
36 public PlayerlistAdapter(Context context) { |
37 this.context = context; |
37 this.context = context; |
38 } |
38 } |
39 |
39 |
40 public int getCount() { |
40 public int getCount() { |
41 return players.size(); |
41 return players.size(); |
51 |
51 |
52 public boolean hasStableIds() { |
52 public boolean hasStableIds() { |
53 return true; |
53 return true; |
54 } |
54 } |
55 |
55 |
56 public void setList(PlayerList playerList) { |
56 public void setList(Playerlist playerlist) { |
57 if(this.playerList != null) { |
57 if(this.playerlist != null) { |
58 this.playerList.unregisterObserver(observer); |
58 this.playerlist.unregisterObserver(observer); |
59 } |
59 } |
60 this.playerList = playerList; |
60 this.playerlist = playerlist; |
61 this.playerList.registerObserver(observer); |
61 this.playerlist.registerObserver(observer); |
62 reloadFromList(playerList); |
62 reloadFromList(playerlist); |
63 } |
63 } |
64 |
64 |
65 public void invalidate() { |
65 public void invalidate() { |
66 if(playerList != null) { |
66 if(playerlist != null) { |
67 playerList.unregisterObserver(observer); |
67 playerlist.unregisterObserver(observer); |
68 } |
68 } |
69 playerList = null; |
69 playerlist = null; |
70 notifyDataSetInvalidated(); |
70 notifyDataSetInvalidated(); |
71 } |
71 } |
72 |
72 |
73 private void reloadFromList(PlayerList list) { |
73 private void reloadFromList(Playerlist list) { |
74 players = new ArrayList<Pair<Player, Long>>(list.getMap().values()); |
74 players = new ArrayList<Pair<Player, Long>>(list.getMap().values()); |
75 Collections.sort(players, AlphabeticalOrderComparator.INSTANCE); |
75 Collections.sort(players, AlphabeticalOrderComparator.INSTANCE); |
76 notifyDataSetChanged(); |
76 notifyDataSetChanged(); |
77 } |
77 } |
78 |
78 |