From e3ee56754a5c47182677d8f4b7c8368724ce10c8 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Wed, 9 Dec 2015 13:19:04 +0100 Subject: [PATCH] unregister chatlistfragment from events when destroyed Fixes #165 Fixes #149 --- .../ui/fragments/ChatListFragment.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/Habitica/src/com/habitrpg/android/habitica/ui/fragments/ChatListFragment.java b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/ChatListFragment.java index 233317752..c44976610 100644 --- a/Habitica/src/com/habitrpg/android/habitica/ui/fragments/ChatListFragment.java +++ b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/ChatListFragment.java @@ -35,6 +35,7 @@ import java.util.List; import butterknife.ButterKnife; import butterknife.InjectView; import de.greenrobot.event.EventBus; +import de.greenrobot.event.EventBusException; import retrofit.Callback; import retrofit.RetrofitError; import retrofit.client.Response; @@ -51,6 +52,7 @@ public class ChatListFragment extends Fragment implements SwipeRefreshLayout.OnR private String userId; private boolean isTavern; private MainActivity activity; + private boolean registerEventBus = false; public ChatListFragment(Context ctx, String groupId, APIHelper apiHelper, HabitRPGUser user, MainActivity activity, boolean isTavern) { @@ -61,9 +63,6 @@ public class ChatListFragment extends Fragment implements SwipeRefreshLayout.OnR this.userId = user.getId(); this.isTavern = isTavern; this.activity = activity; - - // Receive Events - EventBus.getDefault().register(this); } private View view; @@ -74,6 +73,14 @@ public class ChatListFragment extends Fragment implements SwipeRefreshLayout.OnR if (view == null) view = inflater.inflate(R.layout.fragment_chatlist, container, false); + // Receive Events + try { + EventBus.getDefault().register(this); + registerEventBus = true; + } catch (EventBusException ignored) { + + } + return view; } @@ -242,4 +249,11 @@ public class ChatListFragment extends Fragment implements SwipeRefreshLayout.OnR }); } + @Override + public void onDestroyView() { + if (registerEventBus) { + EventBus.getDefault().unregister(this); + } + super.onDestroyView(); + } }