project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/PlayerListAdapter.java
changeset 7461 38acbfdb484f
parent 7449 2e63537b44f3
equal deleted inserted replaced
7458:fec6fa1e460e 7461:38acbfdb484f
    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