@@ -29,18 +29,26 @@ public class MainActivity extends AppCompatActivity implements Observer, SeekBar | |||
this.track = new Track(defaultNoOfVehicles, defaultTrackLength, defaultBrakeProb, defaultMaxVelocity); | |||
this.track.addObserver(this); | |||
this.viewStack = (LinearLayout) findViewById(R.id.trackViewStack); | |||
SeekBar trackLengthSeekBar = (SeekBar) findViewById(R.id.trackLengthSeekBar); | |||
trackLengthSeekBar.setOnSeekBarChangeListener(this); | |||
trackLengthSeekBar.setProgress(defaultTrackLength); | |||
((TextView)(findViewById(R.id.trackLengthTextView))).setText(String.valueOf(defaultTrackLength)); | |||
SeekBar maxVelocitySeekBar = (SeekBar) findViewById(R.id.maxVelocitySeekBar); | |||
maxVelocitySeekBar.setOnSeekBarChangeListener(this); | |||
maxVelocitySeekBar.setProgress((int)defaultMaxVelocity); | |||
((TextView)(findViewById(R.id.maxVeloTextView))).setText(String.valueOf((int)defaultMaxVelocity)); | |||
SeekBar noOfVehiclesSeekBar = (SeekBar) findViewById(R.id.noOfVehiclesSeekBar); | |||
noOfVehiclesSeekBar.setOnSeekBarChangeListener(this); | |||
noOfVehiclesSeekBar.setProgress(defaultNoOfVehicles); | |||
((TextView)(findViewById(R.id.noOfVehiclesTextView))).setText(String.valueOf(defaultNoOfVehicles)); | |||
SeekBar brakeProbabilitySeekBar = (SeekBar) findViewById(R.id.brakeProbabilitySeekBar); | |||
brakeProbabilitySeekBar.setOnSeekBarChangeListener(this); | |||
brakeProbabilitySeekBar.setProgress((int)(defaultBrakeProb*20)); | |||
((TextView)(findViewById(R.id.brakeProbTextView))).setText(String.valueOf(defaultBrakeProb)); | |||
} | |||
@Override | |||
@@ -103,10 +111,18 @@ public class MainActivity extends AppCompatActivity implements Observer, SeekBar | |||
if (newTrackLength < newNoOfVehicles) { // Dont allow values greater than track length! | |||
newNoOfVehicles = (int) newTrackLength; | |||
noOfVehiclesSeekBar.setProgress(newNoOfVehicles); | |||
} | |||
TextView noOfVehiclesTextView = (TextView)(findViewById(R.id.noOfVehiclesTextView)); | |||
noOfVehiclesTextView.setText(String.valueOf(newNoOfVehicles)); | |||
TextView trackLengthTextView = (TextView)(findViewById(R.id.trackLengthTextView)); | |||
trackLengthTextView.setText(String.valueOf(newTrackLength)); | |||
float newMaxVelocity = ((SeekBar) findViewById(R.id.maxVelocitySeekBar)).getProgress(); | |||
SeekBar brakeProbabilitySeekBar = (SeekBar) findViewById(R.id.brakeProbabilitySeekBar); | |||
float newBrakeProb = (float)brakeProbabilitySeekBar.getProgress() / (float)brakeProbabilitySeekBar.getMax(); | |||
this.track = new Track(newNoOfVehicles, newTrackLength, newBrakeProb, newMaxVelocity); | |||
this.track.addObserver(this); | |||
if (this.worker != null) { // There was a simulation running already | |||
@@ -126,10 +142,13 @@ public class MainActivity extends AppCompatActivity implements Observer, SeekBar | |||
this.updateTrack(); | |||
} else if (seekBar == (SeekBar)(findViewById(R.id.brakeProbabilitySeekBar))) { | |||
float newBrakeProb = (float)seekBar.getProgress() / (float)seekBar.getMax(); | |||
System.out.println(newBrakeProb); | |||
this.track.setBrakeProb(newBrakeProb); | |||
TextView newBrakeProbTextView = (TextView)(findViewById(R.id.brakeProbTextView)); | |||
newBrakeProbTextView.setText(String.valueOf((newBrakeProb))); | |||
} else if (seekBar == (SeekBar)(findViewById(R.id.maxVelocitySeekBar))) { | |||
this.track.setMaxVelocity(seekBar.getProgress()); | |||
TextView tv = (TextView)(findViewById(R.id.maxVeloTextView)); | |||
tv.setText(String.valueOf(progress)); | |||
} else if (seekBar == (SeekBar)(findViewById(R.id.trackLengthSeekBar))) { | |||
this.updateTrack(); | |||
} | |||
@@ -32,11 +32,25 @@ | |||
android:paddingTop="8dp" | |||
android:paddingBottom="8dp"> | |||
<TextView | |||
android:id="@+id/textView4" | |||
<androidx.constraintlayout.widget.ConstraintLayout | |||
android:layout_width="match_parent" | |||
android:layout_height="wrap_content" | |||
android:text="Track length" /> | |||
android:layout_height="match_parent"> | |||
<TextView | |||
android:id="@+id/textView4" | |||
android:layout_width="match_parent" | |||
android:layout_height="wrap_content" | |||
android:text="Track length" | |||
app:layout_constraintStart_toStartOf="parent" | |||
app:layout_constraintTop_toTopOf="parent" /> | |||
<TextView | |||
android:id="@+id/trackLengthTextView" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
app:layout_constraintEnd_toEndOf="parent" | |||
app:layout_constraintTop_toTopOf="parent" /> | |||
</androidx.constraintlayout.widget.ConstraintLayout> | |||
<SeekBar | |||
android:id="@+id/trackLengthSeekBar" | |||
@@ -47,11 +61,25 @@ | |||
android:min="1" | |||
android:progress="50" /> | |||
<TextView | |||
android:id="@+id/textView3" | |||
<androidx.constraintlayout.widget.ConstraintLayout | |||
android:layout_width="match_parent" | |||
android:layout_height="wrap_content" | |||
android:text="Number of vehicles" /> | |||
android:layout_height="match_parent"> | |||
<TextView | |||
android:id="@+id/textView3" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
android:text="Number of vehicles" | |||
app:layout_constraintStart_toStartOf="parent" | |||
app:layout_constraintTop_toTopOf="parent" /> | |||
<TextView | |||
android:id="@+id/noOfVehiclesTextView" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
app:layout_constraintEnd_toEndOf="parent" | |||
app:layout_constraintTop_toTopOf="parent" /> | |||
</androidx.constraintlayout.widget.ConstraintLayout> | |||
<SeekBar | |||
android:id="@+id/noOfVehiclesSeekBar" | |||
@@ -62,11 +90,24 @@ | |||
android:min="1" | |||
android:progress="3" /> | |||
<TextView | |||
android:id="@+id/textView5" | |||
<androidx.constraintlayout.widget.ConstraintLayout | |||
android:layout_width="match_parent" | |||
android:layout_height="wrap_content" | |||
android:text="Maximum velocity" /> | |||
android:layout_height="match_parent"> | |||
<TextView | |||
android:id="@+id/textView5" | |||
android:layout_width="match_parent" | |||
android:layout_height="wrap_content" | |||
android:text="Maximum velocity" | |||
app:layout_constraintStart_toStartOf="parent" | |||
app:layout_constraintTop_toTopOf="parent" /> | |||
<TextView | |||
android:id="@+id/maxVeloTextView" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
app:layout_constraintEnd_toEndOf="@+id/textView5" /> | |||
</androidx.constraintlayout.widget.ConstraintLayout> | |||
<SeekBar | |||
android:id="@+id/maxVelocitySeekBar" | |||
@@ -76,11 +117,24 @@ | |||
android:max="10" | |||
android:progress="3" /> | |||
<TextView | |||
android:id="@+id/textView6" | |||
<androidx.constraintlayout.widget.ConstraintLayout | |||
android:layout_width="match_parent" | |||
android:layout_height="wrap_content" | |||
android:text="Brake probability" /> | |||
android:layout_height="match_parent"> | |||
<TextView | |||
android:id="@+id/brakeProbLabel" | |||
android:layout_width="match_parent" | |||
android:layout_height="wrap_content" | |||
android:text="Brake probability" | |||
app:layout_constraintStart_toStartOf="parent" | |||
app:layout_constraintTop_toTopOf="parent" /> | |||
<TextView | |||
android:id="@+id/brakeProbTextView" | |||
android:layout_width="wrap_content" | |||
android:layout_height="wrap_content" | |||
app:layout_constraintEnd_toEndOf="@+id/brakeProbLabel" /> | |||
</androidx.constraintlayout.widget.ConstraintLayout> | |||
<SeekBar | |||
android:id="@+id/brakeProbabilitySeekBar" | |||