2012-09-07 05:47:27 +00:00
|
|
|
package com.dougkeen.bart;
|
|
|
|
|
|
|
|
import net.simonvt.widget.NumberPicker;
|
|
|
|
import android.app.Dialog;
|
|
|
|
import android.content.Context;
|
|
|
|
import android.content.DialogInterface;
|
2012-09-17 15:13:50 +00:00
|
|
|
import android.content.Intent;
|
2012-09-07 05:47:27 +00:00
|
|
|
import android.content.SharedPreferences;
|
|
|
|
import android.content.SharedPreferences.Editor;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.support.v4.app.DialogFragment;
|
|
|
|
import android.support.v4.app.FragmentActivity;
|
|
|
|
|
|
|
|
import com.WazaBe.HoloEverywhere.AlertDialog;
|
|
|
|
|
|
|
|
public class TrainAlertDialogFragment extends DialogFragment {
|
|
|
|
|
2012-09-17 15:13:50 +00:00
|
|
|
private static final String KEY_LAST_ALERT_LEAD_TIME = "lastAlertLeadTime";
|
2012-09-07 05:47:27 +00:00
|
|
|
|
2012-09-18 17:11:52 +00:00
|
|
|
public TrainAlertDialogFragment() {
|
2012-09-07 05:47:27 +00:00
|
|
|
super();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onStart() {
|
|
|
|
super.onStart();
|
|
|
|
|
|
|
|
SharedPreferences preferences = getActivity().getPreferences(
|
|
|
|
Context.MODE_PRIVATE);
|
2012-09-17 15:13:50 +00:00
|
|
|
int lastAlertLeadTime = preferences.getInt(KEY_LAST_ALERT_LEAD_TIME, 5);
|
2012-09-07 05:47:27 +00:00
|
|
|
|
|
|
|
NumberPicker numberPicker = (NumberPicker) getDialog().findViewById(
|
|
|
|
R.id.numberPicker);
|
|
|
|
|
2012-09-18 17:11:52 +00:00
|
|
|
BartRunnerApplication application = (BartRunnerApplication) getActivity()
|
|
|
|
.getApplication();
|
|
|
|
|
|
|
|
final int maxValue = application.getBoardedDeparture()
|
|
|
|
.getMeanSecondsLeft() / 60;
|
2012-09-07 05:47:27 +00:00
|
|
|
|
|
|
|
String[] displayedValues = new String[maxValue];
|
|
|
|
for (int i = 1; i <= maxValue; i++) {
|
|
|
|
displayedValues[i - 1] = String.valueOf(i);
|
|
|
|
}
|
|
|
|
numberPicker.setMinValue(1);
|
|
|
|
numberPicker.setMaxValue(maxValue);
|
|
|
|
numberPicker.setDisplayedValues(displayedValues);
|
|
|
|
|
2012-09-17 15:13:50 +00:00
|
|
|
if (maxValue >= lastAlertLeadTime) {
|
|
|
|
numberPicker.setValue(lastAlertLeadTime);
|
2012-09-07 05:47:27 +00:00
|
|
|
} else if (maxValue >= 5) {
|
|
|
|
numberPicker.setValue(5);
|
|
|
|
} else if (maxValue >= 3) {
|
|
|
|
numberPicker.setValue(3);
|
|
|
|
} else {
|
|
|
|
numberPicker.setValue(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
|
|
|
final FragmentActivity activity = getActivity();
|
|
|
|
|
|
|
|
return new AlertDialog.Builder(activity)
|
|
|
|
.setTitle(R.string.set_up_departure_alert)
|
|
|
|
.setCancelable(true)
|
|
|
|
.setView(R.layout.train_alert_dialog)
|
|
|
|
.setPositiveButton(R.string.ok,
|
|
|
|
new DialogInterface.OnClickListener() {
|
|
|
|
@Override
|
|
|
|
public void onClick(DialogInterface dialog,
|
|
|
|
int which) {
|
|
|
|
NumberPicker numberPicker = (NumberPicker) getDialog()
|
|
|
|
.findViewById(R.id.numberPicker);
|
2012-09-17 15:13:50 +00:00
|
|
|
final int alertLeadTime = numberPicker
|
|
|
|
.getValue();
|
2012-09-07 05:47:27 +00:00
|
|
|
|
2012-09-17 15:13:50 +00:00
|
|
|
// Save most recent selection
|
2012-09-07 05:47:27 +00:00
|
|
|
Editor editor = getActivity().getPreferences(
|
|
|
|
Context.MODE_PRIVATE).edit();
|
2012-09-17 15:13:50 +00:00
|
|
|
editor.putInt(KEY_LAST_ALERT_LEAD_TIME,
|
|
|
|
alertLeadTime);
|
2012-09-07 05:47:27 +00:00
|
|
|
editor.commit();
|
2012-09-17 15:13:50 +00:00
|
|
|
|
2012-09-18 17:11:52 +00:00
|
|
|
Intent intent = new Intent(getActivity()
|
|
|
|
.getApplicationContext(),
|
2012-09-17 15:13:50 +00:00
|
|
|
NotificationService.class);
|
|
|
|
intent.putExtra("alertLeadTime", alertLeadTime);
|
|
|
|
getActivity().startService(intent);
|
2012-09-07 05:47:27 +00:00
|
|
|
}
|
|
|
|
})
|
|
|
|
.setNegativeButton(R.string.skip_alert,
|
|
|
|
new DialogInterface.OnClickListener() {
|
|
|
|
public void onClick(DialogInterface dialog,
|
|
|
|
int whichButton) {
|
|
|
|
dialog.cancel();
|
|
|
|
}
|
|
|
|
}).create();
|
|
|
|
}
|
|
|
|
}
|