From cf817c66c8ce4898de149ace72076ad3eba5d8ea Mon Sep 17 00:00:00 2001 From: Stas Safyanov Date: Fri, 3 Nov 2017 12:15:26 +0200 Subject: [PATCH 1/2] added delete other user from db --- .../nynja/mobile/communicator/data/DataManager.java | 12 ++++++++---- .../nynja/mobile/communicator/data/db/DbHelper.java | 9 +++++++++ .../communicator/data/models/mqtt/BaseMQQT.java | 1 + 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/nynja/mobile/communicator/data/DataManager.java b/app/src/main/java/com/nynja/mobile/communicator/data/DataManager.java index 54075dce6f..7af5693e30 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/data/DataManager.java +++ b/app/src/main/java/com/nynja/mobile/communicator/data/DataManager.java @@ -216,10 +216,14 @@ public class DataManager { } } else if (serverObj instanceof Contact) {//============================================Contact Contact newContact = (Contact) serverObj; - mDbHelper.updateLocalContact(newContact); - if (getProfile() != null) { - mDbHelper.saveContact(newContact, getProfile().getRoster()); - mDbHelper.saveMember(Member.generateMember(newContact)); + if (newContact.status.equals(Contact.Statuses.DELETED)) { + mDbHelper.deleteContact(newContact); + } else { + mDbHelper.updateLocalContact(newContact); + if (getProfile() != null) { + mDbHelper.saveContact(newContact, getProfile().getRoster()); + mDbHelper.saveMember(Member.generateMember(newContact)); + } } } else if (serverObj instanceof Roster) {//=============================================Roster mDbHelper.saveRoster(getProfile(), (Roster) serverObj); diff --git a/app/src/main/java/com/nynja/mobile/communicator/data/db/DbHelper.java b/app/src/main/java/com/nynja/mobile/communicator/data/db/DbHelper.java index 1b9b773b80..94e8e0c027 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/data/db/DbHelper.java +++ b/app/src/main/java/com/nynja/mobile/communicator/data/db/DbHelper.java @@ -1150,4 +1150,13 @@ public class DbHelper { } } + private void delete(String tableName, @Nullable String where) { + mDb.delete(tableName, where, null); + } + + public void deleteContact(Contact contact) { + if (contact != null && StringUtils.isNotEmpty(contact.phoneId)) + delete(ContactsTable.TABLE_NAME, + ContactsTable.Column.PHONE_ID + " = '" + contact.phoneId + "'"); + } } diff --git a/app/src/main/java/com/nynja/mobile/communicator/data/models/mqtt/BaseMQQT.java b/app/src/main/java/com/nynja/mobile/communicator/data/models/mqtt/BaseMQQT.java index 62ec925f4f..958856d50f 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/data/models/mqtt/BaseMQQT.java +++ b/app/src/main/java/com/nynja/mobile/communicator/data/models/mqtt/BaseMQQT.java @@ -44,6 +44,7 @@ public abstract class BaseMQQT { BertAtom JWT_SENT = new BertAtom("jwt_sent"); BertAtom ONLINE = new BertAtom("online"); BertAtom CHAIN = new BertAtom("chain"); + BertAtom DELETED = new BertAtom("deleted"); } public interface MimeTypes { -- GitLab From a535cab335cd864584dde692bd8bb4dcf028d398 Mon Sep 17 00:00:00 2001 From: Stas Safyanov Date: Fri, 3 Nov 2017 13:34:47 +0200 Subject: [PATCH 2/2] fixed paho --- .../communicator/data/server/PahoService.java | 2 +- .../mvp/presenters/ChatPresenter.java | 26 ------------------- 2 files changed, 1 insertion(+), 27 deletions(-) diff --git a/app/src/main/java/com/nynja/mobile/communicator/data/server/PahoService.java b/app/src/main/java/com/nynja/mobile/communicator/data/server/PahoService.java index ec5a64cc0d..0068d4c944 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/data/server/PahoService.java +++ b/app/src/main/java/com/nynja/mobile/communicator/data/server/PahoService.java @@ -213,7 +213,7 @@ public class PahoService extends Service { if (!mDataManager.getVoxImlant().isCallActive()) mDataManager.disconnectVox(); if (mServerClient != null) { try { - mServerClient.disconnect(); + if (mServerClient.isConnected()) mServerClient.disconnect(); mServerClient.unregisterResources(); } catch (Exception e) { Timber.e(e); 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 8d946ba92b..aeb911a35a 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 @@ -48,10 +48,6 @@ public class ChatPresenter extends BaseErrorPresenter { private long mRecordTime; private Long mFirstMsgId; - @Override protected void onFirstViewAttach() { - super.onFirstViewAttach(); - } - @Override public void attachView(ChatView view) { super.attachView(view); addDisposable(mDataManager.getLocalMessageObservable() @@ -144,7 +140,6 @@ public class ChatPresenter extends BaseErrorPresenter { if (mRoom.isGroupChat()) { addDisposable(mDataManager.getGroupChatHistory(mRoom.id) - .map(this::removeEmpty) .doOnSuccess(messages -> { for (int i = 0; i < messages.size(); i++) { Message message = messages.get(i); @@ -156,7 +151,6 @@ public class ChatPresenter extends BaseErrorPresenter { .subscribe(messages -> getViewState().setMessages(messages))); } else { addDisposable(mDataManager.getPrivateChatHistory(mRoom.id) - .map(this::removeEmpty) .doOnSuccess(messages -> { for (int i = 0; i < messages.size(); i++) { Message message = messages.get(i); @@ -169,22 +163,6 @@ public class ChatPresenter extends BaseErrorPresenter { } } - private List removeEmpty(List list) { - List newList = new ArrayList<>(); - for (Message m : list) { - if (!isEmptyMsg(m)) newList.add(m); - } - return newList; - } - - private boolean isEmptyMsg(Message m) { - return m.files == null - || m.files.size() == 0 - || m.files.get(0).payload == null - || m.files.get(0).payload.isEmpty(); - } - - public void subscribeOnUserInChat() { if (mRoom == null) return; if (mRoom.isGroupChat()) { @@ -210,7 +188,6 @@ public class ChatPresenter extends BaseErrorPresenter { if (mRoom == null) return; if (mRoom.isGroupChat()) { addDisposable(mDataManager.getLastGroupMsg(mRoom.id) - .filter(message -> !isEmptyMsg(message)) .doOnNext(ChatPresenter.this::downloadRecord) .distinct() .filter(message -> mRoom.last_msg == null || @@ -223,7 +200,6 @@ public class ChatPresenter extends BaseErrorPresenter { })); } else { addDisposable(mDataManager.getLastPrivateMsg(mRoom.id) - .filter(message -> !isEmptyMsg(message)) .doOnNext(ChatPresenter.this::downloadRecord) .distinct() .filter(message -> mRoom.last_msg == null || @@ -243,7 +219,6 @@ public class ChatPresenter extends BaseErrorPresenter { .flatMap(messages -> { Collections.sort(messages, (o1, o2) -> o1.id.compareTo(o2.id)); return Observable.fromIterable(messages) - .filter(message -> !isEmptyMsg(message)) .filter(message -> mFirstMsgId != null && message.id < mFirstMsgId) .doOnNext(ChatPresenter.this::downloadRecord) .toList() @@ -261,7 +236,6 @@ public class ChatPresenter extends BaseErrorPresenter { .flatMap(messages -> { Collections.sort(messages, (o1, o2) -> o1.id.compareTo(o2.id)); return Observable.fromIterable(messages) - .filter(message -> !isEmptyMsg(message)) .filter(message -> mFirstMsgId != null && message.id < mFirstMsgId) .doOnNext(ChatPresenter.this::downloadRecord) .toList() -- GitLab