diff -r c92596feac0d -r 714310efad8f project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/MapFragment.java --- a/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/MapFragment.java Mon Aug 20 20:16:37 2012 +0200 +++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/MapFragment.java Mon Aug 20 20:19:35 2012 +0200 @@ -10,8 +10,6 @@ import org.hedgewars.hedgeroid.Datastructures.FrontendDataUtils; import org.hedgewars.hedgeroid.Datastructures.MapFile; import org.hedgewars.hedgeroid.Datastructures.MapRecipe; -import org.hedgewars.hedgeroid.Datastructures.Scheme; -import org.hedgewars.hedgeroid.Datastructures.Weaponset; import org.hedgewars.hedgeroid.frontlib.Frontlib; import android.content.Context; @@ -33,7 +31,7 @@ import android.widget.TableRow; import android.widget.Toast; -public class MapFragment extends Fragment implements RoomStateManager.Observer { +public class MapFragment extends Fragment { private Spinner mapTypeSpinner, mapNameSpinner, templateSpinner, mazeSizeSpinner; private TableRow nameRow, templateRow, mazeSizeRow; private ImageView mapPreview; @@ -91,7 +89,7 @@ templateSpinner = prepareSpinner(v, R.id.spinTemplateFilter, Arrays.asList(getResources().getStringArray(R.array.map_templates)), mapTemplateSelectedListener); mazeSizeSpinner = prepareSpinner(v, R.id.spinMazeSize, Arrays.asList(getResources().getStringArray(R.array.map_maze_sizes)), mazeSizeSelectedListener); - stateManager.registerObserver(this); + stateManager.addListener(roomStateChangeListener); currentMap = stateManager.getMapRecipe(); if(currentMap != null) { updateDisplay(currentMap); @@ -124,7 +122,7 @@ public void onDestroy() { super.onDestroy(); mapPreviewHandler.stop(); - stateManager.unregisterObserver(this); + stateManager.removeListener(roomStateChangeListener); } private void setChiefState(boolean chiefState) { @@ -207,27 +205,27 @@ } }; - public void onChiefStatusChanged(boolean isChief) { - setChiefState(isChief); - } - - public void onMapChanged(MapRecipe recipe) { - if(currentMap==null - || currentMap.mapgen != recipe.mapgen - || currentMap.mazeSize != recipe.mazeSize - || !currentMap.name.equals(recipe.name) - || !currentMap.seed.equals(recipe.seed) - || currentMap.templateFilter != recipe.templateFilter - || !Arrays.equals(currentMap.getDrawData(), recipe.getDrawData())) { - mapPreviewHandler.activity(); - } - updateDisplay(recipe); - currentMap = recipe; - } - - public void onGameStyleChanged(String gameStyle) { } - public void onSchemeChanged(Scheme scheme) { } - public void onWeaponsetChanged(Weaponset weaponset) { } + private final RoomStateManager.Listener roomStateChangeListener = new RoomStateManager.ListenerAdapter() { + @Override + public void onChiefStatusChanged(boolean isChief) { + setChiefState(isChief); + }; + + @Override + public void onMapChanged(MapRecipe recipe) { + if(currentMap==null + || currentMap.mapgen != recipe.mapgen + || currentMap.mazeSize != recipe.mazeSize + || !currentMap.name.equals(recipe.name) + || !currentMap.seed.equals(recipe.seed) + || currentMap.templateFilter != recipe.templateFilter + || !Arrays.equals(currentMap.getDrawData(), recipe.getDrawData())) { + mapPreviewHandler.activity(); + } + updateDisplay(recipe); + currentMap = recipe; + }; + }; private MapPreviewGenerator.Listener mapPreviewListener = new MapPreviewGenerator.Listener() { public void onMapPreviewResult(Drawable preview) {