Fixing some lifecycle issues

pull/384/head
Alex Baker 10 years ago
parent 2f0938a11a
commit e5c991e7db

@ -54,7 +54,7 @@ public class GtasksListFragment extends SubtasksListFragment {
private GtasksList list;
@Override
protected OrderedListFragmentHelperInterface<?> createFragmentHelper() {
protected OrderedListFragmentHelperInterface createFragmentHelper() {
return new OrderedMetadataListFragmentHelper<>(preferences, taskAttachmentDao, taskService, metadataDao, this, gtasksTaskListUpdater, dialogBuilder);
}

@ -45,7 +45,7 @@ import java.util.concurrent.atomic.AtomicReference;
import timber.log.Timber;
public class OrderedMetadataListFragmentHelper<LIST> implements OrderedListFragmentHelperInterface<LIST> {
public class OrderedMetadataListFragmentHelper<LIST> implements OrderedListFragmentHelperInterface {
private final DisplayMetrics metrics = new DisplayMetrics();
private final OrderedMetadataListUpdater<LIST> updater;

@ -28,8 +28,6 @@ public class TagViewFragment extends TaskListFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
tagData = savedInstanceState.getParcelable(EXTRA_TAG_DATA);
} else {
@ -55,6 +53,8 @@ public class TagViewFragment extends TaskListFragment {
tagDataDao.persist(tagData);
}
}
super.onCreate(savedInstanceState);
}
@Override

@ -540,7 +540,6 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
taskCreator.addToCalendar(task);
onTaskListItemClicked(task.getId());
taskListFragment.loadTaskListContent();
taskListFragment.selectCustomId(task.getId());
taskListFragment.onTaskCreated(task.getId(), task.getUUID());
}
};
@ -611,14 +610,9 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
navigationDrawer.refresh();
}
} else if (requestCode == REQUEST_SORT) {
if (resultCode == RESULT_OK && data != null) {
if (resultCode == RESULT_OK) {
TasksWidget.updateWidgets(this);
if (data.hasExtra(SortActivity.EXTRA_TOGGLE_MANUAL)) {
onFilterItemClicked(getTaskListFragment().getFilter());
} else {
getTaskListFragment().setUpTaskList();
}
onFilterItemClicked(getTaskListFragment().getFilter());
}
} else if (requestCode == REQUEST_UPGRADE) {
if (resultCode == RESULT_OK) {

@ -46,22 +46,17 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.core.BuiltInFilterExposer;
import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.dao.TaskListMetadataDao;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskAttachment;
import com.todoroo.astrid.data.TaskListMetadata;
import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import com.todoroo.astrid.helper.SyncActionHelper;
import com.todoroo.astrid.service.TaskDeleter;
import com.todoroo.astrid.service.TaskDuplicator;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.SubtasksHelper;
import com.todoroo.astrid.subtasks.SubtasksListFragment;
import com.todoroo.astrid.subtasks.SubtasksTagListFragment;
import com.todoroo.astrid.subtasks.SubtasksUpdater;
import com.todoroo.astrid.tags.TaskToTagMetadata;
import com.todoroo.astrid.timers.TimerPlugin;
@ -113,7 +108,6 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
// --- instance variables
@Inject TaskService taskService;
@Inject TaskListMetadataDao taskListMetadataDao;
@Inject TaskDeleter taskDeleter;
@Inject TaskDuplicator taskDuplicator;
@Inject @ForActivity Context context;
@ -124,21 +118,15 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
@Inject DialogBuilder dialogBuilder;
@Inject SyncActionHelper syncActionHelper;
protected TaskAdapter taskAdapter = null;
protected RefreshReceiver refreshReceiver = new RefreshReceiver();
private TaskAdapter taskAdapter = null;
private RefreshReceiver refreshReceiver = new RefreshReceiver();
private OnTaskListItemClickedListener mListener;
private SwipeRefreshLayout listView;
private SwipeRefreshLayout emptyView;
protected final AtomicReference<String> sqlQueryTemplate = new AtomicReference<>();
protected Filter filter;
protected Bundle extras;
protected boolean isInbox;
protected boolean isTodayFilter;
protected TaskListMetadata taskListMetadata;
// --- fragment handling variables
protected OnTaskListItemClickedListener mListener;
protected SwipeRefreshLayout listView;
protected SwipeRefreshLayout emptyView;
/*
* ======================================================================
@ -199,6 +187,8 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
if (extras == null) {
extras = new Bundle(); // Just need an empty one to prevent potential null pointers
}
setTaskAdapter();
}
public void initialize(Filter filter, Bundle extras) {
@ -264,20 +254,61 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
super.onActivityCreated(savedInstanceState);
// We have a menu item to show in action bar.
setHasOptionsMenu(true);
setUpUiComponents();
initializeData();
final ListView listView = getListView();
registerForContextMenu(listView);
// set listener for quick-changing task priority
listView.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View view, int keyCode, KeyEvent event) {
if (event.getAction() != KeyEvent.ACTION_UP || view == null) {
return false;
}
boolean filterOn = listView.isTextFilterEnabled();
View selected = listView.getSelectedView();
// hot-key to set task priority - 1-4 or ALT + Q-R
if (!filterOn && event.getUnicodeChar() >= '1'
&& event.getUnicodeChar() <= '4' && selected != null) {
int importance = event.getNumber() - '1';
Task task = ((ViewHolder) selected.getTag()).task;
task.setImportance(importance);
taskService.save(task);
taskAdapter.setFieldContentsAndVisibility(selected);
}
// filter
else if (!filterOn && event.getUnicodeChar() != 0) {
listView.setTextFilterEnabled(true);
listView.setFilterText(
Character.toString((char) event.getUnicodeChar()));
}
// turn off filter if nothing is selected
else if (filterOn
&& TextUtils.isEmpty(listView.getTextFilter())) {
listView.setTextFilterEnabled(false);
}
return false;
}
});
filter.setFilterQueryOverride(null);
setListAdapter(taskAdapter);
loadTaskListContent();
if (getResources().getBoolean(R.bool.two_pane_layout)) {
// In dual-pane mode, the list view highlights the selected item.
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
getListView().setItemsCanFocus(false);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listView.setItemsCanFocus(false);
}
if ((this instanceof SubtasksListFragment) || (this instanceof SubtasksTagListFragment)) {
return;
}
getListView().setOnItemClickListener(new OnItemClickListener() {
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
@ -301,102 +332,6 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
return null;
}
protected void initializeData() {
filter.setFilterQueryOverride(null);
isInbox = BuiltInFilterExposer.isInbox(context, filter);
isTodayFilter = false;
if (!isInbox) {
isTodayFilter = BuiltInFilterExposer.isTodayFilter(context, filter);
}
initializeTaskListMetadata();
setUpTaskList();
}
protected void initializeTaskListMetadata() {
TagData td = getActiveTagData();
String tdId;
if (td == null) {
String filterId = null;
String prefId = null;
if (isInbox) {
filterId = TaskListMetadata.FILTER_ID_ALL;
prefId = SubtasksUpdater.ACTIVE_TASKS_ORDER;
} else if (isTodayFilter) {
filterId = TaskListMetadata.FILTER_ID_TODAY;
prefId = SubtasksUpdater.TODAY_TASKS_ORDER;
}
if (!TextUtils.isEmpty(filterId)) {
taskListMetadata = taskListMetadataDao.fetchByTagId(filterId, TaskListMetadata.PROPERTIES);
if (taskListMetadata == null) {
String defaultOrder = preferences.getStringValue(prefId);
if (TextUtils.isEmpty(defaultOrder)) {
defaultOrder = "[]"; //$NON-NLS-1$
}
defaultOrder = SubtasksHelper.convertTreeToRemoteIds(taskService, defaultOrder);
taskListMetadata = new TaskListMetadata();
taskListMetadata.setFilter(filterId);
taskListMetadata.setTaskIDs(defaultOrder);
taskListMetadataDao.createNew(taskListMetadata);
}
}
} else {
tdId = td.getUuid();
taskListMetadata = taskListMetadataDao.fetchByTagId(td.getUuid(), TaskListMetadata.PROPERTIES);
if (taskListMetadata == null && !RemoteModel.isUuidEmpty(tdId)) {
taskListMetadata = new TaskListMetadata();
taskListMetadata.setTagUUID(tdId);
taskListMetadataDao.createNew(taskListMetadata);
}
}
postLoadTaskListMetadata();
}
protected void postLoadTaskListMetadata() {
// Hook
}
protected void setUpUiComponents() {
registerForContextMenu(getListView());
// set listener for quick-changing task priority
getListView().setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View view, int keyCode, KeyEvent event) {
if (event.getAction() != KeyEvent.ACTION_UP || view == null) {
return false;
}
boolean filterOn = getListView().isTextFilterEnabled();
View selected = getListView().getSelectedView();
// hot-key to set task priority - 1-4 or ALT + Q-R
if (!filterOn && event.getUnicodeChar() >= '1'
&& event.getUnicodeChar() <= '4' && selected != null) {
int importance = event.getNumber() - '1';
Task task = ((ViewHolder) selected.getTag()).task;
task.setImportance(importance);
taskService.save(task);
taskAdapter.setFieldContentsAndVisibility(selected);
}
// filter
else if (!filterOn && event.getUnicodeChar() != 0) {
getListView().setTextFilterEnabled(true);
getListView().setFilterText(
Character.toString((char) event.getUnicodeChar()));
}
// turn off filter if nothing is selected
else if (filterOn
&& TextUtils.isEmpty(getListView().getTextFilter())) {
getListView().setTextFilterEnabled(false);
}
return false;
}
});
}
/*
* ======================================================================
* ============================================================ lifecycle
@ -454,7 +389,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
* the above method takes care of calling it in the correct way
*/
protected void initiateAutomaticSyncImpl() {
if (isCurrentTaskListFragment() && isInbox) {
if (isCurrentTaskListFragment() && BuiltInFilterExposer.isInbox(context, filter)) {
syncActionHelper.initiateAutomaticSync();
}
}
@ -497,6 +432,8 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
*/
protected void refresh() {
loadTaskListContent();
setSyncOngoing(gtasksPreferenceService.isOngoing());
}
/*
@ -510,7 +447,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
*/
public void loadTaskListContent() {
if (taskAdapter == null) {
setUpTaskList();
setTaskAdapter();
return;
}
@ -518,16 +455,6 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
taskCursor.requery();
taskAdapter.notifyDataSetChanged();
if (getView() != null) { // This was happening sometimes
int oldListItemSelected = getListView().getSelectedItemPosition();
if (oldListItemSelected != ListView.INVALID_POSITION
&& oldListItemSelected < taskCursor.getCount()) {
getListView().setSelection(oldListItemSelected);
}
}
setSyncOngoing(gtasksPreferenceService.isOngoing());
}
protected TaskAdapter createTaskAdapter(TodorooCursor<Task> cursor) {
@ -548,7 +475,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
/**
* Fill in the Task List with current items
*/
public void setUpTaskList() {
public void setTaskAdapter() {
if (filter == null) {
return;
}
@ -560,10 +487,6 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
// set up list adapters
taskAdapter = createTaskAdapter(currentCursor);
setListAdapter(taskAdapter);
loadTaskListContent();
}
public Property<?>[] taskProperties() {
@ -632,22 +555,6 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
taskAdapter.changeCursor(cursor);
}
/**
* Select a custom task id in the list. If it doesn't exist, create a new
* custom filter
*/
public void selectCustomId(long withCustomId) {
// if already in the list, select it
TodorooCursor<Task> currentCursor = (TodorooCursor<Task>) taskAdapter.getCursor();
for (int i = 0; i < currentCursor.getCount(); i++) {
currentCursor.moveToPosition(i);
if (currentCursor.get(Task.ID) == withCustomId) {
getListView().setSelection(i);
return;
}
}
}
/*
* ======================================================================
* ============================================================== actions
@ -774,6 +681,6 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
}
protected boolean hasDraggableOption() {
return isInbox || isTodayFilter;
return BuiltInFilterExposer.isInbox(context, filter) || BuiltInFilterExposer.isTodayFilter(context, filter);
}
}

@ -40,7 +40,7 @@ import java.util.concurrent.atomic.AtomicReference;
import timber.log.Timber;
public class AstridOrderedListFragmentHelper<LIST> implements OrderedListFragmentHelperInterface<LIST> {
public class AstridOrderedListFragmentHelper<LIST> implements OrderedListFragmentHelperInterface {
private final DisplayMetrics metrics = new DisplayMetrics();
private final AstridOrderedListUpdater<LIST> updater;
@ -79,19 +79,18 @@ public class AstridOrderedListFragmentHelper<LIST> implements OrderedListFragmen
return fragment.getFilter();
}
public DraggableListView getTouchListView() {
return (DraggableListView) fragment.getListView();
}
@Override
public void setUpUiComponents() {
TypedValue tv = new TypedValue();
getActivity().getTheme().resolveAttribute(R.attr.asThemeTextColor, tv, false);
getTouchListView().setDragndropBackgroundColor(tv.data);
getTouchListView().setDropListener(dropListener);
getTouchListView().setClickListener(rowClickListener);
getTouchListView().setSwipeListener(swipeListener);
DraggableListView draggableListView = (DraggableListView) fragment.getListView();
draggableListView.setDragndropBackgroundColor(tv.data);
draggableListView.setDropListener(dropListener);
draggableListView.setClickListener(rowClickListener);
draggableListView.setSwipeListener(swipeListener);
getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);
draggableListView.setItemHightNormal(taskAdapter.computeFullRowHeight());
}
@Override
@ -177,8 +176,6 @@ public class AstridOrderedListFragmentHelper<LIST> implements OrderedListFragmen
taskAdapter = new DraggableTaskAdapter(context, preferences, fragment, cursor, sqlQueryTemplate, dialogBuilder);
getTouchListView().setItemHightNormal(taskAdapter.computeFullRowHeight());
taskAdapter.addOnCompletedTaskListener(new OnCompletedTaskListener() {
@Override
public void onCompletedTask(Task item, boolean newState) {
@ -281,7 +278,6 @@ public class AstridOrderedListFragmentHelper<LIST> implements OrderedListFragmen
updater.onCreateTask(list, getFilter(), uuid);
fragment.reconstructCursor();
fragment.loadTaskListContent();
fragment.selectCustomId(id);
}
@Override

@ -10,7 +10,7 @@ import com.todoroo.astrid.data.Task;
import java.util.concurrent.atomic.AtomicReference;
public interface OrderedListFragmentHelperInterface<T> {
public interface OrderedListFragmentHelperInterface {
void setUpUiComponents();
void beforeSetUpTaskList(Filter filter);

@ -7,6 +7,8 @@ package com.todoroo.astrid.subtasks;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
@ -14,7 +16,9 @@ import android.widget.ListView;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.adapter.TaskAdapter;
import com.todoroo.astrid.core.BuiltInFilterExposer;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.dao.TaskListMetadataDao;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskListMetadata;
import com.todoroo.astrid.service.TaskService;
@ -34,7 +38,7 @@ import javax.inject.Inject;
*/
public class SubtasksListFragment extends TaskListFragment {
protected OrderedListFragmentHelperInterface<?> helper;
protected OrderedListFragmentHelperInterface helper;
private int lastVisibleIndex = -1;
@ -44,6 +48,7 @@ public class SubtasksListFragment extends TaskListFragment {
@Inject ActivityPreferences preferences;
@Inject @ForApplication Context context;
@Inject DialogBuilder dialogBuilder;
@Inject TaskListMetadataDao taskListMetadataDao;
@Override
public void onAttach(Activity activity) {
@ -52,7 +57,7 @@ public class SubtasksListFragment extends TaskListFragment {
helper = createFragmentHelper();
}
protected OrderedListFragmentHelperInterface<?> createFragmentHelper() {
protected OrderedListFragmentHelperInterface createFragmentHelper() {
return new AstridOrderedListFragmentHelper<>(preferences, taskAttachmentDao, taskService, this, subtasksFilterUpdater, dialogBuilder);
}
@ -62,20 +67,48 @@ public class SubtasksListFragment extends TaskListFragment {
}
@Override
protected void setUpUiComponents() {
super.setUpUiComponents();
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
helper.setUpUiComponents();
}
@Override
public void setUpTaskList() {
public void setTaskAdapter() {
if (helper instanceof AstridOrderedListFragmentHelper) {
((AstridOrderedListFragmentHelper<TaskListMetadata>) helper).setList(taskListMetadata);
((AstridOrderedListFragmentHelper<TaskListMetadata>) helper).setList(initializeTaskListMetadata());
}
helper.beforeSetUpTaskList(filter);
super.setUpTaskList();
super.setTaskAdapter();
}
private TaskListMetadata initializeTaskListMetadata() {
String filterId = null;
String prefId = null;
if (BuiltInFilterExposer.isInbox(context, filter)) {
filterId = TaskListMetadata.FILTER_ID_ALL;
prefId = SubtasksUpdater.ACTIVE_TASKS_ORDER;
} else if (BuiltInFilterExposer.isTodayFilter(context, filter)) {
filterId = TaskListMetadata.FILTER_ID_TODAY;
prefId = SubtasksUpdater.TODAY_TASKS_ORDER;
}
if (TextUtils.isEmpty(filterId)) {
return null;
}
TaskListMetadata taskListMetadata = taskListMetadataDao.fetchByTagId(filterId, TaskListMetadata.PROPERTIES);
if (taskListMetadata == null) {
String defaultOrder = preferences.getStringValue(prefId);
if (TextUtils.isEmpty(defaultOrder)) {
defaultOrder = "[]"; //$NON-NLS-1$
}
defaultOrder = SubtasksHelper.convertTreeToRemoteIds(taskService, defaultOrder);
taskListMetadata = new TaskListMetadata();
taskListMetadata.setFilter(filterId);
taskListMetadata.setTaskIDs(defaultOrder);
taskListMetadataDao.createNew(taskListMetadata);
}
return taskListMetadata;
}
@Override
@ -109,10 +142,4 @@ public class SubtasksListFragment extends TaskListFragment {
protected TaskAdapter createTaskAdapter(TodorooCursor<Task> cursor) {
return helper.createTaskAdapter(context, cursor, sqlQueryTemplate);
}
@Override
protected void refresh() {
super.refresh();
initializeTaskListMetadata();
}
}

@ -7,6 +7,7 @@ package com.todoroo.astrid.subtasks;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
@ -14,6 +15,9 @@ import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.astrid.actfm.TagViewFragment;
import com.todoroo.astrid.adapter.TaskAdapter;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.dao.TaskListMetadataDao;
import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskListMetadata;
import com.todoroo.astrid.service.TaskService;
@ -33,6 +37,7 @@ public class SubtasksTagListFragment extends TagViewFragment {
@Inject ActivityPreferences preferences;
@Inject @ForApplication Context context;
@Inject DialogBuilder dialogBuilder;
@Inject TaskListMetadataDao taskListMetadataDao;
private AstridOrderedListFragmentHelper<TaskListMetadata> helper;
@ -45,11 +50,6 @@ public class SubtasksTagListFragment extends TagViewFragment {
helper = new AstridOrderedListFragmentHelper<>(preferences, taskAttachmentDao, taskService, this, subtasksFilterUpdater, dialogBuilder);
}
@Override
protected void postLoadTaskListMetadata() {
helper.setList(taskListMetadata);
}
@Override
protected View getListBody(ViewGroup root) {
return getActivity().getLayoutInflater().inflate(
@ -57,17 +57,30 @@ public class SubtasksTagListFragment extends TagViewFragment {
}
@Override
protected void setUpUiComponents() {
super.setUpUiComponents();
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
helper.setUpUiComponents();
}
@Override
public void setUpTaskList() {
public void setTaskAdapter() {
helper.setList(initializeTaskListMetadata());
helper.beforeSetUpTaskList(filter);
super.setUpTaskList();
super.setTaskAdapter();
}
private TaskListMetadata initializeTaskListMetadata() {
TagData td = getActiveTagData();
String tdId = td.getUuid();
TaskListMetadata taskListMetadata = taskListMetadataDao.fetchByTagId(td.getUuid(), TaskListMetadata.PROPERTIES);
if (taskListMetadata == null && !RemoteModel.isUuidEmpty(tdId)) {
taskListMetadata = new TaskListMetadata();
taskListMetadata.setTagUUID(tdId);
taskListMetadataDao.createNew(taskListMetadata);
}
return taskListMetadata;
}
@Override
@ -100,10 +113,4 @@ public class SubtasksTagListFragment extends TagViewFragment {
protected TaskAdapter createTaskAdapter(TodorooCursor<Task> cursor) {
return helper.createTaskAdapter(context, cursor, sqlQueryTemplate);
}
@Override
protected void refresh() {
super.refresh();
initializeTaskListMetadata();
}
}

@ -1,7 +1,6 @@
package org.tasks.activities;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.view.View;
@ -27,7 +26,6 @@ import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop;
public class SortActivity extends InjectingAppCompatActivity {
public static final String EXTRA_MANUAL_ENABLED = "extra_manual_enabled";
public static final String EXTRA_TOGGLE_MANUAL = "extra_toggle_manual";
@Inject Preferences preferences;
@Inject DialogBuilder dialogBuilder;
@ -117,7 +115,6 @@ public class SortActivity extends InjectingAppCompatActivity {
private void setSelection(boolean reverse) {
preferences.setBoolean(R.string.p_reverse_sort, reverse);
final boolean wasManual = preferences.getBoolean(R.string.p_manual_sort, false);
final boolean isManual = manualEnabled && selectedIndex == 0;
preferences.setBoolean(R.string.p_manual_sort, isManual);
@ -126,11 +123,7 @@ public class SortActivity extends InjectingAppCompatActivity {
preferences.setSortMode(getSortMode(manualEnabled ? selectedIndex : selectedIndex + 1));
}
setResult(RESULT_OK, new Intent() {{
if (wasManual != isManual) {
putExtra(EXTRA_TOGGLE_MANUAL, isManual);
}
}});
setResult(RESULT_OK);
finish();
}

Loading…
Cancel
Save