Fixed null pointer exception after changing frameskip
This commit is contained in:
		
							parent
							
								
									40f030276e
								
							
						
					
					
						commit
						bfd145cff3
					
				| @ -175,15 +175,25 @@ public class MainActivity extends AppCompatActivity implements SeekBar.OnSeekBar | |||||||
| 
 | 
 | ||||||
|         float newMaxVelocity = ((SeekBar) findViewById(R.id.maxVelocitySeekBar)).getProgress(); |         float newMaxVelocity = ((SeekBar) findViewById(R.id.maxVelocitySeekBar)).getProgress(); | ||||||
|         SeekBar brakeProbabilitySeekBar = (SeekBar) findViewById(R.id.brakeProbabilitySeekBar); |         SeekBar brakeProbabilitySeekBar = (SeekBar) findViewById(R.id.brakeProbabilitySeekBar); | ||||||
|         float newBrakeProb = (float)brakeProbabilitySeekBar.getProgress() / (float)brakeProbabilitySeekBar.getMax(); |         float newBrakeProb = (float)brakeProbabilitySeekBar.getProgress() | ||||||
|  |                 / (float)brakeProbabilitySeekBar.getMax(); | ||||||
| 
 | 
 | ||||||
|         int newDelay = ((SeekBar)(findViewById(R.id.simDelaySeekBar))).getProgress(); |         int newDelay = ((SeekBar)(findViewById(R.id.simDelaySeekBar))).getProgress(); | ||||||
|         int newFrameskip = ((SeekBar)(findViewById(R.id.frameskipSeekBar))).getProgress(); |         int newFrameskip = ((SeekBar)(findViewById(R.id.frameskipSeekBar))).getProgress(); | ||||||
| 
 | 
 | ||||||
|         this.track = new Track(newNoOfVehicles, newTrackLength, newBrakeProb, newMaxVelocity, newDelay, defaultHistoryLength); |         boolean wasRunning = this.worker != null; | ||||||
|  |         if (wasRunning) { | ||||||
|  |             this.worker.setStop(true); | ||||||
|  |             try { | ||||||
|  |                 this.worker.join(); | ||||||
|  |             } catch (InterruptedException ex) { } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         this.track = new Track(newNoOfVehicles, newTrackLength, newBrakeProb, newMaxVelocity, | ||||||
|  |                 newDelay, defaultHistoryLength); | ||||||
|         this.renderer.setTrack(this.track); |         this.renderer.setTrack(this.track); | ||||||
|         if (this.worker != null) { // There was a simulation running already | 
 | ||||||
|             this.stopWorker(); |         if (wasRunning) { | ||||||
|             this.worker = new Worker(track, this, renderer, newFrameskip); |             this.worker = new Worker(track, this, renderer, newFrameskip); | ||||||
|             this.worker.start(); |             this.worker.start(); | ||||||
|         } |         } | ||||||
| @ -211,7 +221,9 @@ public class MainActivity extends AppCompatActivity implements SeekBar.OnSeekBar | |||||||
|         } else if (seekBar == (SeekBar)(findViewById(R.id.frameskipSeekBar))) { |         } else if (seekBar == (SeekBar)(findViewById(R.id.frameskipSeekBar))) { | ||||||
|             TextView tv = (TextView)(findViewById(R.id.frameSkipTextView)); |             TextView tv = (TextView)(findViewById(R.id.frameSkipTextView)); | ||||||
|             tv.setText(String.valueOf(seekBar.getProgress())); |             tv.setText(String.valueOf(seekBar.getProgress())); | ||||||
|             this.worker.setFrameskip(seekBar.getProgress()); |             if (this.worker != null) { | ||||||
|  |                 this.worker.setFrameskip(seekBar.getProgress()); | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user