Add attachment metadata to backup file

synthesis 5.3.2
Alex Baker 6 years ago
parent 3dd4fef7c9
commit 9b3372f1ae

@ -33,8 +33,8 @@ android {
defaultConfig {
testApplicationId "org.tasks.test"
applicationId "org.tasks"
versionCode 501
versionName "5.3.1"
versionCode 504
versionName "5.3.2"
targetSdkVersion 27
minSdkVersion 15
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

@ -35,7 +35,10 @@ public class Tracking {
RECURRENCE_CUSTOM(R.string.tracking_category_recurrence, R.string.tracking_action_custom),
RECURRENCE_PRESET(R.string.tracking_category_recurrence, R.string.tracking_action_preset),
TASKER_CREATE(R.string.tracking_category_tasker, R.string.tracking_action_task_created),
TASKER_LIST_NOTIFICATION(R.string.tracking_category_tasker, R.string.tracking_action_list_notification);
TASKER_LIST_NOTIFICATION(R.string.tracking_category_tasker, R.string.tracking_action_list_notification),
IMPORT_XML(R.string.tracking_category_backup, R.string.tracking_action_import_xml),
IMPORT_JSON(R.string.tracking_category_backup, R.string.tracking_action_import_json),
EXPORT(R.string.tracking_category_backup, R.string.tracking_action_export);
public final int category;
public final int action;

@ -9,10 +9,14 @@ import org.tasks.data.GoogleTaskList;
import org.tasks.data.Location;
import org.tasks.data.Tag;
import org.tasks.data.TagData;
import org.tasks.data.TaskAttachment;
import org.tasks.data.UserActivity;
import java.util.Collections;
import java.util.List;
import static java.util.Collections.emptyList;
public class BackupContainer {
List<TaskBackup> tasks;
@ -34,15 +38,21 @@ public class BackupContainer {
List<Tag> tags;
List<GoogleTask> google;
List<UserActivity> comments;
private List<TaskAttachment> attachments;
TaskBackup(Task task, List<Alarm> alarms, List<Location> locations, List<Tag> tags,
List<GoogleTask> google, List<UserActivity> comments) {
List<GoogleTask> google, List<UserActivity> comments, List<TaskAttachment> attachments) {
this.task = task;
this.alarms = alarms;
this.locations = locations;
this.tags = tags;
this.google = google;
this.comments = comments;
this.attachments = attachments;
}
List<TaskAttachment> getAttachments() {
return attachments == null ? emptyList() : attachments;
}
}
}

@ -24,6 +24,7 @@ import org.tasks.data.GoogleTaskListDao;
import org.tasks.data.LocationDao;
import org.tasks.data.TagDao;
import org.tasks.data.TagDataDao;
import org.tasks.data.TaskAttachmentDao;
import org.tasks.data.UserActivityDao;
import org.tasks.preferences.Preferences;
@ -63,6 +64,7 @@ public class TasksJsonExporter {
private final GoogleTaskDao googleTaskDao;
private final FilterDao filterDao;
private final GoogleTaskListDao googleTaskListDao;
private final TaskAttachmentDao taskAttachmentDao;
private final TaskDao taskDao;
private final UserActivityDao userActivityDao;
private final Preferences preferences;
@ -92,7 +94,7 @@ public class TasksJsonExporter {
public TasksJsonExporter(TagDataDao tagDataDao, TaskDao taskDao, UserActivityDao userActivityDao,
Preferences preferences, AlarmDao alarmDao, LocationDao locationDao,
TagDao tagDao, GoogleTaskDao googleTaskDao, FilterDao filterDao,
GoogleTaskListDao googleTaskListDao) {
GoogleTaskListDao googleTaskListDao, TaskAttachmentDao taskAttachmentDao) {
this.tagDataDao = tagDataDao;
this.taskDao = taskDao;
this.userActivityDao = userActivityDao;
@ -103,6 +105,7 @@ public class TasksJsonExporter {
this.googleTaskDao = googleTaskDao;
this.filterDao = filterDao;
this.googleTaskListDao = googleTaskListDao;
this.taskAttachmentDao = taskAttachmentDao;
}
public void exportTasks(final Context context, final ExportType exportType, @Nullable final ProgressDialog progressDialog) {
@ -155,7 +158,8 @@ public class TasksJsonExporter {
locationDao.getGeofences(taskId),
tagDao.getTagsForTask(taskId),
googleTaskDao.getAllByTaskId(taskId),
userActivityDao.getCommentsForTask(task.getUuid())));
userActivityDao.getCommentsForTask(task.getUuid()),
taskAttachmentDao.getAttachments(task.getUuid())));
}
Map<String, Object> data = new HashMap<>();

@ -29,6 +29,8 @@ import org.tasks.data.Tag;
import org.tasks.data.TagDao;
import org.tasks.data.TagData;
import org.tasks.data.TagDataDao;
import org.tasks.data.TaskAttachment;
import org.tasks.data.TaskAttachmentDao;
import org.tasks.data.UserActivity;
import org.tasks.data.UserActivityDao;
import org.tasks.dialogs.DialogBuilder;
@ -53,6 +55,7 @@ public class TasksJsonImporter {
private final GoogleTaskDao googleTaskDao;
private final GoogleTaskListDao googleTaskListDao;
private final FilterDao filterDao;
private final TaskAttachmentDao taskAttachmentDao;
private final LocationDao locationDao;
private Activity activity;
@ -73,7 +76,7 @@ public class TasksJsonImporter {
DialogBuilder dialogBuilder, TaskDao taskDao, LocationDao locationDao,
LocalBroadcastManager localBroadcastManager, AlarmDao alarmDao,
TagDao tagDao, GoogleTaskDao googleTaskDao, GoogleTaskListDao googleTaskListDao,
FilterDao filterDao) {
FilterDao filterDao, TaskAttachmentDao taskAttachmentDao) {
this.tagDataDao = tagDataDao;
this.userActivityDao = userActivityDao;
this.dialogBuilder = dialogBuilder;
@ -85,6 +88,7 @@ public class TasksJsonImporter {
this.googleTaskDao = googleTaskDao;
this.googleTaskListDao = googleTaskListDao;
this.filterDao = filterDao;
this.taskAttachmentDao = taskAttachmentDao;
}
public void importTasks(Activity activity, String input, ProgressDialog progressDialog) {
@ -160,6 +164,10 @@ public class TasksJsonImporter {
location.setTask(taskId);
locationDao.insert(location);
}
for (TaskAttachment attachment : backup.getAttachments()) {
attachment.setTaskId(taskUuid);
taskAttachmentDao.insert(attachment);
}
importCount++;
}
} finally {

@ -21,7 +21,7 @@ public final class TaskAttachment {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "_id")
private Long id;
private transient Long id;
@ColumnInfo(name = "remoteId")
private String remoteId = Task.NO_UUID;

@ -5,6 +5,8 @@ import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.annotation.NonNull;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Tracking;
import org.tasks.backup.TasksJsonExporter;
import org.tasks.injection.InjectingNativeDialogFragment;
@ -20,6 +22,7 @@ public class ExportTasksDialog extends InjectingNativeDialogFragment {
@Inject DialogBuilder dialogBuilder;
@Inject TasksJsonExporter tasksJsonExporter;
@Inject Tracker tracker;
private ProgressDialog progressDialog;
@ -35,6 +38,7 @@ public class ExportTasksDialog extends InjectingNativeDialogFragment {
setCancelable(false);
tasksJsonExporter.exportTasks(getActivity(), TasksJsonExporter.ExportType.EXPORT_TYPE_MANUAL, progressDialog);
tracker.reportEvent(Tracking.Events.EXPORT);
return progressDialog;
}

@ -6,6 +6,8 @@ import android.os.Bundle;
import com.todoroo.astrid.backup.TasksXmlImporter;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Tracking;
import org.tasks.backup.TasksJsonImporter;
import org.tasks.injection.InjectingNativeDialogFragment;
import org.tasks.injection.NativeDialogFragmentComponent;
@ -27,6 +29,7 @@ public class ImportTasksDialog extends InjectingNativeDialogFragment {
@Inject TasksXmlImporter xmlImporter;
@Inject TasksJsonImporter jsonImporter;
@Inject DialogBuilder dialogBuilder;
@Inject Tracker tracker;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
@ -40,8 +43,10 @@ public class ImportTasksDialog extends InjectingNativeDialogFragment {
setCancelable(false);
if (path.endsWith(".xml")) {
xmlImporter.importTasks(getActivity(), path, progressDialog);
tracker.reportEvent(Tracking.Events.IMPORT_XML);
} else {
jsonImporter.importTasks(getActivity(), path, progressDialog);
tracker.reportEvent(Tracking.Events.IMPORT_JSON);
}
return progressDialog;
}

@ -231,6 +231,7 @@
<string name="tracking_category_event">Event</string>
<string name="tracking_category_error">Error</string>
<string name="tracking_category_tasker">Tasker</string>
<string name="tracking_category_backup">Backup</string>
<string name="tracking_action_add">Add</string>
<string name="tracking_action_start">Start</string>
<string name="tracking_action_move">Move</string>
@ -245,6 +246,9 @@
<string name="tracking_action_preset">Preset</string>
<string name="tracking_action_task_created">Task created</string>
<string name="tracking_action_list_notification">List Notification</string>
<string name="tracking_action_import_xml">Import XML</string>
<string name="tracking_action_import_json">Import JSON</string>
<string name="tracking_action_export">Export</string>
<string name="tracking_event_night_mode_mismatch">Night Mismatch</string>
<string name="tracking_event_play_services_error">Play Services Error</string>

Loading…
Cancel
Save