Skip to content
This repository was archived by the owner on Oct 9, 2019. It is now read-only.

Commit 1bd6391

Browse files
committed
Value for 'work cycles' is remembered between app runs. Close #74
1 parent 26efb7f commit 1bd6391

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

SimpleSynth/app/src/main/java/com/example/simplesynth/MainActivity.java

+22-2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import android.annotation.TargetApi;
2121
import android.content.Context;
22+
import android.content.SharedPreferences;
2223
import android.content.pm.ActivityInfo;
2324
import android.content.pm.PackageManager;
2425
import android.media.AudioManager;
@@ -44,7 +45,9 @@ public class MainActivity extends AppCompatActivity {
4445
private static final int VARIABLE_LOAD_LOW_DURATION = 2000;
4546
private static final int VARIABLE_LOAD_HIGH_DURATION = 2000;
4647
public static final int MAXIMUM_WORK_CYCLES = 500000;
47-
private static final int WORK_CYCLE_STEPS = 100;
48+
private static final int SEEKBAR_STEPS = 100;
49+
private static final float WORK_CYCLES_PER_STEP = MAXIMUM_WORK_CYCLES / SEEKBAR_STEPS;
50+
private static final String PREFERENCES_KEY_WORK_CYCLES = "work_cycles";
4851

4952
private static int workCycles = 0;
5053

@@ -55,6 +58,7 @@ public class MainActivity extends AppCompatActivity {
5558
private TextView mDeviceInfoText, mWorkCyclesText;
5659
private AudioTrack mAudioTrack;
5760
private VariableLoadGenerator mLoadThread;
61+
private SharedPreferences mSettings;
5862

5963
// Native methods
6064
private static native void native_createEngine(int apiLevel);
@@ -77,6 +81,10 @@ protected void onCreate(Bundle savedInstanceState) {
7781
// Lock to portrait to avoid onCreate being called more than once
7882
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
7983

84+
// Load any previously saved values
85+
mSettings = getPreferences(MODE_PRIVATE);
86+
workCycles = mSettings.getInt(PREFERENCES_KEY_WORK_CYCLES, workCycles);
87+
8088
initDeviceInfoUI();
8189
initPerformanceConfigurationUI();
8290

@@ -88,6 +96,16 @@ protected void onCreate(Bundle savedInstanceState) {
8896

8997
// Update the UI when there are underruns
9098
initUnderrunUpdater();
99+
100+
setWorkCycles(workCycles);
101+
}
102+
103+
@Override
104+
protected void onStop(){
105+
super.onStop();
106+
SharedPreferences.Editor editor = mSettings.edit();
107+
editor.putInt(PREFERENCES_KEY_WORK_CYCLES, workCycles);
108+
editor.apply();
91109
}
92110

93111
private void initDeviceInfoUI(){
@@ -210,10 +228,12 @@ public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
210228
mWorkCyclesText = (TextView) findViewById(R.id.workCyclesText);
211229

212230
SeekBar workCyclesSeekBar = (SeekBar) findViewById(R.id.workCycles);
231+
workCyclesSeekBar.setProgress((int)(workCycles / WORK_CYCLES_PER_STEP));
232+
213233
workCyclesSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
214234
@Override
215235
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
216-
workCycles = progress * (MAXIMUM_WORK_CYCLES / WORK_CYCLE_STEPS);
236+
workCycles = (int)(progress * WORK_CYCLES_PER_STEP);
217237
setWorkCycles(workCycles);
218238
}
219239

0 commit comments

Comments
 (0)