From 8d87988871fa8ae3cfa584ba27958d4fe9f377b3 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Sun, 18 Apr 2021 09:02:40 -0500 Subject: [PATCH] Add arrows to sort menu --- .../habits/list/ListHabitsActivity.kt | 1 + .../activities/habits/list/ListHabitsMenu.kt | 25 ++++++++++++++++++ .../drawable-anydpi/ic_arrow_down_dark.xml | 11 ++++++++ .../drawable-anydpi/ic_arrow_down_light.xml | 11 ++++++++ .../res/drawable-anydpi/ic_arrow_up_dark.xml | 11 ++++++++ .../res/drawable-anydpi/ic_arrow_up_light.xml | 11 ++++++++ .../res/drawable-hdpi/ic_arrow_down_dark.png | Bin 0 -> 240 bytes .../res/drawable-hdpi/ic_arrow_down_light.png | Bin 0 -> 237 bytes .../res/drawable-hdpi/ic_arrow_up_dark.png | Bin 0 -> 234 bytes .../res/drawable-hdpi/ic_arrow_up_light.png | Bin 0 -> 246 bytes .../res/drawable-mdpi/ic_arrow_down_dark.png | Bin 0 -> 180 bytes .../res/drawable-mdpi/ic_arrow_down_light.png | Bin 0 -> 182 bytes .../res/drawable-mdpi/ic_arrow_up_dark.png | Bin 0 -> 177 bytes .../res/drawable-mdpi/ic_arrow_up_light.png | Bin 0 -> 182 bytes .../res/drawable-xhdpi/ic_arrow_down_dark.png | Bin 0 -> 317 bytes .../drawable-xhdpi/ic_arrow_down_light.png | Bin 0 -> 294 bytes .../res/drawable-xhdpi/ic_arrow_up_dark.png | Bin 0 -> 299 bytes .../res/drawable-xhdpi/ic_arrow_up_light.png | Bin 0 -> 279 bytes .../drawable-xxhdpi/ic_arrow_down_dark.png | Bin 0 -> 574 bytes .../drawable-xxhdpi/ic_arrow_down_light.png | Bin 0 -> 526 bytes .../res/drawable-xxhdpi/ic_arrow_up_dark.png | Bin 0 -> 551 bytes .../res/drawable-xxhdpi/ic_arrow_up_light.png | Bin 0 -> 475 bytes uhabits-android/src/main/res/values/attrs.xml | 2 ++ .../src/main/res/values/styles.xml | 4 +++ 24 files changed, 76 insertions(+) create mode 100644 uhabits-android/src/main/res/drawable-anydpi/ic_arrow_down_dark.xml create mode 100644 uhabits-android/src/main/res/drawable-anydpi/ic_arrow_down_light.xml create mode 100644 uhabits-android/src/main/res/drawable-anydpi/ic_arrow_up_dark.xml create mode 100644 uhabits-android/src/main/res/drawable-anydpi/ic_arrow_up_light.xml create mode 100644 uhabits-android/src/main/res/drawable-hdpi/ic_arrow_down_dark.png create mode 100644 uhabits-android/src/main/res/drawable-hdpi/ic_arrow_down_light.png create mode 100644 uhabits-android/src/main/res/drawable-hdpi/ic_arrow_up_dark.png create mode 100644 uhabits-android/src/main/res/drawable-hdpi/ic_arrow_up_light.png create mode 100644 uhabits-android/src/main/res/drawable-mdpi/ic_arrow_down_dark.png create mode 100644 uhabits-android/src/main/res/drawable-mdpi/ic_arrow_down_light.png create mode 100644 uhabits-android/src/main/res/drawable-mdpi/ic_arrow_up_dark.png create mode 100644 uhabits-android/src/main/res/drawable-mdpi/ic_arrow_up_light.png create mode 100644 uhabits-android/src/main/res/drawable-xhdpi/ic_arrow_down_dark.png create mode 100644 uhabits-android/src/main/res/drawable-xhdpi/ic_arrow_down_light.png create mode 100644 uhabits-android/src/main/res/drawable-xhdpi/ic_arrow_up_dark.png create mode 100644 uhabits-android/src/main/res/drawable-xhdpi/ic_arrow_up_light.png create mode 100644 uhabits-android/src/main/res/drawable-xxhdpi/ic_arrow_down_dark.png create mode 100644 uhabits-android/src/main/res/drawable-xxhdpi/ic_arrow_down_light.png create mode 100644 uhabits-android/src/main/res/drawable-xxhdpi/ic_arrow_up_dark.png create mode 100644 uhabits-android/src/main/res/drawable-xxhdpi/ic_arrow_up_light.png 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 0000000000000000000000000000000000000000..193b429a3fad6cd6100235e78cb3f7dcee30b530 GIT binary patch literal 240 zcmVj}d!3`Wr`kkPtE)`*tr99^J0xhhzYen^%Av6>&cASjL>hb~K1RX4A-w(-3CZ1_FB z0(lk4t3X}_;zw3oJC+LK2Z-l6LY)Ei`*vIp)ep-`bQwlcP(Oe72y{6{8lf!EG>l}SG|+U6q@fU$hLIH1%lJJXBPl3t2+vK;K@sjx q$v_eAOASzj-~Uoa5w2HNb;my7p0Wdy`^b0z0000u+&pye3ULupVL25D5C_uzXy26a$B6NW(+Djb7) nsM9d0MV*d8g1QWbG3N9IYPZg!9Y$Dy00000NkvXXu0mjfO~qrO literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ecaca87de6c80645720f08ceecc87c0020bb9d75 GIT binary patch literal 234 zcmViv{} zd1B_G6lN}}ftiDHFz2ES%%kx=9%W!snXUSlZ`qAUSs3g;K-k@eqFNZ-EYPLQeF*9Z zgZmDIeSegP!5b5VTR&6;BOQTo?}JjHr0?%MkYu1%{U#JpN$=|-AgMxqhlv&iofbh} k1bGqUMUdCeff!>>FW$_wrY40zBLDyZ07*qoM6N<$f($2Lvj6}9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a7f677ab3c342c9f032f5b7613dd7861eb5dda2d GIT binary patch literal 246 zcmVZK zz{D8u7}HTTW;#m4OhZ|i;V6j-A>6d*At;H#2lH5~_Z4$;kG!W#8m7#@fH0T;)TZt2 z))A(xX`oXc*P}BZWns$t4urmf@-StO3PN2`Ef{2hP&ZT!vM%sINTP7J+|v{eS{T#< wLQmA&nATcB!y?FwATNTv2=e+l5M#{g0i-a_=zIy7BLDyZ07*qoM6N<$g4VWa7XSbN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8609f3dd0b9e621cd151b92bcbd3fc904f42cae3 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj)t)YnAr*0Nd*5;%P~c&`yRx`s zS=xbjPuMk1%-j<4H}GI{gUb2xbGg$FRo5?nSSJg7BhVoXp00i_>zopr0A<`o(*OVf literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..55245b7534c3db046a8616360d961c75535ccfce GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj6`n4RAr*0NdoOY}81T4Qw_96I z=H3;Y^He~(I7_8Yj&VVTl>qE%Ec^YmfWu*w-N`;Ok$ zer|WLb;i}rh3nUU;8-oQh3WC!Yn9^bWi~MQcxN@7Zd7I1+v9oe=L5+PEC){eToi8E h!0LQWJg4p7bP$uU3g3ff7Fdk>5Ny?_v_ZR+GeD z0feu0Tp}I0F--YrRf2CgpOSBtoBYSP+l6;XaG&!^zEN)RzH#>uzEgs`oM-aea)Wn` zyQkngB)B&-|84k+H%f2^vzYJ|Z;;@8(vJ;a@eK*iN^gwt65mn@;>!{(J>$I) zd|qO!jCVrWDPep+1dS5LcSEruVcZ{*1qtKc&_KdC{|kzQu`h%WLY&11Z!cjC1p3d7 P00000NkvXXu0mjfZ}Nsy literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e9253415fd4b115059d304980205aa6d12acca9f GIT binary patch literal 294 zcmV+>0oneEP)|nZe~}-2Ek)j?5-kGuw*6uI_9y2}xbm1H ziCO_)9&?C9e&o(&N+kFW=bp9lhY1)h61>kjIK4cmmEc{@jmye|8VTOx{POakRDySW z7FHgVNO11%#+C=aBsg2{^idw{N$`1h<-wLj$ys=LupzNK-IND465W*tB@*412YV9T smj`PS!;}YJVz~0aB!(?7gb-o~zK|qYN5qOj!2kdN07*qoM6N<$f_m|PmH+?% literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f07abec9e341f898f8330053915dac3eb00f9a54 GIT binary patch literal 299 zcmV+`0o4A9P)_2vx^&w#w<#DqS zz&uyN0_AbHD}Y^&gaymv_D}%(|4LXvd53R#@Az9}aBf=(D=hEuJ?|Gh16iEkM#3t} zJN$vuEXRk4x?m3K-79Fk~LegP7p@=lF_1Btff xYp50I1_@*%fovp@jRdlhKsFK(LI@!Oya0n;U;REggaQBn002ovPDHLkV1k=feU<V#QhvFJn*1^mXY$iWSmdXTXpx^Tq9z|g*ez%75x?Y*^9P^fY^sPedCYnCy)#F| zKY76O;;wImMIP`@IdhA!$^+ix`Rx%c@_=`F4sMHRl?S}f^UUyw9(llbcwRCzf&(n_ zfMs~j)FSXU?{$$Qtn#2W0F)7z$!G9Gt32ol0C?ka`5t-$ra=MTD8L&9c%uMs6yS{l dgb+dq10UB8SW1hJ06_o%002ovPDHLkV1gD&c>VwY literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..50e2e2754d7b60e0c462d101a1526bb51e99024d GIT binary patch literal 574 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@Zgyv2U}E)jaSW-5dpphBkJ(VbWhcX% zANP1Sp62S@%-9rMu>4r=(!k|Gp3jbF91Hee)q8i_?)hp#>(;dhIB_Tfi5wy0--!oz zooz}|;cze%Vp$-;$rRAT!l>ca#2}*V$j~)Wf#Il!Km#$-zMNXkF^{9-1I~mrosu=* zVWz#b@%g0nlhp6LX6~Bl6ku5&{VDQOSM}xqxqC|!V=gIQD`7p_BRb{Dk=V~(TKxMS z8kji=?abbwU_DLvX5!oZ2{Gq1JfF;SYcr2c5#?Oblja94h+~dg9d%i{`D89M0ajmD{1Kx>h#eQB&TTLULPx;CoJ$udp zY2~xe0z8+jYrC>@PX3x^onWA%Nz01+R3^@nS`oP)s6h4Xa~Th%-=>-SWi1=cecDd^ zob2)~>s$5Plbm}BjePpNcd5UgSoV~~jzLoE`P?*g!(+>MEgSh= z+GJ*Jd%|KTA-OI8))e6%4Jj|yWk&lM1Y9zE!eXnM>+N?T@RHe67IBr_XukrdNl#K7 oCOt9uHc7=D9EBW;X6N)@8P3?id9A7)m@XJRUHx3vIVCg!07|>?uK)l5 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6bf117145e43bed1cbf1bb59f4ad9dafb2ecf110 GIT binary patch literal 526 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@Zgyv2V7%(-;uum9_xAc(ufq-!tq<3g zKE6NKL|0_j3#}a&S|8|YeihmiozAqp<@!tiNtvE%&s+Hoe@-&#&)XGY@qAA4Im_pB zW~YXR{$18qy}8$b&8fvuK&huuAd#nqBU!;kf?4s91c%@;hYkW#np_z>WA1&7xXv+| zd&Rof)pENt8JF|vZ{oL)uUO~Za*}b&?YDA=p8twle_h_DeDa~@`%(Iv`S;rwKflCb zEaG9Y>-^b?hn($y8aYo8`u>X7MaK6}bJ2IL(9AiG9-Y6xFj=)Nj$9kIevex9L&f(s z2Fr|t9?6|8cpvh-;L(xu=U%T1%3E^eD^MU}@u5J=i9*-S4(|uo_Z=wPUHhc;ZAEWe^;@;Z#cfK3@rP|qHDyd$I(JLGJ8Cxj?Byo~A@M5jGIxj< z9{MQ%Zfp7$i&gwWo@zH~xQ^DU2KmO(9secFVdQ&MBb@0QRWp%m4rY literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1e4054c40ebeef66f3da1c62fb9f16e8abf57f75 GIT binary patch literal 551 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@Zgyv2V0`E4;uum9_jZD#-(d#BjzF<&YlxDw=dy-`X>02i{o3G6=KVzG>6NN|`kvo!Pi%2K`oU7Y=#}(3&4shRsU|uYmYkb8=U3lrFPGTelMH4^ zn7N-~T(qs_wZj$-PUcR(Ca{?_L z_Gmw}QoE+Z*?ZK$Qv4+2qg>AGnn}HrE(GvQEZ!)iaBq6SU4e~io*62$p8HH>>c%9JMwxYrhhq?pXYS_MXTl+3Ue~p=_STV2Tg5QrD&(CT(8smK- zEx}OCWrGB_QbZ4{pw6)-4zXlMmhO!TO-CaH4kqbz5GQQ}j4NP-&8Yp%o{~Ca@ro^` R)xZS6;OXk;vd$@?2>^qivyl7UHJL9?KRRF9tePG2^iM(Nid~-N^`TGa6rZzvKBxHIm94qI z7e3s%x~_26vY*!^IC~3wT9y^`e7P=j?&ZX359Wwv@}7G+VcUZ_Y?=IiA3Zb+lDeF| zI)#IIE}72Rwa&hB+Y`UZwwHwF?0Y}ILhf?u-OnF>9{v0=rF)Br`|ds67h@-SWEY6M zPkyvdW64&FE^EWbbCrOmX}mjHpr5^Dtwq;v!#lx|N^cJa-syiBH%0VPoXpYmq#fpZ z+)G3(y3QXh=$Dn!6zzMo+3?QnR}(xm3q|JlKfG5j%cW`B_sANk@Ot8eXAM9D_o=s4 zUyo||axOjZ(g$a~Kc9eRzwdf@Z&KQXxSiFPk9kxVTsboTCeISJ3GcdvIWzV9l+MH{ znEqKOuE;w-f6wl0=5xyDuer?-amYGQ`5 + + 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