diff --git a/app/src/main/java/org/linphone/ui/call/conference/fragment/ConferenceParticipantsListFragment.kt b/app/src/main/java/org/linphone/ui/call/conference/fragment/ConferenceParticipantsListFragment.kt
index b0e816f9b..c444569b7 100644
--- a/app/src/main/java/org/linphone/ui/call/conference/fragment/ConferenceParticipantsListFragment.kt
+++ b/app/src/main/java/org/linphone/ui/call/conference/fragment/ConferenceParticipantsListFragment.kt
@@ -94,6 +94,8 @@ class ConferenceParticipantsListFragment : GenericCallFragment() {
binding.participantsList.setHasFixedSize(true)
binding.participantsList.layoutManager = LinearLayoutManager(requireContext())
+ binding.participantsList.outlineProvider = outlineProvider
+ binding.participantsList.clipToOutline = true
binding.setBackClickListener {
findNavController().popBackStack()
diff --git a/app/src/main/java/org/linphone/ui/call/fragment/CallsListFragment.kt b/app/src/main/java/org/linphone/ui/call/fragment/CallsListFragment.kt
index 2fd2048ca..fa8395cde 100644
--- a/app/src/main/java/org/linphone/ui/call/fragment/CallsListFragment.kt
+++ b/app/src/main/java/org/linphone/ui/call/fragment/CallsListFragment.kt
@@ -85,6 +85,8 @@ class CallsListFragment : GenericCallFragment() {
binding.callsList.setHasFixedSize(true)
binding.callsList.layoutManager = LinearLayoutManager(requireContext())
+ binding.callsList.outlineProvider = outlineProvider
+ binding.callsList.clipToOutline = true
adapter.callLongClickedEvent.observe(viewLifecycleOwner) {
it.consume { model ->
diff --git a/app/src/main/java/org/linphone/ui/call/fragment/GenericCallFragment.kt b/app/src/main/java/org/linphone/ui/call/fragment/GenericCallFragment.kt
index 6d0aded9f..d75908535 100644
--- a/app/src/main/java/org/linphone/ui/call/fragment/GenericCallFragment.kt
+++ b/app/src/main/java/org/linphone/ui/call/fragment/GenericCallFragment.kt
@@ -21,11 +21,14 @@ package org.linphone.ui.call.fragment
import android.annotation.SuppressLint
import android.content.res.Configuration
+import android.graphics.Outline
import android.os.Bundle
import android.view.MotionEvent
import android.view.View
+import android.view.ViewOutlineProvider
import androidx.annotation.UiThread
import androidx.lifecycle.ViewModelProvider
+import org.linphone.R
import org.linphone.core.tools.Log
import org.linphone.ui.GenericFragment
import org.linphone.ui.call.view.RoundCornersTextureView
@@ -39,6 +42,14 @@ abstract class GenericCallFragment : GenericFragment() {
protected lateinit var sharedViewModel: SharedCallViewModel
+ protected val outlineProvider = object : ViewOutlineProvider() {
+ override fun getOutline(view: View?, outline: Outline?) {
+ val radius = resources.getDimension(R.dimen.top_list_item_rounded_corner_radius)
+ view ?: return
+ outline?.setRoundRect(0, 0, view.width, (view.height + radius).toInt(), radius)
+ }
+ }
+
// For moving video preview purposes
private val videoPreviewTouchListener = View.OnTouchListener { view, event ->
when (event.action) {
diff --git a/app/src/main/java/org/linphone/ui/main/recordings/fragment/RecordingsListFragment.kt b/app/src/main/java/org/linphone/ui/main/recordings/fragment/RecordingsListFragment.kt
index a152a848d..25e45fd99 100644
--- a/app/src/main/java/org/linphone/ui/main/recordings/fragment/RecordingsListFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/recordings/fragment/RecordingsListFragment.kt
@@ -21,10 +21,12 @@ package org.linphone.ui.main.recordings.fragment
import android.content.ActivityNotFoundException
import android.content.Intent
+import android.graphics.Outline
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.view.ViewOutlineProvider
import androidx.annotation.UiThread
import androidx.core.content.FileProvider
import androidx.lifecycle.ViewModelProvider
@@ -63,6 +65,14 @@ class RecordingsListFragment : GenericMainFragment() {
private var bottomSheetDialog: BottomSheetDialogFragment? = null
+ private val outlineProvider = object : ViewOutlineProvider() {
+ override fun getOutline(view: View?, outline: Outline?) {
+ val radius = resources.getDimension(R.dimen.top_list_item_rounded_corner_radius)
+ view ?: return
+ outline?.setRoundRect(0, 0, view.width, (view.height + radius).toInt(), radius)
+ }
+ }
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -94,6 +104,8 @@ class RecordingsListFragment : GenericMainFragment() {
binding.recordingsList.layoutManager = LinearLayoutManager(requireContext())
val headerItemDecoration = RecyclerViewHeaderDecoration(requireContext(), adapter)
binding.recordingsList.addItemDecoration(headerItemDecoration)
+ binding.recordingsList.outlineProvider = outlineProvider
+ binding.recordingsList.clipToOutline = true
listViewModel.recordings.observe(viewLifecycleOwner) {
val count = it.size
diff --git a/app/src/main/res/layout-land/call_ended_fragment.xml b/app/src/main/res/layout-land/call_ended_fragment.xml
index 0f2012cfa..bb6b3b208 100644
--- a/app/src/main/res/layout-land/call_ended_fragment.xml
+++ b/app/src/main/res/layout-land/call_ended_fragment.xml
@@ -30,7 +30,7 @@
android:id="@+id/call_media_encryption_info"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:visibility="@{viewModel.callDuration > 0 ? View.VISIBLE : View.GONE}"
+ android:visibility="@{viewModel.callDuration > 0 ? View.VISIBLE : View.INVISIBLE, default=invisible}"
layout="@layout/call_media_encryption_info"
bind:viewModel="@{viewModel}"
app:layout_constraintTop_toBottomOf="@id/call_direction_label"
diff --git a/app/src/main/res/layout-land/chat_list_fragment.xml b/app/src/main/res/layout-land/chat_list_fragment.xml
index c67703ca6..c97ad46c6 100644
--- a/app/src/main/res/layout-land/chat_list_fragment.xml
+++ b/app/src/main/res/layout-land/chat_list_fragment.xml
@@ -55,17 +55,6 @@
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"
app:layout_constraintEnd_toEndOf="parent"/>
-
-
diff --git a/app/src/main/res/layout-land/contact_new_or_edit_fragment.xml b/app/src/main/res/layout-land/contact_new_or_edit_fragment.xml
index 268587e4a..b569fae36 100644
--- a/app/src/main/res/layout-land/contact_new_or_edit_fragment.xml
+++ b/app/src/main/res/layout-land/contact_new_or_edit_fragment.xml
@@ -49,323 +49,365 @@
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlSymmetry" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ android:paddingBottom="@dimen/screen_bottom_margin">
-
-
-
+ app:layout_constraintTop_toTopOf="parent">
-
+
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+ app:layout_constraintEnd_toStartOf="@id/right_column">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:background="@drawable/shape_squircle_white_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
+ app:layout_constraintTop_toBottomOf="@id/avatar_content"
+ app:layout_constraintStart_toEndOf="@id/left_column"
+ app:layout_constraintEnd_toEndOf="parent">
-
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+ app:layout_constraintTop_toBottomOf="@id/top_bar" />
diff --git a/app/src/main/res/layout-land/meetings_list_fragment.xml b/app/src/main/res/layout-land/meetings_list_fragment.xml
index 187dd63fb..61f7f0e05 100644
--- a/app/src/main/res/layout-land/meetings_list_fragment.xml
+++ b/app/src/main/res/layout-land/meetings_list_fragment.xml
@@ -56,17 +56,6 @@
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"
app:layout_constraintEnd_toEndOf="parent"/>
-
-
diff --git a/app/src/main/res/layout/account_profile_fragment.xml b/app/src/main/res/layout/account_profile_fragment.xml
index 497649d3a..de59711c2 100644
--- a/app/src/main/res/layout/account_profile_fragment.xml
+++ b/app/src/main/res/layout/account_profile_fragment.xml
@@ -102,6 +102,7 @@
android:layout_marginEnd="16dp"
android:layout_marginTop="20dp"
android:background="@drawable/shape_squircle_white_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
@@ -198,6 +199,7 @@
android:drawableEnd="@{viewModel.expandDetails ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/avatar_content"/>
@@ -210,6 +212,7 @@
android:layout_marginEnd="16dp"
android:background="@drawable/shape_squircle_white_background"
android:visibility="@{viewModel.expandDetails ? View.VISIBLE : View.GONE}"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/details">
@@ -220,7 +223,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
- android:layout_marginTop="20dp"
+ android:layout_marginTop="10dp"
android:text="@string/sip_address"
android:visibility="@{!viewModel.hideSipAddresses || viewModel.showDeviceId ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent"
@@ -309,7 +312,6 @@
android:background="@drawable/edit_text_background"
android:inputType="text|textPersonName|textCapSentences"
app:layout_constraintHorizontal_bias="0"
- app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/display_name_label"
app:layout_constraintStart_toStartOf="@id/display_name_label"
app:layout_constraintEnd_toEndOf="parent"/>
@@ -345,7 +347,7 @@
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
- android:layout_marginBottom="20dp"
+ android:layout_marginBottom="10dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:textSize="14sp"
@@ -357,7 +359,6 @@
android:popupBackground="@drawable/shape_squircle_white_background"
android:background="@drawable/edit_text_background"
app:layout_constraintHorizontal_bias="0"
- app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/prefix_label"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@id/prefix_label"
@@ -385,8 +386,9 @@
android:padding="10dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:layout_marginTop="20dp"
+ android:layout_marginTop="10dp"
android:text="@string/manage_account_status_registration_status_title"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/details_content"/>
@@ -398,6 +400,7 @@
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:background="@drawable/shape_squircle_white_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/registration_status">
@@ -471,6 +474,7 @@
android:drawableEnd="@{viewModel.expandDevices ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/connection_content"/>
@@ -480,17 +484,16 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
- android:layout_marginBottom="8dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:paddingTop="6dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
- android:paddingBottom="20dp"
+ android:paddingBottom="10dp"
android:background="@drawable/shape_squircle_white_background"
android:visibility="@{viewModel.isOnDefaultDomain && viewModel.expandDevices ? View.VISIBLE : View.GONE, default=gone}"
app:entries="@{viewModel.devices}"
app:layout="@{@layout/account_profile_device_list_cell}"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintHeight_min="80dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@@ -534,6 +537,7 @@
android:layout_marginEnd="16dp"
android:layout_marginTop="20dp"
android:text="@string/contact_details_actions_title"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/devices_list"/>
@@ -550,6 +554,7 @@
android:text="@string/manage_account_settings"
android:drawableStart="@drawable/gear"
android:visibility="@{viewModel.hideAccountSettings ? View.GONE : View.VISIBLE}"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/actions"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
@@ -562,10 +567,10 @@
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:layout_marginBottom="@dimen/screen_bottom_margin"
android:background="@drawable/action_background_bottom"
android:text="@string/manage_account_delete"
android:drawableStart="@drawable/sign_out"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/action_settings"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
diff --git a/app/src/main/res/layout/account_settings_fragment.xml b/app/src/main/res/layout/account_settings_fragment.xml
index b06bb7929..a086b576d 100644
--- a/app/src/main/res/layout/account_settings_fragment.xml
+++ b/app/src/main/res/layout/account_settings_fragment.xml
@@ -62,18 +62,23 @@
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toBottomOf="parent">
-
+ android:paddingBottom="@dimen/screen_bottom_margin">
+ android:background="@drawable/shape_squircle_white_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
+ android:background="@drawable/squircle_transparent_button_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/account_settings" />
+ bind:viewModel="@{viewModel}"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/nat_policy_settings_header"/>
+ android:background="@drawable/squircle_transparent_button_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/nat_policy_settings" />
+ bind:viewModel="@{viewModel}"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/advanced_settings_header"/>
-
+
diff --git a/app/src/main/res/layout/address_selected_list_cell.xml b/app/src/main/res/layout/address_selected_list_cell.xml
index d7110415f..92d47191b 100644
--- a/app/src/main/res/layout/address_selected_list_cell.xml
+++ b/app/src/main/res/layout/address_selected_list_cell.xml
@@ -13,8 +13,7 @@
+ android:padding="5dp">
-
-
-
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent">
+
+
+
+
+
+
+
+
-
+ app:layout_constraintEnd_toEndOf="parent">
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
-
+ app:layout_constraintEnd_toEndOf="parent">
-
+
+
+
+
+
+
+
-
-
@@ -219,6 +220,7 @@
android:layout_marginEnd="16dp"
android:layout_marginTop="20dp"
android:background="@drawable/shape_squircle_white_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/avatar_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
@@ -352,61 +354,62 @@
android:text="@{viewModel.participantsLabel, default=@string/conversation_info_participants_list_title}"
android:visibility="@{viewModel.isGroup ? View.VISIBLE : View.GONE}"
android:background="@drawable/squircle_transparent_button_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/call_actions" />
-
-
-
-
-
+ app:layout_constraintEnd_toEndOf="parent">
+
+
+
+
+
+
+ app:layout_constraintTop_toBottomOf="@id/participants_list" />
@@ -450,6 +455,7 @@
android:drawableStart="@drawable/file_pdf"
android:onClick="@{goToSharedDocumentsClickListener}"
android:text="@string/conversation_document_list_title"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_media" />
@@ -475,6 +481,7 @@
android:layout_marginEnd="20dp"
android:padding="5dp"
android:text="@string/contact_details_actions_title"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_documents" />
@@ -491,6 +498,7 @@
android:onClick="@{goToContactClickListener}"
android:text="@string/conversation_info_menu_go_to_contact"
android:visibility="@{!viewModel.isGroup && viewModel.friendAvailable ? View.VISIBLE : View.GONE, default=gone}"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/other_actions" />
@@ -507,6 +515,7 @@
android:onClick="@{addToContactsClickListener}"
android:text="@string/conversation_info_menu_add_to_contacts"
android:visibility="@{!viewModel.isGroup && !viewModel.friendAvailable && !viewModel.disableAddContact ? View.VISIBLE : View.GONE, default=gone}"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_see_contact" />
@@ -523,6 +532,7 @@
android:onClick="@{configureEphemeralMessagesClickListener}"
android:text="@string/conversation_action_configure_ephemeral_messages"
android:visibility="@{viewModel.isEndToEndEncrypted && !viewModel.isReadOnly ? View.VISIBLE : View.GONE}"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_add_to_contacts" />
@@ -539,6 +549,7 @@
android:onClick="@{() -> viewModel.leaveGroup()}"
android:text="@string/conversation_action_leave_group"
android:visibility="@{viewModel.isGroup && !viewModel.isReadOnly ? View.VISIBLE : View.GONE, default=gone}"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_ephemeral_messages" />
@@ -554,6 +565,7 @@
android:drawableStart="@drawable/trash_simple"
android:onClick="@{deleteHistoryClickListener}"
android:text="@string/conversation_info_delete_history_action"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_leave_group" />
diff --git a/app/src/main/res/layout/chat_message_forward_fragment.xml b/app/src/main/res/layout/chat_message_forward_fragment.xml
index 7941b6b5e..b1d2459cc 100644
--- a/app/src/main/res/layout/chat_message_forward_fragment.xml
+++ b/app/src/main/res/layout/chat_message_forward_fragment.xml
@@ -47,66 +47,81 @@
app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent"/>
-
+ app:layout_constraintEnd_toEndOf="parent">
-
+
-
+
-
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/contact_fragment.xml b/app/src/main/res/layout/contact_fragment.xml
index 603031e90..b85608282 100644
--- a/app/src/main/res/layout/contact_fragment.xml
+++ b/app/src/main/res/layout/contact_fragment.xml
@@ -86,24 +86,6 @@
android:layout_height="wrap_content"
android:paddingBottom="@dimen/screen_bottom_margin">
-
-
-
-
-
-
@@ -165,6 +148,7 @@
android:layout_marginEnd="16dp"
android:layout_marginTop="20dp"
android:background="@drawable/shape_squircle_white_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/avatar_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
@@ -281,14 +265,15 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="10dp"
- android:layout_marginStart="20dp"
- android:layout_marginEnd="20dp"
+ android:layout_marginStart="16dp"
+ android:layout_marginEnd="16dp"
android:layout_marginTop="20dp"
android:text="@string/contact_details_numbers_and_addresses_title"
android:drawableEnd="@{viewModel.expandNumbersAndAddresses ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.atLeastOneSipAddressOrPhoneNumber ? View.VISIBLE : View.GONE}"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/call_actions"/>
@@ -301,84 +286,89 @@
android:orientation="vertical"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:padding="10dp"
android:background="@drawable/shape_squircle_white_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/numbers_and_addresses_label"
app:entries="@{viewModel.sipAddressesAndPhoneNumbers}"
app:layout="@{@layout/contact_number_address_list_cell}" />
-
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent">
-
+
-
+
-
+
-
+
+
+
+ app:layout_constraintStart_toStartOf="@id/devices_trust"
+ app:layout_constraintTop_toBottomOf="@id/contact_job_info"/>
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ app:layout_constraintEnd_toEndOf="parent">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ app:layout_constraintTop_toBottomOf="@id/devices_trust"/>
@@ -576,6 +565,7 @@
android:text="@{viewModel.isFavourite ? @string/contact_details_remove_from_favourites : @string/contact_details_add_to_favourites, default=@string/contact_details_add_to_favourites}"
android:drawableStart="@{viewModel.isFavourite ? @drawable/heart_fill : @drawable/heart, default=@drawable/heart_fill}"
android:drawableTint="@{viewModel.isFavourite ? @color/danger_500 : @color/main2_500, default=@color/danger_500}"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_edit" />
@@ -591,6 +581,7 @@
android:background="@{viewModel.isStored && !viewModel.isReadOnly ? (viewModel.isNative ? @drawable/action_background_bottom : @drawable/action_background_middle) : @drawable/action_background_full, default=@drawable/action_background_middle}"
android:text="@string/contact_details_share"
android:drawableStart="@drawable/share_network"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_favorite"/>
@@ -607,6 +598,7 @@
android:text="@string/contact_details_delete"
android:drawableStart="@drawable/trash_simple"
android:visibility="@{viewModel.isStored && !viewModel.isReadOnly && !viewModel.isNative ? View.VISIBLE : View.GONE}"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_share"/>
diff --git a/app/src/main/res/layout/contact_new_or_edit_cell.xml b/app/src/main/res/layout/contact_new_or_edit_cell.xml
index e63d7874c..a71f56de0 100644
--- a/app/src/main/res/layout/contact_new_or_edit_cell.xml
+++ b/app/src/main/res/layout/contact_new_or_edit_cell.xml
@@ -47,7 +47,7 @@
android:src="@drawable/x"
android:background="@drawable/squircle_transparent_button_background"
android:contentDescription="@string/content_description_contact_remove_field"
- app:tint="?attr/color_main2_700"
+ app:tint="?attr/color_main2_600"
app:layout_constraintStart_toEndOf="@id/field"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/field"
diff --git a/app/src/main/res/layout/contact_new_or_edit_fragment.xml b/app/src/main/res/layout/contact_new_or_edit_fragment.xml
index 80ca11b00..88dc9bba8 100644
--- a/app/src/main/res/layout/contact_new_or_edit_fragment.xml
+++ b/app/src/main/res/layout/contact_new_or_edit_fragment.xml
@@ -49,301 +49,376 @@
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlSymmetry" />
-
-
+
-
-
-
-
-
+ android:paddingBottom="@dimen/screen_bottom_margin">
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_height="match_parent">
-
-
-
-
-
-
-
+ app:layout_constraintEnd_toEndOf="parent">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:visibility="@{viewModel.shortcuts.empty ? View.GONE : View.VISIBLE, default=gone}"
+ app:entries="@{viewModel.shortcuts}"
+ app:layout="@{@layout/drawer_shortcuts_list_cell}"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintBottom_toTopOf="@id/settings" />
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/app/src/main/res/layout/file_media_viewer_child_fragment.xml b/app/src/main/res/layout/file_media_viewer_child_fragment.xml
index 4af9021f6..894ebf586 100644
--- a/app/src/main/res/layout/file_media_viewer_child_fragment.xml
+++ b/app/src/main/res/layout/file_media_viewer_child_fragment.xml
@@ -75,8 +75,10 @@
android:adjustViewBounds="true"
android:contentDescription="@string/content_description_play_pause_video_playback"
android:background="@drawable/circle_transparent_dark_button_background"
+ app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toStartOf="@id/progress"
app:tint="@color/bc_white"/>
diff --git a/app/src/main/res/layout/generic_add_participants_fragment.xml b/app/src/main/res/layout/generic_add_participants_fragment.xml
index 33ec73b5e..6a4fc69a0 100644
--- a/app/src/main/res/layout/generic_add_participants_fragment.xml
+++ b/app/src/main/res/layout/generic_add_participants_fragment.xml
@@ -46,125 +46,145 @@
app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent" />
-
+ app:layout_constraintEnd_toEndOf="parent">
-
-
-
-
-
+ android:layout_marginTop="10dp"
+ android:layout_marginStart="10dp"
+ android:text="@{viewModel.selectionCount, default=`0 selected`}"
+ android:textSize="12sp"
+ android:textColor="?attr/color_main2_900"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_height="wrap_content"
+ android:paddingBottom="@dimen/screen_bottom_margin">
@@ -330,10 +331,8 @@
android:id="@+id/show_config_file"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="20dp"
- android:layout_marginBottom="@dimen/screen_bottom_margin"
android:background="@drawable/tertiary_button_background"
android:paddingStart="12dp"
android:paddingEnd="12dp"
@@ -345,7 +344,7 @@
android:ellipsize="end"
android:visibility="@{viewModel.canConfigFileBeViewed ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintVertical_bias="0"
- app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintStart_toStartOf="@id/info_section"
app:layout_constraintTop_toBottomOf="@id/info_section"
app:layout_constraintBottom_toBottomOf="parent"/>
diff --git a/app/src/main/res/layout/help_fragment.xml b/app/src/main/res/layout/help_fragment.xml
index a0284c2e8..589bf8fe8 100644
--- a/app/src/main/res/layout/help_fragment.xml
+++ b/app/src/main/res/layout/help_fragment.xml
@@ -74,7 +74,8 @@
+ android:layout_height="wrap_content"
+ android:paddingBottom="@dimen/screen_bottom_margin">
@@ -369,6 +372,7 @@
android:layout_marginTop="20dp"
android:padding="10dp"
android:text="@string/help_about_advanced_title"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/about_section"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
@@ -379,8 +383,8 @@
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:layout_marginBottom="@dimen/screen_bottom_margin"
android:background="@drawable/shape_squircle_white_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintVertical_bias="0"
app:layout_constraintTop_toBottomOf="@id/advanced_title"
app:layout_constraintBottom_toBottomOf="parent"
diff --git a/app/src/main/res/layout/history_fragment.xml b/app/src/main/res/layout/history_fragment.xml
index d58eddba1..a637f497d 100644
--- a/app/src/main/res/layout/history_fragment.xml
+++ b/app/src/main/res/layout/history_fragment.xml
@@ -81,7 +81,8 @@
+ android:layout_height="wrap_content"
+ android:paddingBottom="@dimen/screen_bottom_margin">
@@ -168,6 +170,7 @@
android:layout_marginEnd="16dp"
android:layout_marginTop="20dp"
android:background="@drawable/shape_squircle_white_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/avatar_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
@@ -344,9 +347,9 @@
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
- android:layout_marginBottom="@dimen/screen_bottom_margin"
android:background="@drawable/shape_squircle_white_background"
android:nestedScrollingEnabled="true"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintVertical_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/main_activity.xml b/app/src/main/res/layout/main_activity.xml
index 3f193fca5..342939580 100644
--- a/app/src/main/res/layout/main_activity.xml
+++ b/app/src/main/res/layout/main_activity.xml
@@ -89,7 +89,6 @@
android:name="org.linphone.ui.main.fragment.DrawerMenuFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="?attr/color_main2_000"
android:layout_gravity="start"
app:layout="@layout/drawer_menu" />
diff --git a/app/src/main/res/layout/meeting_edit_fragment.xml b/app/src/main/res/layout/meeting_edit_fragment.xml
index bc8783317..88818606f 100644
--- a/app/src/main/res/layout/meeting_edit_fragment.xml
+++ b/app/src/main/res/layout/meeting_edit_fragment.xml
@@ -59,343 +59,354 @@
app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent"/>
-
-
+
-
+ android:paddingBottom="@dimen/screen_bottom_margin">
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
diff --git a/app/src/main/res/layout/meeting_schedule_fragment.xml b/app/src/main/res/layout/meeting_schedule_fragment.xml
index 42e987fc0..6797243bd 100644
--- a/app/src/main/res/layout/meeting_schedule_fragment.xml
+++ b/app/src/main/res/layout/meeting_schedule_fragment.xml
@@ -59,479 +59,490 @@
app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent"/>
-
-
+
-
-
-
-
-
-
-
-
-
+ android:paddingBottom="@dimen/screen_bottom_margin">
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/recording_player_fragment.xml b/app/src/main/res/layout/recording_player_fragment.xml
index 6ade26680..cc4fc7596 100644
--- a/app/src/main/res/layout/recording_player_fragment.xml
+++ b/app/src/main/res/layout/recording_player_fragment.xml
@@ -62,8 +62,10 @@
android:adjustViewBounds="true"
android:contentDescription="@string/content_description_play_pause_audio_playback"
android:background="@drawable/circle_transparent_dark_button_background"
+ app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toStartOf="@id/progress"
app:tint="@color/bc_white"/>
-
-
-
-
-
-
-
+ app:barrierDirection="bottom"
+ app:constraint_referenced_ids="back, cancel_search" />
-
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent">
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_height="wrap_content"
+ android:paddingBottom="@dimen/screen_bottom_margin">
@@ -239,6 +241,7 @@
android:drawableEnd="@{viewModel.expandEarlyMedia ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/main_section"/>
@@ -246,12 +249,15 @@
@@ -275,12 +282,15 @@
@@ -331,23 +343,24 @@
android:drawableEnd="@{viewModel.expandVideoCodecs ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/audio_codecs"/>
+ android:layout_height="wrap_content"
+ android:paddingBottom="@dimen/screen_bottom_margin">
@@ -261,6 +263,7 @@
android:drawableEnd="@{viewModel.expandAudioDevices ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/main_section"/>
@@ -275,6 +278,7 @@
android:background="@drawable/shape_squircle_white_background"
android:orientation="vertical"
android:visibility="@{viewModel.expandAudioDevices ? View.VISIBLE : View.GONE, default=gone}"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/audio_devices_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
@@ -394,7 +398,7 @@
android:drawableEnd="@drawable/arrow_square_out"
android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background"
- app:layout_constraintHorizontal_bias="1"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintVertical_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/settings_contacts_carddav.xml b/app/src/main/res/layout/settings_contacts_carddav.xml
index 41b98b9be..d70dc4398 100644
--- a/app/src/main/res/layout/settings_contacts_carddav.xml
+++ b/app/src/main/res/layout/settings_contacts_carddav.xml
@@ -63,253 +63,264 @@
app:layout_constraintTop_toTopOf="@id/back"
app:layout_constraintBottom_toBottomOf="@id/back"/>
-
+ app:layout_constraintBottom_toBottomOf="parent">
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
-
+ app:layout_constraintBottom_toBottomOf="parent">
-
+
-
+ android:paddingBottom="@dimen/screen_bottom_margin">
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
@@ -90,12 +91,13 @@
@@ -113,6 +115,7 @@
android:drawableEnd="@{viewModel.expandCalls ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/security_settings"/>
@@ -120,12 +123,15 @@
@@ -144,6 +150,7 @@
android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.showConversationsSettings ? View.VISIBLE : View.GONE}"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/calls_settings"/>
@@ -151,12 +158,15 @@
@@ -181,12 +192,15 @@
@@ -211,12 +226,15 @@
@@ -240,12 +259,15 @@
@@ -269,12 +292,15 @@
@@ -299,12 +326,15 @@
@@ -343,6 +374,7 @@
android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.showDeveloperSettings ? View.VISIBLE : View.GONE, default=gone}"
+ app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintVertical_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/start_call_fragment.xml b/app/src/main/res/layout/start_call_fragment.xml
index 484aca5a3..a6df330cf 100644
--- a/app/src/main/res/layout/start_call_fragment.xml
+++ b/app/src/main/res/layout/start_call_fragment.xml
@@ -28,13 +28,6 @@
android:layout_height="match_parent"
android:background="?attr/color_background_contrast_in_dark_mode">
-
-
-
+ app:layout_constraintEnd_toEndOf="parent">
-
-
-
-
-
+ android:layout_marginTop="10dp"
+ android:layout_marginStart="10dp"
+ android:text="@{viewModel.selectionCount, default=`0 selected`}"
+ android:textSize="12sp"
+ android:textColor="?attr/color_main2_900"
+ android:visibility="@{viewModel.multipleSelectionMode ? View.VISIBLE : View.GONE, default=gone}"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
-
+
-
+
-
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+ app:layout_constraintEnd_toEndOf="parent">
-
-
-
-
-
+ android:layout_marginTop="10dp"
+ android:layout_marginStart="10dp"
+ android:text="@{viewModel.selectionCount, default=`0 selected`}"
+ android:textSize="12sp"
+ android:textColor="?attr/color_main2_900"
+ android:visibility="@{viewModel.multipleSelectionMode ? View.VISIBLE : View.GONE, default=gone}"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
-
+
-
+
-
+
-
+
-
+
-
-
+
-
+
-
+
-
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
110dp
235dp
+ 600dp
600dp
0dp
+ 20dp
175dp
\ No newline at end of file
diff --git a/app/src/main/res/values-sw600dp/dimen.xml b/app/src/main/res/values-sw600dp/dimen.xml
index 8710e1796..86af78780 100644
--- a/app/src/main/res/values-sw600dp/dimen.xml
+++ b/app/src/main/res/values-sw600dp/dimen.xml
@@ -4,6 +4,7 @@
600dp
90dp
500dp
+ 800dp
8
diff --git a/app/src/main/res/values/dimen.xml b/app/src/main/res/values/dimen.xml
index 506d7b2f8..ddc4997e7 100644
--- a/app/src/main/res/values/dimen.xml
+++ b/app/src/main/res/values/dimen.xml
@@ -49,6 +49,7 @@
54dp
55dp
70dp
+ 400dp
400dp
350dp
400dp