mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-14 18:21:57 +00:00
commit
4718ce7fd7
5 changed files with 43 additions and 16 deletions
|
|
@ -63,6 +63,7 @@ import com.magicmicky.habitrpgwrapper.lib.models.TutorialStep;
|
|||
import com.magicmicky.habitrpgwrapper.lib.models.responses.BuyResponse;
|
||||
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;
|
||||
|
|
@ -71,8 +72,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;
|
||||
|
|
@ -315,6 +319,8 @@ public class MainActivity extends BaseActivity implements HabitRPGUserCallback.O
|
|||
}
|
||||
|
||||
loadAndRemoveOldChecklists(allChecklistItems);
|
||||
|
||||
updateOwnedEquipment(user.getItems().getGear().owned);
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
|
|
@ -425,6 +431,28 @@ public class MainActivity extends BaseActivity implements HabitRPGUserCallback.O
|
|||
|
||||
}
|
||||
|
||||
private void updateOwnedEquipment(List<ItemData> owned) {
|
||||
HashMap<String, ItemData> ownedMap = new HashMap<>();
|
||||
for (ItemData item : owned) {
|
||||
ownedMap.put(item.key, item);
|
||||
}
|
||||
|
||||
List<ItemData> items = new Select().from(ItemData.class).queryList();
|
||||
List<ItemData> 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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ private List<ItemData> gearList;
|
|||
public String equippedGear;
|
||||
public Boolean isCostume;
|
||||
public String userSize;
|
||||
public String type;
|
||||
|
||||
public void setGearList(List<ItemData> 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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -41,8 +41,6 @@ public class ItemDataListDeserializer implements JsonDeserializer<List<ItemData>
|
|||
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<List<ItemData>
|
|||
} else {
|
||||
item = new ItemData();
|
||||
item.key = entry.getKey();
|
||||
if (entry.getValue().isJsonNull()) {
|
||||
item.owned = null;
|
||||
} else {
|
||||
item.owned = entry.getValue().getAsBoolean();
|
||||
}
|
||||
}
|
||||
vals.add(item);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue