From bf282c128b151f47395c1e1a6770769b43ccf50c Mon Sep 17 00:00:00 2001 From: Tim Su Date: Sun, 18 Jan 2009 07:36:57 +0000 Subject: [PATCH] Tweaked the cosmetics of the main task list, as well as synchronization screens. Also should remove all of the database constraint violations on sync mappings. Good thing those are working. =) --- AndroidManifest.xml | 6 +++--- res/layout/task_list_row.xml | 3 +++ res/values/colors.xml | 2 +- res/values/strings.xml | 8 +++----- .../timsu/astrid/activities/TaskListAdapter.java | 3 ++- .../timsu/astrid/data/task/TaskModelForList.java | 8 ++++++++ src/com/timsu/astrid/sync/RTMSyncService.java | 9 ++++++--- .../timsu/astrid/sync/SynchronizationService.java | 14 ++++++++++---- 8 files changed, 36 insertions(+), 17 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index c3aff5e8f..5530f77eb 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,13 +1,13 @@ + android:versionCode="63" + android:versionName="2.0.0"> + android:value="63" /> diff --git a/res/layout/task_list_row.xml b/res/layout/task_list_row.xml index 2318430ea..80cd7db49 100644 --- a/res/layout/task_list_row.xml +++ b/res/layout/task_list_row.xml @@ -32,12 +32,14 @@ android:gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="fill_parent" + android:drawingCacheQuality="low" android:minWidth="41px" /> diff --git a/res/values/colors.xml b/res/values/colors.xml index 63e25aed0..0864febe7 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -34,7 +34,7 @@ #ff888888 #ff888888 - #ff83ffa9 + #ff44bb66 #ffbbbbbb #ffff0000 diff --git a/res/values/strings.xml b/res/values/strings.xml index 35a718edb..236ff76d8 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -78,14 +78,14 @@ Due: Goal Finished - Overdue by + Overdue: H New Task Tags: No Tags Left - Over Time + Overtime Spent Add @@ -220,10 +220,8 @@ When finished, restart Astrid and come back here. Welcome to Astrid\'s RTM sync! \n\n -- Task notes are read from RTM, but edits are not sent back.\n - Notifications and repeats are not synchronized.\n -- Moving tasks in RTM to another list and then renaming them causes dupes.\n -- Deleting tasks in RTM is not detected.\n +- In RTM, deleting, or moving and then renaming a task, is not detected.\n - Having ~50+ tasks in one list might cause that list to not be imported\n Wish me luck!\n diff --git a/src/com/timsu/astrid/activities/TaskListAdapter.java b/src/com/timsu/astrid/activities/TaskListAdapter.java index 775e56f12..9518c9ab5 100644 --- a/src/com/timsu/astrid/activities/TaskListAdapter.java +++ b/src/com/timsu/astrid/activities/TaskListAdapter.java @@ -182,7 +182,8 @@ public class TaskListAdapter extends ArrayAdapter { if(task.getTimerStart() != null) elapsed += ((System.currentTimeMillis() - task.getTimerStart().getTime())/1000); String remainingString = ""; - if(!task.isTaskCompleted() && task.getEstimatedSeconds() > 0) { + if(!task.isTaskCompleted() && task.getEstimatedSeconds() > 0 && + task.getRepeat() != null) { int remaining = task.getEstimatedSeconds() - elapsed; remainingString = DateUtilities.getShortDurationString(r, (int)Math.abs(remaining), 1); diff --git a/src/com/timsu/astrid/data/task/TaskModelForList.java b/src/com/timsu/astrid/data/task/TaskModelForList.java index 765feb39e..e12ada50a 100644 --- a/src/com/timsu/astrid/data/task/TaskModelForList.java +++ b/src/com/timsu/astrid/data/task/TaskModelForList.java @@ -44,6 +44,7 @@ public class TaskModelForList extends AbstractTaskModel { PROGRESS_PERCENTAGE, COMPLETION_DATE, HIDDEN_UNTIL, + REPEAT, }; /** Get the weighted score for this task. Smaller is more important */ @@ -163,6 +164,13 @@ public class TaskModelForList extends AbstractTaskModel { return super.getCompletionDate(); } + @Override + public RepeatInfo getRepeat() { + return super.getRepeat(); + } + + // --- setters + @Override public void setProgressPercentage(int progressPercentage) { super.setProgressPercentage(progressPercentage); diff --git a/src/com/timsu/astrid/sync/RTMSyncService.java b/src/com/timsu/astrid/sync/RTMSyncService.java index e5c2a7d69..d87487cad 100644 --- a/src/com/timsu/astrid/sync/RTMSyncService.java +++ b/src/com/timsu/astrid/sync/RTMSyncService.java @@ -148,10 +148,11 @@ public class RTMSyncService extends SynchronizationService { private void performSyncInNewThread(final Activity activity) { try { syncHandler.post(new ProgressLabelUpdater("Reading remote data")); - syncHandler.post(new ProgressUpdater(0, 1)); + syncHandler.post(new ProgressUpdater(0, 5)); // get RTM timeline final String timeline = rtmService.timelines_create(); + syncHandler.post(new ProgressUpdater(1, 5)); // load RTM lists RtmLists lists = rtmService.lists_getList(); @@ -163,6 +164,7 @@ public class RTMSyncService extends SynchronizationService { if(INBOX_LIST_NAME.equalsIgnoreCase(list.getName())) INBOX_LIST_NAME = list.getName(); } + syncHandler.post(new ProgressUpdater(2, 5)); // read all tasks LinkedList remoteChanges = new LinkedList(); @@ -174,9 +176,10 @@ public class RTMSyncService extends SynchronizationService { // try the quick synchronization try { - Thread.sleep(1500); // throttle + Thread.sleep(2000); // throttle + syncHandler.post(new ProgressUpdater(3, 5)); RtmTasks tasks = rtmService.tasks_getList(null, filter, lastSyncDate); - syncHandler.post(new ProgressUpdater(1, 1)); + syncHandler.post(new ProgressUpdater(5, 5)); addTasksToList(tasks, remoteChanges); } catch (Exception e) { remoteChanges.clear(); diff --git a/src/com/timsu/astrid/sync/SynchronizationService.java b/src/com/timsu/astrid/sync/SynchronizationService.java index 3d401ecdf..9cdf63985 100644 --- a/src/com/timsu/astrid/sync/SynchronizationService.java +++ b/src/com/timsu/astrid/sync/SynchronizationService.java @@ -174,6 +174,7 @@ public abstract class SynchronizationService { String remoteId = helper.createTask(task); SyncMapping mapping = new SyncMapping(taskId, getId(), remoteId); syncController.saveSyncMapping(mapping); + data.localIdToSyncMapping.put(taskId, mapping); TaskProxy localTask = new TaskProxy(getId(), remoteId, false); localTask.readFromTaskModel(task); @@ -194,6 +195,7 @@ public abstract class SynchronizationService { // remove it from data structures data.localChanges.remove(mapping); + data.localIdToSyncMapping.remove(taskId); data.remoteIdToSyncMapping.remove(mapping); data.remoteChangeMap.remove(taskId); @@ -249,7 +251,7 @@ public abstract class SynchronizationService { } // 4. REMOTE SYNC load remote information - log.append(">> on astrid:\n"); + log.append("\n>> on astrid:\n"); syncHandler.post(new ProgressUpdater(0, 1)); for(TaskProxy remoteTask : remoteTasks) { if(remoteTask.name != null) @@ -327,6 +329,8 @@ public abstract class SynchronizationService { try { mapping = new SyncMapping(task.getTaskIdentifier(), remoteTask); syncController.saveSyncMapping(mapping); + data.localIdToSyncMapping.put(task.getTaskIdentifier(), + mapping); } catch (Exception e) { // unique violation: ignore - it'll get merged later } @@ -456,10 +460,11 @@ public abstract class SynchronizationService { } StringBuilder sb = new StringBuilder(); - sb.append(getName()).append("Results:"); // TODO i18n + sb.append(getName()).append(" Results:"); // TODO i18n sb.append("\n\n"); sb.append(log); - sb.append("\nSummary - Astrid Tasks:"); + if(localCreatedTasks + localUpdatedTasks + localDeletedTasks > 0) + sb.append("\nSummary - Astrid Tasks:"); if(localCreatedTasks > 0) sb.append("\nCreated: " + localCreatedTasks); if(localUpdatedTasks > 0) @@ -470,7 +475,8 @@ public abstract class SynchronizationService { if(mergedTasks > 0) sb.append("\n\nMerged: " + localCreatedTasks); - sb.append("\n\nSummary - Remote Server:"); + if(remoteCreatedTasks + remoteDeletedTasks + remoteUpdatedTasks > 0) + sb.append("\n\nSummary - Remote Server:"); if(remoteCreatedTasks > 0) sb.append("\nCreated: " + remoteCreatedTasks); if(remoteUpdatedTasks > 0)