Merge remote-tracking branch 'stingerAJ/2011-7-8-patches'

pull/14/head
Tim Su 13 years ago
commit 08580f36c1

@ -723,6 +723,17 @@
<item>Am Stichtag oder überfällig</item>
</string-array>
<string name="EPr_extended_header">Erweitert</string>
<string name="EPr_extended_delete_completed">Alle erledigten Aufgaben löschen</string>
<string name="EPr_extended_delete_completed_message">Wollen Sie wirklich alle erledigten Aufgaben löschen?</string>
<string name="EPr_extended_delete_completed_summary">Hiermit gelöschte Aufgaben können einzeln wiederhergestellt werden</string>
<string name="EPr_extended_delete_completed_status">Es wurden %d erledigte Aufgaben gelöscht!</string>
<string name="EPr_extended_purge_deleted">Alle gelöschten Aufgaben endgültig entfernen</string>
<string name="EPr_extended_purge_deleted_message">Wollen Sie wirklich alle gelöschten Aufgaben endgültig entfernen?\n
Achtung: diese Aufgaben sind unwiederbringlich verloren, wenn Sie kein Backup gemacht haben!</string>
<string name="EPr_extended_purge_deleted_summary">Achtung: diese Aufgaben können nur mit der Backupfunktion wiederhergestellt werden!</string>
<string name="EPr_extended_purge_deleted_status">Es wurden %d gelöschte Aufgaben endgültig entfernt!</string>
<!-- ==================================================== AddOnActivity == -->
<!-- Add Ons Activity Title -->

@ -495,5 +495,17 @@ Astrid might not let you know when your tasks are due.\n
Astrid is the much loved open-source todo list / task manager designed to help
you get stuff done. It features reminders, tags, sync, Locale plug-in, a widget and more.
</string>
<!-- ============================================================= Extended Settings == -->
<string name="EPr_extended_header">Extended</string>
<string name="EPr_extended_delete_completed">Delete completed tasks</string>
<string name="EPr_extended_delete_completed_message">Do you really want to delete all your completed tasks?</string>
<string name="EPr_extended_delete_completed_summary">This deleted tasks can be undeleted individually</string>
<string name="EPr_extended_delete_completed_status">Deleted %d tasks!</string>
<string name="EPr_extended_purge_deleted">Purge deleted tasks</string>
<string name="EPr_extended_purge_deleted_message">Do you really want to purge all your deleted tasks?\n
Attention: these tasks will be lost forever, if you did not create a recent backup!</string>
<string name="EPr_extended_purge_deleted_status">Purged %d tasks!</string>
<string name="EPr_extended_purge_deleted_summary">Attention: these purged tasks can\'t be recovered without a backup!</string>
</resources>

@ -50,6 +50,15 @@
android:key="@string/p_statistics"
android:title="@string/EPr_statistics_title"
android:defaultValue="true" />
<PreferenceCategory
android:title="@string/EPr_extended_header">
<PreferenceScreen
android:title="@string/EPr_extended_delete_completed"
android:key="@string/EPr_extended_delete_completed" android:summary="@string/EPr_extended_delete_completed_summary"/>
<PreferenceScreen
android:title="@string/EPr_extended_purge_deleted"
android:key="@string/EPr_extended_purge_deleted" android:summary="@string/EPr_extended_purge_deleted_summary"/>
</PreferenceCategory>
</PreferenceScreen>

@ -32,6 +32,7 @@ import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.andlib.utility.TodorooPreferenceActivity;
@ -40,6 +41,7 @@ import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.helper.MetadataHelper;
import com.todoroo.astrid.service.AddOnService;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.StartupService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.ui.ContactListAdapter;
@ -61,7 +63,8 @@ public class EditPreferences extends TodorooPreferenceActivity {
// --- instance variables
@Autowired private TaskService taskService; // for debugging
@Autowired private TaskService taskService;
@Autowired private MetadataService metadataService;
@Autowired private AddOnService addOnService;
@Autowired
@ -102,6 +105,26 @@ public class EditPreferences extends TodorooPreferenceActivity {
}
});
// PreferenceGroup extended = (PreferenceGroup) screen.findPreference(r.getString(R.string.EPr_extended_header));
// extended.setOrder(screen.getPreferenceCount());
// Extended prefs
Preference extpreference_completed = screen.findPreference(r.getString(R.string.EPr_extended_delete_completed));
extpreference_completed.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference p) {
showDeleteCompletedDialog();
return true;
}
});
Preference extpreference_purged = screen.findPreference(r.getString(R.string.EPr_extended_purge_deleted));
extpreference_purged.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference p) {
showPurgeDeletedDialog();
return true;
}
});
addDebugPreferences();
addPreferenceListeners();
@ -118,6 +141,61 @@ public class EditPreferences extends TodorooPreferenceActivity {
About.showAbout(this, version);
}
/** Show the dialog to delete completed tasks */
private void showDeleteCompletedDialog () {
DialogUtilities.okCancelDialog(this,
getResources().getString(R.string.EPr_extended_delete_completed_message),
new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Task template = new Task();
template.setValue(Task.DELETION_DATE, DateUtilities.now());
int result = taskService.update(Task.COMPLETION_DATE.gt(0), template);
DialogUtilities.okDialog(EditPreferences.this,
getResources().getString(R.string.EPr_extended_delete_completed_status, result),
new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
}
},
new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
}
/** Show the dialog to purge deleted tasks */
private void showPurgeDeletedDialog () {
DialogUtilities.okCancelDialog(this,
getResources().getString(R.string.EPr_extended_purge_deleted_message),
new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int result = taskService.deleteWhere(Task.DELETION_DATE.gt(0));
metadataService.cleanup();
DialogUtilities.okDialog(EditPreferences.this,
getResources().getString(R.string.EPr_extended_purge_deleted_status, result),
new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
}
},
new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
}
private void addPluginPreferences(PreferenceScreen screen) {
Intent queryIntent = new Intent(AstridApiConstants.ACTION_SETTINGS);
PackageManager pm = getPackageManager();

@ -273,6 +273,23 @@ public class TaskService {
}
}
/**
* Update all matching a clause to have the values set on template object.
* <p>
* Example (updates "joe" => "bob" in metadata value1):
* {code}
* Metadata item = new Metadata();
* item.setValue(Metadata.VALUE1, "bob");
* update(item, Metadata.VALUE1.eq("joe"));
* {code}
* @param where sql criteria
* @param template set fields on this object in order to set them in the db.
* @return # of updated items
*/
public int update(Criterion where, Task template) {
return taskDao.update(where, template);
}
/**
* Count tasks overall
* @param filter
@ -303,8 +320,8 @@ public class TaskService {
* Delete all tasks matching a given criterion
* @param all
*/
public void deleteWhere(Criterion criteria) {
taskDao.deleteWhere(criteria);
public int deleteWhere(Criterion criteria) {
return taskDao.deleteWhere(criteria);
}
/**

Loading…
Cancel
Save