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 da5ae7d0..b8dc0229 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 8760fb4d..6d223c28 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 00000000..665d5d59 --- /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 00000000..856e1d1e --- /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 00000000..088d70f1 --- /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 00000000..5703c0c9 --- /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 00000000..193b429a 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 00000000..3eee8170 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 00000000..ecaca87d 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 00000000..a7f677ab 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 00000000..8609f3dd 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 00000000..16535149 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 00000000..55245b75 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 00000000..9b95c85b 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 00000000..7bd939f5 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 00000000..e9253415 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 00000000..f07abec9 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 00000000..277b1e6f 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 00000000..50e2e275 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 00000000..6bf11714 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 00000000..1e4054c4 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 00000000..dd4a46c6 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 596c76eb..081878e5 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 e42da751..45daaeb6 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