From 8d4f51e0a34fb96d10a58605150d8364145b99f0 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 19 Apr 2016 13:26:03 +0200 Subject: [PATCH] Fix various crashes --- .../android/habitica/ui/activities/MainActivity.java | 3 ++- .../adapter/inventory/MountDetailRecyclerAdapter.java | 2 +- .../adapter/inventory/PetDetailRecyclerAdapter.java | 2 +- .../fragments/inventory/StableRecyclerFragment.java | 6 ++++-- .../inventory/items/ItemRecyclerFragment.java | 11 +++++++++-- .../ui/fragments/social/GroupInformationFragment.java | 6 ++++-- .../habitica/ui/fragments/social/TavernFragment.java | 8 +++++--- 7 files changed, 26 insertions(+), 12 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 34b51ed0f..bea2d0352 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 @@ -577,7 +577,8 @@ public class MainActivity extends BaseActivity implements HabitRPGUserCallback.O } IDrawerItem item = drawer.getDrawerItem(MainDrawerBuilder.SIDEBAR_SKILLS); - if (user.getPreferences().getDisableClasses() || !user.getFlags().getClassSelected()) { + if ((user.getPreferences() != null && user.getPreferences().getDisableClasses()) + || (user.getFlags() != null && !user.getFlags().getClassSelected())) { if (item != null) { drawer.removeItem(MainDrawerBuilder.SIDEBAR_SKILLS); } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.java index 4eb66fffe..e26e77130 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/MountDetailRecyclerAdapter.java @@ -109,7 +109,7 @@ public class MountDetailRecyclerAdapter extends RecyclerView.Adapter setGridSpanCount(finalView.getWidth())); } @@ -119,6 +118,9 @@ public class StableRecyclerFragment extends BaseFragment { private void loadItems() { Runnable itemsRunnable = () -> { + if (itemType == null) { + return; + } List items = new ArrayList<>(); Where query = null; diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemRecyclerFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemRecyclerFragment.java index c08c30048..a5e6d7827 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemRecyclerFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemRecyclerFragment.java @@ -96,8 +96,6 @@ public class ItemRecyclerFragment extends BaseFragment { adapter.feedingPet = this.feedingPet; } recyclerView.setAdapter(adapter); - this.loadItems(); - } recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST)); } @@ -121,6 +119,12 @@ public class ItemRecyclerFragment extends BaseFragment { return view; } + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + this.loadItems(); + } + @Override public void onResume() { if (this.isHatching) { @@ -146,6 +150,9 @@ public class ItemRecyclerFragment extends BaseFragment { private void loadItems() { From from = null; + if (this.itemType == null) { + return; + } switch (this.itemType) { case "eggs": from = new Select().from(Egg.class); diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GroupInformationFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GroupInformationFragment.java index b9f85fada..47a9d5990 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GroupInformationFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GroupInformationFragment.java @@ -106,9 +106,11 @@ public class GroupInformationFragment extends Fragment { updateQuestMember(group); } - updateQuestProgress(group, quest); - this.group = group; + + if (isAdded()) { + updateQuestProgress(group, quest); + } } public void setQuestContent(QuestContent quest) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/TavernFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/TavernFragment.java index a2a4817bc..1f46d34cb 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/TavernFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/TavernFragment.java @@ -54,10 +54,12 @@ public class TavernFragment extends BaseMainFragment implements Callback @Override public void success(Group group, Response response) { this.tavern = group; - if (group.quest != null) { + if (group.quest != null && this.isAdded()) { this.viewPager.getAdapter().notifyDataSetChanged(); - this.tabLayout.setVisibility(View.VISIBLE); - this.tabLayout.setupWithViewPager(this.viewPager); + if (this.tabLayout != null) { + this.tabLayout.setVisibility(View.VISIBLE); + this.tabLayout.setupWithViewPager(this.viewPager); + } ContentCache contentCache = new ContentCache(mAPIHelper.apiService);