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