project_files/Android-build/SDL-android-project/src/org/hedgewars/mobile/StartGameActivity.java
branchhedgeroid
changeset 5471 081bc0170623
parent 5433 8f82045953c1
child 5607 d3a3e80ad1da
equal deleted inserted replaced
5469:2ad2a4261b56 5471:081bc0170623
     1 package org.hedgewars.mobile;
     1 package org.hedgewars.mobile;
     2 
     2 
       
     3 import java.util.ArrayList;
       
     4 
       
     5 import org.hedgewars.mobile.EngineProtocol.FrontendDataUtils;
       
     6 import org.hedgewars.mobile.EngineProtocol.GameConfig;
       
     7 import org.hedgewars.mobile.EngineProtocol.Map;
       
     8 import org.hedgewars.mobile.EngineProtocol.Scheme;
       
     9 import org.hedgewars.mobile.EngineProtocol.Team;
       
    10 import org.hedgewars.mobile.EngineProtocol.Weapon;
       
    11 
     3 import android.app.Activity;
    12 import android.app.Activity;
       
    13 import android.content.Intent;
     4 import android.content.SharedPreferences;
    14 import android.content.SharedPreferences;
     5 import android.graphics.drawable.Drawable;
    15 import android.graphics.drawable.Drawable;
     6 import android.os.Bundle;
    16 import android.os.Bundle;
       
    17 import android.os.Parcelable;
     7 import android.preference.PreferenceManager;
    18 import android.preference.PreferenceManager;
       
    19 import android.util.Log;
     8 import android.view.View;
    20 import android.view.View;
       
    21 import android.view.View.OnClickListener;
     9 import android.widget.AdapterView;
    22 import android.widget.AdapterView;
    10 import android.widget.AdapterView.OnItemSelectedListener;
    23 import android.widget.AdapterView.OnItemSelectedListener;
    11 import android.widget.ArrayAdapter;
    24 import android.widget.ArrayAdapter;
       
    25 import android.widget.ImageButton;
    12 import android.widget.ImageView;
    26 import android.widget.ImageView;
    13 import android.widget.Spinner;
    27 import android.widget.Spinner;
    14 
    28 
    15 public class StartGameActivity extends Activity {
    29 public class StartGameActivity extends Activity {
    16 
    30 
       
    31 	public static final int ACTIVITY_TEAM_SELECTOR = 0;
       
    32 
       
    33 	private GameConfig config = null;
       
    34 	private ImageButton start, back, team;
    17 	private Spinner maps, gameplay, gamescheme, weapons, themes;
    35 	private Spinner maps, gameplay, gamescheme, weapons, themes;
    18 	private ImageView themeIcon;
    36 	private ImageView themeIcon, mapPreview;
    19 	
    37 
    20 	public void onCreate(Bundle savedInstanceState){
    38 	public void onCreate(Bundle savedInstanceState){
    21 		super.onCreate(savedInstanceState);
    39 		super.onCreate(savedInstanceState);
       
    40 
       
    41 		SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
       
    42 
       
    43 		Utils.resRawToFilesDir(this,R.array.schemes, Scheme.DIRECTORY_SCHEME);
       
    44 		Utils.resRawToFilesDir(this, R.array.weapons, Weapon.DIRECTORY_WEAPON);
       
    45 		Scheme.parseBasicFlags(this);
       
    46 		config = new GameConfig();
       
    47 
       
    48 		setContentView(R.layout.starting_game);
    22 		
    49 		
    23 		setContentView(R.layout.starting_game);
    50 		back = (ImageButton) findViewById(R.id.btnBack);
    24 
    51 		team = (ImageButton) findViewById(R.id.btnTeams);
       
    52 		start = (ImageButton) findViewById(R.id.btnStart);
       
    53 		
    25 		maps = (Spinner) findViewById(R.id.spinMaps);
    54 		maps = (Spinner) findViewById(R.id.spinMaps);
    26 		gameplay = (Spinner) findViewById(R.id.spinGameplay);
    55 		gameplay = (Spinner) findViewById(R.id.spinGameplay);
    27 		gamescheme = (Spinner) findViewById(R.id.spinGamescheme);
    56 		gamescheme = (Spinner) findViewById(R.id.spinGamescheme);
    28 		weapons = (Spinner) findViewById(R.id.spinweapons);
    57 		weapons = (Spinner) findViewById(R.id.spinweapons);
    29 		themes = (Spinner) findViewById(R.id.spinTheme);
    58 		themes = (Spinner) findViewById(R.id.spinTheme);
       
    59 
       
    60 		themeIcon = (ImageView) findViewById(R.id.imgTheme);
       
    61 		mapPreview = (ImageView) findViewById(R.id.mapPreview);
       
    62 
       
    63 		start.setOnClickListener(startClicker);
       
    64 		back.setOnClickListener(backClicker);
       
    65 		team.setOnClickListener(teamClicker);
    30 		
    66 		
    31 		themeIcon = (ImageView) findViewById(R.id.imgTheme);
    67 		ArrayAdapter<?> adapter = new ArrayAdapter<Map>(this, android.R.layout.simple_spinner_item, FrontendDataUtils.getMaps(this));
    32 		
       
    33 		ArrayAdapter<?> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, FrontendDataUtil.getMaps(this));
       
    34 		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    68 		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    35 		maps.setAdapter(adapter);
    69 		maps.setAdapter(adapter);
    36 		
    70 		maps.setOnItemSelectedListener(mapsClicker);
    37 		adapter = new ArrayAdapter<String>(this, R.layout.listview_item, FrontendDataUtil.getGameplay(this));
    71 
       
    72 		adapter = new ArrayAdapter<String>(this, R.layout.listview_item, FrontendDataUtils.getGameplay(this));
    38 		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    73 		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    39 		gameplay.setAdapter(adapter);
    74 		gameplay.setAdapter(adapter);
       
    75 		gameplay.setOnItemSelectedListener(gameplayClicker);
    40 
    76 
    41 		adapter = new ArrayAdapter<Scheme>(this, R.layout.listview_item, FrontendDataUtil.getSchemes(this));
    77 		adapter = new ArrayAdapter<Scheme>(this, R.layout.listview_item, FrontendDataUtils.getSchemes(this));
    42 		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    78 		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    43 		gamescheme.setAdapter(adapter);
    79 		gamescheme.setAdapter(adapter);
       
    80 		gamescheme.setOnItemSelectedListener(schemeClicker);
    44 
    81 
    45 		adapter = new ArrayAdapter<Weapon>(this, R.layout.listview_item, FrontendDataUtil.getWeapons(this));
    82 		adapter = new ArrayAdapter<Weapon>(this, R.layout.listview_item, FrontendDataUtils.getWeapons(this));
    46 		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    83 		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    47 		weapons.setAdapter(adapter);
    84 		weapons.setAdapter(adapter);
    48 		
    85 		weapons.setOnItemSelectedListener(weaponClicker);
    49 		adapter = new ArrayAdapter<String>(this, R.layout.listview_item, FrontendDataUtil.getThemes(this));
    86 
       
    87 		adapter = new ArrayAdapter<String>(this, R.layout.listview_item, FrontendDataUtils.getThemes(this));
    50 		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    88 		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    51 		themes.setAdapter(adapter);
    89 		themes.setAdapter(adapter);
    52 		
       
    53 		
       
    54 		themes.setOnItemSelectedListener(themesClicker);
    90 		themes.setOnItemSelectedListener(themesClicker);
    55 		
    91 
    56 		SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
       
    57 		
       
    58 		Utils.resRawToFilesDir(this,R.array.schemes, Scheme.DIRECTORY_SCHEME);
       
    59 		Utils.resRawToFilesDir(this, R.array.weapons, Weapon.DIRECTORY_WEAPON);
       
    60 	}
    92 	}
       
    93 
       
    94 	public void onActivityResult(int requestCode, int resultCode, Intent data){
       
    95 		switch(requestCode){
       
    96 		case ACTIVITY_TEAM_SELECTOR:
       
    97 			if(resultCode == Activity.RESULT_OK){
       
    98 				Parcelable[] parcelables = (Parcelable[])data.getParcelableArrayExtra("teams");
       
    99 				config.teams.clear();
       
   100 				for(Parcelable t : parcelables){
       
   101 					config.teams.add((Team)t);
       
   102 				}
       
   103 				
       
   104 			}
       
   105 			break;
       
   106 		}
       
   107 	}
       
   108 	
    61 	
   109 	
    62 	private OnItemSelectedListener themesClicker = new OnItemSelectedListener(){
   110 	private OnItemSelectedListener themesClicker = new OnItemSelectedListener(){
    63 
   111 
    64 		public void onItemSelected(AdapterView<?> arg0, View view, int position, long rowId) {
   112 		public void onItemSelected(AdapterView<?> arg0, View view, int position, long rowId) {
    65 			String themeName = (String) arg0.getAdapter().getItem(position);
   113 			String themeName = (String) arg0.getAdapter().getItem(position);
    66 			Drawable themeIconDrawable = Drawable.createFromPath(Utils.getDownloadPath(StartGameActivity.this) + "/Data/Themes/" + themeName + "/icon@2X.png");
   114 			Drawable themeIconDrawable = Drawable.createFromPath(Utils.getDownloadPath(StartGameActivity.this) + "Themes/" + themeName + "/icon@2X.png");
    67 			themeIcon.setImageDrawable(themeIconDrawable);
   115 			themeIcon.setImageDrawable(themeIconDrawable);
       
   116 			config.theme = themeName;
    68 		}
   117 		}
    69 
   118 
    70 		public void onNothingSelected(AdapterView<?> arg0) {
   119 		public void onNothingSelected(AdapterView<?> arg0) {
    71 			// TODO Auto-generated method stub
   120 		}
       
   121 
       
   122 	};
       
   123 
       
   124 	private OnItemSelectedListener mapsClicker = new OnItemSelectedListener(){
       
   125 
       
   126 		public void onItemSelected(AdapterView<?> arg0, View view, int position,long rowId) {
       
   127 			Map map = (Map)arg0.getAdapter().getItem(position);
       
   128 			mapPreview.setImageDrawable(map.getDrawable());
       
   129 			config.map = map;
       
   130 		}
       
   131 
       
   132 		public void onNothingSelected(AdapterView<?> arg0) {
       
   133 		}
       
   134 
       
   135 	};
       
   136 	
       
   137 	private OnItemSelectedListener weaponClicker = new OnItemSelectedListener(){
       
   138 		public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
       
   139 			config.weapon = (Weapon)arg0.getAdapter().getItem(arg2);
       
   140 		}
       
   141 		public void onNothingSelected(AdapterView<?> arg0) {
    72 			
   142 			
    73 		}
   143 		}
    74 		
   144 	};
       
   145 	private OnItemSelectedListener schemeClicker = new OnItemSelectedListener(){
       
   146 		public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
       
   147 			config.scheme = (Scheme)arg0.getAdapter().getItem(arg2);
       
   148 		}
       
   149 		public void onNothingSelected(AdapterView<?> arg0) {
       
   150 			
       
   151 		}
       
   152 	};
       
   153 	private OnItemSelectedListener gameplayClicker = new OnItemSelectedListener(){
       
   154 		public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
       
   155 			//config = ()arg0.getAdapter().getItem(arg2);
       
   156 		}
       
   157 		public void onNothingSelected(AdapterView<?> arg0) {
       
   158 			
       
   159 		}
    75 	};
   160 	};
    76 	
   161 	
       
   162 	private OnClickListener startClicker = new OnClickListener(){
       
   163 		public void onClick(View v) {
       
   164 			Intent i = new Intent(StartGameActivity.this, SDLActivity.class);
       
   165 			i.putExtra("config", config);
       
   166 			startActivity(i);
       
   167 		}
       
   168 	};
       
   169 	
       
   170 	private OnClickListener backClicker = new OnClickListener(){
       
   171 		public void onClick(View v) {
       
   172 			finish();
       
   173 		}
       
   174 	};
       
   175 	
       
   176 	private OnClickListener teamClicker = new OnClickListener(){
       
   177 		public void onClick(View v) {
       
   178 			Intent i = new Intent(StartGameActivity.this, TeamSelectionActivity.class);
       
   179 			i.putParcelableArrayListExtra("teams", config.teams);
       
   180 			startActivityForResult(i, ACTIVITY_TEAM_SELECTOR);
       
   181 		}
       
   182 	};
       
   183 
    77 }
   184 }