Fixed issues with backup importing

pull/14/head
Tim Su 16 years ago
parent 04ea673680
commit 27f2afe67b

@ -35,13 +35,14 @@ public class BackupActivity extends Activity {
FilePickerBuilder.OnFilePickedListener listener = new FilePickerBuilder.OnFilePickedListener() { FilePickerBuilder.OnFilePickedListener listener = new FilePickerBuilder.OnFilePickedListener() {
@Override @Override
public void onFilePicked(String filePath) { public void onFilePicked(String filePath) {
TasksXmlImporter.importTasks(filePath, null); TasksXmlImporter.importTasks(BackupActivity.this, filePath, null);
finish();
} }
}; };
new FilePickerBuilder(this, new FilePickerBuilder(this,
getString(R.string.import_file_prompt), getString(R.string.import_file_prompt),
BackupConstants.getExportDirectory(), BackupConstants.getExportDirectory(),
listener); listener).show();
} }
private void exportTasks() { private void exportTasks() {

@ -48,8 +48,8 @@ public class TasksXmlImporter {
* @param input * @param input
* @param runAfterImport * @param runAfterImport
*/ */
public static void importTasks(String input, Runnable runAfterImport) { public static void importTasks(Context context, String input, Runnable runAfterImport) {
new TasksXmlImporter(input, runAfterImport); new TasksXmlImporter(context, input, runAfterImport);
} }
// --- implementation // --- implementation
@ -60,7 +60,7 @@ public class TasksXmlImporter {
private int skipCount; private int skipCount;
private final String input; private final String input;
private final Context context = ContextManager.getContext(); private final Context context;
private final TaskService taskService = PluginServices.getTaskService(); private final TaskService taskService = PluginServices.getTaskService();
private final MetadataService metadataService = PluginServices.getMetadataService(); private final MetadataService metadataService = PluginServices.getMetadataService();
private final ExceptionService exceptionService = PluginServices.getExceptionService(); private final ExceptionService exceptionService = PluginServices.getExceptionService();
@ -78,8 +78,9 @@ public class TasksXmlImporter {
* Import tasks. * Import tasks.
* @param runAfterImport optional runnable after import * @param runAfterImport optional runnable after import
*/ */
private TasksXmlImporter(String input, final Runnable runAfterImport) { private TasksXmlImporter(final Context context, String input, final Runnable runAfterImport) {
this.input = input; this.input = input;
this.context = context;
importHandler = new Handler(); importHandler = new Handler();
importHandler.post(new Runnable() { importHandler.post(new Runnable() {
@ -199,12 +200,12 @@ public class TasksXmlImporter {
while (xpp.next() != XmlPullParser.END_DOCUMENT) { while (xpp.next() != XmlPullParser.END_DOCUMENT) {
String tag = xpp.getName(); String tag = xpp.getName();
if (tag == null || xpp.getEventType() == XmlPullParser.END_TAG) {
if(BackupConstants.TASK_TAG.equals(tag) && xpp.getEventType() == XmlPullParser.END_TAG)
saveTags(); saveTags();
else if (tag == null || xpp.getEventType() == XmlPullParser.END_TAG)
continue; continue;
} else if (tag.equals(BackupConstants.TASK_TAG)) {
if (tag.equals(BackupConstants.TASK_TAG)) {
// Parse <task ... > // Parse <task ... >
currentTask = parseTask(); currentTask = parseTask();
} else if (currentTask != null) { } else if (currentTask != null) {
@ -324,7 +325,10 @@ public class TasksXmlImporter {
/** helper method to set field on a task */ /** helper method to set field on a task */
@SuppressWarnings("nls") @SuppressWarnings("nls")
private final boolean setTaskField(Task task, String field, String value) { private final boolean setTaskField(Task task, String field, String value) {
if(field.equals(LegacyTaskModel.NAME)) { if(field.equals(LegacyTaskModel.ID)) {
// ignore
}
else if(field.equals(LegacyTaskModel.NAME)) {
task.setValue(Task.TITLE, value); task.setValue(Task.TITLE, value);
} }
else if(field.equals(LegacyTaskModel.NOTES)) { else if(field.equals(LegacyTaskModel.NOTES)) {

@ -4,6 +4,7 @@ package com.todoroo.astrid.legacy;
@SuppressWarnings("nls") @SuppressWarnings("nls")
abstract public class LegacyTaskModel { abstract public class LegacyTaskModel {
public static final String ID = "_id";
public static final String NAME = "name"; public static final String NAME = "name";
public static final String NOTES = "notes"; public static final String NOTES = "notes";
public static final String PROGRESS_PERCENTAGE = "progressPercentage"; public static final String PROGRESS_PERCENTAGE = "progressPercentage";

Loading…
Cancel
Save