From 3194c1647778407fe6d34072ae423b364c483a9e Mon Sep 17 00:00:00 2001 From: Leland Wu Date: Wed, 15 Apr 2020 23:48:23 -0400 Subject: [PATCH 1/6] resize cards and font --- Habitica/res/layout/animal_overview_item.xml | 60 ++++++++++++-------- Habitica/res/values/dimens.xml | 6 +- 2 files changed, 39 insertions(+), 27 deletions(-) diff --git a/Habitica/res/layout/animal_overview_item.xml b/Habitica/res/layout/animal_overview_item.xml index 68c34da9d..6253dc36e 100644 --- a/Habitica/res/layout/animal_overview_item.xml +++ b/Habitica/res/layout/animal_overview_item.xml @@ -1,27 +1,39 @@ - - - - + android:layout_height="wrap_content" + android:clickable="true" + android:background="@color/white" + android:focusable="true"> + + style="@style/CardContent"> + + + + diff --git a/Habitica/res/values/dimens.xml b/Habitica/res/values/dimens.xml index 3b56e5900..8c62b58d2 100644 --- a/Habitica/res/values/dimens.xml +++ b/Habitica/res/values/dimens.xml @@ -50,10 +50,10 @@ 16sp 14sp 2dp - 120dp + 84dp 28dp - 81dp - 99dp + 68dp + 68dp 124dp 10dp 16dp From 0ab69c33efa8cc702b6efb5a44df314a099c642e Mon Sep 17 00:00:00 2001 From: Leland Wu Date: Fri, 15 May 2020 16:59:47 -0400 Subject: [PATCH 2/6] resolve merge conflict in strings --- .../layout_rounded_bg_animalitem_complete.xml | 6 ++++ Habitica/res/layout/animal_overview_item.xml | 10 +++++-- Habitica/res/values/colors.xml | 1 + Habitica/res/values/dimens.xml | 2 +- Habitica/res/values/strings.xml | 1 + Habitica/res/xml/network_security_config.xml | 2 +- .../habitica/models/inventory/Animal.java | 4 +++ .../habitica/models/inventory/Mount.java | 16 +++++++++- .../habitica/models/inventory/Pet.java | 15 ++++++++++ .../inventory/StableRecyclerAdapter.kt | 30 +++++++++++++------ .../stable/StableRecyclerFragment.kt | 6 ++-- 11 files changed, 76 insertions(+), 17 deletions(-) create mode 100644 Habitica/res/drawable/layout_rounded_bg_animalitem_complete.xml diff --git a/Habitica/res/drawable/layout_rounded_bg_animalitem_complete.xml b/Habitica/res/drawable/layout_rounded_bg_animalitem_complete.xml new file mode 100644 index 000000000..a8cb4e3d1 --- /dev/null +++ b/Habitica/res/drawable/layout_rounded_bg_animalitem_complete.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Habitica/res/layout/animal_overview_item.xml b/Habitica/res/layout/animal_overview_item.xml index 6253dc36e..7aa7a1f06 100644 --- a/Habitica/res/layout/animal_overview_item.xml +++ b/Habitica/res/layout/animal_overview_item.xml @@ -10,9 +10,9 @@ android:layout_marginTop="6dp" android:layout_marginBottom="6dp" android:layout_width="80dp" - android:layout_height="112dp" + android:layout_height="108dp" android:orientation="vertical" - android:background="@drawable/layout_rounded_bg_gray_700" + android:background="@drawable/layout_rounded_bg_shopitem" android:layout_centerInParent="true"> style="@style/CardContent"> diff --git a/Habitica/res/values/colors.xml b/Habitica/res/values/colors.xml index 295b8cd59..153ffc3a5 100644 --- a/Habitica/res/values/colors.xml +++ b/Habitica/res/values/colors.xml @@ -148,6 +148,7 @@ #000 #efeff4 #fafaff + #6ECDB2 #794b00 diff --git a/Habitica/res/values/dimens.xml b/Habitica/res/values/dimens.xml index 8c62b58d2..32120ca63 100644 --- a/Habitica/res/values/dimens.xml +++ b/Habitica/res/values/dimens.xml @@ -53,7 +53,7 @@ 84dp 28dp 68dp - 68dp + 65dp 124dp 10dp 16dp diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index d04de354c..8fb2b3694 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -1015,4 +1015,5 @@ You are unable to buy that amount. Still have a question? Delete Checklist entry + %1$s/%2$s diff --git a/Habitica/res/xml/network_security_config.xml b/Habitica/res/xml/network_security_config.xml index f808081d4..4c9e97462 100644 --- a/Habitica/res/xml/network_security_config.xml +++ b/Habitica/res/xml/network_security_config.xml @@ -6,6 +6,6 @@ - 192.168.178.52 + 10.0.0.107 \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Animal.java b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Animal.java index a2f2bbd41..96c1b7f90 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Animal.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Animal.java @@ -29,4 +29,8 @@ public interface Animal { Integer getNumberOwned(); void setNumberOwned(Integer numberOwned); + + Integer getTotalNumber(); + + void setTotalNumber(Integer totalNumber); } \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Mount.java b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Mount.java index 19326be4f..1fd23de3c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Mount.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Mount.java @@ -12,7 +12,10 @@ public class Mount extends RealmObject implements Animal { boolean premium; @Ignore - Integer numberOwned; + private Integer numberOwned; + + @Ignore + private Integer totalNumber; public String getKey() { return key; @@ -82,4 +85,15 @@ public class Mount extends RealmObject implements Animal { public void setNumberOwned(Integer numberOwned) { this.numberOwned = numberOwned; } + + public Integer getTotalNumber() { + if (totalNumber == null) { + return 0; + } + return totalNumber; + } + + public void setTotalNumber(Integer totalNumber) { + this.totalNumber = totalNumber; + } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Pet.java b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Pet.java index cf8c531e6..642c2c1fc 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Pet.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Pet.java @@ -14,6 +14,9 @@ public class Pet extends RealmObject implements Animal{ @Ignore private Integer numberOwned; + @Ignore + private Integer totalNumber; + public String getKey() { return key; } @@ -83,4 +86,16 @@ public class Pet extends RealmObject implements Animal{ public void setNumberOwned(Integer numberOwned) { this.numberOwned = numberOwned; } + + public Integer getTotalNumber() { + if (totalNumber == null) { + return 0; + } + + return totalNumber; + } + + public void setTotalNumber(Integer totalNumber) { + this.totalNumber = totalNumber; + } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt index 280a3a0fe..a9eea4a2b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt @@ -1,14 +1,12 @@ package com.habitrpg.android.habitica.ui.adapter.inventory import android.content.Context +import android.graphics.Color import android.graphics.drawable.BitmapDrawable import android.view.View import android.view.ViewGroup -import android.widget.FrameLayout -import android.widget.LinearLayout -import android.widget.RelativeLayout import android.widget.TextView -import androidx.coordinatorlayout.widget.CoordinatorLayout +import androidx.core.content.ContextCompat import androidx.recyclerview.widget.GridLayoutManager import com.facebook.drawee.view.SimpleDraweeView import com.habitrpg.android.habitica.R @@ -118,16 +116,22 @@ class StableRecyclerAdapter : androidx.recyclerview.widget.RecyclerView.Adapter< } ownedTextView.visibility = View.VISIBLE this.imageView.alpha = 1.0f + this.titleView.alpha = 1.0f + this.ownedTextView.alpha = 1.0f + val imageName = if (itemType == "pets") { - "Pet-" + item.key + "Pet_Egg_" + item.animal } else { "Mount_Icon_" + item.key } - this.ownedTextView.text = animal?.numberOwned?.toString() - ownedTextView.visibility = if (animal?.numberOwned == 0 || animal?.type == "special") View.GONE else View.VISIBLE + + var owned = animal?.numberOwned?.toString() + var totalNum = animal?.totalNumber?.toString() + this.ownedTextView.text = context?.getString(R.string.pet_ownership_fraction, owned, totalNum) + ownedTextView.visibility = if (animal?.type == "special") View.GONE else View.VISIBLE imageView.background = null DataBindingUtils.loadImage(imageName) { - val drawable = BitmapDrawable(context?.resources, if (item.numberOwned > 0) it else it.extractAlpha()) + val drawable = BitmapDrawable(context?.resources, it) Observable.just(drawable) .observeOn(AndroidSchedulers.mainThread()) .subscribe(Consumer { @@ -135,7 +139,15 @@ class StableRecyclerAdapter : androidx.recyclerview.widget.RecyclerView.Adapter< }, RxErrorHandler.handleEmptyError()) } if (item.numberOwned <= 0) { - this.imageView.alpha = 0.1f + this.imageView.alpha = 0.2f + this.titleView.alpha = 0.2f + this.ownedTextView.alpha = 0.2f + } + + if (item.numberOwned == item.totalNumber) { + this.ownedTextView.setTextColor(Color.parseColor("#FFFFFF")) + var new_background = context?.getDrawable(R.drawable.layout_rounded_bg_animalitem_complete)?.mutate() + this.ownedTextView.background = new_background } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableRecyclerFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableRecyclerFragment.kt index 2919a411a..ebbd660d2 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableRecyclerFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableRecyclerFragment.kt @@ -144,7 +144,6 @@ class StableRecyclerFragment : BaseFragment() { val items = ArrayList() var lastAnimal: Animal = unsortedAnimals[0] ?: return items var lastSectionTitle = "" - for (animal in unsortedAnimals) { val identifier = if (animal.animal.isNotEmpty() && animal.type != "special") animal.animal else animal.key val lastIdentifier = if (lastAnimal.animal.isNotEmpty()) lastAnimal.animal else lastAnimal.key @@ -154,6 +153,9 @@ class StableRecyclerFragment : BaseFragment() { } lastAnimal = animal } + + lastAnimal.totalNumber += 1 + if (animal.type != lastSectionTitle) { if (items.size > 0 && items[items.size - 1].javaClass == String::class.java) { items.removeAt(items.size - 1) @@ -175,6 +177,7 @@ class StableRecyclerFragment : BaseFragment() { } } } + } if (!((lastAnimal.type == "premium" || lastAnimal.type == "special") && lastAnimal.numberOwned == 0)) { items.add(lastAnimal) @@ -187,6 +190,5 @@ class StableRecyclerFragment : BaseFragment() { companion object { private const val ITEM_TYPE_KEY = "CLASS_TYPE_KEY" private const val HEADER_VIEW_TYPE = 0 - private const val SECTION_VIEW_TYPE = 1 } } From 6999f3a675f9ac331a7581e1b8186743be65abd3 Mon Sep 17 00:00:00 2001 From: Leland Wu Date: Fri, 15 May 2020 16:55:02 -0400 Subject: [PATCH 3/6] add background --- .../habitica/ui/adapter/inventory/StableRecyclerAdapter.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt index a9eea4a2b..37591ee7b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt @@ -128,6 +128,7 @@ class StableRecyclerAdapter : androidx.recyclerview.widget.RecyclerView.Adapter< var owned = animal?.numberOwned?.toString() var totalNum = animal?.totalNumber?.toString() this.ownedTextView.text = context?.getString(R.string.pet_ownership_fraction, owned, totalNum) + this.ownedTextView.background = context?.getDrawable(R.drawable.layout_rounded_bg_shopitem_price) ownedTextView.visibility = if (animal?.type == "special") View.GONE else View.VISIBLE imageView.background = null DataBindingUtils.loadImage(imageName) { From a43340a15bf248531ac05d0033d1e44e3fdcc32b Mon Sep 17 00:00:00 2001 From: Leland Wu Date: Fri, 22 May 2020 14:17:45 -0400 Subject: [PATCH 4/6] resize mounts cards --- Habitica/res/layout/mount_overview_item.xml | 47 +++++++++++++++++++ ...verview_item.xml => pet_overview_item.xml} | 0 Habitica/res/values/dimens.xml | 3 ++ .../inventory/MountDetailRecyclerAdapter.kt | 2 +- .../inventory/StableRecyclerAdapter.kt | 20 +++++--- .../stable/StableRecyclerFragment.kt | 3 +- 6 files changed, 66 insertions(+), 9 deletions(-) create mode 100644 Habitica/res/layout/mount_overview_item.xml rename Habitica/res/layout/{animal_overview_item.xml => pet_overview_item.xml} (100%) diff --git a/Habitica/res/layout/mount_overview_item.xml b/Habitica/res/layout/mount_overview_item.xml new file mode 100644 index 000000000..cf1fcdb2d --- /dev/null +++ b/Habitica/res/layout/mount_overview_item.xml @@ -0,0 +1,47 @@ + + + + + style="@style/CardContent"> + + + + + + + + diff --git a/Habitica/res/layout/animal_overview_item.xml b/Habitica/res/layout/pet_overview_item.xml similarity index 100% rename from Habitica/res/layout/animal_overview_item.xml rename to Habitica/res/layout/pet_overview_item.xml diff --git a/Habitica/res/values/dimens.xml b/Habitica/res/values/dimens.xml index 32120ca63..e8f7edcbe 100644 --- a/Habitica/res/values/dimens.xml +++ b/Habitica/res/values/dimens.xml @@ -51,9 +51,12 @@ 14sp 2dp 84dp + 120dp 28dp 68dp 65dp + 81dp + 99dp 124dp 10dp 16dp diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.kt index 0401cee20..e9ff8f3e7 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.kt @@ -39,7 +39,7 @@ class MountDetailRecyclerAdapter(data: OrderedRealmCollection?, autoUpdat } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MountViewHolder { - return MountViewHolder(parent.inflate(R.layout.animal_overview_item)) + return MountViewHolder(parent.inflate(R.layout.pet_overview_item)) } override fun onBindViewHolder(holder: MountViewHolder, position: Int) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt index 37591ee7b..a9ec80f00 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt @@ -6,7 +6,6 @@ import android.graphics.drawable.BitmapDrawable import android.view.View import android.view.ViewGroup import android.widget.TextView -import androidx.core.content.ContextCompat import androidx.recyclerview.widget.GridLayoutManager import com.facebook.drawee.view.SimpleDraweeView import com.habitrpg.android.habitica.R @@ -45,9 +44,11 @@ class StableRecyclerAdapter : androidx.recyclerview.widget.RecyclerView.Adapter< } else if (viewType == 1) { val view = parent.inflate(R.layout.customization_section_header) SectionViewHolder(view) - } - else { - val view = parent.inflate(R.layout.animal_overview_item) + } else if (viewType == 2) { + val view = parent.inflate(R.layout.pet_overview_item) + StableViewHolder(view) + } else { + val view = parent.inflate(R.layout.mount_overview_item) StableViewHolder(view) } @@ -70,15 +71,20 @@ class StableRecyclerAdapter : androidx.recyclerview.widget.RecyclerView.Adapter< } override fun getItemViewType(position: Int): Int { - return if (itemList[position] == "header") { + var item = itemList[position] + + return if (item == "header") { 0 } - else if (itemList[position].javaClass == String::class.java) { + else if (item.javaClass == String::class.java) { 1 } - else { + else if (itemType == "pets") { 2 } + else { + 3 + } } override fun getItemCount(): Int = itemList.size diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableRecyclerFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableRecyclerFragment.kt index ebbd660d2..b82bf9c92 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableRecyclerFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableRecyclerFragment.kt @@ -106,7 +106,8 @@ class StableRecyclerFragment : BaseFragment() { private fun setGridSpanCount(width: Int) { var spanCount = 0 if (context != null && context?.resources != null) { - val itemWidth: Float = context?.resources?.getDimension(R.dimen.pet_width) ?: 0.toFloat() + var animal_width = if (itemType == "pets") R.dimen.pet_width else R.dimen.mount_width + val itemWidth: Float = context?.resources?.getDimension(animal_width) ?: 0.toFloat() spanCount = (width / itemWidth).toInt() } From 4091233842d0d3f20c612607d3e0e653c2030913 Mon Sep 17 00:00:00 2001 From: Leland Wu Date: Fri, 22 May 2020 22:29:15 -0400 Subject: [PATCH 5/6] fix recyclerview bug --- Habitica/res/layout/mount_overview_item.xml | 22 ++++---- .../inventory/StableRecyclerAdapter.kt | 56 +++++++++++-------- 2 files changed, 43 insertions(+), 35 deletions(-) diff --git a/Habitica/res/layout/mount_overview_item.xml b/Habitica/res/layout/mount_overview_item.xml index cf1fcdb2d..136617b28 100644 --- a/Habitica/res/layout/mount_overview_item.xml +++ b/Habitica/res/layout/mount_overview_item.xml @@ -8,37 +8,35 @@ style="@style/CardContent"> - + style="@style/RowTitle"/> Date: Fri, 29 May 2020 00:13:56 -0400 Subject: [PATCH 6/6] change stringto accept decimals --- Habitica/res/values/strings.xml | 2 +- .../ui/adapter/inventory/MountDetailRecyclerAdapter.kt | 2 +- .../habitica/ui/adapter/inventory/StableRecyclerAdapter.kt | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index 8fb2b3694..1732a0395 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -1015,5 +1015,5 @@ You are unable to buy that amount. Still have a question? Delete Checklist entry - %1$s/%2$s + %1$d/%2$d diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.kt index e9ff8f3e7..34b0d5d0f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.kt @@ -39,7 +39,7 @@ class MountDetailRecyclerAdapter(data: OrderedRealmCollection?, autoUpdat } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MountViewHolder { - return MountViewHolder(parent.inflate(R.layout.pet_overview_item)) + return MountViewHolder(parent.inflate(R.layout.mount_overview_item)) } override fun onBindViewHolder(holder: MountViewHolder, position: Int) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt index d3fce037a..c0d783c4e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/StableRecyclerAdapter.kt @@ -134,8 +134,8 @@ class StableRecyclerAdapter : androidx.recyclerview.widget.RecyclerView.Adapter< context?.let { - var owned = item.numberOwned?.toString() - var totalNum = item.totalNumber?.toString() + var owned = item.numberOwned + var totalNum = item.totalNumber this.ownedTextView.text = context?.getString(R.string.pet_ownership_fraction, owned, totalNum)