Remove magical scroll

Signed-off-by: Mario Danic <mario@lovelyhq.com>
This commit is contained in:
Mario Danic 2019-04-18 22:45:51 +02:00
parent 1d020893ce
commit 077f0dc1b2

View File

@ -167,9 +167,6 @@ public class ConversationsListController extends BaseController implements Searc
private boolean isRefreshing; private boolean isRefreshing;
private String lastClickedConversationToken;
private int scrollTo = 0;
private LovelySaveStateHandler saveStateHandler; private LovelySaveStateHandler saveStateHandler;
private Bundle conversationMenuBundle = null; private Bundle conversationMenuBundle = null;
@ -347,20 +344,13 @@ public class ConversationsListController extends BaseController implements Searc
} }
Conversation conversation; Conversation conversation;
AbstractFlexibleItem itemToScrollTo = null;
for (int i = 0; i < roomsOverall.getOcs().getData().size(); i++) { for (int i = 0; i < roomsOverall.getOcs().getData().size(); i++) {
conversation = roomsOverall.getOcs().getData().get(i); conversation = roomsOverall.getOcs().getData().get(i);
if (shouldUseLastMessageLayout) { if (shouldUseLastMessageLayout) {
ConversationItem conversationItem = new ConversationItem(conversation, currentUser); ConversationItem conversationItem = new ConversationItem(conversation, currentUser);
if (!TextUtils.isEmpty(lastClickedConversationToken) && lastClickedConversationToken.equals(conversation.getToken())) {
itemToScrollTo = conversationItem;
}
callItems.add(conversationItem); callItems.add(conversationItem);
} else { } else {
CallItem callItem = new CallItem(conversation, currentUser); CallItem callItem = new CallItem(conversation, currentUser);
if (!TextUtils.isEmpty(lastClickedConversationToken) && lastClickedConversationToken.equals(conversation.getToken())) {
itemToScrollTo = callItem;
}
callItems.add(callItem); callItems.add(callItem);
} }
} }
@ -379,11 +369,6 @@ public class ConversationsListController extends BaseController implements Searc
Long.compare(((CallItem) t1).getModel().getLastPing(), Long.compare(((CallItem) t1).getModel().getLastPing(),
((CallItem) callItem).getModel().getLastPing())); ((CallItem) callItem).getModel().getLastPing()));
} }
if (itemToScrollTo == null || callItems.indexOf(itemToScrollTo) == -1) {
scrollTo = 0;
} else {
scrollTo = callItems.indexOf(itemToScrollTo);
}
adapter.updateDataSet(callItems, true); adapter.updateDataSet(callItems, true);
@ -464,34 +449,6 @@ public class ConversationsListController extends BaseController implements Searc
fastScroller.addOnScrollStateChangeListener(this); fastScroller.addOnScrollStateChangeListener(this);
adapter.setFastScroller(fastScroller); adapter.setFastScroller(fastScroller);
adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
@Override
public void onChanged() {
super.onChanged();
if (recyclerView != null) {
recyclerView.smoothScrollToPosition(scrollTo);
}
lastClickedConversationToken = "";
}
@Override
public void onItemRangeChanged(int positionStart, int itemCount) {
super.onItemRangeChanged(positionStart, itemCount);
if (recyclerView != null) {
recyclerView.smoothScrollToPosition(scrollTo);
}
lastClickedConversationToken = "";
}
@Override
public void onItemRangeChanged(int positionStart, int itemCount, @Nullable Object payload) {
super.onItemRangeChanged(positionStart, itemCount, payload);
if (recyclerView != null) {
recyclerView.smoothScrollToPosition(scrollTo);
}
lastClickedConversationToken = "";
}
});
fastScroller.setBubbleTextCreator(position -> { fastScroller.setBubbleTextCreator(position -> {
String displayName; String displayName;
@ -658,7 +615,6 @@ public class ConversationsListController extends BaseController implements Searc
conversation = ((CallItem) clickedItem).getModel(); conversation = ((CallItem) clickedItem).getModel();
} }
lastClickedConversationToken = conversation.getToken();
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putParcelable(BundleKeys.KEY_USER_ENTITY, currentUser); bundle.putParcelable(BundleKeys.KEY_USER_ENTITY, currentUser);