46 import android.widget.TextView; |
46 import android.widget.TextView; |
47 |
47 |
48 public class TeamSelectionActivity extends Activity{ |
48 public class TeamSelectionActivity extends Activity{ |
49 |
49 |
50 private static final int ACTIVITY_TEAMCREATION = 0; |
50 private static final int ACTIVITY_TEAMCREATION = 0; |
51 |
51 |
52 private ImageButton addTeam, back; |
52 private ImageButton addTeam, back; |
53 private ListView availableTeams, selectedTeams; |
53 private ListView availableTeams, selectedTeams; |
54 private ArrayList<HashMap<String, Object>> availableTeamsList, selectedTeamsList; |
54 private ArrayList<HashMap<String, Object>> availableTeamsList, selectedTeamsList; |
55 private TextView txtInfo; |
55 private TextView txtInfo; |
56 private int minTeams = 2; |
|
57 |
56 |
58 public void onCreate(Bundle savedInstanceState){ |
57 public void onCreate(Bundle savedInstanceState){ |
59 super.onCreate(savedInstanceState); |
58 super.onCreate(savedInstanceState); |
60 |
59 |
61 setContentView(R.layout.team_selector); |
60 setContentView(R.layout.team_selector); |
62 |
61 |
63 addTeam = (ImageButton) findViewById(R.id.btnAdd); |
62 addTeam = (ImageButton) findViewById(R.id.btnAdd); |
64 back = (ImageButton) findViewById(R.id.btnBack); |
63 back = (ImageButton) findViewById(R.id.btnBack); |
65 txtInfo = (TextView) findViewById(R.id.txtInfo); |
64 txtInfo = (TextView) findViewById(R.id.txtInfo); |
66 |
65 |
67 addTeam.setOnClickListener(addTeamClicker); |
66 addTeam.setOnClickListener(addTeamClicker); |
68 back.setOnClickListener(backClicker); |
67 back.setOnClickListener(backClicker); |
69 |
68 |
70 availableTeams = (ListView) findViewById(R.id.availableTeams); |
69 availableTeams = (ListView) findViewById(R.id.availableTeams); |
71 availableTeamsList = FrontendDataUtils.getTeams(this); |
70 availableTeamsList = FrontendDataUtils.getTeams(this); |
118 } |
117 } |
119 }else{ |
118 }else{ |
120 super.onActivityResult(requestCode, resultCode, data); |
119 super.onActivityResult(requestCode, resultCode, data); |
121 } |
120 } |
122 } |
121 } |
123 |
122 |
124 private void updateListViews(){ |
123 private void updateListViews(){ |
125 unregisterForContextMenu(availableTeams); |
124 unregisterForContextMenu(availableTeams); |
126 availableTeamsList = FrontendDataUtils.getTeams(this); |
125 availableTeamsList = FrontendDataUtils.getTeams(this); |
127 ArrayList<HashMap<String, Object>> toBeRemoved = new ArrayList<HashMap<String, Object>>(); |
126 ArrayList<HashMap<String, Object>> toBeRemoved = new ArrayList<HashMap<String, Object>>(); |
128 for(HashMap<String, Object> hashmap : selectedTeamsList){ |
127 for(HashMap<String, Object> hashmap : selectedTeamsList){ |
129 String name = (String)hashmap.get("txt"); |
128 String name = (String)hashmap.get("txt"); |
130 |
129 |
131 for(HashMap<String, Object> hash : availableTeamsList){ |
130 for(HashMap<String, Object> hash : availableTeamsList){ |
132 if(name.equals((String)hash.get("txt"))){ |
131 if(name.equals((String)hash.get("txt"))){ |
133 toBeRemoved.add(hash); |
132 toBeRemoved.add(hash); |
134 } |
133 } |
135 } |
134 } |
136 } |
135 } |
137 for(HashMap<String, Object> hash: toBeRemoved) availableTeamsList.remove(hash); |
136 for(HashMap<String, Object> hash: toBeRemoved) availableTeamsList.remove(hash); |
138 |
137 |
139 SimpleAdapter adapter = new SimpleAdapter(this, availableTeamsList, R.layout.team_selection_entry, new String[]{"txt", "img"}, new int[]{R.id.txtName, R.id.imgDifficulty}); |
138 SimpleAdapter adapter = new SimpleAdapter(this, availableTeamsList, R.layout.team_selection_entry, new String[]{"txt", "img"}, new int[]{R.id.txtName, R.id.imgDifficulty}); |
140 availableTeams.setAdapter(adapter); |
139 availableTeams.setAdapter(adapter); |
141 registerForContextMenu(availableTeams); |
140 registerForContextMenu(availableTeams); |
142 availableTeams.setOnItemClickListener(availableClicker); |
141 availableTeams.setOnItemClickListener(availableClicker); |
143 |
142 |
144 |
143 |
145 } |
144 } |
146 |
145 |
147 private void setTeamColor(int position, int color){ |
146 private void setTeamColor(int position, int color){ |
148 View iv = ((RelativeLayout)selectedTeams.getChildAt(position)).findViewById(R.id.teamCount); |
147 View iv = ((RelativeLayout)selectedTeams.getChildAt(position)).findViewById(R.id.teamCount); |
149 setTeamColor(iv, color); |
148 setTeamColor(iv, color); |
150 } |
149 } |
151 private void setTeamColor(View iv, int color){ |
150 private void setTeamColor(View iv, int color){ |
220 public void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) { |
219 public void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) { |
221 availableTeamsList.add((HashMap<String, Object>) selectedTeamsList.get(position)); |
220 availableTeamsList.add((HashMap<String, Object>) selectedTeamsList.get(position)); |
222 selectedTeamsList.remove(position); |
221 selectedTeamsList.remove(position); |
223 ((SimpleAdapter)availableTeams.getAdapter()).notifyDataSetChanged(); |
222 ((SimpleAdapter)availableTeams.getAdapter()).notifyDataSetChanged(); |
224 ((SimpleAdapter)selectedTeams.getAdapter()).notifyDataSetChanged(); |
223 ((SimpleAdapter)selectedTeams.getAdapter()).notifyDataSetChanged(); |
225 |
224 |
226 txtInfo.setText(String.format(getResources().getString(R.string.teams_info_template), selectedTeamsList.size())); |
225 txtInfo.setText(String.format(getResources().getString(R.string.teams_info_template), selectedTeamsList.size())); |
227 } |
226 } |
228 |
227 |
229 }; |
228 }; |
230 |
229 |
265 illegalcolors[i] = ((Team)selectedTeamsList.get(i).get("team")).color; |
264 illegalcolors[i] = ((Team)selectedTeamsList.get(i).get("team")).color; |
266 } |
265 } |
267 t.setRandomColor(illegalcolors); |
266 t.setRandomColor(illegalcolors); |
268 hash.put("color", t.color); |
267 hash.put("color", t.color); |
269 hash.put("count", t.hogCount); |
268 hash.put("count", t.hogCount); |
270 |
269 |
271 selectedTeamsList.add(hash); |
270 selectedTeamsList.add(hash); |
272 availableTeamsList.remove(position); |
271 availableTeamsList.remove(position); |
273 ((SimpleAdapter)availableTeams.getAdapter()).notifyDataSetChanged(); |
272 ((SimpleAdapter)availableTeams.getAdapter()).notifyDataSetChanged(); |
274 ((SimpleAdapter)selectedTeams.getAdapter()).notifyDataSetChanged(); |
273 ((SimpleAdapter)selectedTeams.getAdapter()).notifyDataSetChanged(); |
275 |
274 |
276 txtInfo.setText(String.format(getResources().getString(R.string.teams_info_template), selectedTeamsList.size())); |
275 txtInfo.setText(String.format(getResources().getString(R.string.teams_info_template), selectedTeamsList.size())); |
277 } |
276 } |
278 |
277 |
279 private void returnTeams(){ |
278 private void returnTeams(){ |
280 int teamsCount = selectedTeamsList.size(); |
279 int teamsCount = selectedTeamsList.size(); |
281 if(teamsCount >= minTeams){ |
280 Intent i = new Intent(); |
282 Intent i = new Intent(); |
281 Parcelable[] teams = new Parcelable[teamsCount]; |
283 Parcelable[] teams = new Parcelable[teamsCount]; |
282 for(int x = 0 ; x < teamsCount; x++){ |
284 for(int x = 0 ; x < teamsCount; x++){ |
283 teams[x] = (Team)selectedTeamsList.get(x).get("team"); |
285 teams[x] = (Team)selectedTeamsList.get(x).get("team"); |
284 } |
286 } |
285 i.putExtra("teams", teams); |
287 i.putExtra("teams", teams); |
286 setResult(Activity.RESULT_OK, i); |
288 setResult(Activity.RESULT_OK, i); |
287 |
289 }else{ |
|
290 setResult(Activity.RESULT_CANCELED); |
|
291 } |
|
292 } |
288 } |
293 } |
289 } |