diff -r 45b9f25ff611 -r 2fb781bbdd51 project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/LobbyPlayerlistAdapter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/LobbyPlayerlistAdapter.java Mon Aug 06 22:39:36 2012 +0200 @@ -0,0 +1,58 @@ +package org.hedgewars.hedgeroid.netplay; + +import java.util.Comparator; + +import org.hedgewars.hedgeroid.R; +import org.hedgewars.hedgeroid.Datastructures.Player; + +import android.content.Context; +import android.util.Pair; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +public class LobbyPlayerlistAdapter extends ObservableTreeMapAdapter> { + private Context context; + + public LobbyPlayerlistAdapter(Context context) { + this.context = context; + } + + @Override + protected Comparator> getEntryOrder() { + return AlphabeticalOrderComparator.INSTANCE; + } + + public Player getItem(int position) { + return getEntries().get(position).first; + } + + public long getItemId(int position) { + return getEntries().get(position).second; + } + + public boolean hasStableIds() { + return true; + } + + public View getView(int position, View convertView, ViewGroup parent) { + View v = convertView; + if (v == null) { + LayoutInflater vi = LayoutInflater.from(context); + v = vi.inflate(R.layout.listview_player, null); + } + + String player = getItem(position).name; + TextView username = (TextView) v.findViewById(android.R.id.text1); + username.setText(player); + return v; + } + + private static final class AlphabeticalOrderComparator implements Comparator> { + public static final AlphabeticalOrderComparator INSTANCE = new AlphabeticalOrderComparator(); + public int compare(Pair lhs, Pair rhs) { + return lhs.first.name.compareToIgnoreCase(rhs.first.name); + }; + } +} \ No newline at end of file