diff --git a/Habitica/build.gradle b/Habitica/build.gradle
index 347904ab9..5ba600fcd 100644
--- a/Habitica/build.gradle
+++ b/Habitica/build.gradle
@@ -151,7 +151,7 @@ android {
multiDexEnabled true
resConfigs "en", "bg", "de", "en-rGB", "es", "fr", "hr-rHR", "in", "it", "iw", "ja", "ko", "lt", "nl", "pl", "pt-rBR", "pt-rPT", "ru", "tr", "zh", "zh-rTW"
- versionCode 2287
+ versionCode 2289
versionName "2.3"
}
diff --git a/Habitica/res/drawable-hdpi/equipment_two_handed.png b/Habitica/res/drawable-hdpi/equipment_two_handed.png
new file mode 100644
index 000000000..beae6793a
Binary files /dev/null and b/Habitica/res/drawable-hdpi/equipment_two_handed.png differ
diff --git a/Habitica/res/drawable-mdpi/equipment_two_handed.png b/Habitica/res/drawable-mdpi/equipment_two_handed.png
new file mode 100644
index 000000000..d1807c266
Binary files /dev/null and b/Habitica/res/drawable-mdpi/equipment_two_handed.png differ
diff --git a/Habitica/res/drawable-xhdpi/equipment_two_handed.png b/Habitica/res/drawable-xhdpi/equipment_two_handed.png
new file mode 100644
index 000000000..1884e60bb
Binary files /dev/null and b/Habitica/res/drawable-xhdpi/equipment_two_handed.png differ
diff --git a/Habitica/res/drawable-xxhdpi/equipment_two_handed.png b/Habitica/res/drawable-xxhdpi/equipment_two_handed.png
new file mode 100644
index 000000000..e6370374a
Binary files /dev/null and b/Habitica/res/drawable-xxhdpi/equipment_two_handed.png differ
diff --git a/Habitica/res/drawable-xxxhdpi/equipment_two_handed.png b/Habitica/res/drawable-xxxhdpi/equipment_two_handed.png
new file mode 100644
index 000000000..f7160d972
Binary files /dev/null and b/Habitica/res/drawable-xxxhdpi/equipment_two_handed.png differ
diff --git a/Habitica/res/layout/equipment_overview_item.xml b/Habitica/res/layout/equipment_overview_item.xml
index 38d2a0a05..f7c08d05c 100644
--- a/Habitica/res/layout/equipment_overview_item.xml
+++ b/Habitica/res/layout/equipment_overview_item.xml
@@ -17,11 +17,18 @@
android:layout_height="@dimen/gear_image_size"
android:layout_gravity="center"/>
+
\ No newline at end of file
diff --git a/Habitica/res/layout/equipment_overview_view.xml b/Habitica/res/layout/equipment_overview_view.xml
index 2dc8c09bf..eebc13b54 100644
--- a/Habitica/res/layout/equipment_overview_view.xml
+++ b/Habitica/res/layout/equipment_overview_view.xml
@@ -9,7 +9,8 @@
+ android:orientation="horizontal"
+ android:layout_marginBottom="19dp">
+ android:orientation="horizontal"
+ android:layout_marginBottom="6dp">
+ android:scrollbars="vertical">
-
+ android:orientation="vertical"
+ android:layout_marginTop="@dimen/spacing_medium">
+
+ android:layout_height="wrap_content" />
+
-
-
+
+
Armor
Back
Body
- Shield
- Weapon
+ Off-Hand
+ Main-Hand
Wear Costume
Equipped
Are you sure you want to cancel this quest? All invitation acceptances will be lost. The quest owner will retain possession of the quest scroll.
@@ -852,7 +852,7 @@
You invited a friend (or friends) who joined you on your adventure!
Keep Challenges
Leave Challenges
- Auto-equip new gear
+ Auto-equip new
Accept
Reject
Complete
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.kt
index 0933717a1..8bfaaad52 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.kt
@@ -9,6 +9,7 @@ import com.habitrpg.android.habitica.data.InventoryRepository
import com.habitrpg.android.habitica.databinding.FragmentEquipmentOverviewBinding
import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.helpers.RxErrorHandler
+import com.habitrpg.android.habitica.models.user.Gear
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment
import io.reactivex.functions.Consumer
@@ -33,8 +34,7 @@ class EquipmentOverviewFragment : BaseMainFragment() {
super.user = value
if (this::binding.isInitialized) {
value?.items?.gear?.let {
- binding.battlegearView.updateData(it.equipped)
- binding.costumeView.updateData(it.costume)
+ updateGearData(it)
}
}
}
@@ -56,8 +56,7 @@ class EquipmentOverviewFragment : BaseMainFragment() {
binding.costumeSwitch.setOnCheckedChangeListener { _, isChecked -> userRepository.updateUser(user, "preferences.costume", isChecked).subscribe(Consumer { }, RxErrorHandler.handleEmptyError()) }
user?.items?.gear?.let {
- binding.battlegearView.updateData(it.equipped)
- binding.costumeView.updateData(it.costume)
+ updateGearData(it)
}
}
@@ -74,4 +73,22 @@ class EquipmentOverviewFragment : BaseMainFragment() {
MainNavigationController.navigate(EquipmentOverviewFragmentDirections.openEquipmentDetail(type, isCostume ?: false, equipped ?: ""))
}
+ private fun updateGearData(gear: Gear) {
+ if (gear.equipped?.weapon?.isNotEmpty() == true) {
+ compositeSubscription.add(inventoryRepository.getEquipment(gear.equipped?.weapon ?: "").firstElement()
+ .subscribe(Consumer {
+ binding.battlegearView.updateData(gear.equipped, it.twoHanded)
+ }, RxErrorHandler.handleEmptyError()))
+ } else {
+ binding.battlegearView.updateData(gear.equipped)
+ }
+ if (gear.costume?.weapon?.isNotEmpty() == true) {
+ compositeSubscription.add(inventoryRepository.getEquipment(gear.costume?.weapon ?: "").firstElement()
+ .subscribe(Consumer {
+ binding.costumeView.updateData(gear.costume, it.twoHanded)
+ }, RxErrorHandler.handleEmptyError()))
+ } else {
+ binding.costumeView.updateData(gear.costume)
+ }
+ }
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewItem.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewItem.kt
index f0de979dc..eb5591fdd 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewItem.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewItem.kt
@@ -1,6 +1,7 @@
package com.habitrpg.android.habitica.ui.views.equipment
import android.content.Context
+import android.graphics.drawable.BitmapDrawable
import android.util.AttributeSet
import android.view.View
import android.widget.LinearLayout
@@ -9,6 +10,7 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.EquipmentOverviewItemBinding
import com.habitrpg.android.habitica.extensions.layoutInflater
import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils
+import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
class EquipmentOverviewItem @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
@@ -27,17 +29,27 @@ class EquipmentOverviewItem @JvmOverloads constructor(
var identifier: String = ""
- fun set(key: String) {
+ fun set(key: String, isTwoHanded: Boolean = false, isDisabledFromTwoHand: Boolean = false) {
identifier = key
+ binding.twoHandedIndicator.setImageDrawable(null)
if (key.isNotEmpty() && !key.endsWith("base_0")) {
DataBindingUtils.loadImage(binding.iconView, "shop_$key")
- binding.noEquippedView.visibility = View.GONE
+ binding.localIconView.visibility = View.GONE
binding.iconView.visibility = View.VISIBLE
binding.iconWrapper.background = ContextCompat.getDrawable(context, R.drawable.layout_rounded_bg_white)
+ if (isTwoHanded) {
+ binding.twoHandedIndicator.setImageDrawable(BitmapDrawable(context.resources, HabiticaIconsHelper.imageOfTwoHandedIcon()))
+ }
} else {
- binding.noEquippedView.visibility = View.VISIBLE
+ binding.localIconView.visibility = View.VISIBLE
binding.iconView.visibility = View.GONE
- binding.iconWrapper.background = ContextCompat.getDrawable(context, R.drawable.layout_rounded_bg_gray_10)
+ if (isDisabledFromTwoHand) {
+ binding.iconWrapper.background = ContextCompat.getDrawable(context, R.drawable.layout_rounded_bg_white)
+ binding.localIconView.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.equipment_two_handed))
+ } else {
+ binding.iconWrapper.background = ContextCompat.getDrawable(context, R.drawable.layout_rounded_bg_gray_10)
+ binding.localIconView.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.equipment_nothing_equipped))
+ }
}
}
}
\ No newline at end of file
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewView.kt
index a233d6b2d..88df381d6 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/equipment/EquipmentOverviewView.kt
@@ -32,9 +32,9 @@ class EquipmentOverviewView @JvmOverloads constructor(
}
- fun updateData(outfit: Outfit) {
- binding.weaponItem.set(outfit.weapon)
- binding.shieldItem.set(outfit.shield)
+ fun updateData(outfit: Outfit, isWeaponTwoHanded: Boolean = false) {
+ binding.weaponItem.set(outfit.weapon, isWeaponTwoHanded)
+ binding.shieldItem.set(outfit.shield, false, isWeaponTwoHanded)
binding.headItem.set(outfit.head)
binding.armorItem.set(outfit.armor)
binding.headAccessoryItem.set(outfit.headAccessory)