Fix null pointer exceptions on backup import

pull/513/head
Alex Baker 8 years ago
parent be048c8365
commit 2884b105af

@ -20,10 +20,10 @@ import org.tasks.data.UserActivity;
class BackupContainer { class BackupContainer {
final List<TaskBackup> tasks; private final List<TaskBackup> tasks;
final List<TagData> tags; private final List<TagData> tags;
final List<Filter> filters; private final List<Filter> filters;
final List<GoogleTaskList> googleTaskLists; private final List<GoogleTaskList> googleTaskLists;
private final List<GoogleTaskAccount> googleTaskAccounts; private final List<GoogleTaskAccount> googleTaskAccounts;
private final List<CaldavAccount> caldavAccounts; private final List<CaldavAccount> caldavAccounts;
private final List<CaldavCalendar> caldavCalendars; private final List<CaldavCalendar> caldavCalendars;
@ -45,6 +45,22 @@ class BackupContainer {
this.caldavCalendars = caldavCalendars; this.caldavCalendars = caldavCalendars;
} }
public List<TaskBackup> getTasks() {
return tasks == null ? emptyList() : tasks;
}
public List<TagData> getTags() {
return tags == null ? emptyList() : tags;
}
public List<Filter> getFilters() {
return filters == null ? emptyList() : filters;
}
public List<GoogleTaskList> getGoogleTaskLists() {
return googleTaskLists == null ? emptyList() : googleTaskLists;
}
public List<CaldavAccount> getCaldavAccounts() { public List<CaldavAccount> getCaldavAccounts() {
return caldavAccounts == null ? emptyList() : caldavAccounts; return caldavAccounts == null ? emptyList() : caldavAccounts;
} }

@ -128,7 +128,7 @@ public class TasksJsonImporter {
try { try {
JsonElement data = input.get("data"); JsonElement data = input.get("data");
BackupContainer backupContainer = gson.fromJson(data, BackupContainer.class); BackupContainer backupContainer = gson.fromJson(data, BackupContainer.class);
for (TagData tagData : backupContainer.tags) { for (TagData tagData : backupContainer.getTags()) {
if (tagDataDao.getByUuid(tagData.getRemoteId()) == null) { if (tagDataDao.getByUuid(tagData.getRemoteId()) == null) {
tagDataDao.createNew(tagData); tagDataDao.createNew(tagData);
} }
@ -138,12 +138,12 @@ public class TasksJsonImporter {
googleTaskListDao.insert(googleTaskAccount); googleTaskListDao.insert(googleTaskAccount);
} }
} }
for (GoogleTaskList googleTaskList : backupContainer.googleTaskLists) { for (GoogleTaskList googleTaskList : backupContainer.getGoogleTaskLists()) {
if (googleTaskListDao.getByRemoteId(googleTaskList.getRemoteId()) == null) { if (googleTaskListDao.getByRemoteId(googleTaskList.getRemoteId()) == null) {
googleTaskListDao.insert(googleTaskList); googleTaskListDao.insert(googleTaskList);
} }
} }
for (Filter filter : backupContainer.filters) { for (Filter filter : backupContainer.getFilters()) {
if (filterDao.getByName(filter.getTitle()) == null) { if (filterDao.getByName(filter.getTitle()) == null) {
filterDao.insert(filter); filterDao.insert(filter);
} }
@ -158,7 +158,7 @@ public class TasksJsonImporter {
caldavDao.insert(calendar); caldavDao.insert(calendar);
} }
} }
for (BackupContainer.TaskBackup backup : backupContainer.tasks) { for (BackupContainer.TaskBackup backup : backupContainer.getTasks()) {
taskCount++; taskCount++;
setProgressMessage(activity.getString(R.string.import_progress_read, taskCount)); setProgressMessage(activity.getString(R.string.import_progress_read, taskCount));
Task task = backup.task; Task task = backup.task;

Loading…
Cancel
Save