Added an API for refreshing details

pull/14/head
Tim Su 16 years ago
parent cb6645704f
commit be125eca89

@ -137,6 +137,12 @@
android:resource="@xml/widget_provider_info" />
</receiver>
<receiver android:name="com.todoroo.astrid.service.GlobalEventReceiver">
<intent-filter>
<action android:name="com.todoroo.astrid.FLUSH_DETAILS" />
</intent-filter>
</receiver>
<!-- ======================================================== Services = -->
<service android:name="com.todoroo.astrid.widget.TasksWidget$UpdateService" />

@ -217,6 +217,14 @@ public class AstridApiConstants {
*/
public static final String BROADCAST_EVENT_REFRESH = PACKAGE + ".REFRESH";
/**
* Action name for broadcast intent notifying Astrid to clear detail cache
* because an event occurred that potentially affects all tasks (e.g.
* logging out of a sync provider). Use this call carefully, as loading
* details can degrade the performance of Astrid.
*/
public static final String BROADCAST_EVENT_FLUSH_DETAILS = PACKAGE + ".FLUSH_DETAILS";
/**
* Action name for broadcast intent notifying that task was completed
* @extra EXTRAS_TASK_ID id of the task

@ -28,7 +28,6 @@ import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.andlib.widget.TodorooPreferences;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.model.Task;
import com.todoroo.astrid.service.StartupService;
import com.todoroo.astrid.service.TaskService;
@ -49,16 +48,13 @@ public class EditPreferences extends TodorooPreferences {
// --- instance variables
@Autowired
TaskService taskService; // for debugging
private TaskService taskService; // for debugging
@Autowired
TaskDao taskDao;
private Database database;
@Autowired
Database database;
@Autowired
DialogUtilities dialogUtilities;
private DialogUtilities dialogUtilities;
public EditPreferences() {
DependencyInjectionService.getInstance().inject(this);
@ -176,7 +172,7 @@ public class EditPreferences extends TodorooPreferences {
preference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference p) {
database.openForWriting();
taskDao.deleteWhere(Criterion.all);
taskService.deleteWhere(Criterion.all);
dialogUtilities.okDialog(EditPreferences.this, "done", null);
return false;
}

@ -0,0 +1,41 @@
package com.todoroo.astrid.service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.utility.Flags;
/**
* BroadcastReceiver for receiving Astrid events not associated with a
* specific activity
*
* @author Tim Su <tim@todoroo.com>
*
*/
public final class GlobalEventReceiver extends BroadcastReceiver {
static {
AstridDependencyInjector.initialize();
}
@Autowired
private TaskService taskService;
@Override
public void onReceive(Context context, Intent intent) {
if(intent == null)
return;
DependencyInjectionService.getInstance().inject(this);
if(AstridApiConstants.BROADCAST_EVENT_FLUSH_DETAILS.equals(intent.getAction())) {
taskService.clearDetails();
Flags.set(Flags.REFRESH);
}
}
}

@ -282,6 +282,12 @@ public class TaskService {
}
}
/**
* Delete all tasks matching a given criterion
* @param all
*/
public void deleteWhere(Criterion criteria) {
taskDao.deleteWhere(criteria);
}
}

@ -21,11 +21,6 @@ public final class Constants {
*/
public static final boolean OEM = false;
/**
* Whether this is an installation with sync disabled
*/
public static final boolean SYNC = true;
/**
* Interval to update the widget (in order to detect hidden tasks
* becoming visible)

Loading…
Cancel
Save