added a second-teir upgrade step, also now we start all services at app start

pull/14/head
Tim Su 16 years ago
parent c74f251a91
commit 8ad2ed3b6c

@ -20,8 +20,11 @@ import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.service.ExceptionService;
import com.todoroo.andlib.service.ExceptionService.TodorooUncaughtExceptionHandler; import com.todoroo.andlib.service.ExceptionService.TodorooUncaughtExceptionHandler;
import com.todoroo.astrid.backup.BackupService;
import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.producteev.ProducteevBackgroundService;
import com.todoroo.astrid.producteev.ProducteevUtilities; import com.todoroo.astrid.producteev.ProducteevUtilities;
import com.todoroo.astrid.rmilk.MilkBackgroundService;
import com.todoroo.astrid.rmilk.MilkUtilities; import com.todoroo.astrid.rmilk.MilkUtilities;
import com.todoroo.astrid.utility.Constants; import com.todoroo.astrid.utility.Constants;
import com.todoroo.astrid.utility.Preferences; import com.todoroo.astrid.utility.Preferences;
@ -95,6 +98,8 @@ public class StartupService {
Preferences.setCurrentVersion(version); Preferences.setCurrentVersion(version);
} }
upgradeService.performSecondaryUpgrade(context);
// perform startup activities in a background thread // perform startup activities in a background thread
new Thread(new Runnable() { new Thread(new Runnable() {
public void run() { public void run() {
@ -117,6 +122,10 @@ public class StartupService {
MilkUtilities.stopOngoing(); MilkUtilities.stopOngoing();
ProducteevUtilities.INSTANCE.stopOngoing(); ProducteevUtilities.INSTANCE.stopOngoing();
ProducteevBackgroundService.scheduleService();
BackupService.scheduleService(context);
MilkBackgroundService.scheduleService();
// check for task killers // check for task killers
if(!Constants.OEM) if(!Constants.OEM)
showTaskKillerHelp(context); showTaskKillerHelp(context);

@ -11,6 +11,7 @@ import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.dao.Database;
public final class UpgradeService { public final class UpgradeService {
@ -21,9 +22,13 @@ public final class UpgradeService {
private static final int V3_0_5 = 144; private static final int V3_0_5 = 144;
private static final int V3_0_0 = 136; private static final int V3_0_0 = 136;
private static final int V2_14_4 = 135; private static final int V2_14_4 = 135;
@Autowired @Autowired
private DialogUtilities dialogUtilities; private DialogUtilities dialogUtilities;
@Autowired
private Database database;
public UpgradeService() { public UpgradeService() {
DependencyInjectionService.getInstance().inject(this); DependencyInjectionService.getInstance().inject(this);
} }
@ -169,6 +174,18 @@ public final class UpgradeService {
changeLog.append("</ul>"); changeLog.append("</ul>");
} }
// --- database upgrade logic // --- secondary upgrade
/**
* If primary upgrade doesn't work for some reason (corrupt SharedPreferences,
* for example), this will catch some cases
*/
public void performSecondaryUpgrade(Context context) {
if(!context.getDatabasePath(database.getName()).exists() &&
context.getDatabasePath("tasks").exists()) { //$NON-NLS-1$
new Astrid2To3UpgradeHelper().upgrade2To3(context, 1);
}
}
} }

Loading…
Cancel
Save