mirror of https://github.com/tasks/tasks
Moved purge/delete to its own preference file and operations to their own threads. Renamed extended => Manage Old Tasks
parent
08580f36c1
commit
bb815e145a
@ -0,0 +1,137 @@
|
|||||||
|
/**
|
||||||
|
* See the file "LICENSE" for the full license governing this code.
|
||||||
|
*/
|
||||||
|
package com.todoroo.astrid.core;
|
||||||
|
|
||||||
|
import android.app.ProgressDialog;
|
||||||
|
import android.content.DialogInterface;
|
||||||
|
import android.content.DialogInterface.OnClickListener;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.preference.Preference;
|
||||||
|
import android.preference.Preference.OnPreferenceClickListener;
|
||||||
|
import android.preference.PreferenceScreen;
|
||||||
|
|
||||||
|
import com.timsu.astrid.R;
|
||||||
|
import com.todoroo.andlib.service.Autowired;
|
||||||
|
import com.todoroo.andlib.service.DependencyInjectionService;
|
||||||
|
import com.todoroo.andlib.utility.DateUtilities;
|
||||||
|
import com.todoroo.andlib.utility.DialogUtilities;
|
||||||
|
import com.todoroo.andlib.utility.TodorooPreferenceActivity;
|
||||||
|
import com.todoroo.astrid.data.Task;
|
||||||
|
import com.todoroo.astrid.service.MetadataService;
|
||||||
|
import com.todoroo.astrid.service.TaskService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Displays the preference screen for users to edit their preferences
|
||||||
|
*
|
||||||
|
* @author Tim Su <tim@todoroo.com>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class OldTaskPreferences extends TodorooPreferenceActivity {
|
||||||
|
|
||||||
|
@Autowired private TaskService taskService;
|
||||||
|
@Autowired private MetadataService metadataService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getPreferenceResource() {
|
||||||
|
return R.xml.preferences_manage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
PreferenceScreen screen = getPreferenceScreen();
|
||||||
|
DependencyInjectionService.getInstance().inject(this);
|
||||||
|
|
||||||
|
// Extended prefs
|
||||||
|
Preference extpreference_completed = screen.findPreference(getString(R.string.EPr_manage_delete_completed));
|
||||||
|
extpreference_completed.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||||
|
public boolean onPreferenceClick(Preference p) {
|
||||||
|
showDeleteCompletedDialog();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Preference extpreference_purged = screen.findPreference(getString(R.string.EPr_manage_purge_deleted));
|
||||||
|
extpreference_purged.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||||
|
public boolean onPreferenceClick(Preference p) {
|
||||||
|
showPurgeDeletedDialog();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Show the dialog to delete completed tasks */
|
||||||
|
private void showDeleteCompletedDialog() {
|
||||||
|
DialogUtilities.okCancelDialog(
|
||||||
|
this,
|
||||||
|
getResources().getString(
|
||||||
|
R.string.EPr_manage_delete_completed_message),
|
||||||
|
new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
runWithDialog(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
Task template = new Task();
|
||||||
|
template.setValue(Task.DELETION_DATE,
|
||||||
|
DateUtilities.now());
|
||||||
|
int result = taskService.update(
|
||||||
|
Task.COMPLETION_DATE.gt(0), template);
|
||||||
|
showResult(
|
||||||
|
R.string.EPr_manage_delete_completed_status,
|
||||||
|
result);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Show the dialog to purge deleted tasks */
|
||||||
|
private void showPurgeDeletedDialog() {
|
||||||
|
DialogUtilities.okCancelDialog(
|
||||||
|
this,
|
||||||
|
getResources().getString(
|
||||||
|
R.string.EPr_manage_purge_deleted_message),
|
||||||
|
new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
runWithDialog(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
int result = taskService.deleteWhere(Task.DELETION_DATE.gt(0));
|
||||||
|
metadataService.cleanup();
|
||||||
|
showResult(
|
||||||
|
R.string.EPr_manage_purge_deleted_status,
|
||||||
|
result);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Run runnable with progress dialog */
|
||||||
|
protected void runWithDialog(final Runnable runnable) {
|
||||||
|
final ProgressDialog pd = DialogUtilities.progressDialog(this, getString(R.string.DLG_please_wait));
|
||||||
|
new Thread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
runnable.run();
|
||||||
|
} finally {
|
||||||
|
DialogUtilities.dismissDialog(OldTaskPreferences.this, pd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).start();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void showResult(int resourceText, int result) {
|
||||||
|
DialogUtilities.okDialog(this, getString(resourceText, result), null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updatePreferences(Preference preference, Object value) {
|
||||||
|
// :)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<PreferenceScreen
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:title="@string/EPr_manage_header">
|
||||||
|
|
||||||
|
<PreferenceScreen
|
||||||
|
android:title="@string/EPr_manage_delete_completed"
|
||||||
|
android:key="@string/EPr_manage_delete_completed"
|
||||||
|
android:summary="@string/EPr_manage_delete_completed_summary"/>
|
||||||
|
|
||||||
|
<PreferenceScreen
|
||||||
|
android:title="@string/EPr_manage_purge_deleted"
|
||||||
|
android:key="@string/EPr_manage_purge_deleted"
|
||||||
|
android:summary="@string/EPr_manage_purge_deleted_summary"/>
|
||||||
|
|
||||||
|
</PreferenceScreen>
|
||||||
Loading…
Reference in New Issue