mirror of https://github.com/tasks/tasks
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
3.2 KiB
Java
109 lines
3.2 KiB
Java
package com.todoroo.astrid.timers;
|
|
|
|
import android.app.Activity;
|
|
import android.view.View;
|
|
|
|
import com.timsu.astrid.R;
|
|
import com.todoroo.andlib.data.Property.IntegerProperty;
|
|
import com.todoroo.astrid.data.Task;
|
|
import com.todoroo.astrid.helper.TaskEditControlSet;
|
|
import com.todoroo.astrid.timers.TimerActionControlSet.TimerActionListener;
|
|
import com.todoroo.astrid.ui.PopupControlSet;
|
|
import com.todoroo.astrid.ui.TimeDurationControlSet;
|
|
|
|
/**
|
|
* Control Set for managing repeats
|
|
*
|
|
* @author Tim Su <tim@todoroo.com>
|
|
*
|
|
*/
|
|
public class TimerControlSet extends PopupControlSet implements TimerActionListener {
|
|
|
|
TaskEditControlSet estimated, elapsed;
|
|
|
|
public TimerControlSet(final Activity activity, int viewLayout, int displayViewLayout, int title) {
|
|
super(activity, viewLayout, displayViewLayout, title);
|
|
|
|
this.displayText.setText(activity.getString(R.string.TEA_timer_controls));
|
|
|
|
}
|
|
|
|
@Override
|
|
protected void readFromTaskPrivate() {
|
|
estimated.readFromTask(model);
|
|
estimated.getView(); // force load
|
|
elapsed.readFromTask(model);
|
|
elapsed.getView(); // force load
|
|
}
|
|
|
|
@Override
|
|
protected void afterInflate() {
|
|
estimated = new TimeDurationTaskEditControlSet(activity, getView(), Task.ESTIMATED_SECONDS,
|
|
R.id.estimatedDuration, 0, R.string.DLG_hour_minutes
|
|
);
|
|
elapsed = new TimeDurationTaskEditControlSet(activity, getView(), Task.ELAPSED_SECONDS, R.id.elapsedDuration,
|
|
0, R.string.DLG_hour_minutes
|
|
);
|
|
}
|
|
|
|
@Override
|
|
protected String writeToModelPrivate(Task task) {
|
|
if (initialized) {
|
|
estimated.writeToModel(task);
|
|
elapsed.writeToModel(task);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
// --- TimeDurationTaskEditControlSet
|
|
|
|
/**
|
|
* Control set for mapping a Property to a TimeDurationControlSet
|
|
* @author Tim Su <tim@todoroo.com>
|
|
*
|
|
*/
|
|
public class TimeDurationTaskEditControlSet extends TaskEditControlSet {
|
|
private final TimeDurationControlSet controlSet;
|
|
private final IntegerProperty property;
|
|
|
|
public TimeDurationTaskEditControlSet(Activity activity, View v, IntegerProperty property, int timeButtonId,
|
|
int prefixResource, int titleResource) {
|
|
super(activity, -1);
|
|
this.property = property;
|
|
this.controlSet = new TimeDurationControlSet(activity, v,
|
|
timeButtonId, prefixResource, titleResource);
|
|
}
|
|
|
|
@Override
|
|
public void readFromTaskPrivate() {
|
|
controlSet.setTimeDuration(model.getValue(property));
|
|
}
|
|
|
|
@Override
|
|
protected void afterInflate() {
|
|
// Nothing
|
|
}
|
|
|
|
@Override
|
|
protected String writeToModelPrivate(Task task) {
|
|
task.setValue(property, controlSet.getTimeDurationInSeconds());
|
|
return null;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected void refreshDisplayView() {
|
|
// Nothing to do here yet
|
|
}
|
|
|
|
@Override
|
|
public void timerStopped(Task task) {
|
|
elapsed.readFromTask(task);
|
|
}
|
|
|
|
@Override
|
|
public void timerStarted(Task task) {
|
|
return;
|
|
}
|
|
|
|
} |