Room DAO Order By ASC or DESC variable
Use CASE Expression
for SQLite to achieve this in Room DAO,
@Query("SELECT * FROM Persons ORDER BY CASE WHEN :isAsc = 1 THEN first_name END ASC, CASE WHEN :isAsc = 0 THEN first_name END DESC")List<Person> getPersonsAlphabetically(boolean isAsc);
Create two queries, one with ASC and one with DESC.
@Query("SELECT * FROM Persons ORDER BY last_name ASC")List<Person> getPersonsSortByAscLastName();@Query("SELECT * FROM Persons ORDER BY last_name DESC")List<Person> getPersonsSortByDescLastName();
Why don't you try something like this? I have not tested it.
@Query("SELECT * FROM Persons ORDER BY first_name :order")List<Person> getPersonsAlphabetically(String order);
And the logic you suggested should go before you make the query.