Fix cropped buttons of update interval/time of day dialog

This commit is contained in:
Martin Fietz 2015-09-09 19:55:23 +02:00
parent 98a0b46bed
commit e323f067f3
2 changed files with 49 additions and 53 deletions

View File

@ -25,6 +25,8 @@ dependencies {
compile 'de.greenrobot:eventbus:2.4.0' compile 'de.greenrobot:eventbus:2.4.0'
compile 'io.reactivex:rxandroid:1.0.1' compile 'io.reactivex:rxandroid:1.0.1'
compile 'com.joanzapata.iconify:android-iconify-fontawesome:2.0.3' compile 'com.joanzapata.iconify:android-iconify-fontawesome:2.0.3'
compile 'com.afollestad:material-dialogs:0.7.8.0'
compile project(':core') compile project(':core')
compile project(':library:drag-sort-listview') compile project(':library:drag-sort-listview')

View File

@ -20,9 +20,10 @@ import android.text.TextWatcher;
import android.text.format.DateFormat; import android.text.format.DateFormat;
import android.util.Log; import android.util.Log;
import android.widget.EditText; import android.widget.EditText;
import android.widget.TimePicker;
import android.widget.Toast; import android.widget.Toast;
import com.afollestad.materialdialogs.MaterialDialog;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -586,17 +587,15 @@ public class PreferenceController {
AlertDialog.Builder builder = new AlertDialog.Builder(context); AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(R.string.drawer_preferences); builder.setTitle(R.string.drawer_preferences);
builder.setMultiChoiceItems(navTitles, checked, new DialogInterface.OnMultiChoiceClickListener() { builder.setMultiChoiceItems(navTitles, checked, (dialog, which, isChecked) -> {
@Override if (isChecked) {
public void onClick(DialogInterface dialog, int which, boolean isChecked) { hiddenDrawerItems.remove(NAV_DRAWER_TAGS[which]);
if (isChecked) { } else {
hiddenDrawerItems.remove(NAV_DRAWER_TAGS[which]); hiddenDrawerItems.add(NAV_DRAWER_TAGS[which]);
} else {
hiddenDrawerItems.add(NAV_DRAWER_TAGS[which]);
}
} }
}); });
builder.setPositiveButton(R.string.confirm_label, new DialogInterface.OnClickListener() { builder.setPositiveButton(R.string.confirm_label, new DialogInterface
.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
UserPreferences.setHiddenDrawerItems(context, hiddenDrawerItems); UserPreferences.setHiddenDrawerItems(context, hiddenDrawerItems);
@ -609,69 +608,64 @@ public class PreferenceController {
private void showUpdateIntervalTimePreferencesDialog() { private void showUpdateIntervalTimePreferencesDialog() {
final Context context = ui.getActivity(); final Context context = ui.getActivity();
AlertDialog.Builder builder = new AlertDialog.Builder(context); MaterialDialog.Builder builder = new MaterialDialog.Builder(context);
builder.setTitle(R.string.pref_autoUpdateIntervallOrTime_title); builder.title(R.string.pref_autoUpdateIntervallOrTime_title);
builder.setMessage(R.string.pref_autoUpdateIntervallOrTime_message); builder.content(R.string.pref_autoUpdateIntervallOrTime_message);
builder.setNegativeButton(R.string.pref_autoUpdateIntervallOrTime_Disable, new DialogInterface.OnClickListener() { builder.positiveText(R.string.pref_autoUpdateIntervallOrTime_Interval);
builder.negativeText(R.string.pref_autoUpdateIntervallOrTime_TimeOfDay);
builder.neutralText(R.string.pref_autoUpdateIntervallOrTime_Disable);
builder.callback(new MaterialDialog.ButtonCallback() {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onPositive(MaterialDialog dialog) {
UserPreferences.setUpdateInterval(0);
}
});
builder.setNeutralButton(R.string.pref_autoUpdateIntervallOrTime_Interval, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
AlertDialog.Builder builder = new AlertDialog.Builder(context); AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(context.getString(R.string.pref_autoUpdateIntervallOrTime_Interval)); builder.setTitle(context.getString(R.string.pref_autoUpdateIntervallOrTime_Interval));
final String[] values = context.getResources().getStringArray(R.array.update_intervall_values); final String[] values = context.getResources().getStringArray(R.array.update_intervall_values);
final String[] entries = getUpdateIntervalEntries(values); final String[] entries = getUpdateIntervalEntries(values);
builder.setSingleChoiceItems(entries, -1, new DialogInterface.OnClickListener() { builder.setSingleChoiceItems(entries, -1, (dialog1, which) -> {
@Override int hours = Integer.valueOf(values[which]);
public void onClick(DialogInterface dialog, int which) { UserPreferences.setUpdateInterval(hours);
int hours = Integer.valueOf(values[which]); dialog1.dismiss();
UserPreferences.setUpdateInterval(hours);
dialog.dismiss();
}
}); });
builder.setNegativeButton(context.getString(R.string.cancel_label), null); builder.setNegativeButton(context.getString(R.string.cancel_label), null);
builder.show(); builder.show();
} }
});
builder.setPositiveButton(R.string.pref_autoUpdateIntervallOrTime_TimeOfDay, new DialogInterface.OnClickListener() { @Override
@Override public void onNegative(MaterialDialog dialog) {
public void onClick(DialogInterface dialog, int which) { int hourOfDay = 7, minute = 0;
int hourOfDay = 7, minute = 0; int[] updateTime = UserPreferences.getUpdateTimeOfDay();
int[] updateTime = UserPreferences.getUpdateTimeOfDay(); if (updateTime.length == 2) {
if (updateTime.length == 2) { hourOfDay = updateTime[0];
hourOfDay = updateTime[0]; minute = updateTime[1];
minute = updateTime[1]; }
} TimePickerDialog timePickerDialog = new TimePickerDialog(context,
TimePickerDialog timePickerDialog = new TimePickerDialog(context, new TimePickerDialog.OnTimeSetListener() { (view, selectedHourOfDay, selectedMinute) -> {
@Override if (view.getTag() == null) { // onTimeSet() may get called twice!
public void onTimeSet(TimePicker view, int hourOfDay, int minute) { view.setTag("TAGGED");
if (view.getTag() == null) { // onTimeSet() may get called twice! UserPreferences.setUpdateTimeOfDay(selectedHourOfDay, selectedMinute);
view.setTag("TAGGED");
UserPreferences.setUpdateTimeOfDay(hourOfDay, minute);
}
} }
}, hourOfDay, minute, DateFormat.is24HourFormat(context)); }, hourOfDay, minute, DateFormat.is24HourFormat(context));
timePickerDialog.setTitle(context.getString(R.string.pref_autoUpdateIntervallOrTime_TimeOfDay)); timePickerDialog.setTitle(context.getString(R.string.pref_autoUpdateIntervallOrTime_TimeOfDay));
timePickerDialog.show(); timePickerDialog.show();
} }
}
); @Override
public void onNeutral(MaterialDialog dialog) {
UserPreferences.setUpdateInterval(0);
}
});
builder.forceStacking(true);
builder.show(); builder.show();
} }
public static interface PreferenceUI { public interface PreferenceUI {
/** /**
* Finds a preference based on its key. * Finds a preference based on its key.
*/ */
public Preference findPreference(CharSequence key); Preference findPreference(CharSequence key);
public Activity getActivity(); Activity getActivity();
} }
} }