From 0cdc869cdcac05e8d49ee696d421fbf1a460d2aa Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Thu, 26 Jul 2018 15:44:47 +0200 Subject: [PATCH] Fix rage displays --- .../layout/dialog_purchase_content_quest.xml | 2 +- Habitica/res/layout/fragment_party_detail.xml | 5 ++- Habitica/res/layout/quest_progress_old.xml | 8 ++++ .../habitica/models/inventory/QuestBoss.kt | 2 +- .../ui/activities/MaintenanceActivity.kt | 2 +- .../habitica/ui/views/shops/PurchaseDialog.kt | 4 +- .../views/shops/PurchaseDialogQuestContent.kt | 39 ++++++++++--------- .../ui/views/social/OldQuestProgressView.kt | 23 +++++++---- 8 files changed, 54 insertions(+), 31 deletions(-) diff --git a/Habitica/res/layout/dialog_purchase_content_quest.xml b/Habitica/res/layout/dialog_purchase_content_quest.xml index 840a9a969..c46019af8 100644 --- a/Habitica/res/layout/dialog_purchase_content_quest.xml +++ b/Habitica/res/layout/dialog_purchase_content_quest.xml @@ -137,7 +137,7 @@ android:id="@+id/rage_meter_view" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:background="@drawable/pill_bg" + style="@style/Pill" android:gravity="right" android:paddingBottom="2dp" android:paddingLeft="8dp" diff --git a/Habitica/res/layout/fragment_party_detail.xml b/Habitica/res/layout/fragment_party_detail.xml index 29940d65f..97586c5dc 100644 --- a/Habitica/res/layout/fragment_party_detail.xml +++ b/Habitica/res/layout/fragment_party_detail.xml @@ -89,7 +89,8 @@ android:background="@drawable/layout_rounded_bg_gray_700" android:padding="@dimen/spacing_medium" android:gravity="center_vertical" - android:layout_marginBottom="@dimen/spacing_medium"> + android:layout_marginBottom="@dimen/spacing_medium" + android:visibility="gone"> diff --git a/Habitica/res/layout/quest_progress_old.xml b/Habitica/res/layout/quest_progress_old.xml index dda650d19..56070eb1b 100644 --- a/Habitica/res/layout/quest_progress_old.xml +++ b/Habitica/res/layout/quest_progress_old.xml @@ -23,6 +23,14 @@ app:valueTextColor="@color/red_100" app:labelSpacing="@dimen/spacing_medium" app:descriptionTextColor="@color/yellow_5"/> + 0.0 } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MaintenanceActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MaintenanceActivity.kt index 7e4f7de02..f7169acc3 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MaintenanceActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MaintenanceActivity.kt @@ -78,7 +78,7 @@ class MaintenanceActivity : BaseActivity() { } } - fun openInPlayStore() { + private fun openInPlayStore() { val appPackageName = packageName try { startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$appPackageName"))) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt index 23735bb04..4a405dfc7 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt @@ -176,7 +176,9 @@ class PurchaseDialog(context: Context, component: AppComponent?, val item: ShopI priceLabel.cantAfford = true } - checkGearClass() + if (shopItem.isTypeGear) { + checkGearClass() + } } override fun dismiss() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogQuestContent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogQuestContent.kt index 214392d04..2f44db4a9 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogQuestContent.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogQuestContent.kt @@ -39,6 +39,7 @@ class PurchaseDialogQuestContent : PurchaseDialogContent { constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) fun setQuestContent(questContent: QuestContent) { + rageMeterView.visibility = View.GONE if (questContent.isBossQuest) { questTypeTextView.setText(R.string.boss_quest) questCollectView.visibility = View.GONE @@ -59,7 +60,7 @@ class PurchaseDialogQuestContent : PurchaseDialogContent { questDetailView.visibility = View.VISIBLE - val inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater + val inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as? LayoutInflater if (questContent.drop != null && questContent.drop.items != null) { questContent.drop.items @@ -79,36 +80,36 @@ class PurchaseDialogQuestContent : PurchaseDialogContent { } if (questContent.drop.exp > 0) { - val view = inflater.inflate(R.layout.row_quest_reward_imageview, rewardsList, false) as ViewGroup - val imageView = view.findViewById(R.id.imageView) - imageView.scaleType = ImageView.ScaleType.CENTER - imageView.setImageBitmap(HabiticaIconsHelper.imageOfExperienceReward()) - val titleTextView = view.findViewById(R.id.titleTextView) - titleTextView.text = context.getString(R.string.experience_reward, questContent.drop.exp) + val view = inflater?.inflate(R.layout.row_quest_reward_imageview, rewardsList, false) as? ViewGroup + val imageView = view?.findViewById(R.id.imageView) + imageView?.scaleType = ImageView.ScaleType.CENTER + imageView?.setImageBitmap(HabiticaIconsHelper.imageOfExperienceReward()) + val titleTextView = view?.findViewById(R.id.titleTextView) + titleTextView?.text = context.getString(R.string.experience_reward, questContent.drop.exp) rewardsList.addView(view) } if (questContent.drop.gp > 0) { - val view = inflater.inflate(R.layout.row_quest_reward_imageview, rewardsList, false) as ViewGroup - val imageView = view.findViewById(R.id.imageView) - imageView.scaleType = ImageView.ScaleType.CENTER - imageView.setImageBitmap(HabiticaIconsHelper.imageOfGoldReward()) - val titleTextView = view.findViewById(R.id.titleTextView) - titleTextView.text = context.getString(R.string.gold_reward, questContent.drop.gp) + val view = inflater?.inflate(R.layout.row_quest_reward_imageview, rewardsList, false) as? ViewGroup + val imageView = view?.findViewById(R.id.imageView) + imageView?.scaleType = ImageView.ScaleType.CENTER + imageView?.setImageBitmap(HabiticaIconsHelper.imageOfGoldReward()) + val titleTextView = view?.findViewById(R.id.titleTextView) + titleTextView?.text = context.getString(R.string.gold_reward, questContent.drop.gp) rewardsList.addView(view) } } } - private fun addRewardsRow(inflater: LayoutInflater, item: QuestDropItem, containerView: ViewGroup?) { - val view = inflater.inflate(R.layout.row_quest_reward, containerView, false) as ViewGroup - val imageView = view.findViewById(R.id.imageView) as SimpleDraweeView - val titleTextView = view.findViewById(R.id.titleTextView) as TextView + private fun addRewardsRow(inflater: LayoutInflater?, item: QuestDropItem, containerView: ViewGroup?) { + val view = inflater?.inflate(R.layout.row_quest_reward, containerView, false) as? ViewGroup + val imageView = view?.findViewById(R.id.imageView) as? SimpleDraweeView + val titleTextView = view?.findViewById(R.id.titleTextView) as? TextView DataBindingUtils.loadImage(imageView, item.imageName) if (item.count > 1) { - titleTextView.text = context.getString(R.string.quest_reward_count, item.text, item.count) + titleTextView?.text = context.getString(R.string.quest_reward_count, item.text, item.count) } else { - titleTextView.text = item.text + titleTextView?.text = item.text } containerView?.addView(view) } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/OldQuestProgressView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/OldQuestProgressView.kt index a769d75db..ab89ac06f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/OldQuestProgressView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/OldQuestProgressView.kt @@ -12,6 +12,7 @@ import android.widget.LinearLayout import android.widget.TextView import com.facebook.drawee.view.SimpleDraweeView import com.habitrpg.android.habitica.R +import com.habitrpg.android.habitica.extensions.inflate import com.habitrpg.android.habitica.ui.helpers.bindView import com.habitrpg.android.habitica.extensions.setScaledPadding import com.habitrpg.android.habitica.models.inventory.QuestContent @@ -27,6 +28,7 @@ class OldQuestProgressView : LinearLayout { private val bossNameView: TextView by bindView(R.id.bossNameView) private val bossHealthView: ValueBar by bindView(R.id.bossHealthView) + private val bossRageView: ValueBar by bindView(R.id.bossRageView) private val collectionContainer: ViewGroup by bindView(R.id.collectionContainer) private val rect = RectF() @@ -45,8 +47,7 @@ class OldQuestProgressView : LinearLayout { private fun setupView(context: Context) { setWillNotDraw(false) - val inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater - inflater.inflate(R.layout.quest_progress_old, this) + inflate(R.layout.quest_progress_old, true) orientation = LinearLayout.VERTICAL @@ -54,6 +55,7 @@ class OldQuestProgressView : LinearLayout { bossHealthView.setSecondaryIcon(HabiticaIconsHelper.imageOfHeartLightBg()) bossHealthView.setDescriptionIcon(HabiticaIconsHelper.imageOfDamage()) + bossRageView.setSecondaryIcon(HabiticaIconsHelper.imageOfRage()) } override fun onDraw(canvas: Canvas?) { @@ -73,23 +75,30 @@ class OldQuestProgressView : LinearLayout { if (progress != null) { bossHealthView.set(progress.hp, quest.boss.hp.toDouble()) } + if (quest.boss.hasRage()) { + bossRageView.visibility = View.VISIBLE + bossRageView.set(progress?.rage ?: 0.0, quest.boss.rage?.value ?: 0.0) + } else { + bossRageView.visibility = View.GONE + } bossNameView.visibility = View.VISIBLE bossHealthView.visibility = View.VISIBLE } else { bossNameView.visibility = View.GONE bossHealthView.visibility = View.GONE + bossRageView.visibility = View.GONE if (progress != null) { val inflater = LayoutInflater.from(context) for (collect in progress.collect ?: emptyList()) { val contentCollect = quest.getCollectWithKey(collect.key) ?: continue val view = inflater.inflate(R.layout.quest_collect, collectionContainer, false) - val iconView = view.findViewById(R.id.icon_view) as SimpleDraweeView - val nameView = view.findViewById(R.id.name_view) as TextView - val valueView = view.findViewById(R.id.value_view) as ValueBar + val iconView = view.findViewById(R.id.icon_view) as? SimpleDraweeView + val nameView = view.findViewById(R.id.name_view) as? TextView + val valueView = view.findViewById(R.id.value_view) as? ValueBar DataBindingUtils.loadImage(iconView, "quest_" + quest.key + "_" + collect.key) - nameView.text = contentCollect.text - valueView.set(collect.count.toDouble(), contentCollect.count.toDouble()) + nameView?.text = contentCollect.text + valueView?.set(collect.count.toDouble(), contentCollect.count.toDouble()) collectionContainer.addView(view) }