Add refresh list broadcast

pull/467/head
Alex Baker 8 years ago
parent e069b5a978
commit 73ae880cbd

@ -10,6 +10,7 @@ import com.todoroo.astrid.test.DatabaseTestCase;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.tasks.Broadcaster;
import org.tasks.injection.TestComponent;
import org.tasks.makers.RemoteGtaskListMaker;
@ -22,18 +23,19 @@ import static junit.framework.Assert.assertNull;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.tasks.makers.GtaskListMaker.ID;
import static org.tasks.makers.GtaskListMaker.SAVED;
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
import static org.tasks.makers.GtaskListMaker.LAST_SYNC;
import static org.tasks.makers.GtaskListMaker.NAME;
import static org.tasks.makers.GtaskListMaker.REMOTE_ID;
import static org.tasks.makers.GtaskListMaker.SAVED;
import static org.tasks.makers.GtaskListMaker.newGtaskList;
import static org.tasks.makers.RemoteGtaskListMaker.newRemoteList;
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
@RunWith(AndroidJUnit4.class)
public class GtasksListServiceTest extends DatabaseTestCase {
@Inject Database database;
@Inject Broadcaster broadcaster;
private StoreObjectDao storeObjectDao;
private GtasksListService gtasksListService;
@ -42,7 +44,7 @@ public class GtasksListServiceTest extends DatabaseTestCase {
public void setUp() {
super.setUp();
storeObjectDao = spy(new StoreObjectDao(database));
gtasksListService = new GtasksListService(storeObjectDao);
gtasksListService = new GtasksListService(storeObjectDao, broadcaster);
}
@Override

@ -9,6 +9,8 @@ import com.google.api.services.tasks.model.TaskList;
import com.todoroo.astrid.dao.StoreObjectDao;
import com.todoroo.astrid.data.StoreObject;
import org.tasks.Broadcaster;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@ -24,10 +26,12 @@ import static org.tasks.time.DateTimeUtils.printTimestamp;
public class GtasksListService {
private final StoreObjectDao storeObjectDao;
private final Broadcaster broadcaster;
@Inject
public GtasksListService(StoreObjectDao storeObjectDao) {
public GtasksListService(StoreObjectDao storeObjectDao, Broadcaster broadcaster) {
this.storeObjectDao = storeObjectDao;
this.broadcaster = broadcaster;
}
public List<GtasksList> getLists() {
@ -83,6 +87,8 @@ public class GtasksListService {
for(Long listId : previousLists) {
storeObjectDao.delete(listId);
}
broadcaster.refreshLists();
}
public List<GtasksList> getListsToUpdate(List<TaskList> remoteLists) {

@ -33,6 +33,7 @@ import com.todoroo.astrid.timers.TimerPlugin;
import com.todoroo.astrid.ui.EditTitleControlSet;
import com.todoroo.astrid.utility.Flags;
import org.tasks.Broadcaster;
import org.tasks.R;
import org.tasks.analytics.Tracker;
import org.tasks.dialogs.DialogBuilder;
@ -85,6 +86,7 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
@Inject Preferences preferences;
@Inject Tracker tracker;
@Inject TimerPlugin timerPlugin;
@Inject Broadcaster broadcaster;
@BindView(R.id.toolbar) Toolbar toolbar;
@BindView(R.id.comments) LinearLayout comments;
@ -209,14 +211,14 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
}
taskDao.save(model);
boolean tagsChanged = Flags.check(Flags.TAGS_CHANGED);
TaskListActivity tla = (TaskListActivity) getActivity();
if (tagsChanged) {
tla.repopulateNavigationDrawer();
if (Flags.check(Flags.TAGS_CHANGED)) {
broadcaster.refreshLists();
}
if (isNewTask) {
tla.getTaskListFragment().onTaskCreated(model.getUuid());
((TaskListActivity) getActivity())
.getTaskListFragment()
.onTaskCreated(model.getUuid());
}
callback.taskEditFinished();
} else {

@ -380,10 +380,6 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
}
}
public void repopulateNavigationDrawer() {
navigationDrawer.repopulateList();
}
public TaskListFragment getTaskListFragment() {
return (TaskListFragment) getSupportFragmentManager()
.findFragmentByTag(FRAG_TAG_TASK_LIST);

@ -629,7 +629,6 @@ public class TaskListFragment extends InjectingListFragment implements
((TaskListActivity) getActivity()).onFilterItemClicked(null);
}
((TaskListActivity) getActivity()).repopulateNavigationDrawer();
broadcaster.refresh();
}
} else {

@ -63,6 +63,7 @@ public class AstridApiConstants {
* Action name for broadcast intent notifying Astrid task list to refresh
*/
public static final String BROADCAST_EVENT_REFRESH = BuildConfig.APPLICATION_ID + ".REFRESH";
public static final String BROADCAST_EVENT_REFRESH_LISTS = BuildConfig.APPLICATION_ID + ".REFRESH_LISTS";
/**
* Action name for broadcast intent notifying that task was completed

@ -47,6 +47,10 @@ public class Broadcaster {
context.sendBroadcast(new Intent(AstridApiConstants.BROADCAST_EVENT_REFRESH));
}
public void refreshLists() {
context.sendBroadcast(new Intent(AstridApiConstants.BROADCAST_EVENT_REFRESH_LISTS));
}
public void taskUpdated(final Task task, final ContentValues values) {
Intent intent = new Intent(AstridApiConstants.BROADCAST_EVENT_TASK_SAVED);
intent.putExtra(AstridApiConstants.EXTRAS_TASK, task);

@ -89,7 +89,6 @@ public class TagListFragment extends TaskListFragment {
}
}
activity.repopulateNavigationDrawer();
broadcaster.refresh();
}
} else {

@ -88,9 +88,6 @@ public class NavigationDrawerFragment extends InjectingFragment {
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == FilterAdapter.REQUEST_SETTINGS && resultCode == Activity.RESULT_OK && data != null) {
if (data.getBooleanExtra(AppearancePreferences.EXTRA_FILTERS_CHANGED, false)) {
repopulateList();
}
if (data.getBooleanExtra(AppearancePreferences.EXTRA_RESTART, false)) {
TaskListActivity activity = (TaskListActivity) getActivity();
activity.restart();
@ -231,14 +228,10 @@ public class NavigationDrawerFragment extends InjectingFragment {
void onFilterItemClicked(FilterListItem item);
}
public void repopulateList() {
private void repopulateList() {
adapter.populateList();
}
private void refreshFilterCount() {
adapter.refreshFilterCount();
}
@Override
public void onResume() {
super.onResume();
@ -246,11 +239,12 @@ public class NavigationDrawerFragment extends InjectingFragment {
adapter.registerRecevier();
}
// also load sync actions
getActivity().registerReceiver(refreshReceiver,
new IntentFilter(AstridApiConstants.BROADCAST_EVENT_REFRESH));
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(AstridApiConstants.BROADCAST_EVENT_REFRESH);
intentFilter.addAction(AstridApiConstants.BROADCAST_EVENT_REFRESH_LISTS);
getActivity().registerReceiver(refreshReceiver, intentFilter);
refreshFilterCount();
repopulateList();
}
/**
@ -262,11 +256,15 @@ public class NavigationDrawerFragment extends InjectingFragment {
protected class RefreshReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent == null || !AstridApiConstants.BROADCAST_EVENT_REFRESH.equals(intent.getAction())) {
if (intent == null) {
return;
}
refreshFilterCount();
String action = intent.getAction();
if (AstridApiConstants.BROADCAST_EVENT_REFRESH.equals(action)) {
adapter.refreshFilterCount();
} else if (AstridApiConstants.BROADCAST_EVENT_REFRESH_LISTS.equals(action)) {
repopulateList();
}
}
}
}

Loading…
Cancel
Save