mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-04-14 19:56:32 +00:00
Display in overview if equipment is two handed
This commit is contained in:
parent
ef8c7c30ec
commit
1054a575db
13 changed files with 82 additions and 38 deletions
|
|
@ -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"
|
||||
}
|
||||
|
||||
|
|
|
|||
BIN
Habitica/res/drawable-hdpi/equipment_two_handed.png
Normal file
BIN
Habitica/res/drawable-hdpi/equipment_two_handed.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.6 KiB |
BIN
Habitica/res/drawable-mdpi/equipment_two_handed.png
Normal file
BIN
Habitica/res/drawable-mdpi/equipment_two_handed.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
BIN
Habitica/res/drawable-xhdpi/equipment_two_handed.png
Normal file
BIN
Habitica/res/drawable-xhdpi/equipment_two_handed.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.9 KiB |
BIN
Habitica/res/drawable-xxhdpi/equipment_two_handed.png
Normal file
BIN
Habitica/res/drawable-xxhdpi/equipment_two_handed.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.4 KiB |
BIN
Habitica/res/drawable-xxxhdpi/equipment_two_handed.png
Normal file
BIN
Habitica/res/drawable-xxxhdpi/equipment_two_handed.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
|
|
@ -17,11 +17,18 @@
|
|||
android:layout_height="@dimen/gear_image_size"
|
||||
android:layout_gravity="center"/>
|
||||
<ImageView
|
||||
android:id="@+id/no_equipped_view"
|
||||
android:id="@+id/local_icon_view"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/equipment_nothing_equipped"
|
||||
android:layout_gravity="center" />
|
||||
<ImageView
|
||||
android:id="@+id/two_handed_indicator"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="top|end"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginEnd="4dp"/>
|
||||
</FrameLayout>
|
||||
<TextView
|
||||
android:id="@+id/title_view"
|
||||
|
|
@ -30,6 +37,5 @@
|
|||
android:textColor="@color/gray_400"
|
||||
style="@style/Caption2"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginBottom="19dp"
|
||||
android:gravity="center_horizontal"/>
|
||||
</merge>
|
||||
|
|
@ -9,7 +9,8 @@
|
|||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginBottom="19dp">
|
||||
<com.habitrpg.android.habitica.ui.views.equipment.EquipmentOverviewItem
|
||||
android:id="@+id/weapon_item"
|
||||
android:layout_width="wrap_content"
|
||||
|
|
@ -46,7 +47,8 @@
|
|||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginBottom="6dp">
|
||||
<com.habitrpg.android.habitica.ui.views.equipment.EquipmentOverviewItem
|
||||
android:id="@+id/head_accessory_item"
|
||||
android:layout_width="wrap_content"
|
||||
|
|
|
|||
|
|
@ -6,53 +6,60 @@
|
|||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:scrollbarSize="3dp"
|
||||
android:scrollbarThumbVertical="@color/scrollbarThumb"
|
||||
android:scrollbars="vertical"
|
||||
android:paddingTop="@dimen/row_padding">
|
||||
android:scrollbars="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/SectionTitle"
|
||||
android:text="@string/battle_gear"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
android:orientation="vertical"
|
||||
android:layout_marginTop="@dimen/spacing_medium">
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="@dimen/row_padding">
|
||||
<TextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/SectionTitle"
|
||||
android:text="@string/battle_gear"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
<Space
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/equip_automatically"/>
|
||||
android:layout_height="wrap_content" />
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/equip_automatically"
|
||||
android:layout_marginEnd="6dp"/>
|
||||
<Switch
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/autoEquipSwitch"/>
|
||||
|
||||
</LinearLayout>
|
||||
<com.habitrpg.android.habitica.ui.views.equipment.EquipmentOverviewView
|
||||
android:id="@+id/battlegear_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/spacing_medium" />
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/SectionTitle"
|
||||
android:text="@string/costume"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="@dimen/row_padding">
|
||||
<TextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/SectionTitle"
|
||||
android:text="@string/costume"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||
<Space
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content" />
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:text="@string/wear_costume"/>
|
||||
<Switch
|
||||
android:layout_width="wrap_content"
|
||||
|
|
|
|||
|
|
@ -232,8 +232,8 @@
|
|||
<string name="outfit_armor">Armor</string>
|
||||
<string name="outfit_back">Back</string>
|
||||
<string name="outfit_body">Body</string>
|
||||
<string name="outfit_shield">Shield</string>
|
||||
<string name="outfit_weapon">Weapon</string>
|
||||
<string name="outfit_shield">Off-Hand</string>
|
||||
<string name="outfit_weapon">Main-Hand</string>
|
||||
<string name="wear_costume">Wear Costume</string>
|
||||
<string name="equipped">Equipped</string>
|
||||
<string name="quest_cancel_message">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.</string>
|
||||
|
|
@ -852,7 +852,7 @@
|
|||
<string name="inviteFriendDescription">You invited a friend (or friends) who joined you on your adventure!</string>
|
||||
<string name="keep_challenges">Keep Challenges</string>
|
||||
<string name="leave_challenges">Leave Challenges</string>
|
||||
<string name="equip_automatically">Auto-equip new gear</string>
|
||||
<string name="equip_automatically">Auto-equip new</string>
|
||||
<string name="accept">Accept</string>
|
||||
<string name="reject">Reject</string>
|
||||
<string name="complete">Complete</string>
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in a new issue