diff --git a/xabber/src/main/java/com/xabber/android/ui/dialog/ContactDeleteDialogFragment.java b/xabber/src/main/java/com/xabber/android/ui/dialog/ContactDeleteDialogFragment.java index b2938f4543..ee3f054d16 100644 --- a/xabber/src/main/java/com/xabber/android/ui/dialog/ContactDeleteDialogFragment.java +++ b/xabber/src/main/java/com/xabber/android/ui/dialog/ContactDeleteDialogFragment.java @@ -12,6 +12,7 @@ import com.xabber.android.data.account.AccountManager; import com.xabber.android.data.entity.AccountJid; import com.xabber.android.data.entity.UserJid; +import com.xabber.android.data.message.AbstractChat; import com.xabber.android.data.message.MessageManager; import com.xabber.android.data.roster.PresenceManager; import com.xabber.android.data.roster.RosterManager; @@ -56,11 +57,18 @@ public void onClick(DialogInterface dialog, int which) { MessageManager.getInstance().closeChat(account, user); try { + // discard subscription PresenceManager.getInstance().discardSubscription(account, user); } catch (NetworkException e) { Application.getInstance().onError(R.string.CONNECTION_FAILED); } + // delete chat + AbstractChat chat = MessageManager.getInstance().getChat(account, user); + if (chat != null) + MessageManager.getInstance().removeChat(chat); + + // remove roster contact RosterManager.getInstance().removeContact(account, user); if (getActivity() instanceof ContactActivity) {