Remove sort flags

pull/281/head
Alex Baker 11 years ago
parent 72b52d5067
commit 0af1a45f38

@ -32,7 +32,7 @@ import static com.todoroo.andlib.utility.AndroidUtilities.atLeastHoneycomb;
public class SortSelectionActivity { public class SortSelectionActivity {
public interface OnSortSelectedListener { public interface OnSortSelectedListener {
void onSortSelected(int flags, int sort); void onSortSelected(boolean manualSettingChanged);
} }
/** /**
@ -40,7 +40,6 @@ public class SortSelectionActivity {
*/ */
public static AlertDialog createDialog(Activity activity, boolean showDragDrop, ActivityPreferences activityPreferences, public static AlertDialog createDialog(Activity activity, boolean showDragDrop, ActivityPreferences activityPreferences,
OnSortSelectedListener listener) { OnSortSelectedListener listener) {
int flags = activityPreferences.getSortFlags();
int editDialogTheme = activityPreferences.getEditDialogTheme(); int editDialogTheme = activityPreferences.getEditDialogTheme();
ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(activity, editDialogTheme); ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(activity, editDialogTheme);
LayoutInflater themedInflater = activity.getLayoutInflater().cloneInContext(contextThemeWrapper); LayoutInflater themedInflater = activity.getLayoutInflater().cloneInContext(contextThemeWrapper);
@ -54,7 +53,7 @@ public class SortSelectionActivity {
body.findViewById(R.id.sort_drag).setVisibility(View.GONE); body.findViewById(R.id.sort_drag).setVisibility(View.GONE);
} }
if(showDragDrop && (flags & SortHelper.FLAG_DRAG_DROP) > 0) { if(showDragDrop && activityPreferences.getBoolean(R.string.p_manual_sort, false)) {
((RadioButton) body.findViewById(R.id.sort_drag)).setChecked(true); ((RadioButton) body.findViewById(R.id.sort_drag)).setChecked(true);
} else { } else {
switch(activityPreferences.getSortMode()) { switch(activityPreferences.getSortMode()) {
@ -118,15 +117,13 @@ public class SortSelectionActivity {
@Override @Override
public void onClick(DialogInterface view, int button) { public void onClick(DialogInterface view, int button) {
int flags = 0;
int sort; int sort;
boolean wasManual = preferences.getBoolean(R.string.p_manual_sort, false);
boolean isManual = ((RadioButton) body.findViewById(R.id.sort_drag)).isChecked();
preferences.setBoolean(R.string.p_manual_sort, isManual);
preferences.setBoolean(R.string.p_reverse_sort, ((CheckBox) body.findViewById(R.id.reverse)).isChecked()); preferences.setBoolean(R.string.p_reverse_sort, ((CheckBox) body.findViewById(R.id.reverse)).isChecked());
if(((RadioButton)body.findViewById(R.id.sort_drag)).isChecked()) {
flags |= SortHelper.FLAG_DRAG_DROP;
}
if(((RadioButton)body.findViewById(R.id.sort_alpha)).isChecked()) { if(((RadioButton)body.findViewById(R.id.sort_alpha)).isChecked()) {
sort = SortHelper.SORT_ALPHA; sort = SortHelper.SORT_ALPHA;
} else if(((RadioButton)body.findViewById(R.id.sort_due)).isChecked()) { } else if(((RadioButton)body.findViewById(R.id.sort_due)).isChecked()) {
@ -139,7 +136,9 @@ public class SortSelectionActivity {
sort = SortHelper.SORT_AUTO; sort = SortHelper.SORT_AUTO;
} }
listener.onSortSelected(flags, sort); preferences.setSortMode(sort);
listener.onSortSelected(wasManual != isManual);
} }
} }
} }

@ -244,7 +244,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
public void setupTasklistFragmentWithFilter(Filter filter, Bundle extras) { public void setupTasklistFragmentWithFilter(Filter filter, Bundle extras) {
Class<?> customTaskList = null; Class<?> customTaskList = null;
if (subtasksHelper.shouldUseSubtasksFragmentForFilter(filter)) { if (subtasksHelper.shouldUseSubtasksFragmentForFilter(filter, getTaskListFragment().isDraggable())) {
customTaskList = SubtasksHelper.subtasksClassForFilter(filter); customTaskList = SubtasksHelper.subtasksClassForFilter(filter);
} }

@ -688,9 +688,8 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
+ Join.left(TaskAttachment.TABLE.as(FILE_METADATA_JOIN), Task.UUID.eq(Field.field(FILE_METADATA_JOIN + "." + TaskAttachment.TASK_UUID.name))) + Join.left(TaskAttachment.TABLE.as(FILE_METADATA_JOIN), Task.UUID.eq(Field.field(FILE_METADATA_JOIN + "." + TaskAttachment.TASK_UUID.name)))
+ filter.getSqlQuery(); + filter.getSqlQuery();
int sortFlags = SortHelper.setManualSort(preferences.getSortFlags(), isDraggable());
sqlQueryTemplate.set(SortHelper.adjustQueryForFlagsAndSort( sqlQueryTemplate.set(SortHelper.adjustQueryForFlagsAndSort(
preferences, joinedQuery, sortFlags, preferences.getSortMode())); preferences, joinedQuery, preferences.getSortMode()));
String groupedQuery; String groupedQuery;
if (sqlQueryTemplate.get().contains("GROUP BY")) { if (sqlQueryTemplate.get().contains("GROUP BY")) {
@ -896,17 +895,12 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
} }
@Override @Override
public void onSortSelected(int flags, int sort) { public void onSortSelected(boolean manualSettingChanged) {
boolean wasManualSort = SortHelper.isManualSort(preferences.getSortFlags());
boolean manualSettingChanged = wasManualSort != SortHelper.isManualSort(flags);
preferences.setSortFlags(flags);
preferences.setSortMode(sort);
TasksWidget.updateWidgets(context); TasksWidget.updateWidgets(context);
try { try {
if(manualSettingChanged) { if(manualSettingChanged) {
toggleDragDrop(!wasManualSort); toggleDragDrop(preferences.getBoolean(R.string.p_manual_sort, false));
} else { } else {
setUpTaskList(); setUpTaskList();
} }

@ -23,28 +23,6 @@ import org.tasks.preferences.Preferences;
*/ */
public class SortHelper { public class SortHelper {
@SuppressWarnings("UnusedDeclaration")
@Deprecated
public static final int FLAG_REVERSE_SORT = 1;
@SuppressWarnings("UnusedDeclaration")
@Deprecated
public static final int FLAG_SHOW_COMPLETED = 1 << 1;
@SuppressWarnings("UnusedDeclaration")
@Deprecated
public static final int FLAG_SHOW_HIDDEN = 1 << 2;
@SuppressWarnings("UnusedDeclaration")
@Deprecated
public static final int FLAG_SHOW_DELETED = 1 << 3;
public static final int FLAG_DRAG_DROP = 1 << 4;
@SuppressWarnings("UnusedDeclaration")
@Deprecated
private static final int FLAG_SHOW_RECENTLY_COMPLETED = 1 << 5;
public static final int SORT_AUTO = 0; public static final int SORT_AUTO = 0;
public static final int SORT_ALPHA = 1; public static final int SORT_ALPHA = 1;
public static final int SORT_DUE = 2; public static final int SORT_DUE = 2;
@ -55,7 +33,7 @@ public class SortHelper {
/** /**
* Takes a SQL query, and if there isn't already an order, creates an order. * Takes a SQL query, and if there isn't already an order, creates an order.
*/ */
public static String adjustQueryForFlagsAndSort(Preferences preferences, String originalSql, int flags, int sort) { public static String adjustQueryForFlagsAndSort(Preferences preferences, String originalSql, int sort) {
// sort // sort
if(originalSql == null) { if(originalSql == null) {
originalSql = ""; originalSql = "";
@ -89,18 +67,6 @@ public class SortHelper {
return originalSql; return originalSql;
} }
public static boolean isManualSort(int flags) {
return (flags & FLAG_DRAG_DROP) > 0;
}
public static int setManualSort(int flags, boolean status) {
flags = (flags & ~FLAG_DRAG_DROP);
if(status) {
flags |= FLAG_DRAG_DROP;
}
return flags;
}
public static Order orderForSortType(int sortType) { public static Order orderForSortType(int sortType) {
Order order; Order order;
switch(sortType) { switch(sortType) {

@ -22,6 +22,7 @@ import com.todoroo.astrid.subtasks.AstridOrderedListUpdater.Node;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
@ -50,10 +51,9 @@ public class SubtasksHelper {
this.taskListMetadataDao = taskListMetadataDao; this.taskListMetadataDao = taskListMetadataDao;
} }
public boolean shouldUseSubtasksFragmentForFilter(Filter filter) { public boolean shouldUseSubtasksFragmentForFilter(Filter filter, boolean isDraggable) {
if(filter == null || BuiltInFilterExposer.isInbox(context, filter) || BuiltInFilterExposer.isTodayFilter(context, filter) || filter.isTagFilter()) { if(filter == null || BuiltInFilterExposer.isInbox(context, filter) || BuiltInFilterExposer.isTodayFilter(context, filter) || filter.isTagFilter()) {
int sortFlags = preferences.getSortFlags(); if(isDraggable && preferences.getBoolean(R.string.p_manual_sort, false)) {
if(SortHelper.isManualSort(sortFlags)) {
return true; return true;
} }
} }
@ -68,7 +68,7 @@ public class SubtasksHelper {
} }
public String applySubtasksToWidgetFilter(Filter filter, String query, String tagName, int limit) { public String applySubtasksToWidgetFilter(Filter filter, String query, String tagName, int limit) {
if (shouldUseSubtasksFragmentForFilter(filter)) { if (shouldUseSubtasksFragmentForFilter(filter, true)) {
// care for manual ordering // care for manual ordering
TagData tagData = tagDataDao.getTagByName(tagName, TagData.UUID, TagData.TAG_ORDERING); TagData tagData = tagDataDao.getTagByName(tagName, TagData.UUID, TagData.TAG_ORDERING);
TaskListMetadata tlm = null; TaskListMetadata tlm = null;

@ -122,10 +122,9 @@ public class WidgetUpdateService extends InjectingService {
views.setTextViewText(R.id.widget_title, filter.listingTitle); views.setTextViewText(R.id.widget_title, filter.listingTitle);
views.removeAllViews(R.id.taskbody); views.removeAllViews(R.id.taskbody);
int flags = preferences.getSortFlags();
int sort = preferences.getSortMode(); int sort = preferences.getSortMode();
String query = SortHelper.adjustQueryForFlagsAndSort(preferences, String query = SortHelper.adjustQueryForFlagsAndSort(preferences,
filter.getSqlQuery(), flags, sort).replaceAll("LIMIT \\d+", "") + " LIMIT " + numberOfTasks; filter.getSqlQuery(), sort).replaceAll("LIMIT \\d+", "") + " LIMIT " + numberOfTasks;
String tagName = preferences.getStringValue(WidgetConfigActivity.PREF_TITLE + widgetId); String tagName = preferences.getStringValue(WidgetConfigActivity.PREF_TITLE + widgetId);
boolean showDueDates = preferences.getBoolean(WidgetConfigActivity.PREF_SHOW_DUE_DATE + widgetId, false); boolean showDueDates = preferences.getBoolean(WidgetConfigActivity.PREF_SHOW_DUE_DATE + widgetId, false);

@ -1,6 +1,5 @@
package org.tasks.preferences; package org.tasks.preferences;
import android.bluetooth.BluetoothClass;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.res.Resources; import android.content.res.Resources;
@ -44,7 +43,6 @@ public class Preferences {
private static final String P_CURRENT_VERSION = "cv"; //$NON-NLS-1$ private static final String P_CURRENT_VERSION = "cv"; //$NON-NLS-1$
private static final String P_CURRENT_VERSION_NAME = "cvname"; //$NON-NLS-1$ private static final String P_CURRENT_VERSION_NAME = "cvname"; //$NON-NLS-1$
private static final String PREF_SORT_FLAGS = "sort_flags"; //$NON-NLS-1$
private static final String PREF_SORT_SORT = "sort_sort"; //$NON-NLS-1$ private static final String PREF_SORT_SORT = "sort_sort"; //$NON-NLS-1$
private static final String FILE_APPENDER_NAME = "FILE"; private static final String FILE_APPENDER_NAME = "FILE";
@ -216,18 +214,10 @@ public class Preferences {
setString(P_CURRENT_VERSION_NAME, versionName); setString(P_CURRENT_VERSION_NAME, versionName);
} }
public int getSortFlags() {
return publicPrefs.getInt(PREF_SORT_FLAGS, 0);
}
public int getSortMode() { public int getSortMode() {
return publicPrefs.getInt(PREF_SORT_SORT, SortHelper.SORT_AUTO); return publicPrefs.getInt(PREF_SORT_SORT, SortHelper.SORT_AUTO);
} }
public void setSortFlags(int value) {
setPublicPref(PREF_SORT_FLAGS, value);
}
public void setSortMode(int value) { public void setSortMode(int value) {
setPublicPref(PREF_SORT_SORT, value); setPublicPref(PREF_SORT_SORT, value);
} }

@ -197,14 +197,13 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
} }
private String getQuery() { private String getQuery() {
int flags = preferences.getSortFlags();
int sort = preferences.getSortMode(); int sort = preferences.getSortMode();
if(sort == 0) { if(sort == 0) {
sort = SortHelper.SORT_WIDGET; sort = SortHelper.SORT_WIDGET;
} }
String query = SortHelper.adjustQueryForFlagsAndSort(preferences, String query = SortHelper.adjustQueryForFlagsAndSort(preferences,
filter.getSqlQuery(), flags, sort).replaceAll("LIMIT \\d+", ""); filter.getSqlQuery(), sort).replaceAll("LIMIT \\d+", "");
String tagName = preferences.getStringValue(WidgetConfigActivity.PREF_TITLE + widgetId); String tagName = preferences.getStringValue(WidgetConfigActivity.PREF_TITLE + widgetId);

@ -246,6 +246,7 @@
<string name="p_show_hidden_tasks">show_hidden_tasks</string> <string name="p_show_hidden_tasks">show_hidden_tasks</string>
<string name="p_show_completed_tasks">show_completed_tasks</string> <string name="p_show_completed_tasks">show_completed_tasks</string>
<string name="p_reverse_sort">reverse_sort</string> <string name="p_reverse_sort">reverse_sort</string>
<string name="p_manual_sort">manual_sort</string>
<string-array name="TEA_control_sets_prefs"> <string-array name="TEA_control_sets_prefs">
<item>@string/TEA_ctrl_when_pref</item> <item>@string/TEA_ctrl_when_pref</item>

Loading…
Cancel
Save