From 79f1ac47a997ede4a4692dc87c26521fc9caa789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Mon, 28 Jun 2021 19:05:24 -0400 Subject: [PATCH] smartlist: fix crash when searching Change-Id: Id83ff61029299d77d9661f935f3c1d4d41980700 --- .../java/cx/ring/viewholders/SmartListViewHolder.java | 9 +++++---- .../src/main/java/net/jami/model/Conversation.java | 9 +++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ring-android/app/src/main/java/cx/ring/viewholders/SmartListViewHolder.java b/ring-android/app/src/main/java/cx/ring/viewholders/SmartListViewHolder.java index d3e6d16cd..79086a524 100644 --- a/ring-android/app/src/main/java/cx/ring/viewholders/SmartListViewHolder.java +++ b/ring-android/app/src/main/java/cx/ring/viewholders/SmartListViewHolder.java @@ -38,6 +38,7 @@ import cx.ring.databinding.ItemSmartlistBinding; import cx.ring.databinding.ItemSmartlistHeaderBinding; import cx.ring.utils.ResourceMapper; import cx.ring.views.AvatarDrawable; +import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.disposables.CompositeDisposable; public class SmartListViewHolder extends RecyclerView.ViewHolder { @@ -65,10 +66,10 @@ public class SmartListViewHolder extends RecyclerView.ViewHolder { if (binding != null) { itemView.setOnClickListener(v -> clickListener.onItemClick(smartListViewModel)); - compositeDisposable.add(smartListViewModel.getSelected().subscribe(selected -> { - Log.w("SmartListViewHolder", "selected " + selected + " " + smartListViewModel.getContactName()); - binding.itemLayout.setActivated(selected); - })); + Observable<Boolean> selected = smartListViewModel.getSelected(); + if (selected != null) { + compositeDisposable.add(smartListViewModel.getSelected().subscribe(binding.itemLayout::setActivated)); + } itemView.setOnLongClickListener(v -> { clickListener.onItemLongClick(smartListViewModel); return true; diff --git a/ring-android/libringclient/src/main/java/net/jami/model/Conversation.java b/ring-android/libringclient/src/main/java/net/jami/model/Conversation.java index 44ff694a2..b8c74e702 100644 --- a/ring-android/libringclient/src/main/java/net/jami/model/Conversation.java +++ b/ring-android/libringclient/src/main/java/net/jami/model/Conversation.java @@ -344,8 +344,13 @@ public class Conversation extends ConversationHistory { if (interaction.getContact() == null) { if (mContacts.size() == 1) interaction.setContact(mContacts.get(0)); - else - interaction.setContact(findContact(Uri.fromString(interaction.getAuthor()))); + else { + if (interaction.getAuthor() == null) { + Log.e(TAG, "Can't set interaction properties: no author for type:" + interaction.getType() + " id:" + interaction.getId() + " status:" + interaction.mStatus); + } else { + interaction.setContact(findContact(Uri.fromString(interaction.getAuthor()))); + } + } } } -- GitLab