From 9c9b71840fbb87baaf639f4f4ae2b66d4867ed52 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Wed, 21 Sep 2022 08:44:33 -0500 Subject: [PATCH] Fix memory leak --- .../eu/siacs/conversations/entities/Conversation.java | 9 ++++++--- .../eu/siacs/conversations/ui/ConversationFragment.java | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/entities/Conversation.java b/src/main/java/eu/siacs/conversations/entities/Conversation.java index ece1abde351d86fa4e409d8df980367434494484..edb729f28c32a592e91bdae5a491ccd992cae4b8 100644 --- a/src/main/java/eu/siacs/conversations/entities/Conversation.java +++ b/src/main/java/eu/siacs/conversations/entities/Conversation.java @@ -1224,12 +1224,15 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl public class ConversationPagerAdapter extends PagerAdapter { protected ViewPager mPager = null; protected TabLayout mTabs = null; - ArrayList sessions = new ArrayList<>(); + ArrayList sessions = null; public void setupViewPager(ViewPager pager, TabLayout tabs) { mPager = pager; mTabs = tabs; - show(); + + if (mPager == null) return; + if (sessions != null) show(); + pager.setAdapter(this); tabs.setupWithViewPager(mPager); pager.setCurrentItem(getCurrentTab()); @@ -1253,7 +1256,7 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl } public void hide() { - if (!sessions.isEmpty()) return; // Do not hide during active session + if (sessions != null && !sessions.isEmpty()) return; // Do not hide during active session if (mPager != null) mPager.setCurrentItem(0); if (mTabs != null) mTabs.setVisibility(View.GONE); sessions = null; diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index 58db69c9be7e2fc59d5587b4d681537a3cd38dca..60de1b5c0e82a10c2edc70d4f423a53c4944fddb 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -1255,6 +1255,7 @@ public class ConversationFragment extends XmppFragment Log.d(Config.LOGTAG, "ConversationFragment.onDestroyView()"); messageListAdapter.setOnContactPictureClicked(null); messageListAdapter.setOnContactPictureLongClicked(null); + conversation.setupViewPager(null, null); } private void quoteText(String text) {