diff -r d70a5b0d1190 -r 0481bd74267c project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/TeamAddDialog.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/TeamAddDialog.java Sun Aug 12 22:46:23 2012 +0200 @@ -0,0 +1,92 @@ +package org.hedgewars.hedgeroid.netplay; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +import org.hedgewars.hedgeroid.R; +import org.hedgewars.hedgeroid.Datastructures.FrontendDataUtils; +import org.hedgewars.hedgeroid.Datastructures.Team; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; +import android.os.Bundle; +import android.support.v4.app.DialogFragment; + +public class TeamAddDialog extends DialogFragment { + private static final String STATE_TEAMS_ALREADY_IN_GAME = "teamAlreadyInGame"; + private ArrayList teamsAlreadyInGame; + private List availableTeams; + private Listener listener; + + public static interface Listener { + void onTeamAddDialogSubmitted(Team newTeam); + } + + public TeamAddDialog() { + // Only for reflection-based instantiation by the framework + } + + TeamAddDialog(Collection teamsAlreadyInGame) { + this.teamsAlreadyInGame = new ArrayList(teamsAlreadyInGame); + } + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + try { + listener = (Listener) activity; + } catch(ClassCastException e) { + throw new ClassCastException("Activity " + activity + " must implement TeamAddDialog.Listener to use TeamAddDialog."); + } + } + + @Override + public void onDetach() { + super.onDetach(); + listener = null; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if(savedInstanceState != null) { + teamsAlreadyInGame = savedInstanceState.getStringArrayList(STATE_TEAMS_ALREADY_IN_GAME); + } + availableTeams = new ArrayList(); + List teams = FrontendDataUtils.getTeams(getActivity()); + for(Team team : teams) { + if(!teamsAlreadyInGame.contains(team.name)) { + availableTeams.add(team); + } + } + Collections.sort(availableTeams, Team.NAME_ORDER); + } + + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder.setTitle(R.string.dialog_addteam_title); + builder.setIcon(R.drawable.human); + String[] teamNames = new String[availableTeams.size()]; + for(int i=0; i