19
19
20
20
import android .annotation .TargetApi ;
21
21
import android .content .Context ;
22
+ import android .content .SharedPreferences ;
22
23
import android .content .pm .ActivityInfo ;
23
24
import android .content .pm .PackageManager ;
24
25
import android .media .AudioManager ;
@@ -44,7 +45,9 @@ public class MainActivity extends AppCompatActivity {
44
45
private static final int VARIABLE_LOAD_LOW_DURATION = 2000 ;
45
46
private static final int VARIABLE_LOAD_HIGH_DURATION = 2000 ;
46
47
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" ;
48
51
49
52
private static int workCycles = 0 ;
50
53
@@ -55,6 +58,7 @@ public class MainActivity extends AppCompatActivity {
55
58
private TextView mDeviceInfoText , mWorkCyclesText ;
56
59
private AudioTrack mAudioTrack ;
57
60
private VariableLoadGenerator mLoadThread ;
61
+ private SharedPreferences mSettings ;
58
62
59
63
// Native methods
60
64
private static native void native_createEngine (int apiLevel );
@@ -77,6 +81,10 @@ protected void onCreate(Bundle savedInstanceState) {
77
81
// Lock to portrait to avoid onCreate being called more than once
78
82
setRequestedOrientation (ActivityInfo .SCREEN_ORIENTATION_PORTRAIT );
79
83
84
+ // Load any previously saved values
85
+ mSettings = getPreferences (MODE_PRIVATE );
86
+ workCycles = mSettings .getInt (PREFERENCES_KEY_WORK_CYCLES , workCycles );
87
+
80
88
initDeviceInfoUI ();
81
89
initPerformanceConfigurationUI ();
82
90
@@ -88,6 +96,16 @@ protected void onCreate(Bundle savedInstanceState) {
88
96
89
97
// Update the UI when there are underruns
90
98
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 ();
91
109
}
92
110
93
111
private void initDeviceInfoUI (){
@@ -210,10 +228,12 @@ public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
210
228
mWorkCyclesText = (TextView ) findViewById (R .id .workCyclesText );
211
229
212
230
SeekBar workCyclesSeekBar = (SeekBar ) findViewById (R .id .workCycles );
231
+ workCyclesSeekBar .setProgress ((int )(workCycles / WORK_CYCLES_PER_STEP ));
232
+
213
233
workCyclesSeekBar .setOnSeekBarChangeListener (new SeekBar .OnSeekBarChangeListener () {
214
234
@ Override
215
235
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 );
217
237
setWorkCycles (workCycles );
218
238
}
219
239
0 commit comments