Empty title outstanding entry migration shouldn't be an inline upgrade:

pull/14/head
Sam Bosley 11 years ago
parent 4940235864
commit 00625738b7

@ -0,0 +1,43 @@
package com.todoroo.astrid.actfm.sync;
import java.util.ArrayList;
import java.util.List;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Query;
import com.todoroo.astrid.dao.TaskOutstandingDao;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskOutstanding;
public class EmptyTitleOutstandingEntryMigration {
@Autowired
private TaskOutstandingDao taskOutstandingDao;
public void performMigration() {
try {
TodorooCursor<TaskOutstanding> outstandingWithTitle = taskOutstandingDao
.query(Query.select(TaskOutstanding.TASK_ID)
.where(Criterion.and(TaskOutstanding.COLUMN_STRING.eq(Task.TITLE.name),
Criterion.or(TaskOutstanding.VALUE_STRING.isNotNull(), TaskOutstanding.VALUE_STRING.neq("")))) //$NON-NLS-1$
.groupBy(TaskOutstanding.TASK_ID));
List<Long> ids = new ArrayList<Long>();
for (outstandingWithTitle.moveToFirst(); !outstandingWithTitle.isAfterLast(); outstandingWithTitle.moveToNext()) {
try {
ids.add(outstandingWithTitle.get(TaskOutstanding.TASK_ID));
} catch (Exception e) {
//
}
}
taskOutstandingDao.deleteWhere(Criterion.and(TaskOutstanding.TASK_ID.in(ids.toArray(new Long[ids.size()])),
TaskOutstanding.COLUMN_STRING.eq(Task.TITLE.name),
Criterion.or(TaskOutstanding.VALUE_STRING.isNull(), TaskOutstanding.VALUE_STRING.eq("")))); //$NON-NLS-1$
} catch (Exception e) {
//
}
}
}

@ -5,9 +5,6 @@
*/
package com.todoroo.astrid.service;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
@ -27,6 +24,7 @@ import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.actfm.sync.ActFmPreferenceService;
import com.todoroo.astrid.actfm.sync.AstridNewSyncMigrator;
import com.todoroo.astrid.actfm.sync.EmptyTitleOutstandingEntryMigration;
import com.todoroo.astrid.activity.AstridActivity;
import com.todoroo.astrid.activity.Eula;
import com.todoroo.astrid.api.AstridApiConstants;
@ -36,7 +34,6 @@ import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskOutstanding;
import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import com.todoroo.astrid.helper.DueDateTimeMigrator;
import com.todoroo.astrid.service.abtesting.ABChooser;
@ -182,7 +179,7 @@ public final class UpgradeService {
Preferences.setInt(AstridPreferences.P_UPGRADE_FROM, from);
int maxWithUpgrade = V4_6_0_BETA; // The last version that required a migration
int maxWithUpgrade = V4_6_2; // The last version that required a migration
Preferences.setInt(AstridPreferences.P_UPGRADE_FROM, from);
@ -249,6 +246,10 @@ public final class UpgradeService {
new GCMIntentService.GCMMigration().performMigration(UpgradeActivity.this);
}
if (from < V4_6_2) {
new EmptyTitleOutstandingEntryMigration().performMigration();
}
} finally {
finished = true;
DialogUtilities.dismissDialog(UpgradeActivity.this, dialog);
@ -284,27 +285,6 @@ public final class UpgradeService {
if (from < V4_6_2) {
Preferences.setBoolean(R.string.p_show_timer_shortcut, true);
try {
TodorooCursor<TaskOutstanding> outstandingWithTitle = PluginServices.getTaskOutstandingDao()
.query(Query.select(TaskOutstanding.TASK_ID)
.where(Criterion.and(TaskOutstanding.COLUMN_STRING.eq(Task.TITLE.name),
Criterion.or(TaskOutstanding.VALUE_STRING.isNotNull(), TaskOutstanding.VALUE_STRING.neq("")))) //$NON-NLS-1$
.groupBy(TaskOutstanding.TASK_ID));
List<Long> ids = new ArrayList<Long>();
for (outstandingWithTitle.moveToFirst(); !outstandingWithTitle.isAfterLast(); outstandingWithTitle.moveToNext()) {
try {
ids.add(outstandingWithTitle.get(TaskOutstanding.TASK_ID));
} catch (Exception e) {
//
}
}
PluginServices.getTaskOutstandingDao().deleteWhere(Criterion.and(TaskOutstanding.TASK_ID.in(ids.toArray(new Long[ids.size()])),
TaskOutstanding.COLUMN_STRING.eq(Task.TITLE.name),
Criterion.or(TaskOutstanding.VALUE_STRING.isNull(), TaskOutstanding.VALUE_STRING.eq("")))); //$NON-NLS-1$
} catch (Exception e) {
//
}
}
}

Loading…
Cancel
Save