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));
+ }
+ }
+}