mirror of https://github.com/tasks/tasks
Extract SnoozeDialog
parent
fa67d940f2
commit
e84ef4ea9f
@ -0,0 +1,77 @@
|
||||
package com.todoroo.astrid.reminders;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.Spinner;
|
||||
|
||||
import com.todoroo.andlib.utility.AndroidUtilities;
|
||||
import com.todoroo.andlib.utility.DateUtilities;
|
||||
import com.todoroo.astrid.repeats.RepeatControlSet;
|
||||
import com.todoroo.astrid.ui.NumberPicker;
|
||||
|
||||
import org.tasks.R;
|
||||
|
||||
public class SnoozeDialog extends FrameLayout implements DialogInterface.OnClickListener {
|
||||
|
||||
LinearLayout snoozePicker;
|
||||
NumberPicker snoozeValue;
|
||||
Spinner snoozeUnits;
|
||||
SnoozeCallback snoozeCallback;
|
||||
|
||||
public SnoozeDialog(Activity activity, SnoozeCallback callback) {
|
||||
super(activity);
|
||||
this.snoozeCallback = callback;
|
||||
|
||||
LayoutInflater mInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
mInflater.inflate(R.layout.snooze_dialog, this, true);
|
||||
|
||||
snoozePicker = (LinearLayout) findViewById(R.id.snoozePicker);
|
||||
snoozeValue = (NumberPicker) findViewById(R.id.numberPicker);
|
||||
snoozeUnits = (Spinner) findViewById(R.id.numberUnits);
|
||||
|
||||
snoozeValue.setIncrementBy(1);
|
||||
snoozeValue.setRange(1, 99);
|
||||
snoozeUnits.setSelection(RepeatControlSet.INTERVAL_HOURS);
|
||||
snoozeUnits.setOnTouchListener(new OnTouchListener() {
|
||||
@Override
|
||||
public boolean onTouch(View v, MotionEvent event) {
|
||||
AndroidUtilities.hideSoftInputForViews(getContext(), snoozePicker);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
long time = DateUtilities.now();
|
||||
int value = snoozeValue.getCurrent();
|
||||
switch(snoozeUnits.getSelectedItemPosition()) {
|
||||
case RepeatControlSet.INTERVAL_DAYS:
|
||||
time += value * DateUtilities.ONE_DAY;
|
||||
break;
|
||||
case RepeatControlSet.INTERVAL_HOURS:
|
||||
time += value * DateUtilities.ONE_HOUR;
|
||||
break;
|
||||
case RepeatControlSet.INTERVAL_MINUTES:
|
||||
time += value * DateUtilities.ONE_MINUTE;
|
||||
break;
|
||||
case RepeatControlSet.INTERVAL_WEEKS:
|
||||
time += value * 7 * DateUtilities.ONE_DAY;
|
||||
break;
|
||||
case RepeatControlSet.INTERVAL_MONTHS:
|
||||
time = DateUtilities.addCalendarMonthsToUnixtime(time, 1);
|
||||
break;
|
||||
case RepeatControlSet.INTERVAL_YEARS:
|
||||
time = DateUtilities.addCalendarMonthsToUnixtime(time, 12);
|
||||
break;
|
||||
}
|
||||
|
||||
snoozeCallback.snoozeForTime(time);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue