Add new menu item to sort by score ascending

pull/556/head
Scrimbly 6 years ago
parent 58d8c799ce
commit ddbb606e74

@ -111,6 +111,11 @@ class ListHabitsMenu @Inject constructor(
return true
}
R.id.actionSortScoreAsc -> {
behavior.onSortByScoreAsc()
return true
}
else -> return false
}
}

@ -65,6 +65,10 @@
<item
android:id="@+id/actionSortScore"
android:title="@string/by_score"/>
<item
android:id="@+id/actionSortScoreAsc"
android:title="@string/by_score_asc"/>
</menu>
</item>
</menu>

@ -220,6 +220,7 @@
<string name="by_name">By name</string>
<string name="by_color">By color</string>
<string name="by_score">By score</string>
<string name="by_score_asc">By lowest score</string>
<string name="download">Download</string>
<string name="export">Export</string>
<string name="long_press_to_edit">Press-and-hold to change the value</string>

@ -245,6 +245,7 @@ public abstract class HabitList implements Iterable<Habit>
BY_NAME,
BY_COLOR,
BY_SCORE,
BY_POSITION
BY_POSITION,
BY_SCORE_ASC
}
}

@ -151,6 +151,7 @@ public class MemoryHabitList extends HabitList
if (order == BY_NAME) return nameComparator;
if (order == BY_COLOR) return colorComparator;
if (order == BY_SCORE) return scoreComparator;
if (order == BY_SCORE_ASC) return scoreComparator.reversed();
throw new IllegalStateException();
}

@ -115,6 +115,11 @@ public class ListHabitsMenuBehavior
adapter.setOrder(HabitList.Order.BY_SCORE);
}
public void onSortByScoreAsc()
{
adapter.setOrder(HabitList.Order.BY_SCORE_ASC);
}
public void onSortByName()
{
adapter.setOrder(HabitList.Order.BY_NAME);

@ -123,6 +123,14 @@ public class ListHabitsMenuBehaviorTest extends BaseUnitTest
assertThat(orderCaptor.getValue(), equalTo(BY_SCORE));
}
@Test
public void testOnSortScoreAsc()
{
behavior.onSortByScoreAsc();
verify(adapter).setOrder(orderCaptor.capture());
assertThat(orderCaptor.getValue(), equalTo(BY_SCORE_ASC));
}
@Test
public void testOnSortName()
{

@ -17,6 +17,7 @@ open class Strings() {
open val by_color = "By color"
open val by_name = "By name"
open val by_score = "By score"
open val by_score_asc = "By lowest score"
open val calendar = "Calendar"
open val cancel = "Cancel"
open val change_value = "Change value"

Loading…
Cancel
Save