mirror of https://github.com/tasks/tasks
Remove TaskListFragment subclasses
parent
8d9972c4c3
commit
1ba7c09cee
@ -0,0 +1,149 @@
|
|||||||
|
package com.todoroo.astrid.adapter;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.text.TextUtils;
|
||||||
|
import com.todoroo.astrid.api.CaldavFilter;
|
||||||
|
import com.todoroo.astrid.api.Filter;
|
||||||
|
import com.todoroo.astrid.api.GtasksFilter;
|
||||||
|
import com.todoroo.astrid.api.TagFilter;
|
||||||
|
import com.todoroo.astrid.core.BuiltInFilterExposer;
|
||||||
|
import com.todoroo.astrid.dao.TaskDao;
|
||||||
|
import com.todoroo.astrid.data.Task;
|
||||||
|
import com.todoroo.astrid.gtasks.GtasksListService;
|
||||||
|
import com.todoroo.astrid.gtasks.GtasksTaskListUpdater;
|
||||||
|
import com.todoroo.astrid.gtasks.sync.GtasksSyncService;
|
||||||
|
import com.todoroo.astrid.subtasks.SubtasksFilterUpdater;
|
||||||
|
import com.todoroo.astrid.subtasks.SubtasksHelper;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import org.tasks.R;
|
||||||
|
import org.tasks.data.CaldavCalendar;
|
||||||
|
import org.tasks.data.CaldavDao;
|
||||||
|
import org.tasks.data.GoogleTaskDao;
|
||||||
|
import org.tasks.data.GoogleTaskList;
|
||||||
|
import org.tasks.data.TagData;
|
||||||
|
import org.tasks.data.TagDataDao;
|
||||||
|
import org.tasks.data.TaskListMetadata;
|
||||||
|
import org.tasks.data.TaskListMetadataDao;
|
||||||
|
import org.tasks.injection.ForApplication;
|
||||||
|
import org.tasks.preferences.Preferences;
|
||||||
|
|
||||||
|
public class TaskAdapterProvider {
|
||||||
|
|
||||||
|
private final Context context;
|
||||||
|
private final Preferences preferences;
|
||||||
|
private final TagDataDao tagDataDao;
|
||||||
|
private final TaskListMetadataDao taskListMetadataDao;
|
||||||
|
private final TaskDao taskDao;
|
||||||
|
private final GtasksListService gtasksListService;
|
||||||
|
private final GtasksSyncService gtasksSyncService;
|
||||||
|
private final GoogleTaskDao googleTaskDao;
|
||||||
|
private final CaldavDao caldavDao;
|
||||||
|
private final SubtasksHelper subtasksHelper;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public TaskAdapterProvider(
|
||||||
|
@ForApplication Context context,
|
||||||
|
Preferences preferences,
|
||||||
|
TagDataDao tagDataDao,
|
||||||
|
TaskListMetadataDao taskListMetadataDao,
|
||||||
|
TaskDao taskDao,
|
||||||
|
GtasksListService gtasksListService,
|
||||||
|
GtasksSyncService gtasksSyncService,
|
||||||
|
GoogleTaskDao googleTaskDao,
|
||||||
|
CaldavDao caldavDao,
|
||||||
|
SubtasksHelper subtasksHelper) {
|
||||||
|
this.context = context;
|
||||||
|
this.preferences = preferences;
|
||||||
|
this.tagDataDao = tagDataDao;
|
||||||
|
this.taskListMetadataDao = taskListMetadataDao;
|
||||||
|
this.taskDao = taskDao;
|
||||||
|
this.gtasksListService = gtasksListService;
|
||||||
|
this.gtasksSyncService = gtasksSyncService;
|
||||||
|
this.googleTaskDao = googleTaskDao;
|
||||||
|
this.caldavDao = caldavDao;
|
||||||
|
this.subtasksHelper = subtasksHelper;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TaskAdapter createTaskAdapter(Filter filter) {
|
||||||
|
if (filter instanceof TagFilter) {
|
||||||
|
TagFilter tagFilter = (TagFilter) filter;
|
||||||
|
TagData tagData = tagDataDao.getByUuid(tagFilter.getUuid());
|
||||||
|
if (tagData != null) {
|
||||||
|
return isManualSort() ? createManualTagTaskAdapter(tagFilter) : new TaskAdapter();
|
||||||
|
}
|
||||||
|
} else if (filter instanceof GtasksFilter) {
|
||||||
|
GtasksFilter gtasksFilter = (GtasksFilter) filter;
|
||||||
|
GoogleTaskList list = gtasksListService.getList(gtasksFilter.getStoreId());
|
||||||
|
if (list != null) {
|
||||||
|
return isManualSort()
|
||||||
|
? createManualGoogleTaskAdapter(gtasksFilter)
|
||||||
|
: new TaskAdapter();
|
||||||
|
}
|
||||||
|
} else if (filter instanceof CaldavFilter) {
|
||||||
|
CaldavFilter caldavFilter = (CaldavFilter) filter;
|
||||||
|
CaldavCalendar calendar = caldavDao.getCalendarByUuid(caldavFilter.getUuid());
|
||||||
|
if (calendar != null) {
|
||||||
|
return new TaskAdapter();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return subtasksHelper.shouldUseSubtasksFragmentForFilter(filter)
|
||||||
|
? createManualFilterTaskAdapter(filter)
|
||||||
|
: new TaskAdapter();
|
||||||
|
}
|
||||||
|
return new TaskAdapter();
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isManualSort() {
|
||||||
|
return preferences.getBoolean(R.string.p_manual_sort, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private TaskAdapter createManualTagTaskAdapter(TagFilter filter) {
|
||||||
|
TagData tagData = filter.getTagData();
|
||||||
|
String tdId = tagData.getRemoteId();
|
||||||
|
TaskListMetadata list = taskListMetadataDao.fetchByTagOrFilter(tagData.getRemoteId());
|
||||||
|
if (list == null && !Task.isUuidEmpty(tdId)) {
|
||||||
|
list = new TaskListMetadata();
|
||||||
|
list.setTagUuid(tdId);
|
||||||
|
taskListMetadataDao.createNew(list);
|
||||||
|
}
|
||||||
|
SubtasksFilterUpdater updater = new SubtasksFilterUpdater(taskListMetadataDao, taskDao);
|
||||||
|
updater.initialize(list, filter);
|
||||||
|
return new AstridTaskAdapter(list, filter, updater, taskDao);
|
||||||
|
}
|
||||||
|
|
||||||
|
private TaskAdapter createManualGoogleTaskAdapter(GtasksFilter filter) {
|
||||||
|
GtasksTaskListUpdater updater = new GtasksTaskListUpdater(gtasksSyncService, googleTaskDao);
|
||||||
|
updater.initialize(filter);
|
||||||
|
return new GoogleTaskAdapter(filter.getList(), updater, taskDao, googleTaskDao);
|
||||||
|
}
|
||||||
|
|
||||||
|
private TaskAdapter createManualFilterTaskAdapter(Filter filter) {
|
||||||
|
String filterId = null;
|
||||||
|
String prefId = null;
|
||||||
|
if (BuiltInFilterExposer.isInbox(context, filter)) {
|
||||||
|
filterId = TaskListMetadata.FILTER_ID_ALL;
|
||||||
|
prefId = SubtasksFilterUpdater.ACTIVE_TASKS_ORDER;
|
||||||
|
} else if (BuiltInFilterExposer.isTodayFilter(context, filter)) {
|
||||||
|
filterId = TaskListMetadata.FILTER_ID_TODAY;
|
||||||
|
prefId = SubtasksFilterUpdater.TODAY_TASKS_ORDER;
|
||||||
|
}
|
||||||
|
if (TextUtils.isEmpty(filterId)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
TaskListMetadata list = taskListMetadataDao.fetchByTagOrFilter(filterId);
|
||||||
|
if (list == null) {
|
||||||
|
String defaultOrder = preferences.getStringValue(prefId);
|
||||||
|
if (TextUtils.isEmpty(defaultOrder)) {
|
||||||
|
defaultOrder = "[]"; // $NON-NLS-1$
|
||||||
|
}
|
||||||
|
defaultOrder = SubtasksHelper.convertTreeToRemoteIds(taskDao, defaultOrder);
|
||||||
|
list = new TaskListMetadata();
|
||||||
|
list.setFilter(filterId);
|
||||||
|
list.setTaskIds(defaultOrder);
|
||||||
|
taskListMetadataDao.createNew(list);
|
||||||
|
}
|
||||||
|
SubtasksFilterUpdater updater = new SubtasksFilterUpdater(taskListMetadataDao, taskDao);
|
||||||
|
updater.initialize(list, filter);
|
||||||
|
return new AstridTaskAdapter(list, filter, updater, taskDao);
|
||||||
|
}
|
||||||
|
}
|
@ -1,44 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2012 Todoroo Inc
|
|
||||||
*
|
|
||||||
* See the file "LICENSE" for the full license governing this code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.todoroo.astrid.gtasks;
|
|
||||||
|
|
||||||
import com.todoroo.astrid.activity.TaskListFragment;
|
|
||||||
import com.todoroo.astrid.adapter.GoogleTaskAdapter;
|
|
||||||
import com.todoroo.astrid.adapter.TaskAdapter;
|
|
||||||
import com.todoroo.astrid.api.GtasksFilter;
|
|
||||||
import com.todoroo.astrid.dao.TaskDao;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import org.tasks.data.GoogleTaskDao;
|
|
||||||
import org.tasks.data.GoogleTaskList;
|
|
||||||
import org.tasks.injection.FragmentComponent;
|
|
||||||
import org.tasks.tasklist.GtasksListFragment;
|
|
||||||
|
|
||||||
public class GtasksSubtaskListFragment extends GtasksListFragment {
|
|
||||||
|
|
||||||
@Inject TaskDao taskDao;
|
|
||||||
@Inject GtasksTaskListUpdater updater;
|
|
||||||
@Inject GoogleTaskDao googleTaskDao;
|
|
||||||
|
|
||||||
public static TaskListFragment newGtasksSubtaskListFragment(
|
|
||||||
GtasksFilter filter, GoogleTaskList list) {
|
|
||||||
GtasksSubtaskListFragment fragment = new GtasksSubtaskListFragment();
|
|
||||||
fragment.filter = filter;
|
|
||||||
fragment.list = list;
|
|
||||||
return fragment;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected TaskAdapter createTaskAdapter() {
|
|
||||||
updater.initialize(filter);
|
|
||||||
return new GoogleTaskAdapter(list, updater, taskDao, googleTaskDao);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void inject(FragmentComponent component) {
|
|
||||||
component.inject(this);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,84 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2012 Todoroo Inc
|
|
||||||
*
|
|
||||||
* See the file "LICENSE" for the full license governing this code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.todoroo.astrid.subtasks;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.text.TextUtils;
|
|
||||||
import com.todoroo.astrid.activity.TaskListFragment;
|
|
||||||
import com.todoroo.astrid.adapter.AstridTaskAdapter;
|
|
||||||
import com.todoroo.astrid.adapter.TaskAdapter;
|
|
||||||
import com.todoroo.astrid.api.Filter;
|
|
||||||
import com.todoroo.astrid.core.BuiltInFilterExposer;
|
|
||||||
import com.todoroo.astrid.dao.TaskDao;
|
|
||||||
import com.todoroo.astrid.data.Task;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import org.tasks.data.TaskListMetadata;
|
|
||||||
import org.tasks.data.TaskListMetadataDao;
|
|
||||||
import org.tasks.injection.ForApplication;
|
|
||||||
import org.tasks.injection.FragmentComponent;
|
|
||||||
import org.tasks.preferences.Preferences;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fragment for subtasks
|
|
||||||
*
|
|
||||||
* @author Tim Su <tim@astrid.com>
|
|
||||||
*/
|
|
||||||
public class SubtasksListFragment extends TaskListFragment {
|
|
||||||
|
|
||||||
@Inject Preferences preferences;
|
|
||||||
@Inject @ForApplication Context context;
|
|
||||||
@Inject TaskListMetadataDao taskListMetadataDao;
|
|
||||||
@Inject SubtasksFilterUpdater updater;
|
|
||||||
@Inject TaskDao taskDao;
|
|
||||||
|
|
||||||
public static TaskListFragment newSubtasksListFragment(Filter filter) {
|
|
||||||
SubtasksListFragment fragment = new SubtasksListFragment();
|
|
||||||
fragment.filter = filter;
|
|
||||||
return fragment;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected TaskAdapter createTaskAdapter() {
|
|
||||||
TaskListMetadata list = initializeTaskListMetadata();
|
|
||||||
updater.initialize(list, filter);
|
|
||||||
return new AstridTaskAdapter(list, filter, updater, taskDao);
|
|
||||||
}
|
|
||||||
|
|
||||||
private TaskListMetadata initializeTaskListMetadata() {
|
|
||||||
String filterId = null;
|
|
||||||
String prefId = null;
|
|
||||||
if (BuiltInFilterExposer.isInbox(context, filter)) {
|
|
||||||
filterId = TaskListMetadata.FILTER_ID_ALL;
|
|
||||||
prefId = SubtasksFilterUpdater.ACTIVE_TASKS_ORDER;
|
|
||||||
} else if (BuiltInFilterExposer.isTodayFilter(context, filter)) {
|
|
||||||
filterId = TaskListMetadata.FILTER_ID_TODAY;
|
|
||||||
prefId = SubtasksFilterUpdater.TODAY_TASKS_ORDER;
|
|
||||||
}
|
|
||||||
if (TextUtils.isEmpty(filterId)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
TaskListMetadata taskListMetadata = taskListMetadataDao.fetchByTagOrFilter(filterId);
|
|
||||||
if (taskListMetadata == null) {
|
|
||||||
String defaultOrder = preferences.getStringValue(prefId);
|
|
||||||
if (TextUtils.isEmpty(defaultOrder)) {
|
|
||||||
defaultOrder = "[]"; // $NON-NLS-1$
|
|
||||||
}
|
|
||||||
defaultOrder = SubtasksHelper.convertTreeToRemoteIds(taskDao, defaultOrder);
|
|
||||||
taskListMetadata = new TaskListMetadata();
|
|
||||||
taskListMetadata.setFilter(filterId);
|
|
||||||
taskListMetadata.setTaskIds(defaultOrder);
|
|
||||||
taskListMetadataDao.createNew(taskListMetadata);
|
|
||||||
}
|
|
||||||
return taskListMetadata;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void inject(FragmentComponent component) {
|
|
||||||
component.inject(this);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,58 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2012 Todoroo Inc
|
|
||||||
*
|
|
||||||
* See the file "LICENSE" for the full license governing this code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.todoroo.astrid.subtasks;
|
|
||||||
|
|
||||||
import com.todoroo.astrid.activity.TaskListFragment;
|
|
||||||
import com.todoroo.astrid.adapter.AstridTaskAdapter;
|
|
||||||
import com.todoroo.astrid.adapter.TaskAdapter;
|
|
||||||
import com.todoroo.astrid.api.TagFilter;
|
|
||||||
import com.todoroo.astrid.dao.TaskDao;
|
|
||||||
import com.todoroo.astrid.data.Task;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import org.tasks.data.TagData;
|
|
||||||
import org.tasks.data.TaskListMetadata;
|
|
||||||
import org.tasks.data.TaskListMetadataDao;
|
|
||||||
import org.tasks.injection.FragmentComponent;
|
|
||||||
import org.tasks.tasklist.TagListFragment;
|
|
||||||
|
|
||||||
public class SubtasksTagListFragment extends TagListFragment {
|
|
||||||
|
|
||||||
@Inject TaskListMetadataDao taskListMetadataDao;
|
|
||||||
@Inject SubtasksFilterUpdater updater;
|
|
||||||
@Inject TaskDao taskDao;
|
|
||||||
|
|
||||||
public static TaskListFragment newSubtasksTagListFragment(TagFilter filter, TagData tagData) {
|
|
||||||
SubtasksTagListFragment fragment = new SubtasksTagListFragment();
|
|
||||||
fragment.filter = filter;
|
|
||||||
fragment.tagData = tagData;
|
|
||||||
return fragment;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected TaskAdapter createTaskAdapter() {
|
|
||||||
TaskListMetadata list = initializeTaskListMetadata();
|
|
||||||
updater.initialize(list, filter);
|
|
||||||
return new AstridTaskAdapter(list, filter, updater, taskDao);
|
|
||||||
}
|
|
||||||
|
|
||||||
private TaskListMetadata initializeTaskListMetadata() {
|
|
||||||
String tdId = tagData.getRemoteId();
|
|
||||||
TaskListMetadata taskListMetadata =
|
|
||||||
taskListMetadataDao.fetchByTagOrFilter(tagData.getRemoteId());
|
|
||||||
if (taskListMetadata == null && !Task.isUuidEmpty(tdId)) {
|
|
||||||
taskListMetadata = new TaskListMetadata();
|
|
||||||
taskListMetadata.setTagUuid(tdId);
|
|
||||||
taskListMetadataDao.createNew(taskListMetadata);
|
|
||||||
}
|
|
||||||
return taskListMetadata;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void inject(FragmentComponent component) {
|
|
||||||
component.inject(this);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,96 +0,0 @@
|
|||||||
package org.tasks.caldav;
|
|
||||||
|
|
||||||
import static android.app.Activity.RESULT_OK;
|
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.view.MenuItem;
|
|
||||||
import androidx.appcompat.widget.Toolbar;
|
|
||||||
import com.todoroo.astrid.activity.MainActivity;
|
|
||||||
import com.todoroo.astrid.activity.TaskListFragment;
|
|
||||||
import com.todoroo.astrid.api.CaldavFilter;
|
|
||||||
import com.todoroo.astrid.api.Filter;
|
|
||||||
import org.tasks.R;
|
|
||||||
import org.tasks.data.CaldavCalendar;
|
|
||||||
import org.tasks.injection.FragmentComponent;
|
|
||||||
|
|
||||||
public class CaldavListFragment extends TaskListFragment {
|
|
||||||
|
|
||||||
private static final String EXTRA_CALDAV_CALENDAR = "extra_caldav_calendar";
|
|
||||||
private static final int REQUEST_ACCOUNT_SETTINGS = 10101;
|
|
||||||
private CaldavCalendar calendar;
|
|
||||||
|
|
||||||
public static TaskListFragment newCaldavListFragment(
|
|
||||||
CaldavFilter filter, CaldavCalendar calendar) {
|
|
||||||
CaldavListFragment fragment = new CaldavListFragment();
|
|
||||||
fragment.filter = filter;
|
|
||||||
fragment.calendar = calendar;
|
|
||||||
return fragment;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
|
|
||||||
if (savedInstanceState != null) {
|
|
||||||
this.calendar = savedInstanceState.getParcelable(EXTRA_CALDAV_CALENDAR);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void inflateMenu(Toolbar toolbar) {
|
|
||||||
super.inflateMenu(toolbar);
|
|
||||||
toolbar.inflateMenu(R.menu.menu_caldav_list_fragment);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMenuItemClick(MenuItem item) {
|
|
||||||
switch (item.getItemId()) {
|
|
||||||
case R.id.menu_caldav_list_fragment:
|
|
||||||
Intent intent = new Intent(getActivity(), CaldavCalendarSettingsActivity.class);
|
|
||||||
intent.putExtra(EXTRA_CALDAV_CALENDAR, calendar);
|
|
||||||
startActivityForResult(intent, REQUEST_ACCOUNT_SETTINGS);
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return super.onMenuItemClick(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
||||||
if (requestCode == REQUEST_ACCOUNT_SETTINGS) {
|
|
||||||
if (resultCode == RESULT_OK) {
|
|
||||||
MainActivity activity = (MainActivity) getActivity();
|
|
||||||
String action = data.getAction();
|
|
||||||
if (CaldavCalendarSettingsActivity.ACTION_DELETED.equals(action)) {
|
|
||||||
activity.onFilterItemClicked(null);
|
|
||||||
} else if (CaldavCalendarSettingsActivity.ACTION_RELOAD.equals(action)) {
|
|
||||||
activity
|
|
||||||
.getIntent()
|
|
||||||
.putExtra(
|
|
||||||
MainActivity.OPEN_FILTER,
|
|
||||||
(Filter) data.getParcelableExtra(MainActivity.OPEN_FILTER));
|
|
||||||
activity.recreate();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSaveInstanceState(Bundle outState) {
|
|
||||||
super.onSaveInstanceState(outState);
|
|
||||||
outState.putParcelable(EXTRA_CALDAV_CALENDAR, calendar);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean hasDraggableOption() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void inject(FragmentComponent component) {
|
|
||||||
component.inject(this);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,99 +0,0 @@
|
|||||||
package org.tasks.tasklist;
|
|
||||||
|
|
||||||
import static android.app.Activity.RESULT_OK;
|
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.view.MenuItem;
|
|
||||||
import androidx.appcompat.widget.Toolbar;
|
|
||||||
import com.todoroo.astrid.activity.MainActivity;
|
|
||||||
import com.todoroo.astrid.activity.TaskListFragment;
|
|
||||||
import com.todoroo.astrid.api.Filter;
|
|
||||||
import com.todoroo.astrid.api.GtasksFilter;
|
|
||||||
import com.todoroo.astrid.gtasks.sync.GtasksSyncService;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import org.tasks.R;
|
|
||||||
import org.tasks.activities.GoogleTaskListSettingsActivity;
|
|
||||||
import org.tasks.data.GoogleTaskList;
|
|
||||||
import org.tasks.injection.FragmentComponent;
|
|
||||||
|
|
||||||
public class GtasksListFragment extends TaskListFragment {
|
|
||||||
|
|
||||||
private static final String EXTRA_STORE_OBJECT = "extra_store_object";
|
|
||||||
private static final int REQUEST_LIST_SETTINGS = 10101;
|
|
||||||
protected GoogleTaskList list;
|
|
||||||
@Inject GtasksSyncService gtasksSyncService;
|
|
||||||
|
|
||||||
public static TaskListFragment newGtasksListFragment(GtasksFilter filter, GoogleTaskList list) {
|
|
||||||
GtasksListFragment fragment = new GtasksListFragment();
|
|
||||||
fragment.filter = filter;
|
|
||||||
fragment.list = list;
|
|
||||||
return fragment;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
|
|
||||||
if (savedInstanceState != null) {
|
|
||||||
list = savedInstanceState.getParcelable(EXTRA_STORE_OBJECT);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void inflateMenu(Toolbar toolbar) {
|
|
||||||
super.inflateMenu(toolbar);
|
|
||||||
toolbar.inflateMenu(R.menu.menu_gtasks_list_fragment);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMenuItemClick(MenuItem item) {
|
|
||||||
switch (item.getItemId()) {
|
|
||||||
case R.id.menu_gtasks_list_settings:
|
|
||||||
Intent intent = new Intent(getActivity(), GoogleTaskListSettingsActivity.class);
|
|
||||||
intent.putExtra(GoogleTaskListSettingsActivity.EXTRA_STORE_DATA, list);
|
|
||||||
startActivityForResult(intent, REQUEST_LIST_SETTINGS);
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return super.onMenuItemClick(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
||||||
if (requestCode == REQUEST_LIST_SETTINGS) {
|
|
||||||
if (resultCode == RESULT_OK) {
|
|
||||||
MainActivity activity = (MainActivity) getActivity();
|
|
||||||
String action = data.getAction();
|
|
||||||
if (GoogleTaskListSettingsActivity.ACTION_DELETED.equals(action)) {
|
|
||||||
activity.onFilterItemClicked(null);
|
|
||||||
} else if (GoogleTaskListSettingsActivity.ACTION_RELOAD.equals(action)) {
|
|
||||||
activity
|
|
||||||
.getIntent()
|
|
||||||
.putExtra(
|
|
||||||
MainActivity.OPEN_FILTER,
|
|
||||||
(Filter) data.getParcelableExtra(MainActivity.OPEN_FILTER));
|
|
||||||
activity.recreate();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSaveInstanceState(Bundle outState) {
|
|
||||||
super.onSaveInstanceState(outState);
|
|
||||||
outState.putParcelable(EXTRA_STORE_OBJECT, list);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean hasDraggableOption() {
|
|
||||||
return list != null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void inject(FragmentComponent component) {
|
|
||||||
component.inject(this);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,96 +0,0 @@
|
|||||||
package org.tasks.tasklist;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.view.MenuItem;
|
|
||||||
import androidx.appcompat.widget.Toolbar;
|
|
||||||
import com.todoroo.astrid.activity.MainActivity;
|
|
||||||
import com.todoroo.astrid.activity.TaskListFragment;
|
|
||||||
import com.todoroo.astrid.api.Filter;
|
|
||||||
import com.todoroo.astrid.api.TagFilter;
|
|
||||||
import org.tasks.R;
|
|
||||||
import org.tasks.activities.TagSettingsActivity;
|
|
||||||
import org.tasks.data.TagData;
|
|
||||||
import org.tasks.injection.FragmentComponent;
|
|
||||||
|
|
||||||
public class TagListFragment extends TaskListFragment {
|
|
||||||
|
|
||||||
private static final int REQUEST_EDIT_TAG = 11543;
|
|
||||||
private static final String EXTRA_TAG_DATA = "extra_tag_data";
|
|
||||||
protected TagData tagData;
|
|
||||||
|
|
||||||
public static TaskListFragment newTagViewFragment(TagFilter filter, TagData tagData) {
|
|
||||||
TagListFragment fragment = new TagListFragment();
|
|
||||||
fragment.filter = filter;
|
|
||||||
fragment.tagData = tagData;
|
|
||||||
return fragment;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
|
||||||
if (savedInstanceState != null) {
|
|
||||||
tagData = savedInstanceState.getParcelable(EXTRA_TAG_DATA);
|
|
||||||
}
|
|
||||||
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void inflateMenu(Toolbar toolbar) {
|
|
||||||
super.inflateMenu(toolbar);
|
|
||||||
toolbar.inflateMenu(R.menu.menu_tag_view_fragment);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMenuItemClick(MenuItem item) {
|
|
||||||
switch (item.getItemId()) {
|
|
||||||
case R.id.menu_tag_settings:
|
|
||||||
Intent intent = new Intent(getActivity(), TagSettingsActivity.class);
|
|
||||||
intent.putExtra(TagSettingsActivity.EXTRA_TAG_DATA, tagData);
|
|
||||||
startActivityForResult(intent, REQUEST_EDIT_TAG);
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return super.onMenuItemClick(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
||||||
if (requestCode == REQUEST_EDIT_TAG) {
|
|
||||||
if (resultCode == Activity.RESULT_OK) {
|
|
||||||
String action = data.getAction();
|
|
||||||
MainActivity activity = (MainActivity) getActivity();
|
|
||||||
if (TagSettingsActivity.ACTION_DELETED.equals(action)) {
|
|
||||||
activity.onFilterItemClicked(null);
|
|
||||||
} else if (TagSettingsActivity.ACTION_RELOAD.equals(action)) {
|
|
||||||
activity
|
|
||||||
.getIntent()
|
|
||||||
.putExtra(
|
|
||||||
MainActivity.OPEN_FILTER,
|
|
||||||
(Filter) data.getParcelableExtra(MainActivity.OPEN_FILTER));
|
|
||||||
activity.recreate();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSaveInstanceState(Bundle outState) {
|
|
||||||
super.onSaveInstanceState(outState);
|
|
||||||
|
|
||||||
outState.putParcelable(EXTRA_TAG_DATA, tagData);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean hasDraggableOption() {
|
|
||||||
return tagData != null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void inject(FragmentComponent component) {
|
|
||||||
component.inject(this);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue