mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-06 09:08:52 -06:00
Add order menu
This commit is contained in:
@@ -112,6 +112,18 @@ public class ListHabitsMenu extends BaseMenu
|
|||||||
invalidate();
|
invalidate();
|
||||||
return true;
|
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:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -260,6 +260,11 @@ public class HabitCardListAdapter
|
|||||||
this.listView = listView;
|
this.listView = listView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setOrder(HabitList.Order order)
|
||||||
|
{
|
||||||
|
cache.setOrder(order);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Selects or deselects the item at a given position.
|
* Selects or deselects the item at a given position.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -180,6 +180,13 @@ public class HabitCardListCache implements CommandRunner.Listener
|
|||||||
this.listener = 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
|
* Interface definition for a callback to be invoked when the data on the
|
||||||
* cache has been modified.
|
* cache has been modified.
|
||||||
|
|||||||
@@ -39,10 +39,13 @@ public class SQLiteHabitList extends HabitList
|
|||||||
|
|
||||||
private static SQLiteHabitList instance;
|
private static SQLiteHabitList instance;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
private final SQLiteUtils<HabitRecord> sqlite;
|
private final SQLiteUtils<HabitRecord> sqlite;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
private final ModelFactory modelFactory;
|
private final ModelFactory modelFactory;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
private Order order;
|
private Order order;
|
||||||
|
|
||||||
public SQLiteHabitList(@NonNull ModelFactory modelFactory)
|
public SQLiteHabitList(@NonNull ModelFactory modelFactory)
|
||||||
@@ -56,14 +59,15 @@ public class SQLiteHabitList extends HabitList
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected SQLiteHabitList(@NonNull ModelFactory modelFactory,
|
protected SQLiteHabitList(@NonNull ModelFactory modelFactory,
|
||||||
@NonNull HabitMatcher filter)
|
@NonNull HabitMatcher filter,
|
||||||
|
@NonNull Order order)
|
||||||
{
|
{
|
||||||
super(filter);
|
super(filter);
|
||||||
this.modelFactory = modelFactory;
|
this.modelFactory = modelFactory;
|
||||||
|
|
||||||
if (cache == null) cache = new HashMap<>();
|
if (cache == null) cache = new HashMap<>();
|
||||||
sqlite = new SQLiteUtils<>(HabitRecord.class);
|
sqlite = new SQLiteUtils<>(HabitRecord.class);
|
||||||
order = Order.BY_POSITION;
|
this.order = order;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SQLiteHabitList getInstance(
|
public static SQLiteHabitList getInstance(
|
||||||
@@ -122,7 +126,7 @@ public class SQLiteHabitList extends HabitList
|
|||||||
@Override
|
@Override
|
||||||
public HabitList getFiltered(HabitMatcher filter)
|
public HabitList getFiltered(HabitMatcher filter)
|
||||||
{
|
{
|
||||||
return new SQLiteHabitList(modelFactory, filter);
|
return new SQLiteHabitList(modelFactory, filter, order);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -45,6 +45,22 @@
|
|||||||
android:checkable="true"
|
android:checkable="true"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:title="@string/hide_completed"/>
|
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>
|
</menu>
|
||||||
</item>
|
</item>
|
||||||
|
|
||||||
@@ -73,5 +89,4 @@
|
|||||||
android:orderInCategory="100"
|
android:orderInCategory="100"
|
||||||
android:title="@string/about"
|
android:title="@string/about"
|
||||||
app:showAsAction="never"/>
|
app:showAsAction="never"/>
|
||||||
|
|
||||||
</menu>
|
</menu>
|
||||||
|
|||||||
@@ -196,4 +196,9 @@
|
|||||||
<string name="toggle">Toggle</string>
|
<string name="toggle">Toggle</string>
|
||||||
<string name="action">Action</string>
|
<string name="action">Action</string>
|
||||||
<string name="habit">Habit</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>
|
</resources>
|
||||||
Reference in New Issue
Block a user