From eaebec08505bc274fcbe256645b1bf38791bdbb9 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Tue, 24 May 2011 16:07:41 -0700 Subject: [PATCH] Fix for issues created by OEM - yellow line while gesturing - crash moving google task around - anr when first installing app --- .../astrid/gtasks/GtasksTaskListUpdater.java | 19 +++++------ astrid/res/layout/task_list_body_standard.xml | 1 + .../astrid/service/StartupService.java | 32 +++++++++++++------ .../astrid/service/UpgradeService.java | 4 +-- 4 files changed, 35 insertions(+), 21 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java index 90011a7b6..4f20ed7ba 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java @@ -124,16 +124,17 @@ public class GtasksTaskListUpdater { Node root = buildTreeModel(list); Node target = findNode(root, targetTaskId); - - if(moveBeforeTaskId == -1) { - target.parent.children.remove(target); - root.children.add(target); - } else { - Node sibling = findNode(root, moveBeforeTaskId); - if(sibling != null) { - int index = sibling.parent.children.indexOf(sibling); + if(target != null && target.parent != null) { + if(moveBeforeTaskId == -1) { target.parent.children.remove(target); - sibling.parent.children.add(index, target); + root.children.add(target); + } else { + Node sibling = findNode(root, moveBeforeTaskId); + if(sibling != null) { + int index = sibling.parent.children.indexOf(sibling); + target.parent.children.remove(target); + sibling.parent.children.add(index, target); + } } } diff --git a/astrid/res/layout/task_list_body_standard.xml b/astrid/res/layout/task_list_body_standard.xml index b27f20655..5663448ae 100644 --- a/astrid/res/layout/task_list_body_standard.xml +++ b/astrid/res/layout/task_list_body_standard.xml @@ -6,6 +6,7 @@ android:layout_height="wrap_content" android:layout_weight="100" + android:gestureColor="#00000000" android:uncertainGestureColor="#00000000" android:eventsInterceptionEnabled="true" android:orientation="vertical"> diff --git a/astrid/src/com/todoroo/astrid/service/StartupService.java b/astrid/src/com/todoroo/astrid/service/StartupService.java index d5cdfb751..dd40dfb0a 100644 --- a/astrid/src/com/todoroo/astrid/service/StartupService.java +++ b/astrid/src/com/todoroo/astrid/service/StartupService.java @@ -131,7 +131,8 @@ public class StartupService { // invoke upgrade service boolean justUpgraded = latestSetVersion != version; if(justUpgraded && version > 0) { - upgradeService.performUpgrade(context, latestSetVersion); + if(latestSetVersion > 0) + upgradeService.performUpgrade(context, latestSetVersion); AstridPreferences.setCurrentVersion(version); } if(latestSetVersion == 0) { @@ -182,24 +183,35 @@ public class StartupService { * Create tasks for first time users */ private void onFirstTime() { - Resources r = ContextManager.getResources(); + final Resources r = ContextManager.getResources(); try { - database.openForWriting(); + new Thread(new Runnable() { + @Override + public void run() { + database.openForWriting(); - if(taskService.countTasks() > 0) - return; + if(taskService.countTasks() > 0) + return; - // change count below as well - addIntroTask(r, R.string.intro_task_1_summary, R.string.intro_task_1_note); - addIntroTask(r, R.string.intro_task_2_summary, R.string.intro_task_2_note); - addIntroTask(r, R.string.intro_task_3_summary, R.string.intro_task_3_note); + for(int i = 0; i < INTRO_TASKS.length; i += 2) + addIntroTask(r, INTRO_TASKS[i], INTRO_TASKS[i + 1]); + } + }).start(); } catch (Exception e) { exceptionService.reportError("on-first-time", e); //$NON-NLS-1$ } } - public static final int INTRO_TASK_SIZE = 3; + private static final int[] INTRO_TASKS = new int[] { + R.string.intro_task_1_summary, + R.string.intro_task_1_note, + R.string.intro_task_2_summary, + R.string.intro_task_2_note, + R.string.intro_task_3_summary, + R.string.intro_task_3_note, + }; + public static final int INTRO_TASK_SIZE = INTRO_TASKS.length / 2; private void addIntroTask(Resources r, int summary, int note) { Task task = new Task(); diff --git a/astrid/src/com/todoroo/astrid/service/UpgradeService.java b/astrid/src/com/todoroo/astrid/service/UpgradeService.java index 27ab5557f..43a795b53 100644 --- a/astrid/src/com/todoroo/astrid/service/UpgradeService.java +++ b/astrid/src/com/todoroo/astrid/service/UpgradeService.java @@ -77,9 +77,9 @@ public final class UpgradeService { if(from == 135) AddOnService.recordOem(); - // pop up a progress dialog + // long running tasks: pop up a progress dialog final ProgressDialog dialog; - if(context instanceof Activity) + if(from < V3_0_0 && context instanceof Activity) dialog = DialogUtilities.progressDialog(context, context.getString(R.string.DLG_upgrading)); else