Reworked layout to improve coherence & display on large screen in landscape

This commit is contained in:
Sylvain Berfini 2026-02-17 11:47:18 +01:00
parent 9ecd63ec5f
commit 93202fe4a5
47 changed files with 3770 additions and 3393 deletions

View file

@ -94,6 +94,8 @@ class ConferenceParticipantsListFragment : GenericCallFragment() {
binding.participantsList.setHasFixedSize(true) binding.participantsList.setHasFixedSize(true)
binding.participantsList.layoutManager = LinearLayoutManager(requireContext()) binding.participantsList.layoutManager = LinearLayoutManager(requireContext())
binding.participantsList.outlineProvider = outlineProvider
binding.participantsList.clipToOutline = true
binding.setBackClickListener { binding.setBackClickListener {
findNavController().popBackStack() findNavController().popBackStack()

View file

@ -85,6 +85,8 @@ class CallsListFragment : GenericCallFragment() {
binding.callsList.setHasFixedSize(true) binding.callsList.setHasFixedSize(true)
binding.callsList.layoutManager = LinearLayoutManager(requireContext()) binding.callsList.layoutManager = LinearLayoutManager(requireContext())
binding.callsList.outlineProvider = outlineProvider
binding.callsList.clipToOutline = true
adapter.callLongClickedEvent.observe(viewLifecycleOwner) { adapter.callLongClickedEvent.observe(viewLifecycleOwner) {
it.consume { model -> it.consume { model ->

View file

@ -21,11 +21,14 @@ package org.linphone.ui.call.fragment
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.res.Configuration import android.content.res.Configuration
import android.graphics.Outline
import android.os.Bundle import android.os.Bundle
import android.view.MotionEvent import android.view.MotionEvent
import android.view.View import android.view.View
import android.view.ViewOutlineProvider
import androidx.annotation.UiThread import androidx.annotation.UiThread
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import org.linphone.R
import org.linphone.core.tools.Log import org.linphone.core.tools.Log
import org.linphone.ui.GenericFragment import org.linphone.ui.GenericFragment
import org.linphone.ui.call.view.RoundCornersTextureView import org.linphone.ui.call.view.RoundCornersTextureView
@ -39,6 +42,14 @@ abstract class GenericCallFragment : GenericFragment() {
protected lateinit var sharedViewModel: SharedCallViewModel 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 // For moving video preview purposes
private val videoPreviewTouchListener = View.OnTouchListener { view, event -> private val videoPreviewTouchListener = View.OnTouchListener { view, event ->
when (event.action) { when (event.action) {

View file

@ -21,10 +21,12 @@ package org.linphone.ui.main.recordings.fragment
import android.content.ActivityNotFoundException import android.content.ActivityNotFoundException
import android.content.Intent import android.content.Intent
import android.graphics.Outline
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.ViewOutlineProvider
import androidx.annotation.UiThread import androidx.annotation.UiThread
import androidx.core.content.FileProvider import androidx.core.content.FileProvider
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
@ -63,6 +65,14 @@ class RecordingsListFragment : GenericMainFragment() {
private var bottomSheetDialog: BottomSheetDialogFragment? = null 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?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -94,6 +104,8 @@ class RecordingsListFragment : GenericMainFragment() {
binding.recordingsList.layoutManager = LinearLayoutManager(requireContext()) binding.recordingsList.layoutManager = LinearLayoutManager(requireContext())
val headerItemDecoration = RecyclerViewHeaderDecoration(requireContext(), adapter) val headerItemDecoration = RecyclerViewHeaderDecoration(requireContext(), adapter)
binding.recordingsList.addItemDecoration(headerItemDecoration) binding.recordingsList.addItemDecoration(headerItemDecoration)
binding.recordingsList.outlineProvider = outlineProvider
binding.recordingsList.clipToOutline = true
listViewModel.recordings.observe(viewLifecycleOwner) { listViewModel.recordings.observe(viewLifecycleOwner) {
val count = it.size val count = it.size

View file

@ -30,7 +30,7 @@
android:id="@+id/call_media_encryption_info" android:id="@+id/call_media_encryption_info"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" 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" layout="@layout/call_media_encryption_info"
bind:viewModel="@{viewModel}" bind:viewModel="@{viewModel}"
app:layout_constraintTop_toBottomOf="@id/call_direction_label" app:layout_constraintTop_toBottomOf="@id/call_direction_label"

View file

@ -55,17 +55,6 @@
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar" app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"
app:layout_constraintEnd_toEndOf="parent"/> app:layout_constraintEnd_toEndOf="parent"/>
<View
android:id="@+id/background"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="?attr/color_main2_000"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"
app:layout_constraintTop_toBottomOf="@id/top_bar"/>
<ImageView <ImageView
android:id="@+id/no_conversation_image" android:id="@+id/no_conversation_image"
android:layout_width="0dp" android:layout_width="0dp"
@ -77,7 +66,7 @@
app:layout_constraintDimensionRatio="1:1" app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar" app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"
app:layout_constraintTop_toTopOf="@id/background" app:layout_constraintTop_toBottomOf="@id/top_bar"
app:layout_constraintBottom_toTopOf="@id/no_conversation_label" /> app:layout_constraintBottom_toTopOf="@id/no_conversation_label" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
@ -110,7 +99,7 @@
android:background="@drawable/secondary_button_background" android:background="@drawable/secondary_button_background"
android:visibility="@{viewModel.conversations.empty &amp;&amp; viewModel.moreThanOneAccount ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.conversations.empty &amp;&amp; viewModel.moreThanOneAccount ? View.VISIBLE : View.GONE}"
app:layout_constraintTop_toBottomOf="@id/no_conversation_label" app:layout_constraintTop_toBottomOf="@id/no_conversation_label"
app:layout_constraintBottom_toBottomOf="@id/background" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"/> app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"/>

View file

@ -49,20 +49,40 @@
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlSymmetry" /> tools:ignore="RtlSymmetry" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toBottomOf="parent">
<ScrollView <ScrollView
android:id="@+id/scrollView" android:id="@+id/scrollView"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:fillViewport="true" android:fillViewport="true"
android:background="?attr/color_main2_000"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/title" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"> app:layout_constraintBottom_toBottomOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:paddingBottom="@dimen/screen_bottom_margin">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/avatar_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
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">
<ImageView <ImageView
style="@style/avatar_imageview" style="@style/avatar_imageview"
@ -70,7 +90,7 @@
android:id="@+id/avatar" android:id="@+id/avatar"
android:layout_width="@dimen/avatar_big_size" android:layout_width="@dimen/avatar_big_size"
android:layout_height="@dimen/avatar_big_size" android:layout_height="@dimen/avatar_big_size"
android:layout_marginTop="8dp" android:layout_marginTop="10dp"
android:contentDescription="@null" android:contentDescription="@null"
coil="@{viewModel.picturePath}" coil="@{viewModel.picturePath}"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -98,14 +118,17 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:padding="5dp" android:padding="5dp"
android:text="@string/manage_account_add_picture" android:text="@string/manage_account_add_picture"
android:textSize="14sp" android:textSize="14sp"
android:drawableTint="?attr/color_main2_600"
android:drawableStart="@drawable/camera" android:drawableStart="@drawable/camera"
android:drawablePadding="3dp" android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.picturePath.empty ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/avatar" app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/> app:layout_constraintEnd_toEndOf="parent"/>
@ -116,15 +139,18 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:padding="5dp" android:padding="5dp"
android:text="@string/manage_account_edit_picture" android:text="@string/manage_account_edit_picture"
android:textSize="14sp" android:textSize="14sp"
android:drawableTint="?attr/color_main2_600"
android:drawableStart="@drawable/pencil_simple" android:drawableStart="@drawable/pencil_simple"
android:drawablePadding="3dp" android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.GONE : View.VISIBLE}" android:visibility="@{viewModel.picturePath.empty ? View.GONE : View.VISIBLE}"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintTop_toBottomOf="@id/avatar" app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/remove_picture_label"/> app:layout_constraintEnd_toStartOf="@id/remove_picture_label"/>
@ -135,32 +161,33 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:padding="5dp" android:padding="5dp"
android:text="@string/manage_account_remove_picture" android:text="@string/manage_account_remove_picture"
android:textSize="14sp" android:textSize="14sp"
android:drawableTint="?attr/color_main2_600"
android:drawableStart="@drawable/trash_simple" android:drawableStart="@drawable/trash_simple"
android:drawablePadding="3dp" android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.GONE : View.VISIBLE}" android:visibility="@{viewModel.picturePath.empty ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toBottomOf="@id/avatar" app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/edit_picture_label" app:layout_constraintStart_toEndOf="@id/edit_picture_label"
app:layout_constraintEnd_toEndOf="parent"/> app:layout_constraintEnd_toEndOf="parent"/>
<androidx.constraintlayout.widget.Barrier </androidx.constraintlayout.widget.ConstraintLayout>
android:id="@+id/avatar_barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="remove_picture_label, edit_picture_label, add_picture_label"
app:barrierDirection="bottom" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/left_column" android:id="@+id/left_column"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="30dp" android:layout_marginTop="20dp"
app:layout_constraintWidth_percent="0.5" android:layout_marginStart="16dp"
app:layout_constraintTop_toBottomOf="@id/avatar_barrier" android:layout_marginEnd="8dp"
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_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/right_column"> app:layout_constraintEnd_toStartOf="@id/right_column">
@ -169,6 +196,7 @@
android:id="@+id/first_name_label" android:id="@+id/first_name_label"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:text="@string/contact_editor_first_name" android:text="@string/contact_editor_first_name"
android:labelFor="@id/first_name" android:labelFor="@id/first_name"
@ -192,6 +220,7 @@
android:maxLines="1" android:maxLines="1"
android:background="@drawable/edit_text_background" android:background="@drawable/edit_text_background"
android:inputType="text|textPersonName|textCapWords" android:inputType="text|textPersonName|textCapWords"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width" app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/first_name_label" app:layout_constraintTop_toBottomOf="@id/first_name_label"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -226,6 +255,7 @@
android:maxLines="1" android:maxLines="1"
android:background="@drawable/edit_text_background" android:background="@drawable/edit_text_background"
android:inputType="text|textPersonName|textCapWords" android:inputType="text|textPersonName|textCapWords"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width" app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/last_name_label" app:layout_constraintTop_toBottomOf="@id/last_name_label"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -260,6 +290,7 @@
android:maxLines="1" android:maxLines="1"
android:background="@drawable/edit_text_background" android:background="@drawable/edit_text_background"
android:inputType="text|textCapWords" android:inputType="text|textCapWords"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width" app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/company_label" app:layout_constraintTop_toBottomOf="@id/company_label"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -285,9 +316,9 @@
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:paddingStart="20dp" android:paddingStart="20dp"
android:paddingEnd="20dp" android:paddingEnd="20dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:text="@={viewModel.jobTitle, default=`Android dev`}" android:text="@={viewModel.jobTitle, default=`Android dev`}"
android:textSize="14sp" android:textSize="14sp"
android:textColor="?attr/color_main2_600" android:textColor="?attr/color_main2_600"
@ -296,6 +327,7 @@
android:background="@drawable/edit_text_background" android:background="@drawable/edit_text_background"
android:inputType="text|textCapWords" android:inputType="text|textCapWords"
app:layout_constraintVertical_bias="0" app:layout_constraintVertical_bias="0"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width" app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/job_title_label" app:layout_constraintTop_toBottomOf="@id/job_title_label"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
@ -308,9 +340,12 @@
android:id="@+id/right_column" android:id="@+id/right_column"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="30dp" android:layout_marginTop="20dp"
app:layout_constraintWidth_percent="0.5" android:layout_marginStart="8dp"
app:layout_constraintTop_toBottomOf="@id/avatar_barrier" android:layout_marginEnd="16dp"
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_constraintStart_toEndOf="@id/left_column"
app:layout_constraintEnd_toEndOf="parent"> app:layout_constraintEnd_toEndOf="parent">
@ -319,6 +354,7 @@
android:id="@+id/sip_addresses_label" android:id="@+id/sip_addresses_label"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:text="@string/sip_address" android:text="@string/sip_address"
android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}" android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}"
@ -333,6 +369,7 @@
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:orientation="vertical" android:orientation="vertical"
android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}" android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width" app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/sip_addresses_label" app:layout_constraintTop_toBottomOf="@id/sip_addresses_label"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -355,9 +392,12 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginBottom="10dp"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width" app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/phone_numbers_label" app:layout_constraintTop_toBottomOf="@id/phone_numbers_label"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/> app:layout_constraintEnd_toEndOf="parent"/>
@ -367,6 +407,8 @@
</ScrollView> </ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/save" android:id="@+id/save"
android:onClick="@{() -> viewModel.saveChanges()}" android:onClick="@{() -> viewModel.saveChanges()}"

View file

@ -65,17 +65,6 @@
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar" app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"
app:layout_constraintEnd_toEndOf="parent"/> app:layout_constraintEnd_toEndOf="parent"/>
<View
android:id="@+id/background"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="?attr/color_main2_000"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"
app:layout_constraintTop_toBottomOf="@id/top_bar" />
<ImageView <ImageView
android:id="@+id/no_calls_image" android:id="@+id/no_calls_image"
android:layout_width="0dp" android:layout_width="0dp"
@ -88,7 +77,7 @@
app:layout_constraintDimensionRatio="1:1" app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar" app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"
app:layout_constraintTop_toTopOf="@id/background" /> app:layout_constraintTop_toBottomOf="@id/top_bar" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style" style="@style/section_header_style"
@ -120,7 +109,7 @@
android:background="@drawable/secondary_button_background" android:background="@drawable/secondary_button_background"
android:visibility="@{viewModel.callLogs.empty &amp;&amp; viewModel.moreThanOneAccount ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.callLogs.empty &amp;&amp; viewModel.moreThanOneAccount ? View.VISIBLE : View.GONE}"
app:layout_constraintTop_toBottomOf="@id/no_calls_label" app:layout_constraintTop_toBottomOf="@id/no_calls_label"
app:layout_constraintBottom_toBottomOf="@id/background" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"/> app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"/>

View file

@ -56,17 +56,6 @@
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar" app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"
app:layout_constraintEnd_toEndOf="parent"/> app:layout_constraintEnd_toEndOf="parent"/>
<View
android:id="@+id/background"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="?attr/color_main2_000"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"
app:layout_constraintTop_toBottomOf="@id/top_bar"/>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/meetings_list" android:id="@+id/meetings_list"
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -13,7 +13,7 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="15dp" android:layout_marginTop="10dp"
android:paddingBottom="27dp" android:paddingBottom="27dp"
android:background="@drawable/shape_squircle_gray_100_background"> android:background="@drawable/shape_squircle_gray_100_background">

View file

@ -102,6 +102,7 @@
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="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:drawableEnd="@{viewModel.expandDetails ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/avatar_content"/> app:layout_constraintTop_toBottomOf="@id/avatar_content"/>
@ -210,6 +212,7 @@
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
android:visibility="@{viewModel.expandDetails ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.expandDetails ? View.VISIBLE : View.GONE}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/details"> app:layout_constraintTop_toBottomOf="@id/details">
@ -220,7 +223,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="10dp"
android:text="@string/sip_address" android:text="@string/sip_address"
android:visibility="@{!viewModel.hideSipAddresses || viewModel.showDeviceId ? View.VISIBLE : View.GONE}" android:visibility="@{!viewModel.hideSipAddresses || viewModel.showDeviceId ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -309,7 +312,6 @@
android:background="@drawable/edit_text_background" android:background="@drawable/edit_text_background"
android:inputType="text|textPersonName|textCapSentences" android:inputType="text|textPersonName|textCapSentences"
app:layout_constraintHorizontal_bias="0" app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/display_name_label" app:layout_constraintTop_toBottomOf="@id/display_name_label"
app:layout_constraintStart_toStartOf="@id/display_name_label" app:layout_constraintStart_toStartOf="@id/display_name_label"
app:layout_constraintEnd_toEndOf="parent"/> app:layout_constraintEnd_toEndOf="parent"/>
@ -345,7 +347,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="50dp" android:layout_height="50dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginBottom="20dp" android:layout_marginBottom="10dp"
android:paddingStart="20dp" android:paddingStart="20dp"
android:paddingEnd="20dp" android:paddingEnd="20dp"
android:textSize="14sp" android:textSize="14sp"
@ -357,7 +359,6 @@
android:popupBackground="@drawable/shape_squircle_white_background" android:popupBackground="@drawable/shape_squircle_white_background"
android:background="@drawable/edit_text_background" android:background="@drawable/edit_text_background"
app:layout_constraintHorizontal_bias="0" app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/prefix_label" app:layout_constraintTop_toBottomOf="@id/prefix_label"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@id/prefix_label" app:layout_constraintStart_toStartOf="@id/prefix_label"
@ -385,8 +386,9 @@
android:padding="10dp" android:padding="10dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="10dp"
android:text="@string/manage_account_status_registration_status_title" android:text="@string/manage_account_status_registration_status_title"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/details_content"/> app:layout_constraintTop_toBottomOf="@id/details_content"/>
@ -398,6 +400,7 @@
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/registration_status"> 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:drawableEnd="@{viewModel.expandDevices ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/connection_content"/> app:layout_constraintTop_toBottomOf="@id/connection_content"/>
@ -480,17 +484,16 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:layout_marginBottom="8dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:paddingTop="6dp"
android:paddingStart="16dp" android:paddingStart="16dp"
android:paddingEnd="16dp" android:paddingEnd="16dp"
android:paddingBottom="20dp" android:paddingBottom="10dp"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
android:visibility="@{viewModel.isOnDefaultDomain &amp;&amp; viewModel.expandDevices ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.isOnDefaultDomain &amp;&amp; viewModel.expandDevices ? View.VISIBLE : View.GONE, default=gone}"
app:entries="@{viewModel.devices}" app:entries="@{viewModel.devices}"
app:layout="@{@layout/account_profile_device_list_cell}" app:layout="@{@layout/account_profile_device_list_cell}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintHeight_min="80dp" app:layout_constraintHeight_min="80dp"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -534,6 +537,7 @@
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:text="@string/contact_details_actions_title" android:text="@string/contact_details_actions_title"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/devices_list"/> app:layout_constraintTop_toBottomOf="@id/devices_list"/>
@ -550,6 +554,7 @@
android:text="@string/manage_account_settings" android:text="@string/manage_account_settings"
android:drawableStart="@drawable/gear" android:drawableStart="@drawable/gear"
android:visibility="@{viewModel.hideAccountSettings ? View.GONE : View.VISIBLE}" android:visibility="@{viewModel.hideAccountSettings ? View.GONE : View.VISIBLE}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/actions" app:layout_constraintTop_toBottomOf="@id/actions"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/> app:layout_constraintEnd_toEndOf="parent"/>
@ -562,10 +567,10 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:background="@drawable/action_background_bottom" android:background="@drawable/action_background_bottom"
android:text="@string/manage_account_delete" android:text="@string/manage_account_delete"
android:drawableStart="@drawable/sign_out" android:drawableStart="@drawable/sign_out"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/action_settings" app:layout_constraintTop_toBottomOf="@id/action_settings"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/> app:layout_constraintEnd_toEndOf="parent"/>

View file

@ -62,18 +62,23 @@
app:layout_constraintTop_toBottomOf="@id/title" app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toBottomOf="parent"> app:layout_constraintBottom_toBottomOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingBottom="@dimen/screen_bottom_margin">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/account_settings"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:background="@drawable/shape_squircle_white_background"> 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">
<com.google.android.material.materialswitch.MaterialSwitch <com.google.android.material.materialswitch.MaterialSwitch
style="@style/material_switch_style" style="@style/material_switch_style"
@ -270,7 +275,7 @@
style="@style/section_header_style" style="@style/section_header_style"
android:id="@+id/nat_policy_settings_header" android:id="@+id/nat_policy_settings_header"
android:onClick="@{() -> viewModel.toggleNatPolicySettingsExpand()}" android:onClick="@{() -> viewModel.toggleNatPolicySettingsExpand()}"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="10dp" android:padding="10dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
@ -279,23 +284,31 @@
android:text="@string/account_settings_nat_policy_title" android:text="@string/account_settings_nat_policy_title"
android:drawableEnd="@{viewModel.expandNatPolicySettings ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}" android:drawableEnd="@{viewModel.expandNatPolicySettings ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" /> 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" />
<include <include
android:id="@+id/nat_policy_settings" android:id="@+id/nat_policy_settings"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:visibility="@{viewModel.expandNatPolicySettings ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.expandNatPolicySettings ? View.VISIBLE : View.GONE}"
layout="@layout/account_nat_policy_settings" layout="@layout/account_nat_policy_settings"
bind:viewModel="@{viewModel}"/> 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"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style" style="@style/section_header_style"
android:id="@+id/advanced_settings_header" android:id="@+id/advanced_settings_header"
android:onClick="@{() -> viewModel.toggleAdvancedSettingsExpand()}" android:onClick="@{() -> viewModel.toggleAdvancedSettingsExpand()}"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="10dp" android:padding="10dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
@ -304,22 +317,29 @@
android:text="@string/settings_advanced_title" android:text="@string/settings_advanced_title"
android:drawableEnd="@{viewModel.expandAdvancedSettings ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}" android:drawableEnd="@{viewModel.expandAdvancedSettings ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" /> 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" />
<include <include
android:id="@+id/account_advanced_settings" android:id="@+id/account_advanced_settings"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:visibility="@{viewModel.expandAdvancedSettings ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.expandAdvancedSettings ? View.VISIBLE : View.GONE}"
layout="@layout/account_advanced_settings" layout="@layout/account_advanced_settings"
bind:updatePasswordClickListener="@{updatePasswordClickListener}" bind:updatePasswordClickListener="@{updatePasswordClickListener}"
bind:outboundProxyTooltipClickListener="@{outboundProxyTooltipClickListener}" bind:outboundProxyTooltipClickListener="@{outboundProxyTooltipClickListener}"
bind:viewModel="@{viewModel}"/> 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"/>
</LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView> </ScrollView>

View file

@ -13,8 +13,7 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="75dp" android:layout_width="75dp"
android:layout_height="@dimen/selected_participant_cell_height" android:layout_height="@dimen/selected_participant_cell_height"
android:padding="5dp" android:padding="5dp">
android:background="@drawable/primary_cell_background">
<include <include
android:id="@+id/avatar" android:id="@+id/avatar"

View file

@ -58,7 +58,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="10dp" android:layout_marginStart="10dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="10dp"
android:text="@string/conversation_info_participant_is_admin_label" android:text="@string/conversation_info_participant_is_admin_label"
android:textSize="12sp" android:textSize="12sp"
android:textColor="?attr/color_main2_400" android:textColor="?attr/color_main2_400"
@ -78,6 +78,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="10dp" android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:text="@string/conversation_info_participant_is_admin_label" android:text="@string/conversation_info_participant_is_admin_label"
android:textSize="12sp" android:textSize="12sp"
android:textColor="?attr/color_main2_400" android:textColor="?attr/color_main2_400"
@ -97,11 +98,10 @@
android:onClick="@{() -> model.removeParticipant()}" android:onClick="@{() -> model.removeParticipant()}"
android:layout_width="@dimen/icon_size" android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size" android:layout_height="@dimen/icon_size"
android:layout_marginStart="10dp" android:layout_marginEnd="10dp"
android:layout_marginEnd="16dp"
android:src="@drawable/x" android:src="@drawable/x"
android:contentDescription="@string/content_description_click_to_remove_participant" android:contentDescription="@string/content_description_click_to_remove_participant"
android:visibility="@{model.isMeAdmin ? (model.isMyself ? View.INVISIBLE : View.VISIBLE) : View.GONE, default=gone}" android:visibility="@{model.isMeAdmin ? (model.isMyself ? View.GONE : View.VISIBLE) : View.GONE, default=gone}"
app:layout_constraintStart_toEndOf="@id/admin_toggle" app:layout_constraintStart_toEndOf="@id/admin_toggle"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"

View file

@ -61,26 +61,40 @@
app:layout_constraintTop_toTopOf="@id/title" app:layout_constraintTop_toTopOf="@id/title"
app:tint="?attr/color_main2_500"/> app:tint="?attr/color_main2_500"/>
<View <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/background" android:id="@+id/contacts_content"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:background="?attr/color_main2_000" android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/back" /> app:layout_constraintEnd_toEndOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/participants_list" android:id="@+id/participants_list"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginTop="10dp"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/title" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/> app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<org.linphone.ui.call.view.RoundCornersTextureView <org.linphone.ui.call.view.RoundCornersTextureView
android:id="@+id/local_preview_video_surface" android:id="@+id/local_preview_video_surface"
android:layout_width="wrap_content" android:layout_width="wrap_content"

View file

@ -30,7 +30,7 @@
android:id="@+id/call_media_encryption_info" android:id="@+id/call_media_encryption_info"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" 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" layout="@layout/call_media_encryption_info"
bind:viewModel="@{viewModel}" bind:viewModel="@{viewModel}"
app:layout_constraintTop_toBottomOf="@id/call_direction_label" app:layout_constraintTop_toBottomOf="@id/call_direction_label"

View file

@ -56,15 +56,26 @@
app:layout_constraintStart_toEndOf="@id/back" app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<View <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/background" android:id="@+id/calls_content"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:background="?attr/color_main2_000" android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/back"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/back" /> app:layout_constraintEnd_toEndOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style" style="@style/section_header_style"
@ -76,7 +87,7 @@
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:text="@string/call_transfer_active_calls_label" android:text="@string/call_transfer_active_calls_label"
app:layout_constraintTop_toBottomOf="@id/title" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"/> app:layout_constraintStart_toStartOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
@ -218,6 +229,10 @@
app:layout_constraintTop_toBottomOf="@id/results_limit_reached" app:layout_constraintTop_toBottomOf="@id/results_limit_reached"
app:layout_constraintBottom_toBottomOf="parent" /> app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.progressindicator.CircularProgressIndicator <com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/fetch_in_progress" android:id="@+id/fetch_in_progress"
android:layout_width="wrap_content" android:layout_width="wrap_content"

View file

@ -54,31 +54,45 @@
android:src="@drawable/arrows_merge" android:src="@drawable/arrows_merge"
android:contentDescription="@string/content_description_merge_calls_into_conference" android:contentDescription="@string/content_description_merge_calls_into_conference"
android:visibility="@{viewModel.callsCount > 1 ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.callsCount > 1 ? View.VISIBLE : View.GONE}"
app:tint="?attr/color_main1_500" app:tint="?attr/color_main2_500"
app:layout_constraintBottom_toBottomOf="@id/title" app:layout_constraintBottom_toBottomOf="@id/title"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/title"/> app:layout_constraintTop_toTopOf="@id/title"/>
<View <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/background" android:id="@+id/contacts_content"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:background="?attr/color_main2_000" android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/back"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/back" /> app:layout_constraintEnd_toEndOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/calls_list" android:id="@+id/calls_list"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginTop="10dp"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/title" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/> app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<org.linphone.ui.call.view.RoundCornersTextureView <org.linphone.ui.call.view.RoundCornersTextureView
android:id="@+id/local_preview_video_surface" android:id="@+id/local_preview_video_surface"
android:layout_width="wrap_content" android:layout_width="wrap_content"

View file

@ -298,16 +298,6 @@
app:layout_constraintTop_toTopOf="@id/search" app:layout_constraintTop_toTopOf="@id/search"
app:tint="@color/icon_color_selector" /> app:tint="@color/icon_color_selector" />
<View
android:id="@+id/background"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="?attr/color_main2_000"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/events_list" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/events_list" android:id="@+id/events_list"
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -106,6 +106,7 @@
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:paddingBottom="10dp" android:paddingBottom="10dp"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
@ -219,6 +220,7 @@
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/avatar_content" app:layout_constraintTop_toBottomOf="@id/avatar_content"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"> app:layout_constraintEnd_toEndOf="parent">
@ -352,42 +354,41 @@
android:text="@{viewModel.participantsLabel, default=@string/conversation_info_participants_list_title}" android:text="@{viewModel.participantsLabel, default=@string/conversation_info_participants_list_title}"
android:visibility="@{viewModel.isGroup ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.isGroup ? View.VISIBLE : View.GONE}"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/call_actions" /> app:layout_constraintTop_toBottomOf="@id/call_actions" />
<View <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/participants_background" android:id="@+id/participants_list"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginBottom="-16dp"
android:background="@drawable/shape_squircle_white_background"
android:visibility="@{!viewModel.expandParticipants || !viewModel.isMyselfAdmin || !viewModel.isGroup || viewModel.isReadOnly ? View.GONE : View.VISIBLE, default=gone}" android:visibility="@{!viewModel.expandParticipants || !viewModel.isMyselfAdmin || !viewModel.isGroup || viewModel.isReadOnly ? View.GONE : View.VISIBLE, default=gone}"
app:layout_constraintBottom_toBottomOf="@id/add_participants" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintTop_toTopOf="@id/participants" /> app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/participants_label"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/participants" android:id="@+id/participants"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
android:nestedScrollingEnabled="true" android:nestedScrollingEnabled="true"
android:visibility="@{viewModel.expandParticipants &amp;&amp; viewModel.isGroup ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.expandParticipants &amp;&amp; viewModel.isGroup ? View.VISIBLE : View.GONE}"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/add_participants" app:layout_constraintBottom_toTopOf="@id/add_participants"
app:layout_constrainedHeight="true" app:layout_constrainedHeight="true"/>
app:layout_constraintTop_toBottomOf="@id/participants_label"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/add_participants" android:id="@+id/add_participants"
style="@style/tertiary_button_label_style" style="@style/tertiary_button_label_style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginTop="10dp"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:background="@drawable/tertiary_button_background" android:background="@drawable/tertiary_button_background"
android:drawableStart="@drawable/plus_circle" android:drawableStart="@drawable/plus_circle"
@ -403,10 +404,12 @@
android:text="@string/conversation_info_add_participants_label" android:text="@string/conversation_info_add_participants_label"
android:visibility="@{!viewModel.expandParticipants || !viewModel.isMyselfAdmin || !viewModel.isGroup || viewModel.isReadOnly ? View.GONE : View.VISIBLE, default=gone}" android:visibility="@{!viewModel.expandParticipants || !viewModel.isMyselfAdmin || !viewModel.isGroup || viewModel.isReadOnly ? View.GONE : View.VISIBLE, default=gone}"
app:drawableTint="?attr/color_main1_500" app:drawableTint="?attr/color_main1_500"
app:layout_constraintBottom_toTopOf="@id/media_documents_actions"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/participants" /> app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/participants"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/media_documents_actions" android:id="@+id/media_documents_actions"
@ -418,10 +421,11 @@
android:layout_marginEnd="20dp" android:layout_marginEnd="20dp"
android:padding="5dp" android:padding="5dp"
android:text="@string/conversation_details_media_documents_title" android:text="@string/conversation_details_media_documents_title"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintBottom_toTopOf="@id/action_media" app:layout_constraintBottom_toTopOf="@id/action_media"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/add_participants" /> app:layout_constraintTop_toBottomOf="@id/participants_list" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/action_media" android:id="@+id/action_media"
@ -434,6 +438,7 @@
android:drawableStart="@drawable/image" android:drawableStart="@drawable/image"
android:onClick="@{goToSharedMediaClickListener}" android:onClick="@{goToSharedMediaClickListener}"
android:text="@string/conversation_media_list_title" android:text="@string/conversation_media_list_title"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/media_documents_actions" /> app:layout_constraintTop_toBottomOf="@id/media_documents_actions" />
@ -450,6 +455,7 @@
android:drawableStart="@drawable/file_pdf" android:drawableStart="@drawable/file_pdf"
android:onClick="@{goToSharedDocumentsClickListener}" android:onClick="@{goToSharedDocumentsClickListener}"
android:text="@string/conversation_document_list_title" android:text="@string/conversation_document_list_title"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_media" /> app:layout_constraintTop_toBottomOf="@id/action_media" />
@ -475,6 +481,7 @@
android:layout_marginEnd="20dp" android:layout_marginEnd="20dp"
android:padding="5dp" android:padding="5dp"
android:text="@string/contact_details_actions_title" android:text="@string/contact_details_actions_title"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_documents" /> app:layout_constraintTop_toBottomOf="@id/action_documents" />
@ -491,6 +498,7 @@
android:onClick="@{goToContactClickListener}" android:onClick="@{goToContactClickListener}"
android:text="@string/conversation_info_menu_go_to_contact" android:text="@string/conversation_info_menu_go_to_contact"
android:visibility="@{!viewModel.isGroup &amp;&amp; viewModel.friendAvailable ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{!viewModel.isGroup &amp;&amp; viewModel.friendAvailable ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/other_actions" /> app:layout_constraintTop_toBottomOf="@id/other_actions" />
@ -507,6 +515,7 @@
android:onClick="@{addToContactsClickListener}" android:onClick="@{addToContactsClickListener}"
android:text="@string/conversation_info_menu_add_to_contacts" android:text="@string/conversation_info_menu_add_to_contacts"
android:visibility="@{!viewModel.isGroup &amp;&amp; !viewModel.friendAvailable &amp;&amp; !viewModel.disableAddContact ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{!viewModel.isGroup &amp;&amp; !viewModel.friendAvailable &amp;&amp; !viewModel.disableAddContact ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_see_contact" /> app:layout_constraintTop_toBottomOf="@id/action_see_contact" />
@ -523,6 +532,7 @@
android:onClick="@{configureEphemeralMessagesClickListener}" android:onClick="@{configureEphemeralMessagesClickListener}"
android:text="@string/conversation_action_configure_ephemeral_messages" android:text="@string/conversation_action_configure_ephemeral_messages"
android:visibility="@{viewModel.isEndToEndEncrypted &amp;&amp; !viewModel.isReadOnly ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.isEndToEndEncrypted &amp;&amp; !viewModel.isReadOnly ? View.VISIBLE : View.GONE}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_add_to_contacts" /> app:layout_constraintTop_toBottomOf="@id/action_add_to_contacts" />
@ -539,6 +549,7 @@
android:onClick="@{() -> viewModel.leaveGroup()}" android:onClick="@{() -> viewModel.leaveGroup()}"
android:text="@string/conversation_action_leave_group" android:text="@string/conversation_action_leave_group"
android:visibility="@{viewModel.isGroup &amp;&amp; !viewModel.isReadOnly ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.isGroup &amp;&amp; !viewModel.isReadOnly ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_ephemeral_messages" /> app:layout_constraintTop_toBottomOf="@id/action_ephemeral_messages" />
@ -554,6 +565,7 @@
android:drawableStart="@drawable/trash_simple" android:drawableStart="@drawable/trash_simple"
android:onClick="@{deleteHistoryClickListener}" android:onClick="@{deleteHistoryClickListener}"
android:text="@string/conversation_info_delete_history_action" android:text="@string/conversation_info_delete_history_action"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_leave_group" /> app:layout_constraintTop_toBottomOf="@id/action_leave_group" />

View file

@ -47,15 +47,26 @@
app:layout_constraintStart_toEndOf="@id/back" app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent"/> app:layout_constraintTop_toTopOf="parent"/>
<View <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/background" android:id="@+id/contacts_content"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:background="?attr/color_main2_000" android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/back"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/back" /> app:layout_constraintEnd_toEndOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatEditText <androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style" style="@style/default_text_style"
@ -81,7 +92,7 @@
app:layout_constraintWidth_max="@dimen/text_input_max_width" app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/title" /> app:layout_constraintTop_toTopOf="parent" />
<ImageView <ImageView
android:id="@+id/clear_field" android:id="@+id/clear_field"
@ -108,6 +119,10 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent" /> app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.progressindicator.CircularProgressIndicator <com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/fetch_in_progress" android:id="@+id/fetch_in_progress"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -117,7 +132,7 @@
app:indicatorColor="?attr/color_main1_500" app:indicatorColor="?attr/color_main1_500"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/search_bar" app:layout_constraintTop_toBottomOf="@id/contacts_content"
app:layout_constraintBottom_toBottomOf="parent" /> app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -86,24 +86,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingBottom="@dimen/screen_bottom_margin"> android:paddingBottom="@dimen/screen_bottom_margin">
<androidx.constraintlayout.widget.Group
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="company_label, company"
android:visibility="@{viewModel.company.length() > 0 ? View.VISIBLE : View.GONE}" />
<androidx.constraintlayout.widget.Group
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="title_label, title"
android:visibility="@{viewModel.title.length() > 0 ? View.VISIBLE : View.GONE}" />
<androidx.constraintlayout.widget.Group
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="trusted_devices_count, trusted_devices_progress, devices, trusted_devices_progress_label, trusted_devices_progress_background"
android:visibility="@{viewModel.showContactTrustAndDevices ? (viewModel.expandDevicesTrust &amp;&amp; viewModel.devices.size() > 0 ? View.VISIBLE : View.GONE) : View.GONE, default=gone}" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/avatar_content" android:id="@+id/avatar_content"
android:layout_width="0dp" android:layout_width="0dp"
@ -112,6 +94,7 @@
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
@ -165,6 +148,7 @@
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/avatar_content" app:layout_constraintTop_toBottomOf="@id/avatar_content"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"> app:layout_constraintEnd_toEndOf="parent">
@ -281,14 +265,15 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="10dp" android:padding="10dp"
android:layout_marginStart="20dp" android:layout_marginStart="16dp"
android:layout_marginEnd="20dp" android:layout_marginEnd="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:text="@string/contact_details_numbers_and_addresses_title" android:text="@string/contact_details_numbers_and_addresses_title"
android:drawableEnd="@{viewModel.expandNumbersAndAddresses ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}" android:drawableEnd="@{viewModel.expandNumbersAndAddresses ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.atLeastOneSipAddressOrPhoneNumber ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.atLeastOneSipAddressOrPhoneNumber ? View.VISIBLE : View.GONE}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/call_actions"/> app:layout_constraintTop_toBottomOf="@id/call_actions"/>
@ -301,40 +286,40 @@
android:orientation="vertical" android:orientation="vertical"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:padding="10dp"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/numbers_and_addresses_label" app:layout_constraintTop_toBottomOf="@id/numbers_and_addresses_label"
app:entries="@{viewModel.sipAddressesAndPhoneNumbers}" app:entries="@{viewModel.sipAddressesAndPhoneNumbers}"
app:layout="@{@layout/contact_number_address_list_cell}" /> app:layout="@{@layout/contact_number_address_list_cell}" />
<ImageView <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/info_background" android:id="@+id/contact_job_info"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:src="@drawable/shape_squircle_white_background"
android:contentDescription="@null"
android:visibility="@{viewModel.title.length() > 0 || viewModel.company.length() > 0 ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.title.length() > 0 || viewModel.company.length() > 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/numbers_and_addresses" app:layout_constraintTop_toBottomOf="@id/numbers_and_addresses"
app:layout_constraintBottom_toBottomOf="@id/title_label"/> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/header_style" style="@style/header_style"
android:id="@+id/company_label" android:id="@+id/company_label"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="10dp" android:layout_marginStart="20dp"
android:paddingTop="8dp" android:paddingTop="10dp"
android:paddingBottom="8dp" android:paddingBottom="10dp"
android:text="@string/contact_details_company_name" android:text="@string/contact_details_company_name"
app:layout_constraintStart_toStartOf="@id/info_background" android:visibility="@{viewModel.company.length() > 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintTop_toTopOf="@id/info_background"/> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style" style="@style/default_text_style"
@ -342,26 +327,28 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="5dp" android:layout_marginStart="5dp"
android:paddingTop="8dp" android:paddingTop="10dp"
android:paddingBottom="8dp" android:paddingBottom="10dp"
android:text="@{viewModel.company, default=`Belledonne Comm`}" android:text="@{viewModel.company, default=`Belledonne Comm`}"
android:textSize="14sp" android:textSize="14sp"
android:maxLines="1" android:maxLines="1"
android:ellipsize="end" android:ellipsize="end"
android:visibility="@{viewModel.company.length() > 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toEndOf="@id/company_label" app:layout_constraintStart_toEndOf="@id/company_label"
app:layout_constraintEnd_toEndOf="@id/info_background" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/info_background"/> app:layout_constraintTop_toTopOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/header_style" style="@style/header_style"
android:id="@+id/title_label" android:id="@+id/title_label"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="10dp" android:layout_marginStart="20dp"
android:paddingTop="8dp" android:paddingTop="10dp"
android:paddingBottom="8dp" android:paddingBottom="10dp"
android:text="@string/contact_details_job_title" android:text="@string/contact_details_job_title"
app:layout_constraintStart_toStartOf="@id/info_background" android:visibility="@{viewModel.title.length() > 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/company"/> app:layout_constraintTop_toBottomOf="@id/company"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
@ -370,23 +357,25 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="5dp" android:layout_marginStart="5dp"
android:paddingTop="8dp" android:paddingTop="10dp"
android:paddingBottom="8dp" android:paddingBottom="10dp"
android:text="@{viewModel.title, default=`Android developer`}" android:text="@{viewModel.title, default=`Android developer`}"
android:textSize="14sp" android:textSize="14sp"
android:maxLines="1" android:maxLines="1"
android:ellipsize="end" android:ellipsize="end"
app:layout_constraintEnd_toEndOf="@id/info_background" android:visibility="@{viewModel.title.length() > 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/title_label" app:layout_constraintStart_toEndOf="@id/title_label"
app:layout_constraintTop_toBottomOf="@id/company"/> app:layout_constraintTop_toBottomOf="@id/company"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style" style="@style/section_header_style"
android:id="@+id/trust_label" android:id="@+id/trust_label"
android:onClick="@{() -> viewModel.displayTrustDialog()}" android:onClick="@{() -> viewModel.displayTrustDialog()}"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:padding="10dp" android:padding="10dp"
android:text="@string/contact_details_trust_title" android:text="@string/contact_details_trust_title"
@ -395,8 +384,8 @@
android:drawablePadding="8dp" android:drawablePadding="8dp"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.showContactTrustAndDevices ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.showContactTrustAndDevices ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="@id/devices_trust"
app:layout_constraintTop_toBottomOf="@id/info_background"/> app:layout_constraintTop_toBottomOf="@id/contact_job_info"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style" style="@style/section_header_style"
@ -404,37 +393,27 @@
android:onClick="@{() -> viewModel.toggleDevicesTrustExpand()}" android:onClick="@{() -> viewModel.toggleDevicesTrustExpand()}"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginTop="16dp"
android:padding="10dp" android:padding="10dp"
android:drawableEnd="@{viewModel.expandDevicesTrust ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}" android:drawableEnd="@{viewModel.expandDevicesTrust ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.showContactTrustAndDevices ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.showContactTrustAndDevices ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toEndOf="@id/trust_label" app:layout_constraintStart_toEndOf="@id/trust_label"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="@id/devices_trust"
app:layout_constraintTop_toBottomOf="@id/info_background"/> app:layout_constraintBottom_toTopOf="@id/devices_trust"/>
<androidx.constraintlayout.widget.Barrier <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/trust_background_bottom_barrier" android:id="@+id/devices_trust"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:constraint_referenced_ids="devices, no_device_label" />
<ImageView
android:id="@+id/trust_background"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:src="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
android:contentDescription="@null" android:visibility="@{viewModel.expandDevicesTrust ? View.VISIBLE : View.INVISIBLE}"
android:visibility="@{viewModel.expandDevicesTrust ? 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/trust_label" app:layout_constraintTop_toBottomOf="@id/trust_label"
app:layout_constraintBottom_toBottomOf="@id/trust_background_bottom_barrier"/> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/header_style" style="@style/header_style"
@ -443,11 +422,12 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="10dp"
android:text="@string/contact_details_trusted_devices_count" android:text="@string/contact_details_trusted_devices_count"
app:layout_constraintStart_toStartOf="@id/trust_background" android:visibility="@{viewModel.showContactTrustAndDevices ? (viewModel.expandDevicesTrust &amp;&amp; viewModel.devices.size() > 0 ? View.VISIBLE : View.GONE) : View.GONE, default=gone}"
app:layout_constraintEnd_toEndOf="@id/trust_background" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/trust_background" /> app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View <View
android:id="@+id/trusted_devices_progress_background" android:id="@+id/trusted_devices_progress_background"
@ -457,8 +437,9 @@
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:background="@drawable/shape_squircle_contact_trust_r50_background" android:background="@drawable/shape_squircle_contact_trust_r50_background"
app:layout_constraintStart_toStartOf="@id/trust_background" android:visibility="@{viewModel.showContactTrustAndDevices ? (viewModel.expandDevicesTrust &amp;&amp; viewModel.devices.size() > 0 ? View.VISIBLE : View.GONE) : View.GONE, default=gone}"
app:layout_constraintEnd_toEndOf="@id/trust_background" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/trusted_devices_count" /> app:layout_constraintTop_toBottomOf="@id/trusted_devices_count" />
<com.google.android.material.progressindicator.LinearProgressIndicator <com.google.android.material.progressindicator.LinearProgressIndicator
@ -469,6 +450,7 @@
android:layout_marginEnd="3dp" android:layout_marginEnd="3dp"
android:max="100" android:max="100"
android:progress="@{viewModel.trustedDevicesPercentage, default=20}" android:progress="@{viewModel.trustedDevicesPercentage, default=20}"
android:visibility="@{viewModel.showContactTrustAndDevices ? (viewModel.expandDevicesTrust &amp;&amp; viewModel.devices.size() > 0 ? View.VISIBLE : View.GONE) : View.GONE, default=gone}"
app:trackCornerRadius="50dp" app:trackCornerRadius="50dp"
app:trackThickness="22dp" app:trackThickness="22dp"
app:trackColor="@color/transparent_color" app:trackColor="@color/transparent_color"
@ -499,6 +481,7 @@
android:text="@{String.valueOf(viewModel.trustedDevicesPercentage) + `%`, default=`20%`}" android:text="@{String.valueOf(viewModel.trustedDevicesPercentage) + `%`, default=`20%`}"
android:textColor="@{viewModel.trustedDevicesPercentage > 15 ? @color/bc_white : @color/red_danger_500_night, default=@color/bc_white}" android:textColor="@{viewModel.trustedDevicesPercentage > 15 ? @color/bc_white : @color/red_danger_500_night, default=@color/bc_white}"
android:textSize="12sp" android:textSize="12sp"
android:visibility="@{viewModel.showContactTrustAndDevices ? (viewModel.expandDevicesTrust &amp;&amp; viewModel.devices.size() > 0 ? View.VISIBLE : View.GONE) : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="@id/trusted_devices_progress_label_anchor" app:layout_constraintStart_toStartOf="@id/trusted_devices_progress_label_anchor"
app:layout_constraintEnd_toEndOf="@id/trusted_devices_progress_label_anchor" app:layout_constraintEnd_toEndOf="@id/trusted_devices_progress_label_anchor"
app:layout_constraintTop_toTopOf="@id/trusted_devices_progress" app:layout_constraintTop_toTopOf="@id/trusted_devices_progress"
@ -509,29 +492,33 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:padding="10dp" android:padding="10dp"
android:visibility="@{viewModel.showContactTrustAndDevices ? (viewModel.expandDevicesTrust &amp;&amp; viewModel.devices.size() > 0 ? View.VISIBLE : View.GONE) : View.GONE, default=gone}"
app:entries="@{viewModel.devices}" app:entries="@{viewModel.devices}"
app:layout="@{@layout/contact_device_trust_list_cell}" app:layout="@{@layout/contact_device_trust_list_cell}"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/trusted_devices_progress" /> app:layout_constraintTop_toBottomOf="@id/trusted_devices_progress"
app:layout_constraintBottom_toBottomOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700" style="@style/default_text_style_700"
android:id="@+id/no_device_label" android:id="@+id/no_device_label"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:padding="10dp" android:padding="10dp"
android:text="@string/contact_details_no_device_found" android:text="@string/contact_details_no_device_found"
android:visibility="@{viewModel.expandDevicesTrust &amp;&amp; viewModel.devices.empty ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.expandDevicesTrust &amp;&amp; viewModel.devices.empty ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="@id/trust_background" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="@id/trust_background" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/trust_background" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="@id/trust_background" /> app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style" style="@style/section_header_style"
@ -543,9 +530,10 @@
android:layout_marginEnd="20dp" android:layout_marginEnd="20dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:text="@string/contact_details_actions_title" android:text="@string/contact_details_actions_title"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/trust_background"/> app:layout_constraintTop_toBottomOf="@id/devices_trust"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/context_menu_action_label_style" style="@style/context_menu_action_label_style"
@ -559,6 +547,7 @@
android:drawableStart="@drawable/pencil_simple" android:drawableStart="@drawable/pencil_simple"
android:background="@drawable/action_background_top" android:background="@drawable/action_background_top"
android:visibility="@{viewModel.isStored &amp;&amp; !viewModel.isReadOnly ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.isStored &amp;&amp; !viewModel.isReadOnly ? View.VISIBLE : View.GONE}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/actions"/> app:layout_constraintTop_toBottomOf="@id/actions"/>
@ -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: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: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}" 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_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_edit" /> app:layout_constraintTop_toBottomOf="@id/action_edit" />
@ -591,6 +581,7 @@
android:background="@{viewModel.isStored &amp;&amp; !viewModel.isReadOnly ? (viewModel.isNative ? @drawable/action_background_bottom : @drawable/action_background_middle) : @drawable/action_background_full, default=@drawable/action_background_middle}" android:background="@{viewModel.isStored &amp;&amp; !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:text="@string/contact_details_share"
android:drawableStart="@drawable/share_network" android:drawableStart="@drawable/share_network"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_favorite"/> app:layout_constraintTop_toBottomOf="@id/action_favorite"/>
@ -607,6 +598,7 @@
android:text="@string/contact_details_delete" android:text="@string/contact_details_delete"
android:drawableStart="@drawable/trash_simple" android:drawableStart="@drawable/trash_simple"
android:visibility="@{viewModel.isStored &amp;&amp; !viewModel.isReadOnly &amp;&amp; !viewModel.isNative ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.isStored &amp;&amp; !viewModel.isReadOnly &amp;&amp; !viewModel.isNative ? View.VISIBLE : View.GONE}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_share"/> app:layout_constraintTop_toBottomOf="@id/action_share"/>

View file

@ -47,7 +47,7 @@
android:src="@drawable/x" android:src="@drawable/x"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
android:contentDescription="@string/content_description_contact_remove_field" 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_constraintStart_toEndOf="@id/field"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/field" app:layout_constraintTop_toTopOf="@id/field"

View file

@ -49,20 +49,40 @@
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlSymmetry" /> tools:ignore="RtlSymmetry" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toBottomOf="parent">
<ScrollView <ScrollView
android:id="@+id/scrollView" android:id="@+id/scrollView"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:fillViewport="true" android:fillViewport="true"
android:background="?attr/color_main2_000"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/title" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"> app:layout_constraintBottom_toBottomOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:paddingBottom="@dimen/screen_bottom_margin">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/avatar_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
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">
<ImageView <ImageView
style="@style/avatar_imageview" style="@style/avatar_imageview"
@ -98,14 +118,17 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:padding="5dp" android:padding="5dp"
android:text="@string/manage_account_add_picture" android:text="@string/manage_account_add_picture"
android:textSize="14sp" android:textSize="14sp"
android:drawableTint="?attr/color_main2_600"
android:drawableStart="@drawable/camera" android:drawableStart="@drawable/camera"
android:drawablePadding="3dp" android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.picturePath.empty ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/avatar" app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/> app:layout_constraintEnd_toEndOf="parent"/>
@ -116,15 +139,18 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:padding="5dp" android:padding="5dp"
android:text="@string/manage_account_edit_picture" android:text="@string/manage_account_edit_picture"
android:textSize="14sp" android:textSize="14sp"
android:drawableTint="?attr/color_main2_600"
android:drawableStart="@drawable/pencil_simple" android:drawableStart="@drawable/pencil_simple"
android:drawablePadding="3dp" android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.GONE : View.VISIBLE}" android:visibility="@{viewModel.picturePath.empty ? View.GONE : View.VISIBLE}"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintTop_toBottomOf="@id/avatar" app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/remove_picture_label"/> app:layout_constraintEnd_toStartOf="@id/remove_picture_label"/>
@ -135,36 +161,47 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:padding="5dp" android:padding="5dp"
android:text="@string/manage_account_remove_picture" android:text="@string/manage_account_remove_picture"
android:textSize="14sp" android:textSize="14sp"
android:drawableTint="?attr/color_main2_600"
android:drawableStart="@drawable/trash_simple" android:drawableStart="@drawable/trash_simple"
android:drawablePadding="3dp" android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.GONE : View.VISIBLE}" android:visibility="@{viewModel.picturePath.empty ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toBottomOf="@id/avatar" app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/edit_picture_label" app:layout_constraintStart_toEndOf="@id/edit_picture_label"
app:layout_constraintEnd_toEndOf="parent"/> app:layout_constraintEnd_toEndOf="parent"/>
<androidx.constraintlayout.widget.Barrier </androidx.constraintlayout.widget.ConstraintLayout>
android:id="@+id/avatar_barrier"
android:layout_width="wrap_content" <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/name_content"
android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:constraint_referenced_ids="remove_picture_label, edit_picture_label, add_picture_label" android:layout_marginStart="16dp"
app:barrierDirection="bottom" /> 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_toBottomOf="@id/avatar_content">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/header_style" style="@style/header_style"
android:id="@+id/first_name_label" android:id="@+id/first_name_label"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="30dp" android:layout_marginTop="10dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:text="@string/contact_editor_first_name" android:text="@string/contact_editor_first_name"
android:labelFor="@id/first_name" android:labelFor="@id/first_name"
app:layout_constraintStart_toStartOf="@id/first_name" app:layout_constraintStart_toStartOf="@id/first_name"
app:layout_constraintTop_toBottomOf="@id/avatar_barrier"/> app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatEditText <androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style" style="@style/default_text_style"
@ -208,6 +245,7 @@
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:paddingStart="20dp" android:paddingStart="20dp"
android:paddingEnd="20dp" android:paddingEnd="20dp"
android:text="@={viewModel.lastName, default=`Doe`}" android:text="@={viewModel.lastName, default=`Doe`}"
@ -219,19 +257,35 @@
android:inputType="text|textPersonName|textCapWords" android:inputType="text|textPersonName|textCapWords"
app:layout_constraintWidth_max="@dimen/text_input_max_width" app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/last_name_label" app:layout_constraintTop_toBottomOf="@id/last_name_label"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/> app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/sip_and_numbers_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
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_toBottomOf="@id/name_content">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/header_style" style="@style/header_style"
android:id="@+id/sip_addresses_label" android:id="@+id/sip_addresses_label"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="30dp" android:layout_marginTop="10dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:text="@string/sip_address" android:text="@string/sip_address"
android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}" android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toBottomOf="@id/last_name" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@id/sip_addresses"/> app:layout_constraintStart_toStartOf="@id/sip_addresses"/>
<LinearLayout <LinearLayout
@ -264,23 +318,40 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginBottom="10dp"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintWidth_max="@dimen/text_input_max_width" app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/phone_numbers_label" app:layout_constraintTop_toBottomOf="@id/phone_numbers_label"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/> app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/job_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
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_toBottomOf="@id/sip_and_numbers_content">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/header_style" style="@style/header_style"
android:id="@+id/company_label" android:id="@+id/company_label"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="30dp" android:layout_marginTop="10dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:text="@string/contact_editor_company" android:text="@string/contact_editor_company"
android:labelFor="@id/company" android:labelFor="@id/company"
app:layout_constraintStart_toStartOf="@id/company" app:layout_constraintStart_toStartOf="@id/company"
app:layout_constraintTop_toBottomOf="@id/phone_numbers"/> app:layout_constraintTop_toTopOf="parent"/>
<androidx.appcompat.widget.AppCompatEditText <androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style" style="@style/default_text_style"
@ -324,9 +395,9 @@
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:paddingStart="20dp" android:paddingStart="20dp"
android:paddingEnd="20dp" android:paddingEnd="20dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:text="@={viewModel.jobTitle, default=`Android dev`}" android:text="@={viewModel.jobTitle, default=`Android dev`}"
android:textSize="14sp" android:textSize="14sp"
android:textColor="?attr/color_main2_600" android:textColor="?attr/color_main2_600"
@ -343,8 +414,12 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView> </ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/save" android:id="@+id/save"
android:onClick="@{() -> viewModel.saveChanges()}" android:onClick="@{() -> viewModel.saveChanges()}"

View file

@ -17,8 +17,7 @@
android:selected="@{model.selected}" android:selected="@{model.selected}"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="10dp" android:padding="10dp"
android:paddingBottom="10dp"
android:background="@drawable/secondary_cell_background"> android:background="@drawable/secondary_cell_background">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView

View file

@ -22,11 +22,22 @@
</data> </data>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:onClick="@{() -> viewModel.closeDrawerMenu()}"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:background="?attr/color_main2_000" android:background="?attr/color_main2_000"
android:clickable="true" android:clickable="true"
android:focusable="true"> android:focusable="true"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<ImageView <ImageView
android:id="@+id/brand_icon" android:id="@+id/brand_icon"
@ -258,4 +269,6 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout> </layout>

View file

@ -75,8 +75,10 @@
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:contentDescription="@string/content_description_play_pause_video_playback" android:contentDescription="@string/content_description_play_pause_video_playback"
android:background="@drawable/circle_transparent_dark_button_background" android:background="@drawable/circle_transparent_dark_button_background"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/progress"
app:tint="@color/bc_white"/> app:tint="@color/bc_white"/>
<SeekBar <SeekBar
@ -89,6 +91,7 @@
android:progress="@{viewModel.position, default=75}" android:progress="@{viewModel.position, default=75}"
android:progressDrawable="@drawable/media_player_seekbar" android:progressDrawable="@drawable/media_player_seekbar"
android:thumb="@drawable/media_player_seekbar_thumb" android:thumb="@drawable/media_player_seekbar_thumb"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toTopOf="@id/play_pause_audio_playback" app:layout_constraintTop_toTopOf="@id/play_pause_audio_playback"
app:layout_constraintBottom_toBottomOf="@id/play_pause_audio_playback" app:layout_constraintBottom_toBottomOf="@id/play_pause_audio_playback"
app:layout_constraintStart_toEndOf="@id/play_pause_audio_playback" app:layout_constraintStart_toEndOf="@id/play_pause_audio_playback"
@ -103,8 +106,11 @@
android:text="@{viewModel.formattedDuration, default=`00:42`}" android:text="@{viewModel.formattedDuration, default=`00:42`}"
android:textSize="13sp" android:textSize="13sp"
android:textColor="@color/bc_white" android:textColor="@color/bc_white"
android:includeFontPadding="false"
android:padding="10dp"
app:layout_constraintTop_toTopOf="@id/play_pause_audio_playback" app:layout_constraintTop_toTopOf="@id/play_pause_audio_playback"
app:layout_constraintBottom_toBottomOf="@id/play_pause_audio_playback" app:layout_constraintBottom_toBottomOf="@id/play_pause_audio_playback"
app:layout_constraintStart_toEndOf="@id/progress"
app:layout_constraintEnd_toEndOf="parent" /> app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -46,33 +46,38 @@
app:layout_constraintStart_toEndOf="@id/back" app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<View <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/background" android:id="@+id/contacts_content"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:background="?attr/color_main2_000" android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/back"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/back" /> app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300" style="@style/default_text_style_300"
android:id="@+id/multiple_selection_count" android:id="@+id/multiple_selection_count"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginStart="10dp"
android:text="@{viewModel.selectionCount, default=`0 selected`}" android:text="@{viewModel.selectionCount, default=`0 selected`}"
android:textSize="12sp" android:textSize="12sp"
android:textColor="@color/bc_black" android:textColor="?attr/color_main2_900"
app:layout_constraintStart_toStartOf="@id/title" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/title" /> app:layout_constraintTop_toTopOf="parent" />
<HorizontalScrollView <HorizontalScrollView
android:id="@+id/multiple_selection" android:id="@+id/multiple_selection"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="5dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:background="@drawable/shape_squircle_white_background"
android:scrollbars="none" android:scrollbars="none"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/multiple_selection_count"> app:layout_constraintTop_toBottomOf="@id/multiple_selection_count">
@ -87,10 +92,21 @@
</HorizontalScrollView> </HorizontalScrollView>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/multiple_selection"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatEditText <androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style" style="@style/default_text_style"
android:id="@+id/search_bar" android:id="@+id/search_bar"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="20dp" android:layout_marginStart="20dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
@ -109,9 +125,9 @@
android:textSize="14sp" android:textSize="14sp"
app:layout_constraintHeight_min="48dp" app:layout_constraintHeight_min="48dp"
app:layout_constraintWidth_max="@dimen/text_input_max_width" app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/multiple_selection"/> app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<ImageView <ImageView
android:id="@+id/clear_field" android:id="@+id/clear_field"
@ -141,7 +157,7 @@
app:layout_constraintVertical_bias="0.3" app:layout_constraintVertical_bias="0.3"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/search_bar" app:layout_constraintTop_toBottomOf="@id/search_bar"
app:layout_constraintBottom_toTopOf="@id/add_participants" /> app:layout_constraintBottom_toBottomOf="parent" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style" style="@style/section_header_style"
@ -151,21 +167,25 @@
android:text="@{viewModel.searchFilter.length() > 0 ? @string/new_conversation_no_matching_contact : @string/new_conversation_no_contact, default=@string/new_conversation_no_contact}" android:text="@{viewModel.searchFilter.length() > 0 ? @string/new_conversation_no_matching_contact : @string/new_conversation_no_contact, default=@string/new_conversation_no_contact}"
android:gravity="center" android:gravity="center"
android:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/no_contact_image" /> app:layout_constraintTop_toBottomOf="@id/no_contact_image" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/contacts_list" android:id="@+id/contacts_list"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginTop="8dp" android:layout_marginTop="10dp"
android:visibility="@{viewModel.isEmpty ? View.GONE : View.VISIBLE}" android:visibility="@{viewModel.isEmpty ? View.GONE : View.VISIBLE}"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/search_bar" app:layout_constraintTop_toBottomOf="@id/search_bar"
app:layout_constraintBottom_toBottomOf="parent" /> app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.progressindicator.CircularProgressIndicator <com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/fetch_in_progress" android:id="@+id/fetch_in_progress"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -175,7 +195,7 @@
app:indicatorColor="?attr/color_main1_500" app:indicatorColor="?attr/color_main1_500"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/search_bar" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" /> app:layout_constraintBottom_toBottomOf="parent" />
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton

View file

@ -65,7 +65,8 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:paddingBottom="@dimen/screen_bottom_margin">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/tertiary_button_label_style" style="@style/tertiary_button_label_style"
@ -106,7 +107,6 @@
android:id="@+id/logs_flow" android:id="@+id/logs_flow"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
app:flow_wrapMode="chain" app:flow_wrapMode="chain"
@ -114,7 +114,7 @@
app:flow_verticalGap="10dp" app:flow_verticalGap="10dp"
app:flow_horizontalStyle="spread_inside" app:flow_horizontalStyle="spread_inside"
app:constraint_referenced_ids="clean_logs, send_logs" app:constraint_referenced_ids="clean_logs, send_logs"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="@id/info_section"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
@ -125,6 +125,7 @@
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/logs_flow" app:layout_constraintTop_toBottomOf="@id/logs_flow"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"> app:layout_constraintEnd_toEndOf="parent">
@ -330,10 +331,8 @@
android:id="@+id/show_config_file" android:id="@+id/show_config_file"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:background="@drawable/tertiary_button_background" android:background="@drawable/tertiary_button_background"
android:paddingStart="12dp" android:paddingStart="12dp"
android:paddingEnd="12dp" android:paddingEnd="12dp"
@ -345,7 +344,7 @@
android:ellipsize="end" android:ellipsize="end"
android:visibility="@{viewModel.canConfigFileBeViewed ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.canConfigFileBeViewed ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintVertical_bias="0" 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_constraintTop_toBottomOf="@id/info_section"
app:layout_constraintBottom_toBottomOf="parent"/> app:layout_constraintBottom_toBottomOf="parent"/>

View file

@ -74,7 +74,8 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:paddingBottom="@dimen/screen_bottom_margin">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style" style="@style/section_header_style"
@ -86,6 +87,7 @@
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:padding="10dp" android:padding="10dp"
android:text="@string/help_about_title" android:text="@string/help_about_title"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/about_section" app:layout_constraintBottom_toTopOf="@id/about_section"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -98,6 +100,7 @@
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/about_title" app:layout_constraintTop_toBottomOf="@id/about_title"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"> app:layout_constraintEnd_toEndOf="parent">
@ -369,6 +372,7 @@
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:padding="10dp" android:padding="10dp"
android:text="@string/help_about_advanced_title" android:text="@string/help_about_advanced_title"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/about_section" app:layout_constraintTop_toBottomOf="@id/about_section"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" /> app:layout_constraintEnd_toEndOf="parent" />
@ -379,8 +383,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintVertical_bias="0" app:layout_constraintVertical_bias="0"
app:layout_constraintTop_toBottomOf="@id/advanced_title" app:layout_constraintTop_toBottomOf="@id/advanced_title"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"

View file

@ -81,7 +81,8 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:paddingBottom="@dimen/screen_bottom_margin">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/avatar_content" android:id="@+id/avatar_content"
@ -92,6 +93,7 @@
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:paddingBottom="10dp" android:paddingBottom="10dp"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
@ -168,6 +170,7 @@
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/avatar_content" app:layout_constraintTop_toBottomOf="@id/avatar_content"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"> app:layout_constraintEnd_toEndOf="parent">
@ -344,9 +347,9 @@
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
android:nestedScrollingEnabled="true" android:nestedScrollingEnabled="true"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintVertical_bias="0" app:layout_constraintVertical_bias="0"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

View file

@ -89,7 +89,6 @@
android:name="org.linphone.ui.main.fragment.DrawerMenuFragment" android:name="org.linphone.ui.main.fragment.DrawerMenuFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="?attr/color_main2_000"
android:layout_gravity="start" android:layout_gravity="start"
app:layout="@layout/drawer_menu" /> app:layout="@layout/drawer_menu" />

View file

@ -59,27 +59,37 @@
app:layout_constraintStart_toEndOf="@id/back" app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent"/> app:layout_constraintTop_toTopOf="parent"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toBottomOf="parent">
<ScrollView <ScrollView
android:id="@+id/scrollView" android:id="@+id/scrollView"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_margin="10dp"
android:fillViewport="true" android:fillViewport="true"
android:background="?attr/color_main2_000" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/title" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"> app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintWidth_max="@dimen/section_max_width">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:paddingBottom="@dimen/screen_bottom_margin">
<androidx.appcompat.widget.AppCompatEditText <androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style_800" style="@style/default_text_style_800"
android:id="@+id/subject" android:id="@+id/subject"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="32dp" android:layout_marginTop="16dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:hint="@string/meeting_schedule_subject_hint" android:hint="@string/meeting_schedule_subject_hint"
@ -382,7 +392,6 @@
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:text="@string/meeting_schedule_send_invitations_title" android:text="@string/meeting_schedule_send_invitations_title"
android:textColor="?attr/color_main2_600" android:textColor="?attr/color_main2_600"
android:textSize="14sp" android:textSize="14sp"
@ -399,6 +408,8 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/save_changes" android:id="@+id/save_changes"
android:onClick="@{() -> viewModel.update()}" android:onClick="@{() -> viewModel.update()}"

View file

@ -59,20 +59,30 @@
app:layout_constraintStart_toEndOf="@id/back" app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent"/> app:layout_constraintTop_toTopOf="parent"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toBottomOf="parent">
<ScrollView <ScrollView
android:id="@+id/scrollView" android:id="@+id/scrollView"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_margin="10dp"
android:fillViewport="true" android:fillViewport="true"
android:background="?attr/color_main2_000" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/title" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"> app:layout_constraintBottom_toBottomOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:paddingBottom="@dimen/screen_bottom_margin">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style" style="@style/default_text_style"
@ -518,7 +528,6 @@
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:text="@string/meeting_schedule_send_invitations_title" android:text="@string/meeting_schedule_send_invitations_title"
android:textColor="?attr/color_main2_600" android:textColor="?attr/color_main2_600"
android:textSize="14sp" android:textSize="14sp"
@ -535,6 +544,8 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/schedule" android:id="@+id/schedule"
android:onClick="@{() -> viewModel.schedule()}" android:onClick="@{() -> viewModel.schedule()}"

View file

@ -62,8 +62,10 @@
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:contentDescription="@string/content_description_play_pause_audio_playback" android:contentDescription="@string/content_description_play_pause_audio_playback"
android:background="@drawable/circle_transparent_dark_button_background" android:background="@drawable/circle_transparent_dark_button_background"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/progress"
app:tint="@color/bc_white"/> app:tint="@color/bc_white"/>
<SeekBar <SeekBar
@ -76,6 +78,7 @@
android:progress="@{viewModel.position, default=75}" android:progress="@{viewModel.position, default=75}"
android:progressDrawable="@drawable/media_player_seekbar" android:progressDrawable="@drawable/media_player_seekbar"
android:thumb="@drawable/media_player_seekbar_thumb" android:thumb="@drawable/media_player_seekbar_thumb"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toTopOf="@id/play_pause_audio_playback" app:layout_constraintTop_toTopOf="@id/play_pause_audio_playback"
app:layout_constraintBottom_toBottomOf="@id/play_pause_audio_playback" app:layout_constraintBottom_toBottomOf="@id/play_pause_audio_playback"
app:layout_constraintStart_toEndOf="@id/play_pause_audio_playback" app:layout_constraintStart_toEndOf="@id/play_pause_audio_playback"
@ -90,8 +93,11 @@
android:text="@{viewModel.formattedDuration, default=`00:42`}" android:text="@{viewModel.formattedDuration, default=`00:42`}"
android:textSize="13sp" android:textSize="13sp"
android:textColor="@color/bc_white" android:textColor="@color/bc_white"
android:includeFontPadding="false"
android:padding="10dp"
app:layout_constraintTop_toTopOf="@id/play_pause_audio_playback" app:layout_constraintTop_toTopOf="@id/play_pause_audio_playback"
app:layout_constraintBottom_toBottomOf="@id/play_pause_audio_playback" app:layout_constraintBottom_toBottomOf="@id/play_pause_audio_playback"
app:layout_constraintStart_toEndOf="@id/progress"
app:layout_constraintEnd_toEndOf="parent" /> app:layout_constraintEnd_toEndOf="parent" />
<androidx.constraintlayout.widget.Barrier <androidx.constraintlayout.widget.Barrier

View file

@ -18,13 +18,6 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="?attr/color_background_contrast_in_dark_mode"> android:background="?attr/color_background_contrast_in_dark_mode">
<androidx.constraintlayout.widget.Group
android:id="@+id/group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="@{viewModel.recordings.empty ? View.VISIBLE : View.GONE}"
app:constraint_referenced_ids="no_recording_image, no_recording_label" />
<androidx.constraintlayout.widget.Group <androidx.constraintlayout.widget.Group
android:id="@+id/group2" android:id="@+id/group2"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -128,16 +121,33 @@
app:layout_constraintTop_toTopOf="@id/search" app:layout_constraintTop_toTopOf="@id/search"
app:tint="?attr/color_main2_500" /> app:tint="?attr/color_main2_500" />
<View <androidx.constraintlayout.widget.Barrier
android:id="@+id/background" android:id="@+id/top_bar_barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:constraint_referenced_ids="back, cancel_search" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/contacts_content"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginTop="@dimen/top_bar_height" android:background="?attr/color_grey_100"
android:background="?attr/color_main2_000" app:layout_constraintTop_toBottomOf="@id/top_bar_barrier"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintEnd_toEndOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<ImageView <ImageView
android:id="@+id/no_recording_image" android:id="@+id/no_recording_image"
@ -146,20 +156,22 @@
android:layout_margin="10dp" android:layout_margin="10dp"
android:contentDescription="@null" android:contentDescription="@null"
android:src="@drawable/illu_recordings" android:src="@drawable/illu_recordings"
android:visibility="@{viewModel.recordings.empty ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toTopOf="@id/no_recording_label" app:layout_constraintBottom_toTopOf="@id/no_recording_label"
app:layout_constraintDimensionRatio="1:1" app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_max="200dp" app:layout_constraintHeight_max="200dp"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/title" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" /> app:layout_constraintVertical_chainStyle="packed" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/no_recording_label"
style="@style/section_header_style" style="@style/section_header_style"
android:id="@+id/no_recording_label"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/recordings_list_empty" android:text="@string/recordings_list_empty"
android:visibility="@{viewModel.recordings.empty ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -167,11 +179,16 @@
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recordings_list" android:id="@+id/recordings_list"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginTop="@dimen/top_bar_height" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.progressindicator.CircularProgressIndicator <com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/fetch_in_progress" android:id="@+id/fetch_in_progress"

View file

@ -55,16 +55,18 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:paddingBottom="@dimen/screen_bottom_margin">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/main_section" android:id="@+id/main_section"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"> app:layout_constraintEnd_toEndOf="parent">
@ -239,6 +241,7 @@
android:drawableEnd="@{viewModel.expandEarlyMedia ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}" android:drawableEnd="@{viewModel.expandEarlyMedia ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/main_section"/> app:layout_constraintTop_toBottomOf="@id/main_section"/>
@ -246,12 +249,15 @@
<include <include
android:id="@+id/early_media_settings" android:id="@+id/early_media_settings"
layout="@layout/settings_advanced_calls_early_media" layout="@layout/settings_advanced_calls_early_media"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:visibility="@{viewModel.expandEarlyMedia ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.expandEarlyMedia ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/early_media_settings_title" app:layout_constraintTop_toBottomOf="@id/early_media_settings_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
bind:viewModel="@{viewModel}"/> bind:viewModel="@{viewModel}"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
@ -268,6 +274,7 @@
android:drawableEnd="@{viewModel.expandAutoAnswer ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}" android:drawableEnd="@{viewModel.expandAutoAnswer ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/early_media_settings"/> app:layout_constraintTop_toBottomOf="@id/early_media_settings"/>
@ -275,12 +282,15 @@
<include <include
android:id="@+id/auto_answer_settings" android:id="@+id/auto_answer_settings"
layout="@layout/settings_advanced_calls_auto_answer" layout="@layout/settings_advanced_calls_auto_answer"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:visibility="@{viewModel.expandAutoAnswer ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.expandAutoAnswer ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/auto_answer_settings_title" app:layout_constraintTop_toBottomOf="@id/auto_answer_settings_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
bind:viewModel="@{viewModel}"/> bind:viewModel="@{viewModel}"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
@ -297,13 +307,14 @@
android:drawableEnd="@{viewModel.expandAudioCodecs ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}" android:drawableEnd="@{viewModel.expandAudioCodecs ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/auto_answer_settings"/> app:layout_constraintTop_toBottomOf="@id/auto_answer_settings"/>
<LinearLayout <LinearLayout
android:id="@+id/audio_codecs" android:id="@+id/audio_codecs"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
@ -313,6 +324,7 @@
android:visibility="@{viewModel.expandAudioCodecs ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.expandAudioCodecs ? View.VISIBLE : View.GONE}"
entries="@{viewModel.audioCodecs}" entries="@{viewModel.audioCodecs}"
layout="@{@layout/settings_codec_list_cell}" layout="@{@layout/settings_codec_list_cell}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/audio_codecs_title" app:layout_constraintTop_toBottomOf="@id/audio_codecs_title"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" /> app:layout_constraintEnd_toEndOf="parent" />
@ -331,23 +343,24 @@
android:drawableEnd="@{viewModel.expandVideoCodecs ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}" android:drawableEnd="@{viewModel.expandVideoCodecs ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/audio_codecs"/> app:layout_constraintTop_toBottomOf="@id/audio_codecs"/>
<LinearLayout <LinearLayout
android:id="@+id/video_codecs" android:id="@+id/video_codecs"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:orientation="vertical" android:orientation="vertical"
android:paddingBottom="16dp" android:paddingBottom="16dp"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
android:visibility="@{viewModel.expandVideoCodecs ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.expandVideoCodecs ? View.VISIBLE : View.GONE}"
entries="@{viewModel.videoCodecs}" entries="@{viewModel.videoCodecs}"
layout="@{@layout/settings_codec_list_cell}" layout="@{@layout/settings_codec_list_cell}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintVertical_bias="0" app:layout_constraintVertical_bias="0"
app:layout_constraintTop_toBottomOf="@id/video_codecs_title" app:layout_constraintTop_toBottomOf="@id/video_codecs_title"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"

View file

@ -57,16 +57,18 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:paddingBottom="@dimen/screen_bottom_margin">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/main_section" android:id="@+id/main_section"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"> app:layout_constraintEnd_toEndOf="parent">
@ -261,6 +263,7 @@
android:drawableEnd="@{viewModel.expandAudioDevices ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}" android:drawableEnd="@{viewModel.expandAudioDevices ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/main_section"/> app:layout_constraintTop_toBottomOf="@id/main_section"/>
@ -275,6 +278,7 @@
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
android:orientation="vertical" android:orientation="vertical"
android:visibility="@{viewModel.expandAudioDevices ? View.VISIBLE : View.GONE, default=gone}" 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_constraintTop_toBottomOf="@id/audio_devices_title"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"> app:layout_constraintEnd_toEndOf="parent">
@ -394,7 +398,7 @@
android:drawableEnd="@drawable/arrow_square_out" android:drawableEnd="@drawable/arrow_square_out"
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" 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_constraintVertical_bias="0"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

View file

@ -63,12 +63,21 @@
app:layout_constraintTop_toTopOf="@id/back" app:layout_constraintTop_toTopOf="@id/back"
app:layout_constraintBottom_toBottomOf="@id/back"/> app:layout_constraintBottom_toBottomOf="@id/back"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toBottomOf="parent">
<ScrollView <ScrollView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_margin="10dp"
android:fillViewport="true" android:fillViewport="true"
android:background="?attr/color_main2_000" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintTop_toBottomOf="@id/title" app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"> app:layout_constraintEnd_toEndOf="parent">
@ -311,6 +320,8 @@
</ScrollView> </ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/add_account" android:id="@+id/add_account"
android:onClick="@{() -> viewModel.addAddressBook()}" android:onClick="@{() -> viewModel.addAddressBook()}"

View file

@ -62,19 +62,29 @@
app:layout_constraintTop_toTopOf="@id/back" app:layout_constraintTop_toTopOf="@id/back"
app:layout_constraintBottom_toBottomOf="@id/back"/> app:layout_constraintBottom_toBottomOf="@id/back"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toBottomOf="parent">
<ScrollView <ScrollView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_margin="10dp"
android:fillViewport="true" android:fillViewport="true"
android:background="?attr/color_main2_000" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintTop_toBottomOf="@id/title" app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"> app:layout_constraintEnd_toEndOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:paddingBottom="@dimen/screen_bottom_margin">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_style" style="@style/settings_title_style"
@ -565,7 +575,6 @@
android:layout_height="50dp" android:layout_height="50dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:background="@drawable/edit_text_background" android:background="@drawable/edit_text_background"
android:paddingStart="20dp" android:paddingStart="20dp"
android:paddingEnd="20dp" android:paddingEnd="20dp"
@ -582,6 +591,8 @@
</ScrollView> </ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/add_server" android:id="@+id/add_server"
android:onClick="@{() -> viewModel.addServer()}" android:onClick="@{() -> viewModel.addServer()}"

View file

@ -58,13 +58,14 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/main_section" android:id="@+id/main_section"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:layout_marginBottom="@dimen/screen_bottom_margin" android:layout_marginBottom="@dimen/screen_bottom_margin"
android:background="@drawable/shape_squircle_white_background" android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintVertical_bias="0" app:layout_constraintVertical_bias="0"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"

View file

@ -83,6 +83,7 @@
android:drawableEnd="@{viewModel.expandSecurity ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}" android:drawableEnd="@{viewModel.expandSecurity ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"/> app:layout_constraintTop_toTopOf="parent"/>
@ -90,12 +91,13 @@
<include <include
android:id="@+id/security_settings" android:id="@+id/security_settings"
layout="@layout/settings_security" layout="@layout/settings_security"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:visibility="@{viewModel.expandSecurity ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.expandSecurity ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/security" app:layout_constraintTop_toBottomOf="@id/security"
app:layout_constraintStart_toStartOf="@id/security"
app:layout_constraintEnd_toEndOf="@id/security"
bind:turnOnVfsClickListener="@{turnOnVfsClickListener}" bind:turnOnVfsClickListener="@{turnOnVfsClickListener}"
bind:viewModel="@{viewModel}"/> bind:viewModel="@{viewModel}"/>
@ -113,6 +115,7 @@
android:drawableEnd="@{viewModel.expandCalls ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}" android:drawableEnd="@{viewModel.expandCalls ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/security_settings"/> app:layout_constraintTop_toBottomOf="@id/security_settings"/>
@ -120,12 +123,15 @@
<include <include
android:id="@+id/calls_settings" android:id="@+id/calls_settings"
layout="@layout/settings_calls" layout="@layout/settings_calls"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/calls" app:layout_constraintTop_toBottomOf="@id/calls"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
bind:advancedCallSettingsClickListener="@{advancedCallSettingsClickListener}" bind:advancedCallSettingsClickListener="@{advancedCallSettingsClickListener}"
bind:viewModel="@{viewModel}"/> bind:viewModel="@{viewModel}"/>
@ -144,6 +150,7 @@
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.showConversationsSettings ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.showConversationsSettings ? View.VISIBLE : View.GONE}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/calls_settings"/> app:layout_constraintTop_toBottomOf="@id/calls_settings"/>
@ -151,12 +158,15 @@
<include <include
android:id="@+id/conversation_settings" android:id="@+id/conversation_settings"
layout="@layout/settings_chat" layout="@layout/settings_chat"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:visibility="@{viewModel.expandConversations &amp;&amp; viewModel.showConversationsSettings ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.expandConversations &amp;&amp; viewModel.showConversationsSettings ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/chat" app:layout_constraintTop_toBottomOf="@id/chat"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
bind:viewModel="@{viewModel}"/> bind:viewModel="@{viewModel}"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
@ -174,6 +184,7 @@
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.showContactsSettings ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.showContactsSettings ? View.VISIBLE : View.GONE}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/conversation_settings"/> app:layout_constraintTop_toBottomOf="@id/conversation_settings"/>
@ -181,12 +192,15 @@
<include <include
android:id="@+id/contacts_settings" android:id="@+id/contacts_settings"
layout="@layout/settings_contacts" layout="@layout/settings_contacts"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:visibility="@{viewModel.expandContacts &amp;&amp; viewModel.showContactsSettings ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.expandContacts &amp;&amp; viewModel.showContactsSettings ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/contacts" app:layout_constraintTop_toBottomOf="@id/contacts"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
bind:viewModel="@{viewModel}"/> bind:viewModel="@{viewModel}"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
@ -204,6 +218,7 @@
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.showMeetingsSettings ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.showMeetingsSettings ? View.VISIBLE : View.GONE}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/contacts_settings"/> app:layout_constraintTop_toBottomOf="@id/contacts_settings"/>
@ -211,12 +226,15 @@
<include <include
android:id="@+id/meetings_settings" android:id="@+id/meetings_settings"
layout="@layout/settings_meetings" layout="@layout/settings_meetings"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:visibility="@{viewModel.expandMeetings &amp;&amp; viewModel.showMeetingsSettings ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.expandMeetings &amp;&amp; viewModel.showMeetingsSettings ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/meetings" app:layout_constraintTop_toBottomOf="@id/meetings"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
bind:viewModel="@{viewModel}"/> bind:viewModel="@{viewModel}"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
@ -233,6 +251,7 @@
android:drawableEnd="@{viewModel.expandNetwork ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}" android:drawableEnd="@{viewModel.expandNetwork ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/meetings_settings"/> app:layout_constraintTop_toBottomOf="@id/meetings_settings"/>
@ -240,12 +259,15 @@
<include <include
android:id="@+id/network_settings" android:id="@+id/network_settings"
layout="@layout/settings_network" layout="@layout/settings_network"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:visibility="@{viewModel.expandNetwork ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.expandNetwork ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/network" app:layout_constraintTop_toBottomOf="@id/network"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
bind:viewModel="@{viewModel}"/> bind:viewModel="@{viewModel}"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
@ -262,6 +284,7 @@
android:drawableEnd="@{viewModel.expandUserInterface ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}" android:drawableEnd="@{viewModel.expandUserInterface ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/network_settings"/> app:layout_constraintTop_toBottomOf="@id/network_settings"/>
@ -269,12 +292,15 @@
<include <include
android:id="@+id/user_interface_settings" android:id="@+id/user_interface_settings"
layout="@layout/settings_user_interface" layout="@layout/settings_user_interface"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:visibility="@{viewModel.expandUserInterface ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.expandUserInterface ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/user_interface" app:layout_constraintTop_toBottomOf="@id/user_interface"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
bind:viewModel="@{viewModel}"/> bind:viewModel="@{viewModel}"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
@ -292,6 +318,7 @@
android:drawableEnd="@{viewModel.expandTunnel ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}" android:drawableEnd="@{viewModel.expandTunnel ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/user_interface_settings"/> app:layout_constraintTop_toBottomOf="@id/user_interface_settings"/>
@ -299,12 +326,15 @@
<include <include
android:id="@+id/tunnel_settings" android:id="@+id/tunnel_settings"
layout="@layout/settings_tunnel" layout="@layout/settings_tunnel"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:visibility="@{viewModel.isTunnelAvailable &amp;&amp; viewModel.expandTunnel ? View.VISIBLE : View.GONE, default=gone}" android:visibility="@{viewModel.isTunnelAvailable &amp;&amp; viewModel.expandTunnel ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/tunnel" app:layout_constraintTop_toBottomOf="@id/tunnel"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
bind:viewModel="@{viewModel}"/> bind:viewModel="@{viewModel}"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
@ -323,6 +353,7 @@
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.showAdvancedSettings ? View.VISIBLE : View.GONE}" android:visibility="@{viewModel.showAdvancedSettings ? View.VISIBLE : View.GONE}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/tunnel_settings"/> app:layout_constraintTop_toBottomOf="@id/tunnel_settings"/>
@ -343,6 +374,7 @@
android:drawableTint="?attr/color_main2_600" android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background" android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.showDeveloperSettings ? View.VISIBLE : View.GONE, default=gone}" 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_constraintVertical_bias="0"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

View file

@ -28,13 +28,6 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="?attr/color_background_contrast_in_dark_mode"> android:background="?attr/color_background_contrast_in_dark_mode">
<androidx.constraintlayout.widget.Group
android:id="@+id/multiple_selection_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="multiple_selection, multiple_selection_count"
android:visibility="@{viewModel.multipleSelectionMode ? View.VISIBLE : View.GONE, default=gone}" />
<ImageView <ImageView
style="@style/icon_top_bar_button_style" style="@style/icon_top_bar_button_style"
android:id="@+id/back" android:id="@+id/back"
@ -60,36 +53,41 @@
app:layout_constraintStart_toEndOf="@id/back" app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<View <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/background" android:id="@+id/contacts_content"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:background="?attr/color_main2_000" android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/back"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/back" /> app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300" style="@style/default_text_style_300"
android:id="@+id/multiple_selection_count" android:id="@+id/multiple_selection_count"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="5dp" android:layout_marginTop="10dp"
android:layout_marginStart="5dp" android:layout_marginStart="10dp"
android:text="@{viewModel.selectionCount, default=`0 selected`}" android:text="@{viewModel.selectionCount, default=`0 selected`}"
android:textSize="12sp" android:textSize="12sp"
android:textColor="?attr/color_main2_900" android:textColor="?attr/color_main2_900"
android:visibility="@{viewModel.multipleSelectionMode ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/back" /> app:layout_constraintTop_toTopOf="parent" />
<HorizontalScrollView <HorizontalScrollView
android:id="@+id/multiple_selection" android:id="@+id/multiple_selection"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="5dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:background="@drawable/shape_squircle_white_background"
android:scrollbars="none" android:scrollbars="none"
android:visibility="@{viewModel.multipleSelectionMode ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/multiple_selection_count"> app:layout_constraintTop_toBottomOf="@id/multiple_selection_count">
@ -103,6 +101,17 @@
</HorizontalScrollView> </HorizontalScrollView>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/multiple_selection"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatEditText <androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style" style="@style/default_text_style"
android:id="@+id/search_bar" android:id="@+id/search_bar"
@ -125,9 +134,9 @@
android:textSize="14sp" android:textSize="14sp"
app:layout_constraintHeight_min="48dp" app:layout_constraintHeight_min="48dp"
app:layout_constraintWidth_max="@dimen/text_input_max_width" app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/multiple_selection" /> app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView <ImageView
android:id="@+id/numpad" android:id="@+id/numpad"
@ -198,8 +207,8 @@
android:onClick="@{() -> viewModel.switchToMultipleSelectionMode()}" android:onClick="@{() -> viewModel.switchToMultipleSelectionMode()}"
android:layout_width="@dimen/big_icon_size" android:layout_width="@dimen/big_icon_size"
android:layout_height="@dimen/big_icon_size" android:layout_height="@dimen/big_icon_size"
android:layout_marginStart="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:layout_marginStart="10dp"
android:background="@drawable/shape_orange_round" android:background="@drawable/shape_orange_round"
android:padding="10dp" android:padding="10dp"
android:src="@drawable/video_conference" android:src="@drawable/video_conference"
@ -215,7 +224,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="5dp" android:layout_marginStart="5dp"
android:layout_marginEnd="5dp" android:layout_marginEnd="10dp"
android:drawableEnd="@drawable/caret_right" android:drawableEnd="@drawable/caret_right"
android:drawableTint="?attr/color_main2_900" android:drawableTint="?attr/color_main2_900"
android:background="@drawable/transparent_background" android:background="@drawable/transparent_background"
@ -266,13 +275,17 @@
android:id="@+id/contacts_and_suggestions_list" android:id="@+id/contacts_and_suggestions_list"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginTop="8dp" android:layout_marginTop="10dp"
android:visibility="@{viewModel.isEmpty ? View.GONE : View.VISIBLE}" android:visibility="@{viewModel.isEmpty ? View.INVISIBLE : View.VISIBLE}"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/group_call_icon" app:layout_constraintTop_toBottomOf="@id/group_call_icon"
app:layout_constraintBottom_toBottomOf="parent" /> app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.progressindicator.CircularProgressIndicator <com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/fetch_in_progress" android:id="@+id/fetch_in_progress"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -282,7 +295,7 @@
app:indicatorColor="?attr/color_main1_500" app:indicatorColor="?attr/color_main1_500"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/group_call_icon" app:layout_constraintTop_toTopOf="@id/contacts_content"
app:layout_constraintBottom_toBottomOf="parent" /> app:layout_constraintBottom_toBottomOf="parent" />
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton

View file

@ -25,13 +25,6 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="?attr/color_background_contrast_in_dark_mode"> android:background="?attr/color_background_contrast_in_dark_mode">
<androidx.constraintlayout.widget.Group
android:id="@+id/multiple_selection_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="multiple_selection, multiple_selection_count"
android:visibility="@{viewModel.multipleSelectionMode ? View.VISIBLE : View.GONE, default=gone}" />
<ImageView <ImageView
style="@style/icon_top_bar_button_style" style="@style/icon_top_bar_button_style"
android:id="@+id/back" android:id="@+id/back"
@ -56,36 +49,41 @@
app:layout_constraintStart_toEndOf="@id/back" app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<View <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/background" android:id="@+id/contacts_content"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:background="?attr/color_main2_000" android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/back"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/back" /> app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300" style="@style/default_text_style_300"
android:id="@+id/multiple_selection_count" android:id="@+id/multiple_selection_count"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="5dp" android:layout_marginTop="10dp"
android:layout_marginStart="5dp" android:layout_marginStart="10dp"
android:text="@{viewModel.selectionCount, default=`0 selected`}" android:text="@{viewModel.selectionCount, default=`0 selected`}"
android:textSize="12sp" android:textSize="12sp"
android:textColor="?attr/color_main2_900" android:textColor="?attr/color_main2_900"
android:visibility="@{viewModel.multipleSelectionMode ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/back" /> app:layout_constraintTop_toTopOf="parent" />
<HorizontalScrollView <HorizontalScrollView
android:id="@+id/multiple_selection" android:id="@+id/multiple_selection"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="5dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:background="@drawable/shape_squircle_white_background"
android:scrollbars="none" android:scrollbars="none"
android:visibility="@{viewModel.multipleSelectionMode ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/multiple_selection_count"> app:layout_constraintTop_toBottomOf="@id/multiple_selection_count">
@ -99,6 +97,17 @@
</HorizontalScrollView> </HorizontalScrollView>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/multiple_selection"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatEditText <androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style" style="@style/default_text_style"
android:id="@+id/search_bar" android:id="@+id/search_bar"
@ -121,9 +130,9 @@
android:textSize="14sp" android:textSize="14sp"
app:layout_constraintHeight_min="48dp" app:layout_constraintHeight_min="48dp"
app:layout_constraintWidth_max="@dimen/text_input_max_width" app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/multiple_selection" /> app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView <ImageView
android:id="@+id/clear_field" android:id="@+id/clear_field"
@ -180,8 +189,8 @@
android:onClick="@{() -> viewModel.switchToMultipleSelectionMode()}" android:onClick="@{() -> viewModel.switchToMultipleSelectionMode()}"
android:layout_width="@dimen/big_icon_size" android:layout_width="@dimen/big_icon_size"
android:layout_height="@dimen/big_icon_size" android:layout_height="@dimen/big_icon_size"
android:layout_marginStart="16dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:layout_marginStart="10dp"
android:background="@drawable/shape_orange_round" android:background="@drawable/shape_orange_round"
android:padding="10dp" android:padding="10dp"
android:src="@drawable/users_three" android:src="@drawable/users_three"
@ -197,7 +206,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="5dp" android:layout_marginStart="5dp"
android:layout_marginEnd="5dp" android:layout_marginEnd="10dp"
android:drawableEnd="@drawable/caret_right" android:drawableEnd="@drawable/caret_right"
android:drawableTint="?attr/color_main2_900" android:drawableTint="?attr/color_main2_900"
android:background="@drawable/transparent_background" android:background="@drawable/transparent_background"
@ -230,7 +239,7 @@
app:layout_constraintVertical_bias="0.3" app:layout_constraintVertical_bias="0.3"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/group_chat_icon" app:layout_constraintTop_toBottomOf="@id/group_chat_icon"
app:layout_constraintBottom_toTopOf="@id/create_group" /> app:layout_constraintBottom_toBottomOf="parent" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style" style="@style/section_header_style"
@ -248,13 +257,17 @@
android:id="@+id/contacts_list" android:id="@+id/contacts_list"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginTop="8dp" android:layout_marginTop="10dp"
android:visibility="@{viewModel.isEmpty ? View.GONE : View.VISIBLE}" android:visibility="@{viewModel.isEmpty ? View.INVISIBLE : View.VISIBLE}"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/group_chat_icon" app:layout_constraintTop_toBottomOf="@id/group_chat_icon"
app:layout_constraintBottom_toBottomOf="parent" /> app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.progressindicator.CircularProgressIndicator <com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/fetch_in_progress" android:id="@+id/fetch_in_progress"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -264,7 +277,7 @@
app:indicatorColor="?attr/color_main1_500" app:indicatorColor="?attr/color_main1_500"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/group_chat_icon" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" /> app:layout_constraintBottom_toBottomOf="parent" />
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton

View file

@ -5,8 +5,10 @@
<dimen name="call_main_actions_menu_height">110dp</dimen> <dimen name="call_main_actions_menu_height">110dp</dimen>
<dimen name="call_all_actions_menu_height">235dp</dimen> <!-- sum of above two --> <dimen name="call_all_actions_menu_height">235dp</dimen> <!-- sum of above two -->
<dimen name="section_max_width">600dp</dimen>
<dimen name="dialog_max_width">600dp</dimen> <dimen name="dialog_max_width">600dp</dimen>
<dimen name="top_bar_rounded_corner_radius">0dp</dimen> <dimen name="top_bar_rounded_corner_radius">0dp</dimen>
<dimen name="top_list_item_rounded_corner_radius">20dp</dimen>
<dimen name="chat_bubble_big_image_max_size">175dp</dimen> <dimen name="chat_bubble_big_image_max_size">175dp</dimen>
</resources> </resources>

View file

@ -4,6 +4,7 @@
<dimen name="text_input_max_width">600dp</dimen> <dimen name="text_input_max_width">600dp</dimen>
<dimen name="landscape_nav_bar_width">90dp</dimen> <dimen name="landscape_nav_bar_width">90dp</dimen>
<dimen name="sliding_pane_left_fragment_width">500dp</dimen> <dimen name="sliding_pane_left_fragment_width">500dp</dimen>
<dimen name="section_max_width">800dp</dimen>
<integer name="media_columns">8</integer> <integer name="media_columns">8</integer>

View file

@ -49,6 +49,7 @@
<dimen name="top_bar_shadow_height">54dp</dimen> <dimen name="top_bar_shadow_height">54dp</dimen>
<dimen name="top_bar_height">55dp</dimen> <dimen name="top_bar_height">55dp</dimen>
<dimen name="toast_top_margin">70dp</dimen> <!-- 15dp + top_bar_height --> <dimen name="toast_top_margin">70dp</dimen> <!-- 15dp + top_bar_height -->
<dimen name="section_max_width">400dp</dimen>
<dimen name="toast_max_width">400dp</dimen> <dimen name="toast_max_width">400dp</dimen>
<dimen name="toast_text_max_width">350dp</dimen> <dimen name="toast_text_max_width">350dp</dimen>
<dimen name="button_max_width">400dp</dimen> <dimen name="button_max_width">400dp</dimen>