diff --git a/Habitica/res/drawable/layout_rounded_bg_white.xml b/Habitica/res/drawable/layout_rounded_bg_white.xml
new file mode 100644
index 000000000..504805872
--- /dev/null
+++ b/Habitica/res/drawable/layout_rounded_bg_white.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Habitica/res/layout/gear_list_item.xml b/Habitica/res/layout/gear_list_item.xml
index 18bb031c1..ce9e13e7a 100644
--- a/Habitica/res/layout/gear_list_item.xml
+++ b/Habitica/res/layout/gear_list_item.xml
@@ -7,12 +7,17 @@
style="@style/RowWrapper"
android:id="@+id/gear_container">
-
+
+
+
+
\ No newline at end of file
diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml
index 727452550..2e964b48d 100644
--- a/Habitica/res/values/strings.xml
+++ b/Habitica/res/values/strings.xml
@@ -812,4 +812,5 @@
Breaks are healthy, but you can still earn points for simple activities to level up and get cool gear!
Latest Check In
Total Checkins
+ Two-Handed
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Equipment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Equipment.kt
index 1067a6b41..e28d7c761 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Equipment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Equipment.kt
@@ -22,4 +22,5 @@ open class Equipment : RealmObject() {
@SerializedName("int")
var _int: Int = 0
var owned: Boolean? = null
+ var twoHanded = false
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/EquipmentRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/EquipmentRecyclerViewAdapter.kt
index 84afb2ba0..1476d3c28 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/EquipmentRecyclerViewAdapter.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/EquipmentRecyclerViewAdapter.kt
@@ -1,18 +1,22 @@
package com.habitrpg.android.habitica.ui.adapter.inventory
import android.content.Context
+import android.graphics.drawable.BitmapDrawable
import android.support.v4.content.ContextCompat
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.widget.FrameLayout
import android.widget.TextView
import com.facebook.drawee.view.SimpleDraweeView
import com.habitrpg.android.habitica.R
+import com.habitrpg.android.habitica.extensions.backgroundCompat
import com.habitrpg.android.habitica.extensions.notNull
import com.habitrpg.android.habitica.ui.helpers.bindView
import com.habitrpg.android.habitica.models.inventory.Equipment
import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils
+import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
import io.reactivex.subjects.PublishSubject
import io.realm.OrderedRealmCollection
import io.realm.RealmRecyclerViewAdapter
@@ -42,13 +46,16 @@ class EquipmentRecyclerViewAdapter(data: OrderedRealmCollection?, aut
private val gearNameTextView: TextView by bindView(itemView, R.id.gear_text)
private val gearNotesTextView: TextView by bindView(itemView, R.id.gear_notes)
private val imageView: SimpleDraweeView by bindView(itemView, R.id.gear_image)
+ private val imageViewWrapper: FrameLayout by bindView(itemView, R.id.gear_icon_background_view)
private val equippedIndicator: View by bindView(itemView, R.id.equippedIndicator)
+ private val twoHandedView: TextView by bindView(R.id.two_handed_view)
var gear: Equipment? = null
var context: Context = itemView.context
init {
context = itemView.context
+ twoHandedView.setCompoundDrawablesWithIntrinsicBounds(BitmapDrawable(context.resources, HabiticaIconsHelper.imageOfTwoHandedIcon()), null, null, null)
itemView.setOnClickListener {
val key = gear?.key
if (key != null) {
@@ -71,10 +78,13 @@ class EquipmentRecyclerViewAdapter(data: OrderedRealmCollection?, aut
if (gear.key == equippedGear) {
this.equippedIndicator.visibility = View.VISIBLE
this.gearContainer.setBackgroundColor(ContextCompat.getColor(context, R.color.brand_700))
+ imageViewWrapper.backgroundCompat = ContextCompat.getDrawable(context, R.drawable.layout_rounded_bg_white)
} else {
this.equippedIndicator.visibility = View.GONE
this.gearContainer.setBackgroundResource(R.drawable.selection_highlight)
+ imageViewWrapper.backgroundCompat = ContextCompat.getDrawable(context, R.drawable.layout_rounded_bg_gray_700)
}
+ twoHandedView.visibility = if (gear.twoHanded) View.VISIBLE else View.GONE
DataBindingUtils.loadImage(imageView, "shop_"+gear.key)
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIconsHelper.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIconsHelper.java
index 25a252a48..9f524ab18 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIconsHelper.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaIconsHelper.java
@@ -657,4 +657,18 @@ public class HabiticaIconsHelper {
return imageOfChatDeleteIcon;
}
+
+ private static Bitmap imageOfTwoHandedIcon = null;
+ public static Bitmap imageOfTwoHandedIcon() {
+ if (imageOfTwoHandedIcon != null)
+ return imageOfTwoHandedIcon;
+
+ int size = scaleSize(15);
+ imageOfTwoHandedIcon = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
+ Canvas canvas = new Canvas(imageOfTwoHandedIcon);
+ canvas.scale(displayDensity, displayDensity);
+ HabiticaIcons.drawTwoHandedIcon(canvas);
+
+ return imageOfTwoHandedIcon;
+ }
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/EquipmentListDeserializer.java b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/EquipmentListDeserializer.java
index 93253290e..1f35d1c32 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/utils/EquipmentListDeserializer.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/utils/EquipmentListDeserializer.java
@@ -42,6 +42,7 @@ public class EquipmentListDeserializer implements JsonDeserializer