diff -r c92596feac0d -r 714310efad8f 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 Mon Aug 20 20:16:37 2012 +0200 +++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/SettingsFragment.java Mon Aug 20 20:19:35 2012 +0200 @@ -5,12 +5,14 @@ import java.io.IOException; import java.util.Collections; import java.util.List; +import java.util.Map; import org.hedgewars.hedgeroid.R; import org.hedgewars.hedgeroid.Datastructures.FrontendDataUtils; import org.hedgewars.hedgeroid.Datastructures.MapRecipe; import org.hedgewars.hedgeroid.Datastructures.Scheme; import org.hedgewars.hedgeroid.Datastructures.Schemes; +import org.hedgewars.hedgeroid.Datastructures.TeamInGame; import org.hedgewars.hedgeroid.Datastructures.Weaponset; import org.hedgewars.hedgeroid.Datastructures.Weaponsets; import org.hedgewars.hedgeroid.util.FileUtils; @@ -29,9 +31,7 @@ import android.widget.Spinner; import android.widget.Toast; -public class SettingsFragment extends Fragment implements RoomStateManager.Observer { - private static final String TAG = SettingsFragment.class.getSimpleName(); - +public class SettingsFragment extends Fragment { private Spinner styleSpinner, schemeSpinner, weaponsetSpinner, themeSpinner; private ImageView themeIcon; @@ -69,7 +69,7 @@ weaponsetSpinner = prepareSpinner(v, R.id.spinweapons, Weaponsets.toNameList(weaponsets), weaponsetSelectedListener); themeSpinner = prepareSpinner(v, R.id.spinTheme, themes, themeSelectedListener); - stateManager.registerObserver(this); + stateManager.addListener(roomStateChangeListener); if(stateManager.getGameStyle() != null) { styleSpinner.setSelection(styles.indexOf(stateManager.getGameStyle()), false); @@ -111,7 +111,7 @@ @Override public void onDestroy() { super.onDestroy(); - stateManager.unregisterObserver(this); + stateManager.removeListener(roomStateChangeListener); } private static int getSchemePosition(List schemes, String scheme) { @@ -182,23 +182,27 @@ public void onNothingSelected(AdapterView arg0) {}; }; - public void onChiefStatusChanged(boolean isChief) { - setChiefState(isChief); - } - - public void onGameStyleChanged(String gameStyle) { - styleSpinner.setSelection(styles.indexOf(gameStyle)); - } - - public void onMapChanged(MapRecipe recipe) { - themeSpinner.setSelection(themes.indexOf(recipe.theme)); - } - - public void onSchemeChanged(Scheme scheme) { - schemeSpinner.setSelection(getSchemePosition(schemes, scheme.name)); - } - - public void onWeaponsetChanged(Weaponset weaponset) { - weaponsetSpinner.setSelection(getWeaponsetPosition(weaponsets, weaponset.name)); - } + 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); + } + }; }