diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt
index 54fe0f451..060d6c1fe 100644
--- a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationsListFragment.kt
@@ -119,6 +119,7 @@ class ConversationsListFragment : AbstractMainFragment() {
binding.conversationsList.setHasFixedSize(true)
binding.conversationsList.layoutManager = LinearLayoutManager(requireContext())
+ binding.conversationsList.outlineProvider = outlineProvider
binding.conversationsList.clipToOutline = true
adapter.conversationLongClickedEvent.observe(viewLifecycleOwner) {
diff --git a/app/src/main/java/org/linphone/ui/main/fragment/AbstractMainFragment.kt b/app/src/main/java/org/linphone/ui/main/fragment/AbstractMainFragment.kt
index eaf2b3420..cf6d2cf20 100644
--- a/app/src/main/java/org/linphone/ui/main/fragment/AbstractMainFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/fragment/AbstractMainFragment.kt
@@ -20,9 +20,11 @@
package org.linphone.ui.main.fragment
import android.content.res.Configuration
+import android.graphics.Outline
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
+import android.view.ViewOutlineProvider
import android.view.inputmethod.EditorInfo
import androidx.activity.OnBackPressedCallback
import androidx.annotation.IdRes
@@ -54,6 +56,14 @@ abstract class AbstractMainFragment : GenericMainFragment() {
private const val TAG = "[Abstract Main Fragment]"
}
+ protected val outlineProvider = object : ViewOutlineProvider() {
+ override fun getOutline(view: View?, outline: Outline?) {
+ val radius = resources.getDimension(R.dimen.top_bar_rounded_corner_radius)
+ view ?: return
+ outline?.setRoundRect(0, 0, view.width, (view.height + radius).toInt(), radius)
+ }
+ }
+
private var currentFragmentId: Int = 0
private lateinit var viewModel: AbstractMainViewModel
diff --git a/app/src/main/java/org/linphone/ui/main/history/fragment/HistoryListFragment.kt b/app/src/main/java/org/linphone/ui/main/history/fragment/HistoryListFragment.kt
index 59b905552..5a9b31082 100644
--- a/app/src/main/java/org/linphone/ui/main/history/fragment/HistoryListFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/history/fragment/HistoryListFragment.kt
@@ -106,6 +106,7 @@ class HistoryListFragment : AbstractMainFragment() {
binding.historyList.setHasFixedSize(true)
binding.historyList.layoutManager = LinearLayoutManager(requireContext())
+ binding.historyList.outlineProvider = outlineProvider
binding.historyList.clipToOutline = true
adapter.callLogLongClickedEvent.observe(viewLifecycleOwner) {
diff --git a/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingsListFragment.kt b/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingsListFragment.kt
index 717a03332..98b0ebf84 100644
--- a/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingsListFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingsListFragment.kt
@@ -118,6 +118,7 @@ class MeetingsListFragment : AbstractMainFragment() {
val headerItemDecoration = RecyclerViewHeaderDecoration(requireContext(), adapter)
binding.meetingsList.addItemDecoration(headerItemDecoration)
+ binding.meetingsList.outlineProvider = outlineProvider
binding.meetingsList.clipToOutline = true
binding.setNewMeetingClicked {
diff --git a/app/src/main/res/values/dimen.xml b/app/src/main/res/values/dimen.xml
index 2b066a1c8..1719c9692 100644
--- a/app/src/main/res/values/dimen.xml
+++ b/app/src/main/res/values/dimen.xml
@@ -42,6 +42,7 @@
11dp
20dp
+ 20dp
54dp
55dp
70dp