Change summary
src/main/java/eu/siacs/conversations/entities/Conversation.java | 7
src/main/java/eu/siacs/conversations/ui/ConversationFragment.java | 8 +
2 files changed, 15 insertions(+)
Detailed changes
@@ -85,6 +85,7 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl
private ChatState mOutgoingChatState = Config.DEFAULT_CHAT_STATE;
private ChatState mIncomingChatState = Config.DEFAULT_CHAT_STATE;
private String mFirstMamReference = null;
+ protected int mCurrentTab = -1;
public Conversation(final String name, final Account account, final Jid contactJid,
final int mode) {
@@ -1110,7 +1111,13 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl
return getName().toString();
}
+ public void setCurrentTab(int tab) {
+ mCurrentTab = tab;
+ }
+
public int getCurrentTab() {
+ if (mCurrentTab >= 0) return mCurrentTab;
+
if (!isRead() || getContact().resourceWhichSupport(Namespace.COMMANDS) == null) {
return 0;
}
@@ -1248,6 +1248,14 @@ public class ConversationFragment extends XmppFragment
));
binding.tabLayout.setupWithViewPager(binding.conversationViewPager);
binding.conversationViewPager.setCurrentItem(conversation.getCurrentTab());
+ binding.conversationViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ public void onPageScrollStateChanged(int state) { }
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { }
+
+ public void onPageSelected(int position) {
+ conversation.setCurrentTab(position);
+ }
+ });
commandAdapter = new CommandAdapter((XmppActivity) getActivity());
binding.commandsView.setAdapter(commandAdapter);