From a31a0dc290204f68f1294276846c771ef8d455c7 Mon Sep 17 00:00:00 2001 From: Stas Safyanov Date: Wed, 1 Nov 2017 10:55:44 +0200 Subject: [PATCH 1/2] fixed UI on myprofile screen --- .../mvp/presenters/MyProfilePresenter.java | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/MyProfilePresenter.java b/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/MyProfilePresenter.java index 5fdacab007..a0aba50e4f 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/MyProfilePresenter.java +++ b/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/MyProfilePresenter.java @@ -37,7 +37,7 @@ import static io.reactivex.Observable.combineLatest; @InjectViewState public class MyProfilePresenter extends BasePresenter { - private static final int LIMIT_ITEMS_PER_GROUP = 1; + private static final int LIMIT_ITEMS_PER_GROUP = 5; private static final int LIMIT_ITEMS = LIMIT_ITEMS_PER_GROUP + 1; @Override public void attachView(MyProfileView view) { @@ -92,29 +92,38 @@ public class MyProfilePresenter extends BasePresenter { vhModels.add(new VHModel(VHModel.HEADER_TAG, profile)); vhModels.add(new VHModel(VHModel.TITLE_TAG, R.string.unread_private_chats)); - for (Room room : privateChats) { - vhModels.add(new VHModel(VHModel.P2P_MESSAGE_TAG, room)); - } - if (privateChats.size() == 0) + if (privateChats.size() == 0) { vhModels.add(new VHModel(VHModel.EMPTY, R.string.no_unread)); + } else { + int s = privateChats.size() > LIMIT_ITEMS_PER_GROUP ? LIMIT_ITEMS_PER_GROUP : privateChats.size(); + for (int i = 0; i < s; i++) { + vhModels.add(new VHModel(VHModel.P2P_MESSAGE_TAG, privateChats.get(i))); + } + } if (privateChats.size() > LIMIT_ITEMS_PER_GROUP) vhModels.add(new VHModel(VHModel.P2P_MESSAGE_SHOW_MORE_TAG, R.string.show_more)); vhModels.add(new VHModel(VHModel.TITLE_TAG, R.string.unread_group_chats)); - for (Room room : groupChats) { - vhModels.add(new VHModel(VHModel.GROUP_MESSAGE_TAG, room)); - } - if (groupChats.size() == 0) + if (groupChats.size() == 0) { vhModels.add(new VHModel(VHModel.EMPTY, R.string.no_unread_group)); + } else { + int s = groupChats.size() > LIMIT_ITEMS_PER_GROUP ? LIMIT_ITEMS_PER_GROUP : groupChats.size(); + for (int i = 0; i < s; i++) { + vhModels.add(new VHModel(VHModel.GROUP_MESSAGE_TAG, groupChats.get(i))); + } + } if (groupChats.size() > LIMIT_ITEMS_PER_GROUP) vhModels.add(new VHModel(VHModel.GROUP_MESSAGE_SHOW_MORE_TAG, R.string.show_more)); vhModels.add(new VHModel(VHModel.TITLE_TAG, R.string.contact_requests)); - for (Contact contact : contacts) { - vhModels.add(new VHModel(VHModel.CONTACT_REQUEST_TAG, contact)); - } - if (contacts.size() == 0) + if (contacts.size() == 0) { vhModels.add(new VHModel(VHModel.EMPTY, R.string.no_contacts)); + } else { + int s = contacts.size() > LIMIT_ITEMS_PER_GROUP ? LIMIT_ITEMS_PER_GROUP : contacts.size(); + for (int i = 0; i < s; i++) { + vhModels.add(new VHModel(VHModel.CONTACT_REQUEST_TAG, contacts.get(i))); + } + } if (contacts.size() > LIMIT_ITEMS_PER_GROUP) vhModels.add(new VHModel(VHModel.CONTACT_REQUEST_SHOW_MORE_TAG, R.string.show_more)); -- GitLab From 44ca62a738a0f8c48690537648417015404f25e5 Mon Sep 17 00:00:00 2001 From: Stas Safyanov Date: Wed, 1 Nov 2017 12:01:56 +0200 Subject: [PATCH 2/2] fixed update messages in chat --- .../mvp/presenters/ChatPresenter.java | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/ChatPresenter.java b/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/ChatPresenter.java index fe224e0ffb..faffcaea96 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/ChatPresenter.java +++ b/app/src/main/java/com/nynja/mobile/communicator/mvp/presenters/ChatPresenter.java @@ -43,22 +43,10 @@ public class ChatPresenter extends BaseErrorPresenter { private double[] mData; private boolean isRecordPlaying = false; private long mRecordTime; - private Observable mMessageObservable; private Long mFirstMsgId; @Override protected void onFirstViewAttach() { super.onFirstViewAttach(); - mMessageObservable = mDataManager.getMsgsByChatId(mRoom.id) - .doOnNext(messages -> { - for (int i = 0; i < messages.size(); i++) { - Message message = messages.get(i); - ChatPresenter.this.downloadRecord(message); - } - }) - .flatMap(Observable::fromIterable) - .distinct() - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()); } @Override public void attachView(ChatView view) { @@ -195,9 +183,19 @@ public class ChatPresenter extends BaseErrorPresenter { } public void subscribeOnOldMsgs() { - addDisposable(mMessageObservable + addDisposable(mDataManager.getMsgsByChatId(mRoom.id) +// .doOnNext(messages -> { +// for (int i = 0; i < messages.size(); i++) { +// Message message = messages.get(i); +// ChatPresenter.this.downloadRecord(message); +// } +// }) + .flatMap(Observable::fromIterable) + .distinct() .filter(message -> mFirstMsgId != null && message.id < mFirstMsgId) .doOnNext(ChatPresenter.this::downloadRecord) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) .subscribe(message -> { mFirstMsgId = message.id; getViewState().addOldMsgs(message); -- GitLab