Browse Source

SeekBarPreference: support resetting to the default value.

master
Reece H. Dunn 12 years ago
parent
commit
d0ba13ae1d

+ 15
- 0
android/res/layout/seekbar_preference.xml View File

@@ -19,4 +19,19 @@
android:layout_height="0dp"
android:layout_weight="1" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >

<Button
android:id="@+id/resetToDefault"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_weight="1"
android:text="@string/resetToDefault" />

</LinearLayout>

</LinearLayout>

+ 1
- 0
android/res/values/strings.xml View File

@@ -135,5 +135,6 @@
<string name="espeak_volume">Volume</string>
<string name="formatter_wpm">%s WPM</string>
<string name="formatter_percentage">%s%%</string>
<string name="resetToDefault">Set to default</string>

</resources>

+ 19
- 0
android/src/com/reecedunn/espeak/SeekBarPreference.java View File

@@ -22,6 +22,7 @@ import android.content.SharedPreferences;
import android.preference.DialogPreference;
import android.util.AttributeSet;
import android.view.View;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.TextView;

@@ -31,6 +32,7 @@ public class SeekBarPreference extends DialogPreference implements SeekBar.OnSee
private TextView mValueText;

private int mProgress = 0;
private int mDefaultValue = 0;
private int mMin = 0;
private int mMax = 100;
private String mFormatter = "%s";
@@ -53,6 +55,14 @@ public class SeekBarPreference extends DialogPreference implements SeekBar.OnSee
callChangeListener(text);
}

public void setDefaultValue(int defaultValue) {
mDefaultValue = defaultValue;
}

public int getDefaultValue() {
return mDefaultValue;
}

public int getMin() {
return mMin;
}
@@ -96,6 +106,15 @@ public class SeekBarPreference extends DialogPreference implements SeekBar.OnSee
View root = super.onCreateDialogView();
mSeekBar = (SeekBar)root.findViewById(R.id.seekBar);
mValueText = (TextView)root.findViewById(R.id.valueText);

Button reset = (Button)root.findViewById(R.id.resetToDefault);
reset.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v)
{
mSeekBar.setProgress(getDefaultValue());
}
});
return root;
}


+ 3
- 1
android/src/com/reecedunn/espeak/TtsSettingsActivity.java View File

@@ -60,6 +60,7 @@ public class TtsSettingsActivity extends PreferenceActivity {

private static Preference createPreference(Context context, SpeechSynthesis.Parameter parameter, String key, int titleRes) {
final String title = context.getString(titleRes);
final int defaultValue = parameter.getDefaultValue();

final SeekBarPreference pref = new SeekBarPreference(context);
pref.setTitle(title);
@@ -82,11 +83,12 @@ public class TtsSettingsActivity extends PreferenceActivity {

pref.setMin(parameter.getMinValue());
pref.setMax(parameter.getMaxValue());
pref.setDefaultValue(defaultValue);

final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
final String prefString = prefs.getString(key, null);
if (prefString == null) {
pref.setProgress(parameter.getDefaultValue());
pref.setProgress(defaultValue);
} else {
pref.setProgress(Integer.parseInt(prefString));
}

Loading…
Cancel
Save