From 87971abe9c6f888e86a90a08bf0f922cfcc060de Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Wed, 28 Mar 2012 15:52:31 -0700 Subject: [PATCH] Version bump, progress dialog --- astrid/AndroidManifest.xml | 4 ++-- astrid/res/values/strings-core.xml | 3 +++ .../astrid/helper/DueDateTimeMigrator.java | 23 ++++++++++--------- .../astrid/service/UpgradeService.java | 12 ++++++---- 4 files changed, 24 insertions(+), 18 deletions(-) diff --git a/astrid/AndroidManifest.xml b/astrid/AndroidManifest.xml index b7c59eba0..b063b245f 100644 --- a/astrid/AndroidManifest.xml +++ b/astrid/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionName="4.0.6" + android:versionCode="262"> diff --git a/astrid/res/values/strings-core.xml b/astrid/res/values/strings-core.xml index 2ec17c321..f655864f7 100644 --- a/astrid/res/values/strings-core.xml +++ b/astrid/res/values/strings-core.xml @@ -659,6 +659,9 @@ you get stuff done. It features reminders, tags, sync, Locale plug-in, a widget Corrupted Database + + Upgrading... + Uh oh! It looks like you may have a corrupted database. If you see this error regularly, we suggest you clear all diff --git a/astrid/src/com/todoroo/astrid/helper/DueDateTimeMigrator.java b/astrid/src/com/todoroo/astrid/helper/DueDateTimeMigrator.java index e4173cffe..28d85b8f6 100644 --- a/astrid/src/com/todoroo/astrid/helper/DueDateTimeMigrator.java +++ b/astrid/src/com/todoroo/astrid/helper/DueDateTimeMigrator.java @@ -2,6 +2,8 @@ package com.todoroo.astrid.helper; import java.util.Date; +import android.content.Context; + import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.DependencyInjectionService; @@ -27,27 +29,27 @@ public class DueDateTimeMigrator { public void adjust(Date date); } - public void migrateDueTimes() { + public void migrateDueTimes(Context c) { if (!Preferences.getBoolean(PREF_MIGRATED_DUE_TIMES, false)) { // Get tasks with due time (i.e. due date != 23:59:59) - TodorooCursor tasksWithSeconds = taskDao.query(Query.select(Task.ID, Task.TITLE, Task.DUE_DATE).where( + TodorooCursor tasksWithDueTime = taskDao.query(Query.select(Task.ID, Task.TITLE, Task.DUE_DATE).where( Criterion.and(Task.DUE_DATE.gt(0), Criterion.not(Functions.strftime(Task.DUE_DATE).eq(LEGACY_NO_TIME_STRING))))); - // Set those tassk to have time HH:MM:00 - processCursor(tasksWithSeconds, new TaskDateAdjuster() { + // Get tasks with no due time (i.e. due date = 23:59:59) + TodorooCursor tasksWithoutDueTime = taskDao.query(Query.select(Task.ID, Task.TITLE, Task.DUE_DATE).where( + Criterion.and(Task.DUE_DATE.gt(0), + Functions.strftime(Task.DUE_DATE).eq(LEGACY_NO_TIME_STRING)))); + + // Set tasks with time to have time HH:MM:01 + processCursor(tasksWithDueTime, new TaskDateAdjuster() { @Override public void adjust(Date date) { date.setSeconds(1); } }); - // Get tasks with no due time (i.e. due date = 23:59:59) - TodorooCursor tasksWithoutDueTime = taskDao.query(Query.select(Task.ID, Task.TITLE, Task.DUE_DATE).where( - Criterion.and(Task.DUE_DATE.gt(0), - Functions.strftime(Task.DUE_DATE).eq(LEGACY_NO_TIME_STRING)))); - - // Set those tasks to have time 12:00:00 + // Set tasks without time to 12:00:00 processCursor(tasksWithoutDueTime, new TaskDateAdjuster() { @Override public void adjust(Date date) { @@ -65,7 +67,6 @@ public class DueDateTimeMigrator { try { for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { curr.readFromCursor(cursor); - System.err.println("Processing task: " + curr.getValue(Task.TITLE) + ", ID: " + curr.getId()); long time = curr.getValue(Task.DUE_DATE) / 1000L * 1000L; Date date = new Date(time); adjuster.adjust(date); diff --git a/astrid/src/com/todoroo/astrid/service/UpgradeService.java b/astrid/src/com/todoroo/astrid/service/UpgradeService.java index 3f1b091c5..a6915d11a 100644 --- a/astrid/src/com/todoroo/astrid/service/UpgradeService.java +++ b/astrid/src/com/todoroo/astrid/service/UpgradeService.java @@ -9,6 +9,7 @@ import org.weloveastrid.rmilk.data.MilkNoteHelper; import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; +import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; @@ -26,6 +27,7 @@ import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; import com.todoroo.astrid.activity.Eula; +import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.data.Metadata; @@ -137,7 +139,7 @@ public final class UpgradeService { // long running tasks: pop up a progress dialog final ProgressDialog dialog; - if(from < V3_0_0 && context instanceof Activity) + if(from < V4_0_6 && context instanceof Activity) dialog = DialogUtilities.progressDialog(context, context.getString(R.string.DLG_upgrading)); else @@ -145,10 +147,6 @@ public final class UpgradeService { Preferences.setInt(AstridPreferences.P_UPGRADE_FROM, from); - // This needs to happen synchronously otherwise the tasklist will look wrong on first launch. - if (from < V4_0_6) - new DueDateTimeMigrator().migrateDueTimes(); - new Thread(new Runnable() { @Override public void run() { @@ -165,8 +163,12 @@ public final class UpgradeService { if(from < V3_8_4 && Preferences.getBoolean(R.string.p_showNotes, false)) taskService.clearDetails(Task.NOTES.neq("")); //$NON-NLS-1$ + if (from < V4_0_6) + new DueDateTimeMigrator().migrateDueTimes(context); + } finally { DialogUtilities.dismissDialog((Activity)context, dialog); + context.sendBroadcast(new Intent(AstridApiConstants.BROADCAST_EVENT_REFRESH)); } }