From eb6fa95eeebcfd306049510b0abc8854a5728884 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Mon, 28 Aug 2023 12:06:20 +0200 Subject: [PATCH] add indicator --- .../res/drawable-hdpi/checkmark_small.png | Bin 0 -> 383 bytes .../res/drawable-hdpi/indicator_subscribe.png | Bin 0 -> 232 bytes .../res/drawable-mdpi/checkmark_small.png | Bin 0 -> 291 bytes .../drawable-night/indicator_subscribe.png | Bin 0 -> 232 bytes .../res/drawable-xhdpi/checkmark_small.png | Bin 0 -> 449 bytes .../drawable-xhdpi/indicator_subscribe.png | Bin 0 -> 325 bytes .../res/drawable-xxhdpi/checkmark_small.png | Bin 0 -> 610 bytes .../drawable-xxhdpi/indicator_subscribe.png | Bin 0 -> 430 bytes .../res/drawable/item_indicator_subscribe.xml | 11 ++++ Habitica/res/layout/row_shopitem.xml | 48 +++++++++++++----- .../ui/activities/FullProfileActivity.kt | 2 +- .../customization/AvatarOverviewFragment.kt | 2 +- .../fragments/inventory/shops/ShopFragment.kt | 6 ++- .../ui/viewHolders/ShopItemViewHolder.kt | 14 ++++- 14 files changed, 65 insertions(+), 18 deletions(-) create mode 100644 Habitica/res/drawable-hdpi/checkmark_small.png create mode 100644 Habitica/res/drawable-hdpi/indicator_subscribe.png create mode 100644 Habitica/res/drawable-mdpi/checkmark_small.png create mode 100644 Habitica/res/drawable-night/indicator_subscribe.png create mode 100644 Habitica/res/drawable-xhdpi/checkmark_small.png create mode 100644 Habitica/res/drawable-xhdpi/indicator_subscribe.png create mode 100644 Habitica/res/drawable-xxhdpi/checkmark_small.png create mode 100644 Habitica/res/drawable-xxhdpi/indicator_subscribe.png create mode 100644 Habitica/res/drawable/item_indicator_subscribe.xml diff --git a/Habitica/res/drawable-hdpi/checkmark_small.png b/Habitica/res/drawable-hdpi/checkmark_small.png new file mode 100644 index 0000000000000000000000000000000000000000..c23aec12713c94454d13bf3ac780ed47b7392f40 GIT binary patch literal 383 zcmV-_0f7FAP)Py$#9)zy{f%?gV86U;@~{N=pdkC5(^}@=ysRY9F>CjTO04 zdrx;~fB&8RBb*SGs*){!KihN)2vVE^Z}IEFgDx1eqv3VFnFHXgtr1L(M}ur+2SWYB zKprmC$54Q7QcCMS_?mBSn9XC?;bzA;B70Y?^7o}dU1}>CIOyJKFz9t$qap7L9)Z0uTE?w@t dq=mF{FZV?u2g60}4DY!Y|#bamdKI;Vst06}$6M*si- literal 0 HcmV?d00001 diff --git a/Habitica/res/drawable-mdpi/checkmark_small.png b/Habitica/res/drawable-mdpi/checkmark_small.png new file mode 100644 index 0000000000000000000000000000000000000000..8365cc6352c7c053a35af4fc2596234f19c7966e GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^AT|dF8<0HkD{mW+;w(0r%1aer?9eo`c7&i8E|4C#8@^^T;IEGX(_WGaZZ3+;$Q#+|*DT~(w4MmlG zd`p;|SVM=D5wm_CasAcvv2X?Uo>36>O9Gj7G<8WG9xsmnhFUwbL`Bb$`#N}*C z%ZcQNucmKEx09N9P`B-d=BFyx1BVz@8~LO*TRi{D*N|_(oW1t2wD`@ZdRI~>GcU1T zI;|x!IoB{pSvKm8!<-p~3>&W-uG>^HU+GP}((9b4nbYhd_8Oo3A#yhTV|vmF{FZV?u2g60}4DY!Y|#bamdKI;Vst06}$6M*si- literal 0 HcmV?d00001 diff --git a/Habitica/res/drawable-xhdpi/checkmark_small.png b/Habitica/res/drawable-xhdpi/checkmark_small.png new file mode 100644 index 0000000000000000000000000000000000000000..4545f631f0896d73efad43567adc1afad109c735 GIT binary patch literal 449 zcmV;y0Y3hTP)CCitm5 z=C-r{emjpJ;lc>~j|EURN5BN>%0{>#N?7hzX9SAR1_u7S14OH4{w!c1LrcAsZ5Y0s z3=Czcr$~`{KB~iD`$IQ|1}6l=vZAss7ziPZ1S1)ZcG})S0$pusZHn8t3&y%n+(!hU z*Ka6E2@N5}TRv$@v;+cI2_JIIqBpsjcL8_!_1uO5q(q{E6+i~n%12xVez^FbE9?Py z--IF2qY!4TBc7qx6mrECwCS~jCV!fWN!vD34f(1!AFKoj@<+ZD?<6#)vgX|&ApAQ+D(ld#+Dgq`MG_@nr~>t}}v8g_9VibfNHs-`)z<)s`xc|(87ru!R0qPSwy_r+DLSbbn> z#=>AbYyF%np$oj0T#&q8@NmJpMeF8pJyq~8-s5)4L~Lq!>%FZr+!LOy5Sk~j^2i=X z6Oqqufx$U{D`)TgH}&88xNjGAM3S#BQvOzHqZVzS8t=bEOm4~hliRNQgayZoXV@|GglDtd8!)9JIgw+41jz=#=<;L^rWl8?x>v9ZC8uNzB4@u< z{nF~+5jizu5K%R$5_uW!1w8XA>UG=qSFU;a4UsBWH;DoSgKBdH3lx-6@!|4yixZ3MiA0!hH@jN%n*f8Rh;e3j4yphoe9^2-IpKbiK(yQHe#$O1qrM896bN;HW zyCt3}LO@N(IaBI#09(lObmEp-;%eX6xkPNM!nRO1&os#^Pw}1WzRf>?ZFT~SG&hfk wS3h1l;&#!-4*@9{DI7W0=ERW{;D4Z^A9H{8!Dtk;p#T5?07*qoM6N<$f}6+;qW}N^ literal 0 HcmV?d00001 diff --git a/Habitica/res/drawable-xxhdpi/indicator_subscribe.png b/Habitica/res/drawable-xxhdpi/indicator_subscribe.png new file mode 100644 index 0000000000000000000000000000000000000000..cb4d663b6db922241d31f8ec74a59f01a0400d0e GIT binary patch literal 430 zcmV;f0a5;mP)avkWZ z=%R7w*bPkdsb&XS6lB`T=daaZ*g z)s%8oHH#{0c3f3GMJ*O+02q9}85{m)^IV$0gq6Y|aM8dnGUl8OB zh2KPfAjsJieuz#W$axVC6AE%x;Um784&i^Mo?o5*&%~Mj^~9O}h0mFO3FS<`Dd801 z8|h_p5xkNC&wDhH9?LT;X3;ivn(52h>3+t$GHD8#YgSyMimI-f6~tPfK=%xBiwdf` zYgSOZr)0b)1|mAB3aME^?njgGoC%odMpanN3VMg1c8=Yg2}mti_5isb6A-9q16s0k Y2g!A$Z~EM|P5=M^07*qoM6N<$f^T!HApigX literal 0 HcmV?d00001 diff --git a/Habitica/res/drawable/item_indicator_subscribe.xml b/Habitica/res/drawable/item_indicator_subscribe.xml new file mode 100644 index 000000000..638af238a --- /dev/null +++ b/Habitica/res/drawable/item_indicator_subscribe.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/Habitica/res/layout/row_shopitem.xml b/Habitica/res/layout/row_shopitem.xml index 35e4b3aea..865c65947 100644 --- a/Habitica/res/layout/row_shopitem.xml +++ b/Habitica/res/layout/row_shopitem.xml @@ -1,10 +1,11 @@ + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:clickable="true" + android:focusable="true"> - + android:padding="6dp"> + + + () val specialCategory = ShopCategory() specialCategory.text = getString(R.string.special) val item = ShopItem.makeGemItem(context?.resources) - item.limitedNumberLeft = user?.purchased?.plan?.numberOfGemsLeft + if (user?.isSubscribed == true) { + item.limitedNumberLeft = user.purchased?.plan?.numberOfGemsLeft + } else { + item.limitedNumberLeft = -1 + } specialCategory.items.add(item) specialCategory.items.add(ShopItem.makeFortifyItem(context?.resources)) shop1.categories.add(specialCategory) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ShopItemViewHolder.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ShopItemViewHolder.kt index c022b63ab..8725fdc93 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ShopItemViewHolder.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewHolders/ShopItemViewHolder.kt @@ -4,7 +4,9 @@ import android.content.Context import android.graphics.drawable.BitmapDrawable import android.view.View import android.view.ViewGroup +import androidx.appcompat.content.res.AppCompatResources import androidx.recyclerview.widget.RecyclerView +import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.RowShopitemBinding import com.habitrpg.android.habitica.models.shops.ShopItem import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper @@ -26,7 +28,13 @@ class ShopItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), Vi var isPinned = false set(value) { field = value - binding.pinIndicator.visibility = if (isPinned) View.VISIBLE else View.GONE + binding.pinIndicator.visibility = if (field) View.VISIBLE else View.GONE + } + + var isCompleted = false + set(value) { + field = value + binding.completedIndicator.visibility = if (field) View.VISIBLE else View.GONE } init { @@ -78,6 +86,10 @@ class ShopItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), Vi binding.itemDetailIndicator.visibility = View.VISIBLE } + if (item.key == "gem" && item.limitedNumberLeft == -1) { + binding.itemDetailIndicator.background = AppCompatResources.getDrawable(context, R.drawable.item_indicator_subscribe) + } + if (binding.itemDetailIndicator.visibility == View.VISIBLE) { val layoutParams = binding.itemDetailIndicator.layoutParams layoutParams.width = if (binding.itemDetailIndicator.text.isBlank()) {