mirror of https://github.com/tasks/tasks
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
3.1 KiB
Java
74 lines
3.1 KiB
Java
package org.tasks.activities;
|
|
|
|
import android.content.DialogInterface;
|
|
import android.os.Bundle;
|
|
|
|
import com.todoroo.andlib.data.TodorooCursor;
|
|
import com.todoroo.andlib.sql.Criterion;
|
|
import com.todoroo.andlib.sql.Query;
|
|
import com.todoroo.astrid.dao.MetadataDao;
|
|
import com.todoroo.astrid.data.Task;
|
|
import com.todoroo.astrid.gcal.GCalHelper;
|
|
import com.todoroo.astrid.service.TaskDeleter;
|
|
import com.todoroo.astrid.service.TaskService;
|
|
|
|
import org.tasks.R;
|
|
import org.tasks.dialogs.DialogBuilder;
|
|
import org.tasks.injection.InjectingAppCompatActivity;
|
|
import org.tasks.ui.ProgressDialogAsyncTask;
|
|
|
|
import javax.inject.Inject;
|
|
|
|
public class PurgeDeletedActivity extends InjectingAppCompatActivity {
|
|
|
|
@Inject TaskService taskService;
|
|
@Inject TaskDeleter taskDeleter;
|
|
@Inject GCalHelper gcalHelper;
|
|
@Inject MetadataDao metadataDao;
|
|
@Inject DialogBuilder dialogBuilder;
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
|
|
dialogBuilder.newMessageDialog(R.string.EPr_manage_purge_deleted_message)
|
|
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
new ProgressDialogAsyncTask(PurgeDeletedActivity.this, dialogBuilder) {
|
|
@Override
|
|
protected Integer doInBackground(Void... params) {
|
|
TodorooCursor<Task> cursor = taskService.query(Query.select(Task.ID, Task.TITLE, Task.CALENDAR_URI).where(
|
|
Criterion.and(Task.DELETION_DATE.gt(0), Task.CALENDAR_URI.isNotNull())));
|
|
try {
|
|
int length = cursor.getCount();
|
|
for (int i = 0; i < length; i++) {
|
|
cursor.moveToNext();
|
|
Task task = new Task(cursor);
|
|
gcalHelper.deleteTaskEvent(task);
|
|
}
|
|
} finally {
|
|
cursor.close();
|
|
}
|
|
int result = taskDeleter.purgeDeletedTasks();
|
|
metadataDao.removeDanglingMetadata();
|
|
return result;
|
|
}
|
|
|
|
@Override
|
|
protected int getResultResource() {
|
|
return R.string.EPr_manage_purge_deleted_status;
|
|
}
|
|
}.execute();
|
|
}
|
|
})
|
|
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
finish();
|
|
}
|
|
})
|
|
.show();
|
|
}
|
|
}
|