diff -r 4feced261c68 -r de822cd3df3a project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/SettingsFragment.java --- a/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/SettingsFragment.java Tue Jan 21 22:38:13 2014 +0100 +++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/SettingsFragment.java Tue Jan 21 22:43:06 2014 +0100 @@ -51,177 +51,177 @@ import android.widget.Toast; public class SettingsFragment extends Fragment { - private Spinner styleSpinner, schemeSpinner, weaponsetSpinner, themeSpinner; - private ImageView themeIcon; - - private List styles; - private List schemes; - private List weaponsets; - private List themes; - - private RoomStateManager stateManager; + private Spinner styleSpinner, schemeSpinner, weaponsetSpinner, themeSpinner; + private ImageView themeIcon; + + private List styles; + private List schemes; + private List weaponsets; + private List themes; + + private RoomStateManager stateManager; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View v = inflater.inflate(R.layout.fragment_settings, container, false); + themeIcon = (ImageView)v.findViewById(R.id.imgTheme); + + try { + styles = FrontendDataUtils.getGameStyles(getActivity()); + schemes = Schemes.loadAllSchemes(getActivity()); + weaponsets = Weaponsets.loadAllWeaponsets(getActivity()); + themes = FrontendDataUtils.getThemes(getActivity()); + } catch (IOException e) { + Toast.makeText(getActivity().getApplicationContext(), R.string.error_missing_sdcard_or_files, Toast.LENGTH_LONG).show(); + getActivity().finish(); + return null; + } + + Collections.sort(styles, String.CASE_INSENSITIVE_ORDER); + Collections.sort(schemes, Scheme.NAME_ORDER); + Collections.sort(weaponsets, Weaponset.NAME_ORDER); + Collections.sort(themes, String.CASE_INSENSITIVE_ORDER); + + styleSpinner = prepareSpinner(v, R.id.spinGameplay, styles, styleSelectedListener); + schemeSpinner = prepareSpinner(v, R.id.spinGamescheme, Schemes.toNameList(schemes), schemeSelectedListener); + weaponsetSpinner = prepareSpinner(v, R.id.spinweapons, Weaponsets.toNameList(weaponsets), weaponsetSelectedListener); + themeSpinner = prepareSpinner(v, R.id.spinTheme, themes, themeSelectedListener); + + stateManager.addListener(roomStateChangeListener); - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - View v = inflater.inflate(R.layout.fragment_settings, container, false); - themeIcon = (ImageView)v.findViewById(R.id.imgTheme); - - try { - styles = FrontendDataUtils.getGameStyles(getActivity()); - schemes = Schemes.loadAllSchemes(getActivity()); - weaponsets = Weaponsets.loadAllWeaponsets(getActivity()); - themes = FrontendDataUtils.getThemes(getActivity()); - } catch (IOException e) { - Toast.makeText(getActivity().getApplicationContext(), R.string.error_missing_sdcard_or_files, Toast.LENGTH_LONG).show(); - getActivity().finish(); - return null; - } - - Collections.sort(styles, String.CASE_INSENSITIVE_ORDER); - Collections.sort(schemes, Scheme.NAME_ORDER); - Collections.sort(weaponsets, Weaponset.NAME_ORDER); - Collections.sort(themes, String.CASE_INSENSITIVE_ORDER); - - styleSpinner = prepareSpinner(v, R.id.spinGameplay, styles, styleSelectedListener); - schemeSpinner = prepareSpinner(v, R.id.spinGamescheme, Schemes.toNameList(schemes), schemeSelectedListener); - weaponsetSpinner = prepareSpinner(v, R.id.spinweapons, Weaponsets.toNameList(weaponsets), weaponsetSelectedListener); - themeSpinner = prepareSpinner(v, R.id.spinTheme, themes, themeSelectedListener); - - stateManager.addListener(roomStateChangeListener); + if(stateManager.getGameStyle() != null) { + styleSpinner.setSelection(styles.indexOf(stateManager.getGameStyle()), false); + } + if(stateManager.getScheme() != null) { + schemeSpinner.setSelection(getSchemePosition(schemes, stateManager.getScheme().name), false); + } + if(stateManager.getWeaponset() != null) { + weaponsetSpinner.setSelection(getWeaponsetPosition(weaponsets, stateManager.getWeaponset().name), false); + } + if(stateManager.getMapRecipe() != null) { + themeSpinner.setSelection(themes.indexOf(stateManager.getMapRecipe().theme), false); + } + + setChiefState(stateManager.getChiefStatus()); + + return v; + } + + private static Spinner prepareSpinner(View v, int id, List items, OnItemSelectedListener itemSelectedListener) { + Spinner spinner = (Spinner)v.findViewById(id); + ArrayAdapter adapter = new ArrayAdapter(v.getContext(), R.layout.listview_item, items); + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + spinner.setAdapter(adapter); + spinner.setOnItemSelectedListener(itemSelectedListener); + return spinner; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + try { + stateManager = ((RoomStateManager.Provider)getActivity()).getRoomStateManager(); + } catch(ClassCastException e) { + throw new RuntimeException("Hosting activity must implement RoomStateManager.Provider.", e); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + stateManager.removeListener(roomStateChangeListener); + } - if(stateManager.getGameStyle() != null) { - styleSpinner.setSelection(styles.indexOf(stateManager.getGameStyle()), false); - } - if(stateManager.getScheme() != null) { - schemeSpinner.setSelection(getSchemePosition(schemes, stateManager.getScheme().name), false); - } - if(stateManager.getWeaponset() != null) { - weaponsetSpinner.setSelection(getWeaponsetPosition(weaponsets, stateManager.getWeaponset().name), false); - } - if(stateManager.getMapRecipe() != null) { - themeSpinner.setSelection(themes.indexOf(stateManager.getMapRecipe().theme), false); - } - - setChiefState(stateManager.getChiefStatus()); - - return v; - } - - private static Spinner prepareSpinner(View v, int id, List items, OnItemSelectedListener itemSelectedListener) { - Spinner spinner = (Spinner)v.findViewById(id); - ArrayAdapter adapter = new ArrayAdapter(v.getContext(), R.layout.listview_item, items); - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - spinner.setAdapter(adapter); - spinner.setOnItemSelectedListener(itemSelectedListener); - return spinner; - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - try { - stateManager = ((RoomStateManager.Provider)getActivity()).getRoomStateManager(); - } catch(ClassCastException e) { - throw new RuntimeException("Hosting activity must implement RoomStateManager.Provider.", e); - } - } - - @Override - public void onDestroy() { - super.onDestroy(); - stateManager.removeListener(roomStateChangeListener); - } - - private static int getSchemePosition(List schemes, String scheme) { - for(int i=0; i weaponsets, String weaponset) { - for(int i=0; i adapter, View v, int position, long arg3) { - stateManager.changeGameStyle(styles.get(position)); - } - public void onNothingSelected(AdapterView arg0) {} - }; - - private final OnItemSelectedListener schemeSelectedListener = new OnItemSelectedListener() { - public void onItemSelected(AdapterView adapter, View v, int position, long arg3) { - stateManager.changeScheme(schemes.get(position)); - } - public void onNothingSelected(AdapterView arg0) {} - }; - - private final OnItemSelectedListener weaponsetSelectedListener = new OnItemSelectedListener() { - public void onItemSelected(AdapterView adapter, View v, int position, long arg3) { - stateManager.changeWeaponset(weaponsets.get(position)); - } - public void onNothingSelected(AdapterView arg0) {} - }; - - private final OnItemSelectedListener themeSelectedListener = new OnItemSelectedListener() { - public void onItemSelected(AdapterView adapter, View v, int position, long arg3) { - stateManager.changeMapTheme(themes.get(position)); - String theme = themes.get(position); - try { - File iconFile = FileUtils.getDataPathFile(getActivity(), "Themes", theme, "icon@2X.png"); - Drawable themeIconDrawable = Drawable.createFromPath(iconFile.getAbsolutePath()); - themeIcon.setImageDrawable(themeIconDrawable); - } catch (FileNotFoundException e) { - Log.e("SettingsFragment", "Unable to find preview for theme "+theme, e); - } - }; - public void onNothingSelected(AdapterView arg0) {}; - }; - - private final RoomStateManager.Listener roomStateChangeListener = new RoomStateManager.Listener() { - public void onWeaponsetChanged(Weaponset weaponset) { - weaponsetSpinner.setSelection(getWeaponsetPosition(weaponsets, weaponset.name)); - } - - public void onTeamsChanged(Map teams) {} - - public void onSchemeChanged(Scheme scheme) { - schemeSpinner.setSelection(getSchemePosition(schemes, scheme.name)); - } - - public void onMapChanged(MapRecipe recipe) { - themeSpinner.setSelection(themes.indexOf(recipe.theme)); - } - - public void onGameStyleChanged(String gameStyle) { - styleSpinner.setSelection(styles.indexOf(gameStyle)); - } - - public void onChiefStatusChanged(boolean isChief) { - setChiefState(isChief); - } - }; + private static int getSchemePosition(List schemes, String scheme) { + for(int i=0; i weaponsets, String weaponset) { + for(int i=0; i adapter, View v, int position, long arg3) { + stateManager.changeGameStyle(styles.get(position)); + } + public void onNothingSelected(AdapterView arg0) {} + }; + + private final OnItemSelectedListener schemeSelectedListener = new OnItemSelectedListener() { + public void onItemSelected(AdapterView adapter, View v, int position, long arg3) { + stateManager.changeScheme(schemes.get(position)); + } + public void onNothingSelected(AdapterView arg0) {} + }; + + private final OnItemSelectedListener weaponsetSelectedListener = new OnItemSelectedListener() { + public void onItemSelected(AdapterView adapter, View v, int position, long arg3) { + stateManager.changeWeaponset(weaponsets.get(position)); + } + public void onNothingSelected(AdapterView arg0) {} + }; + + private final OnItemSelectedListener themeSelectedListener = new OnItemSelectedListener() { + public void onItemSelected(AdapterView adapter, View v, int position, long arg3) { + stateManager.changeMapTheme(themes.get(position)); + String theme = themes.get(position); + try { + File iconFile = FileUtils.getDataPathFile(getActivity(), "Themes", theme, "icon@2X.png"); + Drawable themeIconDrawable = Drawable.createFromPath(iconFile.getAbsolutePath()); + themeIcon.setImageDrawable(themeIconDrawable); + } catch (FileNotFoundException e) { + Log.e("SettingsFragment", "Unable to find preview for theme "+theme, e); + } + }; + public void onNothingSelected(AdapterView arg0) {}; + }; + + private final RoomStateManager.Listener roomStateChangeListener = new RoomStateManager.Listener() { + public void onWeaponsetChanged(Weaponset weaponset) { + weaponsetSpinner.setSelection(getWeaponsetPosition(weaponsets, weaponset.name)); + } + + public void onTeamsChanged(Map teams) {} + + public void onSchemeChanged(Scheme scheme) { + schemeSpinner.setSelection(getSchemePosition(schemes, scheme.name)); + } + + public void onMapChanged(MapRecipe recipe) { + themeSpinner.setSelection(themes.indexOf(recipe.theme)); + } + + public void onGameStyleChanged(String gameStyle) { + styleSpinner.setSelection(styles.indexOf(gameStyle)); + } + + public void onChiefStatusChanged(boolean isChief) { + setChiefState(isChief); + } + }; }