Alright, task editing is working for tags and alarms and all goodies. Also got rid of preferred due date.

pull/14/head
Tim Su 14 years ago
parent e06f60b95f
commit 82bf5598d5

@ -18,10 +18,14 @@ public class Field extends DBObject<Field> {
}
public Criterion eq(Object value) {
if(value == null)
return UnaryCriterion.isNull(this);
return UnaryCriterion.eq(this, value);
}
public Criterion neq(Object value) {
if(value == null)
return UnaryCriterion.isNotNull(this);
return UnaryCriterion.neq(this, value);
}

@ -5,8 +5,11 @@
*/
package com.todoroo.andlib.utility;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import android.content.Context;
import android.content.res.Resources;
import com.todoroo.andlib.service.Autowired;
@ -51,7 +54,7 @@ public class DateUtilities {
}
/* ======================================================================
* ============================================================ unix time
* ============================================================ long time
* ====================================================================== */
/** Convert unixtime into date */
@ -83,6 +86,93 @@ public class DateUtilities {
* =========================================================== formatters
* ====================================================================== */
@SuppressWarnings("nls")
public static boolean is24HourFormat(Context context) {
String value = android.provider.Settings.System.getString(context.getContentResolver(),
android.provider.Settings.System.TIME_12_24);
boolean b24 = !(value == null || value.equals("12"));
return b24;
}
/**
* @return time format (hours and minutes)
*/
public static SimpleDateFormat getTimeFormat(Context context) {
String value = getTimeFormatString(context);
return new SimpleDateFormat(value);
}
/**
* @return string used for time formatting
*/
@SuppressWarnings("nls")
private static String getTimeFormatString(Context context) {
String value;
if (is24HourFormat(context)) {
value = "H:mm";
} else {
value = "h:mm a";
}
return value;
}
/**
* @return string used for date formatting
*/
@SuppressWarnings("nls")
private static String getDateFormatString(Context context) {
String value = android.provider.Settings.System.getString(context.getContentResolver(),
android.provider.Settings.System.DATE_FORMAT);
if (value == null) {
// united states, you are special
if (Locale.US.equals(Locale.getDefault())
|| Locale.CANADA.equals(Locale.getDefault()))
value = "MMM d yyyy";
else
value = "d MMM yyyy";
}
return value;
}
/**
* @return date format (month, day, year)
*/
public static SimpleDateFormat getDateFormat(Context context) {
return new SimpleDateFormat(getDateFormatString(context));
}
/**
* @return date format as getDateFormat with weekday
*/
@SuppressWarnings("nls")
public static SimpleDateFormat getDateFormatWithWeekday(Context context) {
return new SimpleDateFormat("EEE, " + getDateFormatString(context));
}
/**
* @return date with time at the end
*/
@SuppressWarnings("nls")
public static SimpleDateFormat getDateWithTimeFormat(Context context) {
return new SimpleDateFormat(getDateFormatString(context) + " " +
getTimeFormatString(context));
}
private static final String ISO_8601_FORMAT = "yyyy-MM-dd'T'HH:mm:ssz";
/**
* @return formatted date (will contain month, day, year)
*/
public static String getFormattedDate(Context context, Date date) {
return getDateFormat(context).format(date);
}
/* ======================================================================
* ============================================================= duration
* ====================================================================== */
/**
* Convenience method for dropping the preposition argument.
*/

@ -16,7 +16,7 @@ import com.todoroo.andlib.data.Table;
*
*/
@SuppressWarnings("nls")
public class AlarmsDatabase extends AbstractDatabase {
public class AlarmDatabase extends AbstractDatabase {
// --- constants

@ -1,8 +1,11 @@
package com.todoroo.astrid.alarms;
import android.content.Context;
import java.util.ArrayList;
import com.todoroo.andlib.data.GenericDao;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.sql.Query;
/**
* Provides operations for working with alerts
@ -13,13 +16,44 @@ import com.todoroo.andlib.service.DependencyInjectionService;
@SuppressWarnings("nls")
public class AlarmService {
AlarmDatabase database = new AlarmDatabase();
GenericDao<Alarm> dao = new GenericDao<Alarm>(Alarm.class, database);
/**
* Metadata key for # of alarms
*/
public static final String ALARM_COUNT = "alarms-count";
public AlarmService(@SuppressWarnings("unused") Context context) {
public AlarmService() {
DependencyInjectionService.getInstance().inject(this);
}
/**
* Return alarms for the given task
*
* @param taskId
*/
public TodorooCursor<Alarm> getAlarms(long taskId) {
database.openForReading();
Query query = Query.select(Alarm.PROPERTIES).where(Alarm.TASK.eq(taskId));
return dao.query(query);
}
/**
* Save the given array of tags into the database
* @param taskId
* @param tags
*/
public void synchronizeAlarms(long taskId, ArrayList<Alarm> alarms) {
database.openForWriting();
dao.deleteWhere(Alarm.TASK.eq(taskId));
for(Alarm alarm : alarms) {
alarm.setId(Alarm.NO_ID);
alarm.setValue(Alarm.TASK, taskId);
dao.saveItem(alarm);
}
}
}

@ -40,8 +40,8 @@ public final class ExtendedFilterExposer extends BroadcastReceiver {
"Extended");
Filter alphabetical = new Filter(ExtendedPlugin.pluginIdentifier,
"Inbox (sorted by name)",
"Inbox (sorted by name)",
"Alphabetical",
"Alphabetical",
new QueryTemplate().where(Criterion.and(TaskCriteria.isActive(),
TaskCriteria.isVisible(DateUtilities.now()))).
orderBy(Order.asc(Task.TITLE)),

@ -29,7 +29,7 @@ public class DetailExposer extends BroadcastReceiver {
return;
if(tagService == null)
tagService = new TagService(context);
tagService = new TagService();
String tagList = tagService.getTagsAsString(taskId);
if(tagList.length() == 0)

@ -57,7 +57,7 @@ public class FilterExposer extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
tagService = new TagService(context);
tagService = new TagService();
Tag[] tagsByAlpha = tagService.getGroupedTags(TagService.GROUPED_TAGS_BY_ALPHA);
// If user does not have any tags, don't show this section at all

@ -2,8 +2,6 @@ package com.todoroo.astrid.tags;
import java.util.ArrayList;
import android.content.Context;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.data.Property.CountProperty;
import com.todoroo.andlib.service.Autowired;
@ -40,7 +38,7 @@ public class TagService {
@Autowired
private MetadataService metadataService;
public TagService(@SuppressWarnings("unused") Context context) {
public TagService() {
DependencyInjectionService.getInstance().inject(this);
}
@ -84,7 +82,7 @@ public class TagService {
return new QueryTemplate().join(Join.inner(Metadata.TABLE,
Task.ID.eq(Metadata.TASK))).where(Criterion.and(
TaskCriteria.isActive(), MetadataCriteria.withKey(KEY),
Metadata.VALUE.eq(null)));
Metadata.VALUE.isNull()));
}
/**

Binary file not shown.

Before

Width:  |  Height:  |  Size: 780 B

After

Width:  |  Height:  |  Size: 695 B

@ -5,7 +5,7 @@
android:orientation="horizontal"
android:background="@android:drawable/list_selector_background"
android:focusable="true"
android:paddingTop="2px"
android:paddingTop="8px"
android:paddingLeft="6dip"
android:paddingRight="6dip"
android:paddingBottom="2px"

@ -124,7 +124,7 @@
<string name="TLA_title">Astrid: %s</string>
<!-- Displayed instead of list when no items present -->
<string name="TLA_no_items">You Have No Tasks!</string>
<string name="TLA_no_items">No Tasks!</string>
<!-- Menu: Add Task -->
<string name="TLA_menu_add">Add Task</string>

@ -19,11 +19,10 @@
*/
package com.todoroo.astrid.activity;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import android.app.AlertDialog;
import android.content.ContentValues;
@ -54,7 +53,6 @@ import android.widget.ToggleButton;
import com.flurry.android.FlurryAgent;
import com.timsu.astrid.R;
import com.timsu.astrid.data.enums.RepeatInterval;
import com.timsu.astrid.data.tag.TagIdentifier;
import com.timsu.astrid.data.task.TaskModelForEdit;
import com.timsu.astrid.data.task.AbstractTaskModel.RepeatInfo;
import com.timsu.astrid.utilities.AstridUtilities;
@ -70,6 +68,8 @@ import com.timsu.astrid.widget.TimeDurationControlSet.TimeDurationType;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.alarms.Alarm;
import com.todoroo.astrid.alarms.AlarmService;
import com.todoroo.astrid.model.Metadata;
import com.todoroo.astrid.model.Task;
import com.todoroo.astrid.service.TaskService;
@ -112,7 +112,7 @@ public final class TaskEditActivity extends AbstractModelTabActivity<Task> {
private static final String TAB_ALERTS = "alerts"; //$NON-NLS-1$
private static final int DEFAULT_CAL_TIME = 3600;
// --- autowired
// --- services
@Autowired
TaskService taskService;
@ -120,6 +120,10 @@ public final class TaskEditActivity extends AbstractModelTabActivity<Task> {
@Autowired
DateUtilities dateUtilities;
TagService tagService = new TagService();
AlarmService alarmService = new AlarmService();
// --- UI components
EditText title;
ImportanceControlSet importance;
@ -146,7 +150,7 @@ public final class TaskEditActivity extends AbstractModelTabActivity<Task> {
boolean repeatHelpShown = false;
/** list of all tags */
Tag[] tags;
Tag[] allTags;
/* ======================================================================
* ======================================================= initialization
@ -239,8 +243,7 @@ public final class TaskEditActivity extends AbstractModelTabActivity<Task> {
repeatInterval.setAdapter(repeatAdapter);
// load tags
TagService tagService = new TagService(this);
tags = tagService.getGroupedTags(TagService.GROUPED_TAGS_BY_SIZE);
allTags = tagService.getGroupedTags(TagService.GROUPED_TAGS_BY_SIZE);
// read data
populateFields();
@ -310,7 +313,7 @@ public final class TaskEditActivity extends AbstractModelTabActivity<Task> {
};
/** Set up the repeat value button */
private void setRepeatValue(int value) {
void setRepeatValue(int value) {
if(value == 0)
repeatValue.setText(R.string.repeat_value_unset);
else
@ -319,7 +322,7 @@ public final class TaskEditActivity extends AbstractModelTabActivity<Task> {
}
private RepeatInfo getRepeatValue() {
if(repeatValue.getTag().equals(0))
if(repeatValue.getTag() == null || repeatValue.getTag().equals(0))
return null;
return new RepeatInfo(RepeatInterval.values()
[repeatInterval.getSelectedItemPosition()],
@ -380,28 +383,34 @@ public final class TaskEditActivity extends AbstractModelTabActivity<Task> {
// tags (only configure if not already set)
if(tagsContainer.getChildCount() == 0) {
TagService tagService = new TagService(this);
TodorooCursor<Metadata> cursor = tagService.getTags(model.getId());
for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext())
addTag(cursor.get(Metadata.VALUE));
try {
for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext())
addTag(cursor.get(Metadata.VALUE));
} finally {
cursor.close();
}
addTag(""); //$NON-NLS-1$
}
/* // alerts
if(model.getTaskIdentifier() != null) {
List<Date> alerts = alertController.getTaskAlerts(model.getTaskIdentifier());
for(Date alert : alerts) {
addAlert(alert);
/// alarms
if(alertsContainer.getChildCount() == 0) {
TodorooCursor<Alarm> cursor = alarmService.getAlarms(model.getId());
try {
for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext())
addAlert(new Date(cursor.get(Alarm.TIME)));
} finally {
cursor.close();
}
}
// repeats
RepeatInfo repeatInfo = model.getRepeat();
RepeatInfo repeatInfo = RepeatInfo.fromSingleField(model.getValue(Task.REPEAT));
if(repeatInfo != null) {
setRepeatValue(repeatInfo.getValue());
repeatInterval.setSelection(repeatInfo.getInterval().ordinal());
} else
setRepeatValue(0);*/ // TODO
setRepeatValue(0);
}
@ -426,6 +435,8 @@ public final class TaskEditActivity extends AbstractModelTabActivity<Task> {
model.setValue(Task.REPEAT, RepeatInfo.toSingleField(getRepeatValue()));
taskService.save(model, false);
saveTags();
saveAlerts();
long due = model.getValue(Task.DUE_DATE);
if (due != 0) {
@ -438,20 +449,19 @@ public final class TaskEditActivity extends AbstractModelTabActivity<Task> {
/**
* Displays a Toast reporting that the selected task has been saved and is
* due in 'x' amount of time, to 2 time-units of precision (e.g. Days + Hours).
* @param dueDate the Date when the task is due
* @param due the Date when the task is due
*/
private void showSaveToast(long dueDate) {
private void showSaveToast(long due) {
int stringResource;
int timeInSeconds = (int)((dueDate - System.currentTimeMillis())/1000L);
long dueFromNow = due - System.currentTimeMillis();
if (timeInSeconds < 0) {
timeInSeconds *= -1; // DateUtilities.getDurationString() requires positive integer
if (dueFromNow < 0) {
stringResource = R.string.taskEdit_onTaskSave_Overdue;
} else {
stringResource = R.string.taskEdit_onTaskSave_Due;
}
String formattedDate = dateUtilities.getDurationString(timeInSeconds, 2);
String formattedDate = dateUtilities.getDurationString(dueFromNow, 2);
Toast.makeText(this,
getResources().getString(stringResource, formattedDate),
Toast.LENGTH_SHORT).show();
@ -467,57 +477,31 @@ public final class TaskEditActivity extends AbstractModelTabActivity<Task> {
/** Save task tags. Must be called after task already has an ID */
private void saveTags() {
Set<TagIdentifier> tagsToDelete;
Set<TagIdentifier> tagsToAdd;
ArrayList<String> tags = new ArrayList<String>();
HashSet<String> tagNames = new HashSet<String>();
for(int i = 0; i < tagsContainer.getChildCount(); i++) {
TextView tagName = (TextView)tagsContainer.getChildAt(i).findViewById(R.id.text1);
if(tagName.getText().length() == 0)
continue;
tagNames.add(tagName.getText().toString());
}
// map names to tag identifiers, creating them if necessary
/*HashSet<TagIdentifier> tagIds = new HashSet<TagIdentifier>();
HashMap<String, TagIdentifier> tagsByName = new HashMap<String, TagIdentifier>();
for(TagModelForView tag : tags)
tagsByName.put(tag.getName(), tag.getTagIdentifier());
for(String tagName : tagNames) {
if(tagsByName.containsKey(tagName))
tagIds.add(tagsByName.get(tagName));
else {
TagIdentifier newTagId = tagController.createTag(tagName);
tagIds.add(newTagId);
}
tags.add(tagName.getText().toString());
}
// intersect tags to figure out which we need to add / remove
tagsToDelete = new HashSet<TagIdentifier>(taskTags);
tagsToDelete.removeAll(tagIds);
tagsToAdd = tagIds;
tagsToAdd.removeAll(taskTags);
// perform the database updates
for(TagIdentifier tagId : tagsToDelete)
tagController.removeTag(model.getTaskIdentifier(), tagId);
for(TagIdentifier tagId : tagsToAdd)
tagController.addTag(model.getTaskIdentifier(), tagId);
if(tagsToDelete.size() > 0 || tagsToAdd.size() > 0)
SyncDataController.taskUpdated(this, model);*/
tagService.synchronizeTags(model.getId(), tags);
}
/** Helper method to save alerts for this task */
private void saveAlerts() {
/*alertController.removeAlerts(model.getTaskIdentifier());
ArrayList<Alarm> alarms = new ArrayList<Alarm>();
for(int i = 0; i < alertsContainer.getChildCount(); i++) {
DateControlSet dateControlSet = (DateControlSet)alertsContainer.
getChildAt(i).getTag();
Date date = dateControlSet.getDate();
alertController.addAlert(model.getTaskIdentifier(), date);
}*/
Alarm alarm = new Alarm();
alarm.setValue(Alarm.TIME, date.getTime());
}
alarmService.synchronizeAlarms(model.getId(), alarms);
}
@ -536,7 +520,7 @@ public final class TaskEditActivity extends AbstractModelTabActivity<Task> {
textView.setText(tagName);
ArrayAdapter<Tag> tagsAdapter =
new ArrayAdapter<Tag>(this,
android.R.layout.simple_dropdown_item_1line, tags);
android.R.layout.simple_dropdown_item_1line, allTags);
textView.setAdapter(tagsAdapter);
textView.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before,
@ -693,6 +677,7 @@ public final class TaskEditActivity extends AbstractModelTabActivity<Task> {
* @param estimatedSeconds estimated duration or null
* @param values
*/
@SuppressWarnings("nls")
public static void createCalendarStartEndTimes(Date preferred, Date definite,
Integer estimatedSeconds, ContentValues values) {
FlurryAgent.onEvent("create-calendar-event");
@ -740,12 +725,12 @@ public final class TaskEditActivity extends AbstractModelTabActivity<Task> {
} catch (IllegalArgumentException e) {
Log.e("astrid", "Error creating calendar event!", e);
}
}
} */
if(shouldSaveState)
save();
if(addToCalendar.isChecked() && model.getCalendarUri() != null) {
/* if(addToCalendar.isChecked() && model.getCalendarUri() != null) {
Uri result = Uri.parse(model.getCalendarUri());
Intent intent = new Intent(Intent.ACTION_EDIT, result);
@ -758,7 +743,7 @@ public final class TaskEditActivity extends AbstractModelTabActivity<Task> {
intent.putExtra("endTime", values.getAsLong("dtend"));
startActivity(intent);
}*/
} */
super.onPause();
}

@ -215,7 +215,7 @@ public class TaskListActivity extends ListActivity implements OnScrollListener {
public void onClick(View v) {
TextView quickAdd = (TextView)findViewById(R.id.quickAddText);
if(quickAdd.getText().length() > 0) {
Task task = quickAddTask(quickAdd.getText().toString());
quickAddTask(quickAdd.getText().toString());
quickAdd.setText(""); //$NON-NLS-1$
loadTaskListContent(true);
} else {
@ -484,8 +484,8 @@ public class TaskListActivity extends ListActivity implements OnScrollListener {
case MENU_PLUGINS_ID:
dialogUtilities.okDialog(
this,
"if this were real life, I would display the Android " + //$NON-NLS-1$
"market with a search for plugins that you could install.", //$NON-NLS-1$
"if this were real life, I would display your " + //$NON-NLS-1$
"plugins so you could enable/disable/rearrange them.", //$NON-NLS-1$
null);
return true;
case MENU_SETTINGS_ID:

@ -137,7 +137,7 @@ public class FilterAdapter extends BaseExpandableListAdapter {
textView.setTextAppearance(activity, R.style.TextAppearance_FLA_Category);
View view = augmentView(textView, filter);
view.setPadding(40, 2, 0, 2);
view.setPadding(60, 2, 0, 2);
view.setLayoutParams(llp);
layout.addView(view);
@ -159,7 +159,7 @@ public class FilterAdapter extends BaseExpandableListAdapter {
ImageView icon = new ImageView(activity);
icon.setImageBitmap(filter.listingIcon);
icon.setPadding(0, 0, 20, 0);
icon.setPadding(0, 0, 15, 0);
layout.addView(icon);
layout.addView(textView);
return layout;
@ -180,7 +180,7 @@ public class FilterAdapter extends BaseExpandableListAdapter {
View view = augmentView(textView, filter);
view.setBackgroundDrawable(null);
view.setLayoutParams(lp);
view.setPadding(isChild ? 40 : 10, 0, 0, 0);
view.setPadding(isChild ? 50 : 10, 0, 0, 0);
return view;
}
@ -197,7 +197,7 @@ public class FilterAdapter extends BaseExpandableListAdapter {
View view = augmentView(textView, header);
view.setBackgroundResource(R.drawable.edit_titlebar);
view.setLayoutParams(lp);
view.setPadding(isChild ? 40 : 10, 0, 0, 0);
view.setPadding(isChild ? 50 : 10, 0, 0, 0);
return view;
}

@ -89,9 +89,6 @@ public final class Task extends AbstractModel {
public static final IntegerProperty TIMER_START = new IntegerProperty(
TABLE, "timerStart");
public static final IntegerProperty PREFERRED_DUE_DATE = new IntegerProperty(
TABLE, "preferredDueDate");
public static final IntegerProperty POSTPONE_COUNT = new IntegerProperty(
TABLE, "postponeCount");

@ -1,5 +1,6 @@
package com.todoroo.astrid.service;
import java.util.Date;
import java.util.HashMap;
import java.util.Map.Entry;
@ -21,8 +22,9 @@ import com.todoroo.andlib.data.Property.PropertyVisitor;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.alarms.Alarm;
import com.todoroo.astrid.alarms.AlarmsDatabase;
import com.todoroo.astrid.alarms.AlarmDatabase;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.dao.TaskDao;
@ -114,7 +116,6 @@ public class Astrid2To3UpgradeHelper {
propertyMap.put(AbstractTaskModel.ELAPSED_SECONDS, Task.ELAPSED_SECONDS);
propertyMap.put(AbstractTaskModel.TIMER_START, Task.TIMER_START);
propertyMap.put(AbstractTaskModel.DEFINITE_DUE_DATE, Task.DUE_DATE);
propertyMap.put(AbstractTaskModel.PREFERRED_DUE_DATE, Task.PREFERRED_DUE_DATE);
propertyMap.put(AbstractTaskModel.HIDDEN_UNTIL, Task.HIDE_UNTIL);
propertyMap.put(AbstractTaskModel.POSTPONE_COUNT, Task.POSTPONE_COUNT);
propertyMap.put(AbstractTaskModel.NOTIFICATIONS, Task.NOTIFICATIONS);
@ -132,7 +133,7 @@ public class Astrid2To3UpgradeHelper {
migrateTagsToMetadata();
// --- upgrade alerts
AlarmsDatabase alarmsDatabase = new AlarmsDatabase();
AlarmDatabase alarmsDatabase = new AlarmDatabase();
alarmsDatabase.openForWriting();
propertyMap.clear();
propertyMap.put(AbstractController.KEY_ROWID, Alarm.ID);
@ -156,6 +157,7 @@ public class Astrid2To3UpgradeHelper {
public int columnIndex;
public Cursor cursor;
public AbstractModel model;
public StringBuilder upgradeNotes;
}
/**
@ -184,6 +186,23 @@ public class Astrid2To3UpgradeHelper {
@Override
public Void visitLong(Property<Long> property, UpgradeVisitorContainer data) {
long value = data.cursor.getLong(data.columnIndex);
// special handling for due date
if(property == Task.DUE_DATE) {
long preferredDueDate = data.cursor.getLong(data.cursor.getColumnIndex(AbstractTaskModel.PREFERRED_DUE_DATE));
if(value == 0)
value = preferredDueDate;
else if(preferredDueDate != 0) {
// had both absolute and preferred due dates. write
// preferred due date into notes field
if(data.upgradeNotes == null)
data.upgradeNotes = new StringBuilder();
data.upgradeNotes.append("Goal Deadline: " +
DateUtilities.getFormattedDate(ContextManager.getContext(),
new Date(preferredDueDate)));
}
}
data.model.setValue(property, value);
Log.d("upgrade", "wrote " + value + " to -> " + property + " of model id " + data.cursor.getLong(1));
return null;
@ -230,6 +249,17 @@ public class Astrid2To3UpgradeHelper {
container.columnIndex = cursor.getColumnIndex(entry.getKey());
entry.getValue().accept(visitor, container);
}
// special tweak for adding upgrade notes to tasks
if(container.upgradeNotes != null) {
if(container.model.getValue(Task.NOTES).length() == 0)
container.model.setValue(Task.NOTES, container.upgradeNotes.toString());
else {
container.model.setValue(Task.NOTES,
container.model.getValue(Task.NOTES) + "\n\n" +
container.upgradeNotes);
}
}
dao.createItem(container.model);
}

@ -5,7 +5,7 @@ import java.io.File;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.service.TestDependencyInjector;
import com.todoroo.andlib.test.TodorooTestCase;
import com.todoroo.astrid.alarms.AlarmsDatabase;
import com.todoroo.astrid.alarms.AlarmDatabase;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.service.AstridDependencyInjector;
@ -25,7 +25,7 @@ public class DatabaseTestCase extends TodorooTestCase {
public static Database database = new TestDatabase();
public AlarmsDatabase alarmsDatabase;
public AlarmDatabase alarmsDatabase;
static {
AstridDependencyInjector.initialize();
@ -53,7 +53,7 @@ public class DatabaseTestCase extends TodorooTestCase {
deleteDatabase(TAG_TASK_TEST);
deleteDatabase(ALERTS_TEST);
deleteDatabase(SYNC_TEST);
alarmsDatabase = new AlarmsDatabase();
alarmsDatabase = new AlarmDatabase();
alarmsDatabase.clear();
@ -78,7 +78,7 @@ public class DatabaseTestCase extends TodorooTestCase {
}
}
public static class TestAlarmsDatabase extends AlarmsDatabase {
public static class TestAlarmsDatabase extends AlarmDatabase {
@Override
protected String getName() {
return "alarmstest";

Loading…
Cancel
Save