Cleaned up some more code, added chronometer to timer in task edit view

pull/14/head
Sam Bosley 13 years ago
parent b188bc6cdd
commit 2cd5cf1005

@ -1,27 +1,37 @@
package com.todoroo.astrid.timers;
import android.app.Activity;
import android.os.SystemClock;
import android.text.format.DateUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.TextView;
import com.timsu.astrid.R;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.helper.TaskEditControlSet;
public class TimerActionControlSet extends TaskEditControlSet {
private final Button timerButton;
private final Chronometer chronometer;
private final TextView timerLabel;
private boolean timerActive;
private final Activity activity;
private Task task;
private TimerStoppedListener listener;
public TimerActionControlSet(Activity activity, View buttonParent) {
public TimerActionControlSet(Activity activity, View parent) {
super(activity, -1);
this.activity = activity;
timerButton = (Button) buttonParent.findViewById(R.id.timer_button);
timerButton = (Button) parent.findViewById(R.id.timer_button);
timerButton.setOnClickListener(timerListener);
chronometer = (Chronometer) parent.findViewById(R.id.timer);
timerLabel = (TextView) parent.findViewById(R.id.timer_label);
}
@Override
@ -31,6 +41,7 @@ public class TimerActionControlSet extends TaskEditControlSet {
timerActive = false;
else
timerActive = true;
this.task = task;
updateDisplay();
}
@ -49,8 +60,10 @@ public class TimerActionControlSet extends TaskEditControlSet {
TimerPlugin.updateTimer(activity, task, false);
if (listener != null)
listener.timerStopped(task);
chronometer.stop();
} else {
TimerPlugin.updateTimer(activity, task, true);
chronometer.start();
}
timerActive = !timerActive;
updateDisplay();
@ -67,8 +80,22 @@ public class TimerActionControlSet extends TaskEditControlSet {
else
drawable = R.drawable.icn_timer_start;
}
timerButton.setBackgroundResource(drawable);
long elapsed = task.getValue(Task.ELAPSED_SECONDS) * 1000L;
if (timerActive) {
chronometer.setVisibility(View.VISIBLE);
timerLabel.setVisibility(View.GONE);
elapsed += DateUtilities.now() - task.getValue(Task.TIMER_START);
chronometer.setBase(SystemClock.elapsedRealtime() - elapsed);
chronometer.start();
} else {
chronometer.setVisibility(View.GONE);
timerLabel.setVisibility(View.VISIBLE);
timerLabel.setText(DateUtils.formatElapsedTime(elapsed / 1000L));
chronometer.stop();
}
}
public interface TimerStoppedListener {

@ -5,7 +5,7 @@
android:width="2dip"
android:color="@color/task_edit_deadline_gray"/>
<solid
android:color="@color/task_edit_date_shortcuts_bg"/>
android:color="@color/task_edit_details"/>
<corners
android:bottomRightRadius="5dip"
android:bottomLeftRadius="5dip"/>

@ -2,7 +2,7 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="@color/task_edit_date_shortcuts_bg"/>
android:color="@color/task_edit_details"/>
<stroke
android:width="2dip"
android:color="@color/task_edit_deadline_gray"/>

@ -5,7 +5,7 @@
android:width="2dip"
android:color="@color/task_edit_deadline_gray"/>
<solid
android:color="@color/task_edit_date_shortcuts_bg"/>
android:color="@color/task_edit_details"/>
<corners
android:topLeftRadius="5dip"
android:topRightRadius="5dip"

@ -5,7 +5,7 @@
android:width="2dip"
android:color="@color/task_edit_deadline_gray"/>
<solid
android:color="@color/task_edit_date_shortcuts_bg"/>
android:color="@color/task_edit_details"/>
<corners
android:topLeftRadius="5dip"
android:topRightRadius="5dip"/>

@ -5,7 +5,7 @@
android:width="2dip"
android:color="@color/task_edit_deadline_gray"/>
<solid
android:color="@color/task_edit_date_shortcuts_bg"/>
android:color="@color/task_edit_details"/>
<corners
android:bottomRightRadius="5dip"/>
</shape>

@ -5,7 +5,7 @@
android:width="2dip"
android:color="@color/task_edit_deadline_gray"/>
<solid
android:color="@color/task_edit_date_shortcuts_bg"/>
android:color="@color/task_edit_details"/>
<corners
android:bottomLeftRadius="5dip"/>
</shape>

@ -5,7 +5,7 @@
android:width="2dip"
android:color="@color/task_edit_deadline_gray"/>
<solid
android:color="@color/task_edit_date_shortcuts_bg"/>
android:color="@color/task_edit_details"/>
<corners
android:topLeftRadius="5dip"/>
</shape>

@ -5,7 +5,7 @@
android:width="2dip"
android:color="@color/task_edit_deadline_gray"/>
<solid
android:color="@color/task_edit_date_shortcuts_bg"/>
android:color="@color/task_edit_details"/>
<corners
android:topRightRadius="5dip"/>
</shape>

@ -5,7 +5,7 @@
android:width="2dip"
android:color="@color/task_edit_deadline_gray"/>
<solid
android:color="@color/task_edit_date_shortcuts_bg"/>
android:color="@color/task_edit_details"/>
<corners
android:topLeftRadius="5dip"
android:bottomRightRadius="5dip"/>

@ -5,7 +5,7 @@
android:width="2dip"
android:color="@color/task_edit_deadline_gray"/>
<solid
android:color="@color/task_edit_date_shortcuts_bg"/>
android:color="@color/task_edit_details"/>
<corners
android:topRightRadius="5dip"
android:bottomLeftRadius="5dip"/>

@ -10,7 +10,8 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dip"
android:layout_marginBottom="14dip">
android:layout_marginBottom="14dip"
android:gravity="center_vertical">
<LinearLayout
android:layout_width="fill_parent"
@ -42,13 +43,38 @@
android:capitalize="sentences"
android:freezesText="true"/>
</LinearLayout>
<Button
android:id="@+id/timer_button"
android:layout_width="35dip"
<LinearLayout
android:layout_width="40dip"
android:layout_height="35dip"
android:layout_marginLeft="10dip"
android:layout_gravity="center_vertical"
android:layout_weight="1"/>
android:layout_marginLeft="5dip"
android:gravity="center_horizontal"
android:orientation="vertical"
android:layout_weight="1">
<Button
android:id="@+id/timer_button"
android:layout_width="25dip"
android:layout_height="25dip"
android:layout_weight="1"/>
<Chronometer
android:id="@+id/timer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="2"
android:gravity="center_horizontal"
android:visibility="visible"
android:textColor="@color/task_edit_details"
android:textSize="10sp" />
<TextView
android:id="@+id/timer_label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="2"
android:gravity="center_horizontal"
android:textColor="@color/task_edit_details"
android:textSize="10sp"
android:visibility="gone"/>
</LinearLayout>
</LinearLayout>
<View

@ -24,7 +24,7 @@
<color name="task_edit_selected">#438cb6</color>
<color name="task_edit_date_shortcuts_bg">#0b78a5</color>
<color name="task_edit_details">#0b78a5</color>
<color name="task_edit_deadline_gray">#888888</color>
</resources>

@ -135,12 +135,12 @@
</style>
<style name="TextAppearance.EditRowDisplay">
<item name="android:textColor">#0b78a5</item>
<item name="android:textColor">@color/task_edit_details</item>
</style>
<style name="TextAppearance.TEA_action">
<item name="android:textSize">16sp</item>
<item name="android:textColor">#0b78a5</item>
<item name="android:textColor">@color/task_edit_details</item>
</style>
<style name="Theme.WhenDialog">

@ -141,7 +141,7 @@ public class CalendarView extends View {
selectedCalendarPaint = new Paint();
selectedCalendarPaint.setAntiAlias(true);
selectedCalendarPaint.setColor(r.getColor(R.color.task_edit_date_shortcuts_bg));
selectedCalendarPaint.setColor(r.getColor(R.color.task_edit_details));
backgroundColorPaint = new Paint();
backgroundColorPaint.setAntiAlias(true);

Loading…
Cancel
Save