Add order menu

pull/216/head^2
Alinson S. Xavier 9 years ago
parent b1a06df7f8
commit 222261c674

@ -112,6 +112,18 @@ public class ListHabitsMenu extends BaseMenu
invalidate();
return true;
case R.id.actionSortColor:
adapter.setOrder(HabitList.Order.BY_COLOR);
return true;
case R.id.actionSortManual:
adapter.setOrder(HabitList.Order.BY_POSITION);
return true;
case R.id.actionSortName:
adapter.setOrder(HabitList.Order.BY_NAME);
return true;
default:
return false;
}

@ -260,6 +260,11 @@ public class HabitCardListAdapter
this.listView = listView;
}
public void setOrder(HabitList.Order order)
{
cache.setOrder(order);
}
/**
* Selects or deselects the item at a given position.
*

@ -180,6 +180,13 @@ public class HabitCardListCache implements CommandRunner.Listener
this.listener = listener;
}
public void setOrder(HabitList.Order order)
{
allHabits.setOrder(order);
filteredHabits.setOrder(order);
refreshAllHabits();
}
/**
* Interface definition for a callback to be invoked when the data on the
* cache has been modified.

@ -39,10 +39,13 @@ public class SQLiteHabitList extends HabitList
private static SQLiteHabitList instance;
@NonNull
private final SQLiteUtils<HabitRecord> sqlite;
@NonNull
private final ModelFactory modelFactory;
@NonNull
private Order order;
public SQLiteHabitList(@NonNull ModelFactory modelFactory)
@ -56,14 +59,15 @@ public class SQLiteHabitList extends HabitList
}
protected SQLiteHabitList(@NonNull ModelFactory modelFactory,
@NonNull HabitMatcher filter)
@NonNull HabitMatcher filter,
@NonNull Order order)
{
super(filter);
this.modelFactory = modelFactory;
if (cache == null) cache = new HashMap<>();
sqlite = new SQLiteUtils<>(HabitRecord.class);
order = Order.BY_POSITION;
this.order = order;
}
public static SQLiteHabitList getInstance(
@ -122,7 +126,7 @@ public class SQLiteHabitList extends HabitList
@Override
public HabitList getFiltered(HabitMatcher filter)
{
return new SQLiteHabitList(modelFactory, filter);
return new SQLiteHabitList(modelFactory, filter, order);
}
@Override

@ -45,6 +45,22 @@
android:checkable="true"
android:enabled="true"
android:title="@string/hide_completed"/>
<item android:title="@string/sort">
<menu>
<item
android:id="@+id/actionSortManual"
android:title="@string/manually"/>
<item
android:id="@+id/actionSortName"
android:title="@string/by_name"/>
<item
android:id="@+id/actionSortColor"
android:title="@string/by_color"/>
</menu>
</item>
</menu>
</item>
@ -73,5 +89,4 @@
android:orderInCategory="100"
android:title="@string/about"
app:showAsAction="never"/>
</menu>

@ -196,4 +196,9 @@
<string name="toggle">Toggle</string>
<string name="action">Action</string>
<string name="habit">Habit</string>
<string name="sort">Sort</string>
<string name="manually">Manually</string>
<string name="by_name">By name</string>
<string name="by_color">By color</string>
</resources>
Loading…
Cancel
Save