41 import android.widget.AdapterView.OnItemClickListener; |
41 import android.widget.AdapterView.OnItemClickListener; |
42 import android.widget.ImageButton; |
42 import android.widget.ImageButton; |
43 import android.widget.SimpleAdapter; |
43 import android.widget.SimpleAdapter; |
44 |
44 |
45 public class TeamListActivity extends ListActivity implements OnItemClickListener { |
45 public class TeamListActivity extends ListActivity implements OnItemClickListener { |
46 private List<Team> teams; |
46 private List<Team> teams; |
47 private ImageButton addButton; |
47 private ImageButton addButton; |
48 |
48 |
49 @Override |
49 @Override |
50 protected void onCreate(Bundle savedInstanceState) { |
50 protected void onCreate(Bundle savedInstanceState) { |
51 super.onCreate(savedInstanceState); |
51 super.onCreate(savedInstanceState); |
52 setContentView(R.layout.activity_teamlist); |
52 setContentView(R.layout.activity_teamlist); |
53 addButton = (ImageButton)findViewById(R.id.btnAdd); |
53 addButton = (ImageButton)findViewById(R.id.btnAdd); |
54 addButton.setOnClickListener(new OnClickListener() { |
54 addButton.setOnClickListener(new OnClickListener() { |
55 public void onClick(View v) { |
55 public void onClick(View v) { |
56 editTeam(null); |
56 editTeam(null); |
57 } |
57 } |
58 }); |
58 }); |
59 } |
59 } |
60 |
|
61 @Override |
|
62 public void onResume() { |
|
63 super.onResume(); |
|
64 updateList(); |
|
65 getListView().setOnItemClickListener(this); |
|
66 registerForContextMenu(getListView()); |
|
67 } |
|
68 |
|
69 public void onItemClick(AdapterView<?> adapterView, View v, int position, long arg3) { |
|
70 editTeam(teams.get(position).name); |
|
71 } |
|
72 |
|
73 @Override |
|
74 public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuinfo){ |
|
75 menu.add(ContextMenu.NONE, 0, ContextMenu.NONE, R.string.edit); |
|
76 menu.add(ContextMenu.NONE, 1, ContextMenu.NONE, R.string.delete); |
|
77 } |
|
78 |
|
79 @Override |
|
80 public boolean onContextItemSelected(MenuItem item){ |
|
81 AdapterView.AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item.getMenuInfo(); |
|
82 int position = menuInfo.position; |
|
83 Team team = teams.get(position); |
|
84 switch(item.getItemId()){ |
|
85 case 0: |
|
86 editTeam(team.name); |
|
87 return true; |
|
88 case 1: |
|
89 Team.getTeamfileByName(getApplicationContext(), team.name).delete(); |
|
90 updateList(); |
|
91 return true; |
|
92 } |
|
93 return false; |
|
94 } |
|
95 |
|
96 private void updateList() { |
|
97 teams = FrontendDataUtils.getTeams(getApplicationContext()); |
|
98 Collections.sort(teams, Team.NAME_ORDER); |
|
99 SimpleAdapter adapter = new SimpleAdapter(this, teamsToMaps(teams), R.layout.team_selection_entry_simple, new String[]{"txt", "img"}, new int[]{R.id.txtName, R.id.imgDifficulty}); |
|
100 setListAdapter(adapter); |
|
101 } |
|
102 |
|
103 private void editTeam(String teamName) { |
|
104 Intent i = new Intent(this, TeamCreatorActivity.class); |
|
105 i.putExtra(TeamCreatorActivity.PARAMETER_EXISTING_TEAMNAME, teamName); |
|
106 startActivity(i); |
|
107 } |
|
108 |
60 |
109 private static final int[] botlevelDrawables = new int[] { |
61 @Override |
110 R.drawable.human, R.drawable.bot5, R.drawable.bot4, R.drawable.bot3, R.drawable.bot2, R.drawable.bot1 |
62 public void onResume() { |
111 }; |
63 super.onResume(); |
112 |
64 updateList(); |
113 private List<Map<String, ?>> teamsToMaps(List<Team> teams) { |
65 getListView().setOnItemClickListener(this); |
114 List<Map<String, ?>> result = new ArrayList<Map<String,?>>(); |
66 registerForContextMenu(getListView()); |
115 for(Team t : teams) { |
67 } |
116 HashMap<String, Object> map = new HashMap<String, Object>(); |
68 |
117 map.put("team", t); |
69 public void onItemClick(AdapterView<?> adapterView, View v, int position, long arg3) { |
118 map.put("txt", t.name); |
70 editTeam(teams.get(position).name); |
119 int botlevel = t.hogs.get(0).level; |
71 } |
120 if(botlevel<0 || botlevel>=botlevelDrawables.length) { |
72 |
121 map.put("img", R.drawable.bot1); |
73 @Override |
122 } else { |
74 public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuinfo){ |
123 map.put("img", botlevelDrawables[botlevel]); |
75 menu.add(ContextMenu.NONE, 0, ContextMenu.NONE, R.string.edit); |
124 } |
76 menu.add(ContextMenu.NONE, 1, ContextMenu.NONE, R.string.delete); |
125 result.add(map); |
77 } |
126 } |
78 |
127 return result; |
79 @Override |
128 } |
80 public boolean onContextItemSelected(MenuItem item){ |
|
81 AdapterView.AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item.getMenuInfo(); |
|
82 int position = menuInfo.position; |
|
83 Team team = teams.get(position); |
|
84 switch(item.getItemId()){ |
|
85 case 0: |
|
86 editTeam(team.name); |
|
87 return true; |
|
88 case 1: |
|
89 Team.getTeamfileByName(getApplicationContext(), team.name).delete(); |
|
90 updateList(); |
|
91 return true; |
|
92 } |
|
93 return false; |
|
94 } |
|
95 |
|
96 private void updateList() { |
|
97 teams = FrontendDataUtils.getTeams(getApplicationContext()); |
|
98 Collections.sort(teams, Team.NAME_ORDER); |
|
99 SimpleAdapter adapter = new SimpleAdapter(this, teamsToMaps(teams), R.layout.team_selection_entry_simple, new String[]{"txt", "img"}, new int[]{R.id.txtName, R.id.imgDifficulty}); |
|
100 setListAdapter(adapter); |
|
101 } |
|
102 |
|
103 private void editTeam(String teamName) { |
|
104 Intent i = new Intent(this, TeamCreatorActivity.class); |
|
105 i.putExtra(TeamCreatorActivity.PARAMETER_EXISTING_TEAMNAME, teamName); |
|
106 startActivity(i); |
|
107 } |
|
108 |
|
109 private static final int[] botlevelDrawables = new int[] { |
|
110 R.drawable.human, R.drawable.bot5, R.drawable.bot4, R.drawable.bot3, R.drawable.bot2, R.drawable.bot1 |
|
111 }; |
|
112 |
|
113 private List<Map<String, ?>> teamsToMaps(List<Team> teams) { |
|
114 List<Map<String, ?>> result = new ArrayList<Map<String,?>>(); |
|
115 for(Team t : teams) { |
|
116 HashMap<String, Object> map = new HashMap<String, Object>(); |
|
117 map.put("team", t); |
|
118 map.put("txt", t.name); |
|
119 int botlevel = t.hogs.get(0).level; |
|
120 if(botlevel<0 || botlevel>=botlevelDrawables.length) { |
|
121 map.put("img", R.drawable.bot1); |
|
122 } else { |
|
123 map.put("img", botlevelDrawables[botlevel]); |
|
124 } |
|
125 result.add(map); |
|
126 } |
|
127 return result; |
|
128 } |
129 } |
129 } |