diff --git a/app/src/main/java/io/github/chronosx88/influence/presenters/DialogListPresenter.java b/app/src/main/java/io/github/chronosx88/influence/presenters/DialogListPresenter.java index d3a942a..60810a2 100644 --- a/app/src/main/java/io/github/chronosx88/influence/presenters/DialogListPresenter.java +++ b/app/src/main/java/io/github/chronosx88/influence/presenters/DialogListPresenter.java @@ -55,12 +55,13 @@ public class DialogListPresenter implements CoreContracts.IDialogListPresenterCo private CoreContracts.IChatListViewContract view; private CoreContracts.IDialogListLogicContract logic; private DialogsListAdapter dialogListAdapter = new DialogsListAdapter<>((imageView, url, payload) -> { + String firstLetter = Character.toString(Character.toUpperCase(url.charAt(0))); imageView.setImageDrawable(TextDrawable.builder() .beginConfig() .width(32) .height(32) .endConfig() - .buildRound(Character.toString(url.charAt(0)), ColorGenerator.MATERIAL.getColor(Character.toString(url.charAt(0))))); + .buildRound(firstLetter, ColorGenerator.MATERIAL.getColor(firstLetter))); CompletableFuture.supplyAsync(() -> { while (AppHelper.getXmppConnection() == null); while (AppHelper.getXmppConnection().isConnectionAlive() != true); @@ -150,12 +151,14 @@ public class DialogListPresenter implements CoreContracts.IDialogListPresenterCo @Override public void loadRemoteContactList() { CompletableFuture.supplyAsync(() -> logic.getRemoteContacts()).thenAccept((contacts) -> { - if(contacts != null) { - StreamSupport.stream(contacts).forEach(contact -> { - LocalDBWrapper.createChatEntry(contact.getJid().asUnescapedString(), contact.getName() == null ? contact.getJid().asUnescapedString() : contact.getName()); - dialogListAdapter.upsertItem(new GenericDialog(LocalDBWrapper.getChatByChatID(contact.getJid().asUnescapedString()))); - }); - } + AppHelper.getMainUIThread().post(() -> { + if(contacts != null) { + StreamSupport.stream(contacts).forEach(contact -> { + LocalDBWrapper.createChatEntry(contact.getJid().asUnescapedString(), contact.getName() == null ? contact.getJid().asUnescapedString().split("@")[0] : contact.getName()); + dialogListAdapter.upsertItem(new GenericDialog(LocalDBWrapper.getChatByChatID(contact.getJid().asUnescapedString()))); + }); + } + }); }); } } diff --git a/app/src/main/java/io/github/chronosx88/influence/views/ChatActivity.kt b/app/src/main/java/io/github/chronosx88/influence/views/ChatActivity.kt index 47f43cc..ebb2f02 100644 --- a/app/src/main/java/io/github/chronosx88/influence/views/ChatActivity.kt +++ b/app/src/main/java/io/github/chronosx88/influence/views/ChatActivity.kt @@ -97,12 +97,13 @@ class ChatActivity : AppCompatActivity(), CoreContracts.IChatViewContract { chatAvatar!!.setImageBitmap(avatar) } else { val chatName = intent.getStringExtra("chatName") + val firstLetter = Character.toString(chatName[0].toUpperCase()) chatAvatar!!.setImageDrawable(TextDrawable.builder() .beginConfig() .width(32) .height(32) .endConfig() - .buildRound(Character.toString(chatName[0]), ColorGenerator.MATERIAL.getColor(Character.toString(chatName[0])))) + .buildRound(firstLetter, ColorGenerator.MATERIAL.getColor(firstLetter))) } } }