project_files/Android-build/SDL-android-project/src/org/hedgewars/mobile/TeamSelectionActivity.java
branchhedgeroid
changeset 5627 ce2d92589cbc
parent 5625 9add7b92c5f0
child 5633 443b7c6543e5
equal deleted inserted replaced
5625:9add7b92c5f0 5627:ce2d92589cbc
    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 }