@@ -1321,8 +1321,8 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl
return pagerAdapter.switchToSession(node);
}
- public void setupViewPager(ViewPager pager, TabLayout tabs, boolean onboarding) {
- pagerAdapter.setupViewPager(pager, tabs, onboarding);
+ public void setupViewPager(ViewPager pager, TabLayout tabs, boolean onboarding, Conversation oldConversation) {
+ pagerAdapter.setupViewPager(pager, tabs, onboarding, oldConversation);
}
public void showViewPager() {
@@ -1363,16 +1363,23 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl
protected View page2 = null;
protected boolean mOnboarding = false;
- public void setupViewPager(ViewPager pager, TabLayout tabs, boolean onboarding) {
+ public void setupViewPager(ViewPager pager, TabLayout tabs, boolean onboarding, Conversation oldConversation) {
mPager = pager;
mTabs = tabs;
mOnboarding = onboarding;
+ if (oldConversation != null) {
+ oldConversation.pagerAdapter.mPager = null;
+ oldConversation.pagerAdapter.mTabs = null;
+ }
+
if (mPager == null) return;
if (sessions != null) show();
if (pager.getChildAt(0) != null) page1 = pager.getChildAt(0);
if (pager.getChildAt(1) != null) page2 = pager.getChildAt(1);
+ if (page1 == null) page1 = oldConversation.pagerAdapter.page1;
+ if (page2 == null) page2 = oldConversation.pagerAdapter.page2;
if (page1 == null || page2 == null) {
throw new IllegalStateException("page1 or page2 were not present as child or in model?");
}
@@ -1368,7 +1368,7 @@ public class ConversationFragment extends XmppFragment
messageListAdapter.setOnContactPictureClicked(null);
messageListAdapter.setOnContactPictureLongClicked(null);
messageListAdapter.setOnInlineImageLongClicked(null);
- if (conversation != null) conversation.setupViewPager(null, null, false);
+ if (conversation != null) conversation.setupViewPager(null, null, false, null);
}
private void quoteText(String text) {
@@ -2855,12 +2855,11 @@ public class ConversationFragment extends XmppFragment
.setOpenConversation(this.conversation);
if (commandAdapter != null && conversation != originalConversation) {
- originalConversation.setupViewPager(null, null, false);
- conversation.setupViewPager(binding.conversationViewPager, binding.tabLayout, activity.xmppConnectionService.isOnboarding());
+ conversation.setupViewPager(binding.conversationViewPager, binding.tabLayout, activity.xmppConnectionService.isOnboarding(), originalConversation);
refreshCommands(false);
}
if (commandAdapter == null && conversation != null) {
- conversation.setupViewPager(binding.conversationViewPager, binding.tabLayout, activity.xmppConnectionService.isOnboarding());
+ conversation.setupViewPager(binding.conversationViewPager, binding.tabLayout, activity.xmppConnectionService.isOnboarding(), null);
commandAdapter = new CommandAdapter((XmppActivity) getActivity());
binding.commandsView.setAdapter(commandAdapter);
binding.commandsView.setOnItemClickListener((parent, view, position, id) -> {