project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/SettingsFragment.java
changeset 7582 714310efad8f
parent 7568 75ba91f14ed5
child 7584 7831c84cc644
--- 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<Scheme> 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<String, TeamInGame> 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);
+		}
+	};
 }