diff --git a/ring-android/app/src/main/java/cx/ring/client/ContactDetailsActivity.kt b/ring-android/app/src/main/java/cx/ring/client/ContactDetailsActivity.kt
index 78d7722da6caede8a73f29b2ecd34a688b843e76..a50791d80562f6dd94a6c7f09d097cffa9b9e7da 100644
--- a/ring-android/app/src/main/java/cx/ring/client/ContactDetailsActivity.kt
+++ b/ring-android/app/src/main/java/cx/ring/client/ContactDetailsActivity.kt
@@ -49,6 +49,7 @@ import cx.ring.utils.ConversationPath
 import cx.ring.views.AvatarDrawable
 import cx.ring.views.AvatarFactory
 import dagger.hilt.android.AndroidEntryPoint
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
 import io.reactivex.rxjava3.core.Single
 import io.reactivex.rxjava3.disposables.CompositeDisposable
 import net.jami.model.*
@@ -253,21 +254,22 @@ class ContactDetailsActivity : AppCompatActivity() {
         colorActionPosition = 0
         symbolActionPosition = 1
 
-        mDisposableBag.add(mConversationFacade.observeConversation(conversation).subscribe { vm ->
-            binding.contactImage.setImageDrawable(AvatarDrawable.Builder()
-                .withViewModel(vm)
-                .withCircleCrop(true)
-                .build(this))
-
-            supportActionBar?.title = vm.title
-            binding.contactListLayout.visibility =
-                if (conversation.isSwarm) View.VISIBLE else View.GONE
-            if (conversation.isSwarm) {
-                binding.contactList.adapter = ContactViewAdapter(mDisposableBag, vm.contacts)
-                { contact -> copyAndShow(contact.uri.rawUriString) }
-            }
-            binding.conversationId.text = vm.uriTitle
-        })
+        mDisposableBag.add(mConversationFacade.observeConversation(conversation)
+            .observeOn(AndroidSchedulers.mainThread())
+            .subscribe { vm ->
+                binding.contactImage.setImageDrawable(AvatarDrawable.Builder()
+                    .withViewModel(vm)
+                    .withCircleCrop(true)
+                    .build(this))
+                supportActionBar?.title = vm.title
+                binding.contactListLayout.visibility =
+                    if (conversation.isSwarm) View.VISIBLE else View.GONE
+                if (conversation.isSwarm) {
+                    binding.contactList.adapter = ContactViewAdapter(mDisposableBag, vm.contacts)
+                    { contact -> copyAndShow(contact.uri.rawUriString) }
+                }
+                binding.conversationId.text = vm.uriTitle
+            })
 
         /*Map<String, String> details = Ringservice.getCertificateDetails(conversation.getContact().getUri().getRawRingId());
         for (Map.Entry<String, String> e : details.entrySet()) {
diff --git a/ring-android/app/src/main/res/layout/activity_contact_details.xml b/ring-android/app/src/main/res/layout/activity_contact_details.xml
index d84497ed387fed02dec15ac8d1f91259cec43d7b..6c3206b6bf42e7bb951a30fc02e9bd57fb212e74 100644
--- a/ring-android/app/src/main/res/layout/activity_contact_details.xml
+++ b/ring-android/app/src/main/res/layout/activity_contact_details.xml
@@ -112,10 +112,11 @@
                     android:text="@string/conversation_members" />
 
                 <androidx.recyclerview.widget.RecyclerView
+                    android:clipToPadding="false"
+                    android:paddingHorizontal="16dp"
                     android:id="@+id/contact_list"
-                    android:layout_width="wrap_content"
+                    android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginHorizontal="8dp"
                     android:orientation="horizontal"
                     app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
                     tools:itemCount="4"