diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index aecaf8bbb7c134ba2ca11bc1b0d740952e598368..c7a423f96df49654edacd31bc43c9180e26ad7db 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -2503,28 +2503,30 @@ public class ConversationFragment extends XmppFragment .getNotificationService() .setOpenConversation(this.conversation); - conversation.setupViewPager(binding.conversationViewPager, binding.tabLayout); - commandAdapter = new CommandAdapter((XmppActivity) getActivity()); - binding.commandsView.setAdapter(commandAdapter); - binding.commandsView.setOnItemClickListener((parent, view, position, id) -> { - conversation.startCommand(commandAdapter.getItem(position), activity.xmppConnectionService); - }); - Jid commandJid = conversation.getContact().resourceWhichSupport(Namespace.COMMANDS); - if (commandJid != null) { - binding.tabLayout.setVisibility(View.VISIBLE); - activity.xmppConnectionService.fetchCommands(conversation.getAccount(), commandJid, (a, iq) -> { - if (iq.getType() == IqPacket.TYPE.RESULT) { - activity.runOnUiThread(() -> { - for (Element child : iq.query().getChildren()) { - if (!"item".equals(child.getName()) || !Namespace.DISCO_ITEMS.equals(child.getNamespace())) continue; - commandAdapter.add(child); - } - }); - } else { - binding.tabLayout.setVisibility(View.GONE); - binding.conversationViewPager.setCurrentItem(0); - } + if (commandAdapter == null) { + conversation.setupViewPager(binding.conversationViewPager, binding.tabLayout); + commandAdapter = new CommandAdapter((XmppActivity) getActivity()); + binding.commandsView.setAdapter(commandAdapter); + binding.commandsView.setOnItemClickListener((parent, view, position, id) -> { + conversation.startCommand(commandAdapter.getItem(position), activity.xmppConnectionService); }); + Jid commandJid = conversation.getContact().resourceWhichSupport(Namespace.COMMANDS); + if (commandJid != null) { + binding.tabLayout.setVisibility(View.VISIBLE); + activity.xmppConnectionService.fetchCommands(conversation.getAccount(), commandJid, (a, iq) -> { + if (iq.getType() == IqPacket.TYPE.RESULT) { + activity.runOnUiThread(() -> { + for (Element child : iq.query().getChildren()) { + if (!"item".equals(child.getName()) || !Namespace.DISCO_ITEMS.equals(child.getNamespace())) continue; + commandAdapter.add(child); + } + }); + } else { + binding.tabLayout.setVisibility(View.GONE); + binding.conversationViewPager.setCurrentItem(0); + } + }); + } } return true;