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