diff --git a/Habitica/res/layout/dialog_purchase_content_gear.xml b/Habitica/res/layout/dialog_purchase_content_gear.xml new file mode 100644 index 000000000..44865f8c7 --- /dev/null +++ b/Habitica/res/layout/dialog_purchase_content_gear.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index a56eb3b8d..5f77e9915 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -640,4 +640,8 @@ %d Experience points %d Gold Quest Owner Rewards + Str: + Per: + Int: + Con: diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Equipment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Equipment.java index 0d0fb1533..138cdc81e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Equipment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/inventory/Equipment.java @@ -16,9 +16,9 @@ public class Equipment extends RealmObject { public String index; public String text; public String notes; - public float con, str, per; + public int con, str, per; @SerializedName("int") - public float _int; + public int _int; public Boolean owned; public Equipment() { @@ -89,35 +89,35 @@ public class Equipment extends RealmObject { this.notes = notes; } - public float getCon() { + public int getCon() { return con; } - public void setCon(float con) { + public void setCon(int con) { this.con = con; } - public float getStr() { + public int getStr() { return str; } - public void setStr(float str) { + public void setStr(int str) { this.str = str; } - public float getPer() { + public int getPer() { return per; } - public void setPer(float per) { + public void setPer(int per) { this.per = per; } - public float get_int() { + public int get_int() { return _int; } - public void set_int(float _int) { + public void set_int(int _int) { this._int = _int; } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/shops/ShopItem.java b/Habitica/src/main/java/com/habitrpg/android/habitica/models/shops/ShopItem.java index 7b33a6b6b..245bf5ff9 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/shops/ShopItem.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/shops/ShopItem.java @@ -154,7 +154,7 @@ public class ShopItem { } public boolean isTypeGear() { - return false; + return "gear".equals(purchaseType); } public boolean isTypeAnimal() { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.java index 74433fcd8..08438c476 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.java @@ -147,7 +147,10 @@ public class PurchaseDialog extends AlertDialog { contentView = new PurchaseDialogItemContent(getContext()); } else if (shopItem.isTypeQuest()) { contentView = new PurchaseDialogQuestContent(getContext()); - inventoryRepository.getQuestContent(item.getKey()).first().subscribe(((PurchaseDialogQuestContent)contentView)::setQuestContent, RxErrorHandler.handleEmptyError()); + inventoryRepository.getQuestContent(item.getKey()).first().subscribe(((PurchaseDialogQuestContent) contentView)::setQuestContent, RxErrorHandler.handleEmptyError()); + } else if (shopItem.isTypeGear()) { + contentView = new PurchaseDialogGearContent(getContext()); + inventoryRepository.getEquipment(item.getKey()).first().subscribe(((PurchaseDialogGearContent) contentView)::setEquipment, RxErrorHandler.handleEmptyError()); } else if ("gems".equals(shopItem.purchaseType)) { contentView = new PurchaseDialogGemsContent(getContext()); } else { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogGearContent.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogGearContent.java new file mode 100644 index 000000000..f251b0fc3 --- /dev/null +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogGearContent.java @@ -0,0 +1,72 @@ +package com.habitrpg.android.habitica.ui.views.shops; + +import android.content.Context; +import android.support.annotation.Nullable; +import android.support.v4.content.ContextCompat; +import android.util.AttributeSet; +import android.view.View; +import android.widget.TextView; + +import com.habitrpg.android.habitica.R; +import com.habitrpg.android.habitica.models.inventory.Equipment; +import com.habitrpg.android.habitica.models.shops.ShopItem; +import com.habitrpg.android.habitica.models.user.Gear; + +import butterknife.BindView; + +class PurchaseDialogGearContent extends PurchaseDialogContent { + + + @BindView(R.id.notesTextView) + TextView notesTextView; + @BindView(R.id.str_label) + TextView strLabel; + @BindView(R.id.str_value) + TextView strValueTextView; + @BindView(R.id.per_label) + TextView perLabel; + @BindView(R.id.per_value) + TextView perValueTextView; + @BindView(R.id.con_label) + TextView conLabel; + @BindView(R.id.con_value) + TextView conValueTextView; + @BindView(R.id.int_label) + TextView intLabel; + @BindView(R.id.int_value) + TextView intValueTextView; + + public PurchaseDialogGearContent(Context context) { + super(context); + } + + public PurchaseDialogGearContent(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + } + + @Override + protected int getViewId() { + return R.layout.dialog_purchase_content_gear; + } + + @Override + public void setItem(ShopItem item) { + super.setItem(item); + notesTextView.setText(item.getNotes()); + } + + public void setEquipment(Equipment equipment) { + configureFieldsForValue(strLabel, strValueTextView, equipment.str); + configureFieldsForValue(perLabel, perValueTextView, equipment.per); + configureFieldsForValue(conLabel, conValueTextView, equipment.con); + configureFieldsForValue(intLabel, intValueTextView, equipment._int); + } + + private void configureFieldsForValue(TextView labelView, TextView valueTextView, int value) { + valueTextView.setText("+"+value); + if (value == 0) { + labelView.setTextColor(ContextCompat.getColor(getContext(), R.color.gray_400)); + valueTextView.setTextColor(ContextCompat.getColor(getContext(), R.color.gray_400)); + } + } +}