project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/MapFragment.java
changeset 7560 e7ab89ab86f6
parent 7508 763d3961400b
child 7572 4e223b05be7c
equal deleted inserted replaced
7558:983ff426f91e 7560:e7ab89ab86f6
    48 	 * being generated, we store our latest request in the newPreviewRequest variable instead.
    48 	 * being generated, we store our latest request in the newPreviewRequest variable instead.
    49 	 * Once the current preview is finished generating it will start on that one.
    49 	 * Once the current preview is finished generating it will start on that one.
    50 	 */
    50 	 */
    51 	private boolean previewGenerationInProgress;
    51 	private boolean previewGenerationInProgress;
    52 	private MapRecipe newPreviewRequest;
    52 	private MapRecipe newPreviewRequest;
       
    53 	private MapRecipe currentMap; // kept for reference on every change to find out what changed
    53 	
    54 	
    54 	@Override
    55 	@Override
    55 	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    56 	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    56 		View v = inflater.inflate(R.layout.fragment_map, container, false);
    57 		View v = inflater.inflate(R.layout.fragment_map, container, false);
    57 
    58 
    88 		mapNameSpinner = prepareSpinner(v, R.id.spinMapName, mapNames, mapNameSelectedListener);
    89 		mapNameSpinner = prepareSpinner(v, R.id.spinMapName, mapNames, mapNameSelectedListener);
    89 		templateSpinner = prepareSpinner(v, R.id.spinTemplateFilter, Arrays.asList(getResources().getStringArray(R.array.map_templates)), mapTemplateSelectedListener);
    90 		templateSpinner = prepareSpinner(v, R.id.spinTemplateFilter, Arrays.asList(getResources().getStringArray(R.array.map_templates)), mapTemplateSelectedListener);
    90 		mazeSizeSpinner = prepareSpinner(v, R.id.spinMazeSize, Arrays.asList(getResources().getStringArray(R.array.map_maze_sizes)), mazeSizeSelectedListener);
    91 		mazeSizeSpinner = prepareSpinner(v, R.id.spinMazeSize, Arrays.asList(getResources().getStringArray(R.array.map_maze_sizes)), mazeSizeSelectedListener);
    91 
    92 
    92 		stateManager.registerObserver(this);
    93 		stateManager.registerObserver(this);
    93 		MapRecipe map = stateManager.getMapRecipe();
    94 		currentMap = stateManager.getMapRecipe();
    94 		if(map != null) {
    95 		if(currentMap != null) {
    95 			updateDisplay(map);
    96 			updateDisplay(currentMap);
    96 		}
    97 		}
    97 		setChiefState(stateManager.getChiefStatus());
    98 		setChiefState(stateManager.getChiefStatus());
    98 		mapPreviewHandler.activity();
    99 		mapPreviewHandler.activity();
    99 		return v;
   100 		return v;
   100 	}
   101 	}
   216 	public void onChiefStatusChanged(boolean isChief) {
   217 	public void onChiefStatusChanged(boolean isChief) {
   217 		setChiefState(isChief);
   218 		setChiefState(isChief);
   218 	}
   219 	}
   219 	
   220 	
   220 	public void onMapChanged(MapRecipe recipe) {
   221 	public void onMapChanged(MapRecipe recipe) {
       
   222 		if(currentMap==null
       
   223 				|| currentMap.mapgen != recipe.mapgen
       
   224 				|| currentMap.mazeSize != recipe.mazeSize
       
   225 				|| !currentMap.name.equals(recipe.name)
       
   226 				|| !currentMap.seed.equals(recipe.seed)
       
   227 				|| currentMap.templateFilter != recipe.templateFilter
       
   228 				|| !Arrays.equals(currentMap.getDrawData(), recipe.getDrawData())) {
       
   229 			mapPreviewHandler.activity();
       
   230 		}
   221 		updateDisplay(recipe);
   231 		updateDisplay(recipe);
   222 		mapPreviewHandler.activity();
   232 		currentMap = recipe;
   223 	}
   233 	}
   224 	
   234 	
   225 	public void onGameStyleChanged(String gameStyle) { }
   235 	public void onGameStyleChanged(String gameStyle) { }
   226 	public void onSchemeChanged(Scheme scheme) { }
   236 	public void onSchemeChanged(Scheme scheme) { }
   227 	public void onWeaponsetChanged(Weaponset weaponset) { }
   237 	public void onWeaponsetChanged(Weaponset weaponset) { }