diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.kt index da5ae7d00..b8dc0229d 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsActivity.kt @@ -102,6 +102,7 @@ class ListHabitsActivity : AppCompatActivity() { } override fun onOptionsItemSelected(item: MenuItem): Boolean { + invalidateOptionsMenu() return menu.onItemSelected(item) } diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsMenu.kt b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsMenu.kt index 8760fb4db..6d223c288 100644 --- a/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsMenu.kt +++ b/uhabits-android/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsMenu.kt @@ -25,11 +25,13 @@ import android.view.MenuInflater import android.view.MenuItem import androidx.appcompat.app.AppCompatActivity import org.isoron.uhabits.R +import org.isoron.uhabits.core.models.HabitList import org.isoron.uhabits.core.preferences.Preferences import org.isoron.uhabits.core.ui.ThemeSwitcher import org.isoron.uhabits.core.ui.screens.habits.list.ListHabitsMenuBehavior import org.isoron.uhabits.inject.ActivityContext import org.isoron.uhabits.inject.ActivityScope +import org.isoron.uhabits.utils.StyledResources import javax.inject.Inject @ActivityScope @@ -50,6 +52,29 @@ class ListHabitsMenu @Inject constructor( nightModeItem.isChecked = themeSwitcher.isNightMode hideArchivedItem.isChecked = !preferences.showArchived hideCompletedItem.isChecked = !preferences.showCompleted + updateArrows(menu) + } + + private fun updateArrows(menu: Menu) { + val styledResources = StyledResources(activity) + val sortManual = menu.findItem(R.id.actionSortManual) + val sortName = menu.findItem(R.id.actionSortName) + val sortColor = menu.findItem(R.id.actionSortColor) + val sortScore = menu.findItem(R.id.actionSortScore) + val sortStatus = menu.findItem(R.id.actionSortStatus) + val arrowUp = styledResources.getDrawable(R.attr.iconArrowUp) + val arrowDown = styledResources.getDrawable(R.attr.iconArrowDown) + when (preferences.defaultPrimaryOrder) { + HabitList.Order.BY_NAME_ASC -> sortName.icon = arrowDown + HabitList.Order.BY_NAME_DESC -> sortName.icon = arrowUp + HabitList.Order.BY_COLOR_ASC -> sortColor.icon = arrowDown + HabitList.Order.BY_COLOR_DESC -> sortColor.icon = arrowUp + HabitList.Order.BY_SCORE_ASC -> sortScore.icon = arrowDown + HabitList.Order.BY_SCORE_DESC -> sortScore.icon = arrowUp + HabitList.Order.BY_STATUS_ASC -> sortStatus.icon = arrowDown + HabitList.Order.BY_STATUS_DESC -> sortStatus.icon = arrowUp + HabitList.Order.BY_POSITION -> sortManual.icon = arrowUp + } } fun onItemSelected(item: MenuItem): Boolean { diff --git a/uhabits-android/src/main/res/drawable-anydpi/ic_arrow_down_dark.xml b/uhabits-android/src/main/res/drawable-anydpi/ic_arrow_down_dark.xml new file mode 100644 index 000000000..665d5d593 --- /dev/null +++ b/uhabits-android/src/main/res/drawable-anydpi/ic_arrow_down_dark.xml @@ -0,0 +1,11 @@ + + + diff --git a/uhabits-android/src/main/res/drawable-anydpi/ic_arrow_down_light.xml b/uhabits-android/src/main/res/drawable-anydpi/ic_arrow_down_light.xml new file mode 100644 index 000000000..856e1d1e0 --- /dev/null +++ b/uhabits-android/src/main/res/drawable-anydpi/ic_arrow_down_light.xml @@ -0,0 +1,11 @@ + + + diff --git a/uhabits-android/src/main/res/drawable-anydpi/ic_arrow_up_dark.xml b/uhabits-android/src/main/res/drawable-anydpi/ic_arrow_up_dark.xml new file mode 100644 index 000000000..088d70f19 --- /dev/null +++ b/uhabits-android/src/main/res/drawable-anydpi/ic_arrow_up_dark.xml @@ -0,0 +1,11 @@ + + + diff --git a/uhabits-android/src/main/res/drawable-anydpi/ic_arrow_up_light.xml b/uhabits-android/src/main/res/drawable-anydpi/ic_arrow_up_light.xml new file mode 100644 index 000000000..5703c0c96 --- /dev/null +++ b/uhabits-android/src/main/res/drawable-anydpi/ic_arrow_up_light.xml @@ -0,0 +1,11 @@ + + + diff --git a/uhabits-android/src/main/res/drawable-hdpi/ic_arrow_down_dark.png b/uhabits-android/src/main/res/drawable-hdpi/ic_arrow_down_dark.png new file mode 100644 index 000000000..193b429a3 Binary files /dev/null and b/uhabits-android/src/main/res/drawable-hdpi/ic_arrow_down_dark.png differ diff --git a/uhabits-android/src/main/res/drawable-hdpi/ic_arrow_down_light.png b/uhabits-android/src/main/res/drawable-hdpi/ic_arrow_down_light.png new file mode 100644 index 000000000..3eee81705 Binary files /dev/null and b/uhabits-android/src/main/res/drawable-hdpi/ic_arrow_down_light.png differ diff --git a/uhabits-android/src/main/res/drawable-hdpi/ic_arrow_up_dark.png b/uhabits-android/src/main/res/drawable-hdpi/ic_arrow_up_dark.png new file mode 100644 index 000000000..ecaca87de Binary files /dev/null and b/uhabits-android/src/main/res/drawable-hdpi/ic_arrow_up_dark.png differ diff --git a/uhabits-android/src/main/res/drawable-hdpi/ic_arrow_up_light.png b/uhabits-android/src/main/res/drawable-hdpi/ic_arrow_up_light.png new file mode 100644 index 000000000..a7f677ab3 Binary files /dev/null and b/uhabits-android/src/main/res/drawable-hdpi/ic_arrow_up_light.png differ diff --git a/uhabits-android/src/main/res/drawable-mdpi/ic_arrow_down_dark.png b/uhabits-android/src/main/res/drawable-mdpi/ic_arrow_down_dark.png new file mode 100644 index 000000000..8609f3dd0 Binary files /dev/null and b/uhabits-android/src/main/res/drawable-mdpi/ic_arrow_down_dark.png differ diff --git a/uhabits-android/src/main/res/drawable-mdpi/ic_arrow_down_light.png b/uhabits-android/src/main/res/drawable-mdpi/ic_arrow_down_light.png new file mode 100644 index 000000000..16535149d Binary files /dev/null and b/uhabits-android/src/main/res/drawable-mdpi/ic_arrow_down_light.png differ diff --git a/uhabits-android/src/main/res/drawable-mdpi/ic_arrow_up_dark.png b/uhabits-android/src/main/res/drawable-mdpi/ic_arrow_up_dark.png new file mode 100644 index 000000000..55245b753 Binary files /dev/null and b/uhabits-android/src/main/res/drawable-mdpi/ic_arrow_up_dark.png differ diff --git a/uhabits-android/src/main/res/drawable-mdpi/ic_arrow_up_light.png b/uhabits-android/src/main/res/drawable-mdpi/ic_arrow_up_light.png new file mode 100644 index 000000000..9b95c85b1 Binary files /dev/null and b/uhabits-android/src/main/res/drawable-mdpi/ic_arrow_up_light.png differ diff --git a/uhabits-android/src/main/res/drawable-xhdpi/ic_arrow_down_dark.png b/uhabits-android/src/main/res/drawable-xhdpi/ic_arrow_down_dark.png new file mode 100644 index 000000000..7bd939f54 Binary files /dev/null and b/uhabits-android/src/main/res/drawable-xhdpi/ic_arrow_down_dark.png differ diff --git a/uhabits-android/src/main/res/drawable-xhdpi/ic_arrow_down_light.png b/uhabits-android/src/main/res/drawable-xhdpi/ic_arrow_down_light.png new file mode 100644 index 000000000..e9253415f Binary files /dev/null and b/uhabits-android/src/main/res/drawable-xhdpi/ic_arrow_down_light.png differ diff --git a/uhabits-android/src/main/res/drawable-xhdpi/ic_arrow_up_dark.png b/uhabits-android/src/main/res/drawable-xhdpi/ic_arrow_up_dark.png new file mode 100644 index 000000000..f07abec9e Binary files /dev/null and b/uhabits-android/src/main/res/drawable-xhdpi/ic_arrow_up_dark.png differ diff --git a/uhabits-android/src/main/res/drawable-xhdpi/ic_arrow_up_light.png b/uhabits-android/src/main/res/drawable-xhdpi/ic_arrow_up_light.png new file mode 100644 index 000000000..277b1e6f6 Binary files /dev/null and b/uhabits-android/src/main/res/drawable-xhdpi/ic_arrow_up_light.png differ diff --git a/uhabits-android/src/main/res/drawable-xxhdpi/ic_arrow_down_dark.png b/uhabits-android/src/main/res/drawable-xxhdpi/ic_arrow_down_dark.png new file mode 100644 index 000000000..50e2e2754 Binary files /dev/null and b/uhabits-android/src/main/res/drawable-xxhdpi/ic_arrow_down_dark.png differ diff --git a/uhabits-android/src/main/res/drawable-xxhdpi/ic_arrow_down_light.png b/uhabits-android/src/main/res/drawable-xxhdpi/ic_arrow_down_light.png new file mode 100644 index 000000000..6bf117145 Binary files /dev/null and b/uhabits-android/src/main/res/drawable-xxhdpi/ic_arrow_down_light.png differ diff --git a/uhabits-android/src/main/res/drawable-xxhdpi/ic_arrow_up_dark.png b/uhabits-android/src/main/res/drawable-xxhdpi/ic_arrow_up_dark.png new file mode 100644 index 000000000..1e4054c40 Binary files /dev/null and b/uhabits-android/src/main/res/drawable-xxhdpi/ic_arrow_up_dark.png differ diff --git a/uhabits-android/src/main/res/drawable-xxhdpi/ic_arrow_up_light.png b/uhabits-android/src/main/res/drawable-xxhdpi/ic_arrow_up_light.png new file mode 100644 index 000000000..dd4a46c6f Binary files /dev/null and b/uhabits-android/src/main/res/drawable-xxhdpi/ic_arrow_up_light.png differ diff --git a/uhabits-android/src/main/res/values/attrs.xml b/uhabits-android/src/main/res/values/attrs.xml index 596c76ebd..081878e5b 100644 --- a/uhabits-android/src/main/res/values/attrs.xml +++ b/uhabits-android/src/main/res/values/attrs.xml @@ -41,6 +41,8 @@ + + diff --git a/uhabits-android/src/main/res/values/styles.xml b/uhabits-android/src/main/res/values/styles.xml index e42da7511..45daaeb62 100644 --- a/uhabits-android/src/main/res/values/styles.xml +++ b/uhabits-android/src/main/res/values/styles.xml @@ -43,6 +43,8 @@ @drawable/ic_action_edit_dark @drawable/ic_action_filter_dark @drawable/ic_action_unarchive_dark + @drawable/ic_arrow_up_light + @drawable/ic_arrow_down_light @color/white @color/grey_300 @color/grey_350 @@ -84,6 +86,8 @@ @drawable/ic_action_edit_dark @drawable/ic_action_filter_dark @drawable/ic_action_unarchive_dark + @drawable/ic_arrow_up_dark + @drawable/ic_arrow_down_dark @color/grey_900 @color/grey_800 @color/grey_750