project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/RoomListAdapter.java
changeset 7461 38acbfdb484f
parent 7358 57a508884052
child 7476 2fb781bbdd51
equal deleted inserted replaced
7458:fec6fa1e460e 7461:38acbfdb484f
    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) {