From 4bfb94b8cf387a1b142ec04367be9e517fad5bec Mon Sep 17 00:00:00 2001 From: Saran Lertpradit Date: Thu, 24 Mar 2016 23:40:14 +0700 Subject: [PATCH 1/3] moves owned gear to onUserReceived --- .../habitica/ui/activities/MainActivity.java | 28 +++++++++++++++++++ .../lib/utils/ItemDataListDeserializer.java | 7 ----- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java index d34e814ac..3b444603f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java @@ -62,6 +62,7 @@ import com.magicmicky.habitrpgwrapper.lib.models.TaskDirectionData; import com.magicmicky.habitrpgwrapper.lib.models.TutorialStep; import com.magicmicky.habitrpgwrapper.lib.models.tasks.ChecklistItem; import com.magicmicky.habitrpgwrapper.lib.models.tasks.Days; +import com.magicmicky.habitrpgwrapper.lib.models.tasks.ItemData; import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task; import com.magicmicky.habitrpgwrapper.lib.models.tasks.TaskTag; import com.mikepenz.materialdrawer.AccountHeader; @@ -70,8 +71,11 @@ import com.mikepenz.materialdrawer.DrawerBuilder; import com.mikepenz.materialdrawer.model.PrimaryDrawerItem; import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem; import com.mikepenz.materialdrawer.model.interfaces.IProfile; +import com.raizlabs.android.dbflow.runtime.TransactionManager; import com.raizlabs.android.dbflow.runtime.transaction.BaseTransaction; import com.raizlabs.android.dbflow.runtime.transaction.TransactionListener; +import com.raizlabs.android.dbflow.runtime.transaction.process.ProcessModelInfo; +import com.raizlabs.android.dbflow.runtime.transaction.process.SaveModelTransaction; import com.raizlabs.android.dbflow.sql.builder.Condition; import com.raizlabs.android.dbflow.sql.language.Delete; import com.raizlabs.android.dbflow.sql.language.From; @@ -314,6 +318,8 @@ public class MainActivity extends BaseActivity implements HabitRPGUserCallback.O } loadAndRemoveOldChecklists(allChecklistItems); + + updateOwnedEquipment(user.getItems().getGear().owned); } } }).start(); @@ -424,6 +430,28 @@ public class MainActivity extends BaseActivity implements HabitRPGUserCallback.O } + private void updateOwnedEquipment(List owned) { + HashMap ownedMap = new HashMap<>(); + for (ItemData item : owned) { + ownedMap.put(item.key, item); + } + + List items = new Select().from(ItemData.class).queryList(); + List updates = new ArrayList<>(); + for (ItemData item : items) { + if (ownedMap.containsKey(item.key) && !Boolean.TRUE.equals(item.owned)) { + item.owned = true; + updates.add(item); + } else if (!ownedMap.containsKey(item.key) && Boolean.TRUE.equals(item.owned)) { + item.owned = null; + updates.add(item); + } + } + if (!updates.isEmpty()) { + TransactionManager.getInstance().addTransaction(new SaveModelTransaction<>(ProcessModelInfo.withModels(updates))); + } + } + private void updateUserAvatars() { avatarInHeader.updateData(user); } diff --git a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/utils/ItemDataListDeserializer.java b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/utils/ItemDataListDeserializer.java index 8768e1e99..a71d36052 100644 --- a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/utils/ItemDataListDeserializer.java +++ b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/utils/ItemDataListDeserializer.java @@ -41,8 +41,6 @@ public class ItemDataListDeserializer implements JsonDeserializer item.str = parsedItem.str; item.per = parsedItem.per; item._int = parsedItem._int; - } else { - item.owned = itemObject.getAsBoolean(); } vals.add(item); object.remove(item.key); @@ -56,11 +54,6 @@ public class ItemDataListDeserializer implements JsonDeserializer } else { item = new ItemData(); item.key = entry.getKey(); - if (entry.getValue().isJsonNull()) { - item.owned = null; - } else { - item.owned = entry.getValue().getAsBoolean(); - } } vals.add(item); } From 3a8b08fcd6b8067ee28229e4cd26f971d7993fcb Mon Sep 17 00:00:00 2001 From: Saran Lertpradit Date: Thu, 24 Mar 2016 23:40:34 +0700 Subject: [PATCH 2/3] fix costume --- .../equipment/EquipmentOverviewFragment.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.java index a86e3320d..39fd96831 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.java @@ -145,49 +145,49 @@ public class EquipmentOverviewFragment extends BaseMainFragment implements Trans costumeHeadView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - displayEquipmentDetailList("head", user.getItems().getGear().getEquipped().getHead(), true); + displayEquipmentDetailList("head", user.getItems().getGear().getCostume().getHead(), true); } }); costumeHeadAccessoryView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - displayEquipmentDetailList("headAccessory", user.getItems().getGear().getEquipped().getHeadAccessory(), true); + displayEquipmentDetailList("headAccessory", user.getItems().getGear().getCostume().getHeadAccessory(), true); } }); costumeEyewearView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - displayEquipmentDetailList("eyewear", user.getItems().getGear().getEquipped().getEyeWear(), true); + displayEquipmentDetailList("eyewear", user.getItems().getGear().getCostume().getEyeWear(), true); } }); costumeArmorView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - displayEquipmentDetailList("armor", user.getItems().getGear().getEquipped().getArmor(), true); + displayEquipmentDetailList("armor", user.getItems().getGear().getCostume().getArmor(), true); } }); costumeBackView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - displayEquipmentDetailList("back", user.getItems().getGear().getEquipped().getBack(), true); + displayEquipmentDetailList("back", user.getItems().getGear().getCostume().getBack(), true); } }); costumeBodyView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - displayEquipmentDetailList("body", user.getItems().getGear().getEquipped().getBody(), true); + displayEquipmentDetailList("body", user.getItems().getGear().getCostume().getBody(), true); } }); costumeWeaponView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - displayEquipmentDetailList("weapon", user.getItems().getGear().getEquipped().getWeapon(), true); + displayEquipmentDetailList("weapon", user.getItems().getGear().getCostume().getWeapon(), true); } }); costumeShieldView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - displayEquipmentDetailList("shield", user.getItems().getGear().getEquipped().getShield(), true); + displayEquipmentDetailList("shield", user.getItems().getGear().getCostume().getShield(), true); } }); From ff5c8f0179aacb7f556e4917b1c1e658d42e8aa0 Mon Sep 17 00:00:00 2001 From: Saran Lertpradit Date: Thu, 24 Mar 2016 23:40:52 +0700 Subject: [PATCH 3/3] unequip gear --- .../ui/adapter/inventory/EquipmentRecyclerViewAdapter.java | 7 ++++++- .../inventory/equipment/EquipmentDetailFragment.java | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/EquipmentRecyclerViewAdapter.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/EquipmentRecyclerViewAdapter.java index a456a90a1..4d2515c8b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/EquipmentRecyclerViewAdapter.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/EquipmentRecyclerViewAdapter.java @@ -27,6 +27,7 @@ private List gearList; public String equippedGear; public Boolean isCostume; public String userSize; +public String type; public void setGearList(List gearList) { this.gearList = gearList; @@ -111,7 +112,11 @@ class GearViewHolder extends RecyclerView.ViewHolder implements View.OnClickList command.gear = this.gear; command.asCostume = isCostume; EventBus.getDefault().post(command); - equippedGear = this.gear.key; + if (this.gear.key.equals(equippedGear)) { + equippedGear = type + "_base_0"; + } else { + equippedGear = this.gear.key; + } notifyDataSetChanged(); } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentDetailFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentDetailFragment.java index 5f2399a04..332244c5d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentDetailFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentDetailFragment.java @@ -44,6 +44,7 @@ public class EquipmentDetailFragment extends BaseMainFragment { this.adapter.equippedGear = this.equippedGear; this.adapter.isCostume = this.isCostume; this.adapter.userSize = this.user.getPreferences().getSize(); + this.adapter.type = this.type; this.recyclerView.setLayoutManager(new LinearLayoutManager(activity)); this.recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST));