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

android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" /> 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> </LinearLayout>

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

<string name="espeak_volume">Volume</string> <string name="espeak_volume">Volume</string>
<string name="formatter_wpm">%s WPM</string> <string name="formatter_wpm">%s WPM</string>
<string name="formatter_percentage">%s%%</string> <string name="formatter_percentage">%s%%</string>
<string name="resetToDefault">Set to default</string>


</resources> </resources>

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

import android.preference.DialogPreference; import android.preference.DialogPreference;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.View; import android.view.View;
import android.widget.Button;
import android.widget.SeekBar; import android.widget.SeekBar;
import android.widget.TextView; import android.widget.TextView;


private TextView mValueText; private TextView mValueText;


private int mProgress = 0; private int mProgress = 0;
private int mDefaultValue = 0;
private int mMin = 0; private int mMin = 0;
private int mMax = 100; private int mMax = 100;
private String mFormatter = "%s"; private String mFormatter = "%s";
callChangeListener(text); callChangeListener(text);
} }


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

public int getDefaultValue() {
return mDefaultValue;
}

public int getMin() { public int getMin() {
return mMin; return mMin;
} }
View root = super.onCreateDialogView(); View root = super.onCreateDialogView();
mSeekBar = (SeekBar)root.findViewById(R.id.seekBar); mSeekBar = (SeekBar)root.findViewById(R.id.seekBar);
mValueText = (TextView)root.findViewById(R.id.valueText); 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; return root;
} }



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



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


final SeekBarPreference pref = new SeekBarPreference(context); final SeekBarPreference pref = new SeekBarPreference(context);
pref.setTitle(title); pref.setTitle(title);


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


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

Loading…
Cancel
Save