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 fa89535b5..2f0e936e9 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 @@ -486,19 +486,31 @@ public class MainActivity extends BaseActivity implements HabitRPGUserCallback.O accountHeader.updateProfile(profile); IDrawerItem item = drawer.getDrawerItem(MainDrawerBuilder.SIDEBAR_SKILLS); - if (user.getStats().getLvl() < MIN_LEVEL_FOR_SKILLS && item.isEnabled()) { - IDrawerItem newItem = new PrimaryDrawerItem() - .withName(this.getString(R.string.sidebar_skills)) - .withEnabled(false) - .withBadge(this.getString(R.string.unlock_lvl_11)) - .withIdentifier(MainDrawerBuilder.SIDEBAR_SKILLS); - drawer.updateItem(newItem); - } else if (user.getStats().getLvl() >= MIN_LEVEL_FOR_SKILLS && !item.isEnabled()) { - IDrawerItem newItem = new PrimaryDrawerItem() - .withName(this.getString(R.string.sidebar_skills)) - .withIdentifier(MainDrawerBuilder.SIDEBAR_SKILLS); - drawer.updateItem(newItem); + if (user.getPreferences().getDisableClasses()) { + if (item != null) { + drawer.removeItem(MainDrawerBuilder.SIDEBAR_SKILLS); + } + } else { + IDrawerItem newItem = item; + if (user.getStats().getLvl() < MIN_LEVEL_FOR_SKILLS && item.isEnabled()) { + newItem = new PrimaryDrawerItem() + .withName(this.getString(R.string.sidebar_skills)) + .withEnabled(false) + .withBadge(this.getString(R.string.unlock_lvl_11)) + .withIdentifier(MainDrawerBuilder.SIDEBAR_SKILLS); + } else if (user.getStats().getLvl() >= MIN_LEVEL_FOR_SKILLS && !item.isEnabled()) { + newItem = new PrimaryDrawerItem() + .withName(this.getString(R.string.sidebar_skills)) + .withIdentifier(MainDrawerBuilder.SIDEBAR_SKILLS); + } + if (item == null) { + drawer.addItemAtPosition(newItem, 1); + } else { + drawer.updateItem(newItem); + + } } + } @Override diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.java index 6e37078aa..4865c6d22 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.java @@ -249,38 +249,37 @@ public class TasksFragment extends BaseMainFragment implements OnCheckedChangeLi if (user.getFlags().getArmoireEnabled()) itemKeys.add("armoire"); - contentCache.GetItemDataList(itemKeys, new ContentCache.GotContentEntryCallback>() { - @Override - public void GotObject(List obj) { - ArrayList buyableItems = new ArrayList<>(); + contentCache.GetItemDataList(itemKeys, obj -> { + ArrayList buyableItems = new ArrayList<>(); + if (!isAdded()) { + return; + } + for (ItemData item : obj) { + Task reward = new Task(); + reward.text = item.text; + reward.notes = item.notes; + reward.value = item.value; + reward.setType("reward"); + reward.specialTag = "item"; + reward.setId(item.key); - for (ItemData item : obj) { - Task reward = new Task(); - reward.text = item.text; - reward.notes = item.notes; - reward.value = item.value; - reward.setType("reward"); - reward.specialTag = "item"; - reward.setId(item.key); - - if (item.key.equals("armoire")) { - if (user.getFlags().getArmoireEmpty()) { - reward.notes = getResources().getString(R.string.armoireNotesEmpty); - } else { - long gearCount = new Select().count() - .from(ItemData.class) - .where(Condition.CombinedCondition.begin(Condition.column("klass").eq("armoire")) - .and(Condition.column("owned").isNull()) - ).count(); - reward.notes = getResources().getString(R.string.armoireNotesFull, gearCount); - } + if (item.key.equals("armoire")) { + if (user.getFlags().getArmoireEmpty()) { + reward.notes = getResources().getString(R.string.armoireNotesEmpty); + } else { + long gearCount = new Select().count() + .from(ItemData.class) + .where(Condition.CombinedCondition.begin(Condition.column("klass").eq("armoire")) + .and(Condition.column("owned").isNull()) + ).count(); + reward.notes = getResources().getString(R.string.armoireNotesFull, gearCount); } - - buyableItems.add(reward); } - callBack.GotAdditionalItems(buyableItems); + buyableItems.add(reward); } + + callBack.GotAdditionalItems(buyableItems); }); } @@ -450,7 +449,7 @@ public class TasksFragment extends BaseMainFragment implements OnCheckedChangeLi @Subscribe public void onEvent(final TaskSaveEvent event) { - Task task = (Task) event.task; + Task task = event.task; if (event.created) { this.mAPIHelper.createNewTask(task, new TaskCreationCallback()); updateTags(event.task.getTags());