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.layoutManager = LinearLayoutManager(requireContext())
binding.participantsList.outlineProvider = outlineProvider
binding.participantsList.clipToOutline = true
binding.setBackClickListener {
findNavController().popBackStack()

View file

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

View file

@ -21,11 +21,14 @@ package org.linphone.ui.call.fragment
import android.annotation.SuppressLint
import android.content.res.Configuration
import android.graphics.Outline
import android.os.Bundle
import android.view.MotionEvent
import android.view.View
import android.view.ViewOutlineProvider
import androidx.annotation.UiThread
import androidx.lifecycle.ViewModelProvider
import org.linphone.R
import org.linphone.core.tools.Log
import org.linphone.ui.GenericFragment
import org.linphone.ui.call.view.RoundCornersTextureView
@ -39,6 +42,14 @@ abstract class GenericCallFragment : GenericFragment() {
protected lateinit var sharedViewModel: SharedCallViewModel
protected val outlineProvider = object : ViewOutlineProvider() {
override fun getOutline(view: View?, outline: Outline?) {
val radius = resources.getDimension(R.dimen.top_list_item_rounded_corner_radius)
view ?: return
outline?.setRoundRect(0, 0, view.width, (view.height + radius).toInt(), radius)
}
}
// For moving video preview purposes
private val videoPreviewTouchListener = View.OnTouchListener { view, event ->
when (event.action) {

View file

@ -21,10 +21,12 @@ package org.linphone.ui.main.recordings.fragment
import android.content.ActivityNotFoundException
import android.content.Intent
import android.graphics.Outline
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.ViewOutlineProvider
import androidx.annotation.UiThread
import androidx.core.content.FileProvider
import androidx.lifecycle.ViewModelProvider
@ -63,6 +65,14 @@ class RecordingsListFragment : GenericMainFragment() {
private var bottomSheetDialog: BottomSheetDialogFragment? = null
private val outlineProvider = object : ViewOutlineProvider() {
override fun getOutline(view: View?, outline: Outline?) {
val radius = resources.getDimension(R.dimen.top_list_item_rounded_corner_radius)
view ?: return
outline?.setRoundRect(0, 0, view.width, (view.height + radius).toInt(), radius)
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@ -94,6 +104,8 @@ class RecordingsListFragment : GenericMainFragment() {
binding.recordingsList.layoutManager = LinearLayoutManager(requireContext())
val headerItemDecoration = RecyclerViewHeaderDecoration(requireContext(), adapter)
binding.recordingsList.addItemDecoration(headerItemDecoration)
binding.recordingsList.outlineProvider = outlineProvider
binding.recordingsList.clipToOutline = true
listViewModel.recordings.observe(viewLifecycleOwner) {
val count = it.size

View file

@ -30,7 +30,7 @@
android:id="@+id/call_media_encryption_info"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:visibility="@{viewModel.callDuration > 0 ? View.VISIBLE : View.GONE}"
android:visibility="@{viewModel.callDuration > 0 ? View.VISIBLE : View.INVISIBLE, default=invisible}"
layout="@layout/call_media_encryption_info"
bind:viewModel="@{viewModel}"
app:layout_constraintTop_toBottomOf="@id/call_direction_label"

View file

@ -55,17 +55,6 @@
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"
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
android:id="@+id/no_conversation_image"
android:layout_width="0dp"
@ -77,7 +66,7 @@
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
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" />
<androidx.appcompat.widget.AppCompatTextView
@ -110,7 +99,7 @@
android:background="@drawable/secondary_button_background"
android:visibility="@{viewModel.conversations.empty &amp;&amp; viewModel.moreThanOneAccount ? View.VISIBLE : View.GONE}"
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_constraintStart_toEndOf="@id/bottom_nav_bar"/>

View file

@ -49,323 +49,365 @@
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlSymmetry" />
<ScrollView
android:id="@+id/scrollView"
android:layout_width="0dp"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:fillViewport="true"
android:background="?attr/color_main2_000"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toBottomOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
style="@style/avatar_imageview"
android:onClick="@{pickImageClickListener}"
android:id="@+id/avatar"
android:layout_width="@dimen/avatar_big_size"
android:layout_height="@dimen/avatar_big_size"
android:layout_marginTop="8dp"
android:contentDescription="@null"
coil="@{viewModel.picturePath}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/overlay"
android:layout_width="0dp"
android:layout_height="0dp"
android:padding="10dp"
android:src="@drawable/smiley"
android:contentDescription="@null"
android:visibility="@{viewModel.picturePath.empty ? View.VISIBLE : View.GONE}"
app:tint="?attr/color_avatar_text"
app:layout_constraintEnd_toEndOf="@id/avatar"
app:layout_constraintStart_toStartOf="@id/avatar"
app:layout_constraintTop_toTopOf="@id/avatar"
app:layout_constraintBottom_toBottomOf="@id/avatar" />
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{pickImageClickListener}"
style="@style/default_text_style"
android:id="@+id/add_picture_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:padding="5dp"
android:text="@string/manage_account_add_picture"
android:textSize="14sp"
android:drawableStart="@drawable/camera"
android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{pickImageClickListener}"
style="@style/default_text_style"
android:id="@+id/edit_picture_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:padding="5dp"
android:text="@string/manage_account_edit_picture"
android:textSize="14sp"
android:drawableStart="@drawable/pencil_simple"
android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.GONE : View.VISIBLE}"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/remove_picture_label"/>
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{deleteImageClickListener}"
style="@style/default_text_style"
android:id="@+id/remove_picture_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginStart="16dp"
android:padding="5dp"
android:text="@string/manage_account_remove_picture"
android:textSize="14sp"
android:drawableStart="@drawable/trash_simple"
android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintStart_toEndOf="@id/edit_picture_label"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.constraintlayout.widget.Barrier
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" />
<ScrollView
android:id="@+id/scrollView"
android:layout_width="0dp"
android:layout_height="0dp"
android:fillViewport="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/left_column"
android:layout_width="0dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
app:layout_constraintWidth_percent="0.5"
app:layout_constraintTop_toBottomOf="@id/avatar_barrier"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/right_column">
android:paddingBottom="@dimen/screen_bottom_margin">
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/first_name_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/contact_editor_first_name"
android:labelFor="@id/first_name"
app:layout_constraintStart_toStartOf="@id/first_name"
app:layout_constraintTop_toTopOf="parent"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/first_name"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/avatar_content"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="5dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.firstName, default=`John`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:hint="@string/contact_editor_first_name"
android:maxLines="1"
android:background="@drawable/edit_text_background"
android:inputType="text|textPersonName|textCapWords"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/first_name_label"
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_constraintEnd_toEndOf="parent"/>
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/last_name_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:text="@string/contact_editor_last_name"
android:labelFor="@id/last_name"
app:layout_constraintStart_toStartOf="@id/last_name"
app:layout_constraintTop_toBottomOf="@id/first_name"/>
<ImageView
style="@style/avatar_imageview"
android:onClick="@{pickImageClickListener}"
android:id="@+id/avatar"
android:layout_width="@dimen/avatar_big_size"
android:layout_height="@dimen/avatar_big_size"
android:layout_marginTop="10dp"
android:contentDescription="@null"
coil="@{viewModel.picturePath}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/last_name"
<ImageView
android:id="@+id/overlay"
android:layout_width="0dp"
android:layout_height="0dp"
android:padding="10dp"
android:src="@drawable/smiley"
android:contentDescription="@null"
android:visibility="@{viewModel.picturePath.empty ? View.VISIBLE : View.GONE}"
app:tint="?attr/color_avatar_text"
app:layout_constraintEnd_toEndOf="@id/avatar"
app:layout_constraintStart_toStartOf="@id/avatar"
app:layout_constraintTop_toTopOf="@id/avatar"
app:layout_constraintBottom_toBottomOf="@id/avatar" />
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{pickImageClickListener}"
style="@style/default_text_style"
android:id="@+id/add_picture_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:padding="5dp"
android:text="@string/manage_account_add_picture"
android:textSize="14sp"
android:drawableTint="?attr/color_main2_600"
android:drawableStart="@drawable/camera"
android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{pickImageClickListener}"
style="@style/default_text_style"
android:id="@+id/edit_picture_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:padding="5dp"
android:text="@string/manage_account_edit_picture"
android:textSize="14sp"
android:drawableTint="?attr/color_main2_600"
android:drawableStart="@drawable/pencil_simple"
android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.GONE : View.VISIBLE}"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/remove_picture_label"/>
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{deleteImageClickListener}"
style="@style/default_text_style"
android:id="@+id/remove_picture_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_marginStart="16dp"
android:padding="5dp"
android:text="@string/manage_account_remove_picture"
android:textSize="14sp"
android:drawableTint="?attr/color_main2_600"
android:drawableStart="@drawable/trash_simple"
android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/edit_picture_label"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/left_column"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="5dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.lastName, default=`Doe`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:hint="@string/contact_editor_last_name"
android:maxLines="1"
android:background="@drawable/edit_text_background"
android:inputType="text|textPersonName|textCapWords"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/last_name_label"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/company_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginEnd="16dp"
android:text="@string/contact_editor_company"
android:labelFor="@id/company"
app:layout_constraintStart_toStartOf="@id/company"
app:layout_constraintTop_toBottomOf="@id/last_name"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/company"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="5dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.company, default=`Belledonne Comm`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:hint="@string/contact_editor_company"
android:maxLines="1"
android:background="@drawable/edit_text_background"
android:inputType="text|textCapWords"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/company_label"
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_constraintEnd_toEndOf="parent"/>
app:layout_constraintEnd_toStartOf="@id/right_column">
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/job_title_label"
android:layout_width="wrap_content"
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/first_name_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginEnd="16dp"
android:text="@string/contact_editor_first_name"
android:labelFor="@id/first_name"
app:layout_constraintStart_toStartOf="@id/first_name"
app:layout_constraintTop_toTopOf="parent"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/first_name"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="5dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.firstName, default=`John`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:hint="@string/contact_editor_first_name"
android:maxLines="1"
android:background="@drawable/edit_text_background"
android:inputType="text|textPersonName|textCapWords"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/first_name_label"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/last_name_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:text="@string/contact_editor_last_name"
android:labelFor="@id/last_name"
app:layout_constraintStart_toStartOf="@id/last_name"
app:layout_constraintTop_toBottomOf="@id/first_name"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/last_name"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="5dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.lastName, default=`Doe`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:hint="@string/contact_editor_last_name"
android:maxLines="1"
android:background="@drawable/edit_text_background"
android:inputType="text|textPersonName|textCapWords"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/last_name_label"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/company_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginEnd="16dp"
android:text="@string/contact_editor_company"
android:labelFor="@id/company"
app:layout_constraintStart_toStartOf="@id/company"
app:layout_constraintTop_toBottomOf="@id/last_name"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/company"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="5dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.company, default=`Belledonne Comm`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:hint="@string/contact_editor_company"
android:maxLines="1"
android:background="@drawable/edit_text_background"
android:inputType="text|textCapWords"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/company_label"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/job_title_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:text="@string/contact_editor_job_title"
android:labelFor="@id/job_title"
app:layout_constraintStart_toStartOf="@id/job_title"
app:layout_constraintTop_toBottomOf="@id/company"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/job_title"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.jobTitle, default=`Android dev`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:hint="@string/contact_editor_job_title"
android:maxLines="1"
android:background="@drawable/edit_text_background"
android:inputType="text|textCapWords"
app:layout_constraintVertical_bias="0"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/job_title_label"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/right_column"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginTop="20dp"
android:layout_marginStart="8dp"
android:layout_marginEnd="16dp"
android:text="@string/contact_editor_job_title"
android:labelFor="@id/job_title"
app:layout_constraintStart_toStartOf="@id/job_title"
app:layout_constraintTop_toBottomOf="@id/company"/>
android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/avatar_content"
app:layout_constraintStart_toEndOf="@id/left_column"
app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/job_title"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="5dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:text="@={viewModel.jobTitle, default=`Android dev`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:hint="@string/contact_editor_job_title"
android:maxLines="1"
android:background="@drawable/edit_text_background"
android:inputType="text|textCapWords"
app:layout_constraintVertical_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/job_title_label"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/sip_addresses_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginEnd="16dp"
android:text="@string/sip_address"
android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@id/sip_addresses"/>
<LinearLayout
android:id="@+id/sip_addresses"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:orientation="vertical"
android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/sip_addresses_label"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/phone_numbers_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginEnd="16dp"
android:text="@string/phone_number"
app:layout_constraintTop_toBottomOf="@id/sip_addresses"
app:layout_constraintStart_toStartOf="@id/phone_numbers"/>
<LinearLayout
android:id="@+id/phone_numbers"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="10dp"
android:orientation="vertical"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/phone_numbers_label"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/right_column"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
app:layout_constraintWidth_percent="0.5"
app:layout_constraintTop_toBottomOf="@id/avatar_barrier"
app:layout_constraintStart_toEndOf="@id/left_column"
app:layout_constraintEnd_toEndOf="parent">
</ScrollView>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/sip_addresses_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/sip_address"
android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@id/sip_addresses"/>
<LinearLayout
android:id="@+id/sip_addresses"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:orientation="vertical"
android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/sip_addresses_label"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/phone_numbers_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginEnd="16dp"
android:text="@string/phone_number"
app:layout_constraintTop_toBottomOf="@id/sip_addresses"
app:layout_constraintStart_toStartOf="@id/phone_numbers"/>
<LinearLayout
android:id="@+id/phone_numbers"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:orientation="vertical"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/phone_numbers_label"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/save"

View file

@ -65,17 +65,6 @@
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"
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
android:id="@+id/no_calls_image"
android:layout_width="0dp"
@ -88,7 +77,7 @@
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
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
style="@style/section_header_style"
@ -120,7 +109,7 @@
android:background="@drawable/secondary_button_background"
android:visibility="@{viewModel.callLogs.empty &amp;&amp; viewModel.moreThanOneAccount ? View.VISIBLE : View.GONE}"
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_constraintStart_toEndOf="@id/bottom_nav_bar"/>

View file

@ -56,17 +56,6 @@
app:layout_constraintStart_toEndOf="@id/bottom_nav_bar"
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
android:id="@+id/meetings_list"
android:layout_width="match_parent"

View file

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

View file

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

View file

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

View file

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

View file

@ -58,7 +58,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="16dp"
android:layout_marginEnd="10dp"
android:text="@string/conversation_info_participant_is_admin_label"
android:textSize="12sp"
android:textColor="?attr/color_main2_400"
@ -78,6 +78,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:text="@string/conversation_info_participant_is_admin_label"
android:textSize="12sp"
android:textColor="?attr/color_main2_400"
@ -97,11 +98,10 @@
android:onClick="@{() -> model.removeParticipant()}"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginStart="10dp"
android:layout_marginEnd="16dp"
android:layout_marginEnd="10dp"
android:src="@drawable/x"
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_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"

View file

@ -61,25 +61,39 @@
app:layout_constraintTop_toTopOf="@id/title"
app:tint="?attr/color_main2_500"/>
<View
android:id="@+id/background"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/contacts_content"
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_toBottomOf="@id/back" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/participants_list"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="10dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toBottomOf="parent"/>
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="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">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/participants_list"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<org.linphone.ui.call.view.RoundCornersTextureView
android:id="@+id/local_preview_video_surface"

View file

@ -30,7 +30,7 @@
android:id="@+id/call_media_encryption_info"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:visibility="@{viewModel.callDuration > 0 ? View.VISIBLE : View.GONE}"
android:visibility="@{viewModel.callDuration > 0 ? View.VISIBLE : View.INVISIBLE, default=invisible}"
layout="@layout/call_media_encryption_info"
bind:viewModel="@{viewModel}"
app:layout_constraintTop_toBottomOf="@id/call_direction_label"

View file

@ -56,167 +56,182 @@
app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/background"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/calls_content"
android:layout_width="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_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/back" />
app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:id="@+id/calls_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="16dp"
android:text="@string/call_transfer_active_calls_label"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintStart_toStartOf="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
style="@style/section_header_style"
android:id="@+id/no_current_call_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/call_transfer_no_active_call_label"
android:gravity="center"
android:visibility="@{callsViewModel.callsExceptCurrentOne.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/calls_label" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:id="@+id/calls_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="16dp"
android:text="@string/call_transfer_active_calls_label"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/calls_list"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/calls_label"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:id="@+id/no_current_call_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/call_transfer_no_active_call_label"
android:gravity="center"
android:visibility="@{callsViewModel.callsExceptCurrentOne.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/calls_label" />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/calls_barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="calls_list, no_current_call_label"
app:barrierDirection="bottom" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/calls_list"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/calls_label"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/search_bar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="20dp"
android:background="@drawable/edit_text_background"
android:drawableStart="@drawable/magnifying_glass"
android:drawablePadding="10dp"
android:drawableTint="?attr/color_main2_600"
android:hint="@string/history_call_start_search_bar_filter_hint"
android:inputType="text|textPersonName|textNoSuggestions"
android:paddingStart="15dp"
android:paddingTop="10dp"
android:paddingEnd="45dp"
android:paddingBottom="10dp"
android:text="@={viewModel.searchFilter}"
android:textSize="14sp"
app:layout_constraintHeight_min="48dp"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/calls_barrier" />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/calls_barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="calls_list, no_current_call_label"
app:barrierDirection="bottom" />
<ImageView
android:id="@+id/numpad"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginEnd="15dp"
android:onClick="@{() -> viewModel.switchBetweenKeyboardAndNumpad()}"
android:contentDescription="@string/content_description_show_numpad"
android:src="@{viewModel.isNumpadVisible ? @drawable/keyboard : @drawable/numpad, default=@drawable/numpad}"
android:visibility="@{viewModel.searchFilter.length() == 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"
app:layout_constraintTop_toTopOf="@id/search_bar"
app:tint="?attr/color_main2_600" />
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/search_bar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="20dp"
android:background="@drawable/edit_text_background"
android:drawableStart="@drawable/magnifying_glass"
android:drawablePadding="10dp"
android:drawableTint="?attr/color_main2_600"
android:hint="@string/history_call_start_search_bar_filter_hint"
android:inputType="text|textPersonName|textNoSuggestions"
android:paddingStart="15dp"
android:paddingTop="10dp"
android:paddingEnd="45dp"
android:paddingBottom="10dp"
android:text="@={viewModel.searchFilter}"
android:textSize="14sp"
app:layout_constraintHeight_min="48dp"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/calls_barrier" />
<ImageView
android:id="@+id/clear_field"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginEnd="15dp"
android:onClick="@{() -> viewModel.clearFilter()}"
android:src="@drawable/x"
android:contentDescription="@string/content_description_clear_filter"
android:visibility="@{viewModel.searchFilter.length() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintBottom_toBottomOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"
app:layout_constraintTop_toTopOf="@id/search_bar"
app:tint="?attr/color_main2_600" />
<ImageView
android:id="@+id/numpad"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginEnd="15dp"
android:onClick="@{() -> viewModel.switchBetweenKeyboardAndNumpad()}"
android:contentDescription="@string/content_description_show_numpad"
android:src="@{viewModel.isNumpadVisible ? @drawable/keyboard : @drawable/numpad, default=@drawable/numpad}"
android:visibility="@{viewModel.searchFilter.length() == 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"
app:layout_constraintTop_toTopOf="@id/search_bar"
app:tint="?attr/color_main2_600" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300"
android:id="@+id/results_limit_reached"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="@string/contacts_list_search_results_limit_reached_label"
android:textColor="?attr/color_main2_600"
android:textSize="12sp"
android:maxLines="2"
android:ellipsize="end"
android:gravity="center"
android:visibility="@{viewModel.showResultsLimitReached ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/search_bar"
app:layout_constraintStart_toStartOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"/>
<ImageView
android:id="@+id/clear_field"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginEnd="15dp"
android:onClick="@{() -> viewModel.clearFilter()}"
android:src="@drawable/x"
android:contentDescription="@string/content_description_clear_filter"
android:visibility="@{viewModel.searchFilter.length() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintBottom_toBottomOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"
app:layout_constraintTop_toTopOf="@id/search_bar"
app:tint="?attr/color_main2_600" />
<ImageView
android:id="@+id/no_contacts_nor_suggestion_image"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:src="@drawable/illu"
android:contentDescription="@null"
android:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_max="200dp"
app:layout_constraintVertical_bias="0.3"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/search_bar"
app:layout_constraintBottom_toBottomOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300"
android:id="@+id/results_limit_reached"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="@string/contacts_list_search_results_limit_reached_label"
android:textColor="?attr/color_main2_600"
android:textSize="12sp"
android:maxLines="2"
android:ellipsize="end"
android:gravity="center"
android:visibility="@{viewModel.showResultsLimitReached ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/search_bar"
app:layout_constraintStart_toStartOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:id="@+id/no_contacts_nor_suggestion_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/history_call_start_no_suggestion_nor_contact"
android:gravity="center"
android:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/no_contacts_nor_suggestion_image" />
<ImageView
android:id="@+id/no_contacts_nor_suggestion_image"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:src="@drawable/illu"
android:contentDescription="@null"
android:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_max="200dp"
app:layout_constraintVertical_bias="0.3"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/search_bar"
app:layout_constraintBottom_toBottomOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/contacts_and_suggestions_list"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="8dp"
android:visibility="@{viewModel.isEmpty ? View.GONE : View.VISIBLE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/results_limit_reached"
app:layout_constraintBottom_toBottomOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:id="@+id/no_contacts_nor_suggestion_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/history_call_start_no_suggestion_nor_contact"
android:gravity="center"
android:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/no_contacts_nor_suggestion_image" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/contacts_and_suggestions_list"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="8dp"
android:visibility="@{viewModel.isEmpty ? View.GONE : View.VISIBLE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/results_limit_reached"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/fetch_in_progress"

View file

@ -54,30 +54,44 @@
android:src="@drawable/arrows_merge"
android:contentDescription="@string/content_description_merge_calls_into_conference"
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_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/title"/>
<View
android:id="@+id/background"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/contacts_content"
android:layout_width="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_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/back" />
app:layout_constraintEnd_toEndOf="parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/calls_list"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="10dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toBottomOf="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
android:id="@+id/calls_list"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<org.linphone.ui.call.view.RoundCornersTextureView
android:id="@+id/local_preview_video_surface"

View file

@ -298,16 +298,6 @@
app:layout_constraintTop_toTopOf="@id/search"
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
android:id="@+id/events_list"
android:layout_width="match_parent"

View file

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

View file

@ -47,66 +47,81 @@
app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent"/>
<View
android:id="@+id/background"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/contacts_content"
android:layout_width="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_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/back" />
app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/search_bar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="20dp"
android:background="@drawable/edit_text_background"
android:drawableStart="@drawable/magnifying_glass"
android:drawablePadding="10dp"
android:drawableTint="?attr/color_main2_600"
android:hint="@string/new_conversation_search_bar_filter_hint"
android:inputType="text|textPersonName|textNoSuggestions"
android:paddingStart="15dp"
android:paddingTop="10dp"
android:paddingEnd="15dp"
android:paddingBottom="10dp"
android:text="@={viewModel.searchFilter}"
android:textSize="14sp"
app:layout_constraintHeight_min="48dp"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/title" />
<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
android:id="@+id/clear_field"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginEnd="15dp"
android:onClick="@{() -> viewModel.clearFilter()}"
android:src="@drawable/x"
android:contentDescription="@string/content_description_clear_filter"
android:visibility="@{viewModel.searchFilter.length() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintBottom_toBottomOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"
app:layout_constraintTop_toTopOf="@id/search_bar"
app:tint="?attr/color_main2_600" />
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/search_bar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="20dp"
android:background="@drawable/edit_text_background"
android:drawableStart="@drawable/magnifying_glass"
android:drawablePadding="10dp"
android:drawableTint="?attr/color_main2_600"
android:hint="@string/new_conversation_search_bar_filter_hint"
android:inputType="text|textPersonName|textNoSuggestions"
android:paddingStart="15dp"
android:paddingTop="10dp"
android:paddingEnd="15dp"
android:paddingBottom="10dp"
android:text="@={viewModel.searchFilter}"
android:textSize="14sp"
app:layout_constraintHeight_min="48dp"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/contacts_list"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="8dp"
android:visibility="@{viewModel.isEmpty ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toBottomOf="@id/search_bar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent" />
<ImageView
android:id="@+id/clear_field"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginEnd="15dp"
android:onClick="@{() -> viewModel.clearFilter()}"
android:src="@drawable/x"
android:contentDescription="@string/content_description_clear_filter"
android:visibility="@{viewModel.searchFilter.length() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintBottom_toBottomOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"
app:layout_constraintTop_toTopOf="@id/search_bar"
app:tint="?attr/color_main2_600" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/contacts_list"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="8dp"
android:visibility="@{viewModel.isEmpty ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toBottomOf="@id/search_bar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/fetch_in_progress"
@ -117,7 +132,7 @@
app:indicatorColor="?attr/color_main1_500"
app:layout_constraintStart_toStartOf="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" />
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -86,24 +86,6 @@
android:layout_height="wrap_content"
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
android:id="@+id/avatar_content"
android:layout_width="0dp"
@ -112,6 +94,7 @@
android:layout_marginEnd="16dp"
android:layout_marginTop="20dp"
android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
@ -165,6 +148,7 @@
android:layout_marginEnd="16dp"
android:layout_marginTop="20dp"
android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/avatar_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
@ -281,14 +265,15 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="10dp"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="20dp"
android:text="@string/contact_details_numbers_and_addresses_title"
android:drawableEnd="@{viewModel.expandNumbersAndAddresses ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.atLeastOneSipAddressOrPhoneNumber ? View.VISIBLE : View.GONE}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/call_actions"/>
@ -301,84 +286,89 @@
android:orientation="vertical"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:padding="10dp"
android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/numbers_and_addresses_label"
app:entries="@{viewModel.sipAddressesAndPhoneNumbers}"
app:layout="@{@layout/contact_number_address_list_cell}" />
<ImageView
android:id="@+id/info_background"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/contact_job_info"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="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}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
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
style="@style/header_style"
android:id="@+id/company_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:text="@string/contact_details_company_name"
app:layout_constraintStart_toStartOf="@id/info_background"
app:layout_constraintTop_toTopOf="@id/info_background"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/company_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:text="@string/contact_details_company_name"
android:visibility="@{viewModel.company.length() > 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/company"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:text="@{viewModel.company, default=`Belledonne Comm`}"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"
app:layout_constraintStart_toEndOf="@id/company_label"
app:layout_constraintEnd_toEndOf="@id/info_background"
app:layout_constraintTop_toTopOf="@id/info_background"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/company"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:text="@{viewModel.company, default=`Belledonne Comm`}"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"
android:visibility="@{viewModel.company.length() > 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toEndOf="@id/company_label"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/title_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:text="@string/contact_details_job_title"
app:layout_constraintStart_toStartOf="@id/info_background"
app:layout_constraintTop_toBottomOf="@id/company"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/title_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:text="@string/contact_details_job_title"
android:visibility="@{viewModel.title.length() > 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/company"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:text="@{viewModel.title, default=`Android developer`}"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"
app:layout_constraintEnd_toEndOf="@id/info_background"
app:layout_constraintStart_toEndOf="@id/title_label"
app:layout_constraintTop_toBottomOf="@id/company"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:text="@{viewModel.title, default=`Android developer`}"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"
android:visibility="@{viewModel.title.length() > 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/title_label"
app:layout_constraintTop_toBottomOf="@id/company"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
@ -386,7 +376,6 @@
android:onClick="@{() -> viewModel.displayTrustDialog()}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:padding="10dp"
android:text="@string/contact_details_trust_title"
@ -395,8 +384,8 @@
android:drawablePadding="8dp"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.showContactTrustAndDevices ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/info_background"/>
app:layout_constraintStart_toStartOf="@id/devices_trust"
app:layout_constraintTop_toBottomOf="@id/contact_job_info"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
@ -404,134 +393,132 @@
android:onClick="@{() -> viewModel.toggleDevicesTrustExpand()}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginTop="16dp"
android:padding="10dp"
android:drawableEnd="@{viewModel.expandDevicesTrust ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.showContactTrustAndDevices ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toEndOf="@id/trust_label"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/info_background"/>
<androidx.constraintlayout.widget.Barrier
android:id="@+id/trust_background_bottom_barrier"
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"
app:layout_constraintEnd_toEndOf="@id/devices_trust"
app:layout_constraintBottom_toTopOf="@id/devices_trust"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/devices_trust"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:src="@drawable/shape_squircle_white_background"
android:contentDescription="@null"
android:visibility="@{viewModel.expandDevicesTrust ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:background="@drawable/shape_squircle_white_background"
android:visibility="@{viewModel.expandDevicesTrust ? View.VISIBLE : View.INVISIBLE}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/trust_label"
app:layout_constraintBottom_toBottomOf="@id/trust_background_bottom_barrier"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/trusted_devices_count"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="20dp"
android:text="@string/contact_details_trusted_devices_count"
app:layout_constraintStart_toStartOf="@id/trust_background"
app:layout_constraintEnd_toEndOf="@id/trust_background"
app:layout_constraintTop_toTopOf="@id/trust_background" />
<View
android:id="@+id/trusted_devices_progress_background"
android:layout_width="0dp"
android:layout_height="28dp"
android:layout_marginTop="10dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:background="@drawable/shape_squircle_contact_trust_r50_background"
app:layout_constraintStart_toStartOf="@id/trust_background"
app:layout_constraintEnd_toEndOf="@id/trust_background"
app:layout_constraintTop_toBottomOf="@id/trusted_devices_count" />
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/trusted_devices_progress"
android:layout_width="0dp"
android:layout_height="24dp"
android:layout_marginStart="3dp"
android:layout_marginEnd="3dp"
android:max="100"
android:progress="@{viewModel.trustedDevicesPercentage, default=20}"
app:trackCornerRadius="50dp"
app:trackThickness="22dp"
app:trackColor="@color/transparent_color"
app:indicatorColor="?attr/color_trust_track"
app:trackStopIndicatorSize="0dp"
app:layout_constraintStart_toStartOf="@id/trusted_devices_progress_background"
app:layout_constraintEnd_toEndOf="@id/trusted_devices_progress_background"
app:layout_constraintTop_toTopOf="@id/trusted_devices_progress_background"
app:layout_constraintBottom_toBottomOf="@id/trusted_devices_progress_background"/>
<View
android:id="@+id/trusted_devices_progress_label_anchor"
android:layout_width="1dp"
android:layout_height="1dp"
app:layout_constraintHorizontal_bias="@{viewModel.trustedDevicesPercentageFloat, default=0.1}"
app:layout_constraintStart_toStartOf="@id/trusted_devices_progress"
app:layout_constraintEnd_toEndOf="@id/trusted_devices_progress"
app:layout_constraintTop_toTopOf="@id/trusted_devices_progress"
app:layout_constraintBottom_toBottomOf="@id/trusted_devices_progress" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/trusted_devices_progress_label"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
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:textSize="12sp"
app:layout_constraintStart_toStartOf="@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_constraintBottom_toBottomOf="@id/trusted_devices_progress" />
<LinearLayout
android:id="@+id/devices"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:padding="10dp"
app:entries="@{viewModel.devices}"
app:layout="@{@layout/contact_device_trust_list_cell}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/trusted_devices_progress" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/no_device_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:padding="10dp"
android:text="@string/contact_details_no_device_found"
android:visibility="@{viewModel.expandDevicesTrust &amp;&amp; viewModel.devices.empty ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="@id/trust_background"
app:layout_constraintEnd_toEndOf="@id/trust_background"
app:layout_constraintTop_toTopOf="@id/trust_background"
app:layout_constraintBottom_toBottomOf="@id/trust_background" />
app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/trusted_devices_count"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="10dp"
android:text="@string/contact_details_trusted_devices_count"
android:visibility="@{viewModel.showContactTrustAndDevices ? (viewModel.expandDevicesTrust &amp;&amp; viewModel.devices.size() > 0 ? View.VISIBLE : View.GONE) : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/trusted_devices_progress_background"
android:layout_width="0dp"
android:layout_height="28dp"
android:layout_marginTop="10dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:background="@drawable/shape_squircle_contact_trust_r50_background"
android:visibility="@{viewModel.showContactTrustAndDevices ? (viewModel.expandDevicesTrust &amp;&amp; viewModel.devices.size() > 0 ? View.VISIBLE : View.GONE) : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/trusted_devices_count" />
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/trusted_devices_progress"
android:layout_width="0dp"
android:layout_height="24dp"
android:layout_marginStart="3dp"
android:layout_marginEnd="3dp"
android:max="100"
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:trackThickness="22dp"
app:trackColor="@color/transparent_color"
app:indicatorColor="?attr/color_trust_track"
app:trackStopIndicatorSize="0dp"
app:layout_constraintStart_toStartOf="@id/trusted_devices_progress_background"
app:layout_constraintEnd_toEndOf="@id/trusted_devices_progress_background"
app:layout_constraintTop_toTopOf="@id/trusted_devices_progress_background"
app:layout_constraintBottom_toBottomOf="@id/trusted_devices_progress_background"/>
<View
android:id="@+id/trusted_devices_progress_label_anchor"
android:layout_width="1dp"
android:layout_height="1dp"
app:layout_constraintHorizontal_bias="@{viewModel.trustedDevicesPercentageFloat, default=0.1}"
app:layout_constraintStart_toStartOf="@id/trusted_devices_progress"
app:layout_constraintEnd_toEndOf="@id/trusted_devices_progress"
app:layout_constraintTop_toTopOf="@id/trusted_devices_progress"
app:layout_constraintBottom_toBottomOf="@id/trusted_devices_progress" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/trusted_devices_progress_label"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
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: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_constraintEnd_toEndOf="@id/trusted_devices_progress_label_anchor"
app:layout_constraintTop_toTopOf="@id/trusted_devices_progress"
app:layout_constraintBottom_toBottomOf="@id/trusted_devices_progress" />
<LinearLayout
android:id="@+id/devices"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
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:layout="@{@layout/contact_device_trust_list_cell}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/trusted_devices_progress"
app:layout_constraintBottom_toBottomOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/no_device_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:padding="10dp"
android:text="@string/contact_details_no_device_found"
android:visibility="@{viewModel.expandDevicesTrust &amp;&amp; viewModel.devices.empty ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
@ -543,9 +530,10 @@
android:layout_marginEnd="20dp"
android:layout_marginTop="16dp"
android:text="@string/contact_details_actions_title"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/trust_background"/>
app:layout_constraintTop_toBottomOf="@id/devices_trust"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/context_menu_action_label_style"
@ -559,6 +547,7 @@
android:drawableStart="@drawable/pencil_simple"
android:background="@drawable/action_background_top"
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_constraintEnd_toEndOf="parent"
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:drawableStart="@{viewModel.isFavourite ? @drawable/heart_fill : @drawable/heart, default=@drawable/heart_fill}"
android:drawableTint="@{viewModel.isFavourite ? @color/danger_500 : @color/main2_500, default=@color/danger_500}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_edit" />
@ -591,6 +581,7 @@
android:background="@{viewModel.isStored &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:drawableStart="@drawable/share_network"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_favorite"/>
@ -607,6 +598,7 @@
android:text="@string/contact_details_delete"
android:drawableStart="@drawable/trash_simple"
android:visibility="@{viewModel.isStored &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_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/action_share"/>

View file

@ -47,7 +47,7 @@
android:src="@drawable/x"
android:background="@drawable/squircle_transparent_button_background"
android:contentDescription="@string/content_description_contact_remove_field"
app:tint="?attr/color_main2_700"
app:tint="?attr/color_main2_600"
app:layout_constraintStart_toEndOf="@id/field"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/field"

View file

@ -49,301 +49,376 @@
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlSymmetry" />
<ScrollView
android:id="@+id/scrollView"
android:layout_width="0dp"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:fillViewport="true"
android:background="?attr/color_main2_000"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toBottomOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ScrollView
android:id="@+id/scrollView"
android:layout_width="0dp"
android:layout_height="0dp"
android:fillViewport="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent">
<ImageView
style="@style/avatar_imageview"
android:onClick="@{pickImageClickListener}"
android:id="@+id/avatar"
android:layout_width="@dimen/avatar_big_size"
android:layout_height="@dimen/avatar_big_size"
android:layout_marginTop="8dp"
android:contentDescription="@null"
coil="@{viewModel.picturePath}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/overlay"
android:layout_width="0dp"
android:layout_height="0dp"
android:padding="10dp"
android:src="@drawable/smiley"
android:contentDescription="@null"
android:visibility="@{viewModel.picturePath.empty ? View.VISIBLE : View.GONE}"
app:tint="?attr/color_avatar_text"
app:layout_constraintEnd_toEndOf="@id/avatar"
app:layout_constraintStart_toStartOf="@id/avatar"
app:layout_constraintTop_toTopOf="@id/avatar"
app:layout_constraintBottom_toBottomOf="@id/avatar" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:onClick="@{pickImageClickListener}"
android:id="@+id/add_picture_label"
android:layout_width="wrap_content"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:padding="5dp"
android:text="@string/manage_account_add_picture"
android:textSize="14sp"
android:drawableStart="@drawable/camera"
android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
android:paddingBottom="@dimen/screen_bottom_margin">
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:onClick="@{pickImageClickListener}"
android:id="@+id/edit_picture_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:padding="5dp"
android:text="@string/manage_account_edit_picture"
android:textSize="14sp"
android:drawableStart="@drawable/pencil_simple"
android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.GONE : View.VISIBLE}"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/remove_picture_label"/>
<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">
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:onClick="@{deleteImageClickListener}"
android:id="@+id/remove_picture_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginStart="16dp"
android:padding="5dp"
android:text="@string/manage_account_remove_picture"
android:textSize="14sp"
android:drawableStart="@drawable/trash_simple"
android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintStart_toEndOf="@id/edit_picture_label"
app:layout_constraintEnd_toEndOf="parent"/>
<ImageView
style="@style/avatar_imageview"
android:onClick="@{pickImageClickListener}"
android:id="@+id/avatar"
android:layout_width="@dimen/avatar_big_size"
android:layout_height="@dimen/avatar_big_size"
android:layout_marginTop="8dp"
android:contentDescription="@null"
coil="@{viewModel.picturePath}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.Barrier
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" />
<ImageView
android:id="@+id/overlay"
android:layout_width="0dp"
android:layout_height="0dp"
android:padding="10dp"
android:src="@drawable/smiley"
android:contentDescription="@null"
android:visibility="@{viewModel.picturePath.empty ? View.VISIBLE : View.GONE}"
app:tint="?attr/color_avatar_text"
app:layout_constraintEnd_toEndOf="@id/avatar"
app:layout_constraintStart_toStartOf="@id/avatar"
app:layout_constraintTop_toTopOf="@id/avatar"
app:layout_constraintBottom_toBottomOf="@id/avatar" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/first_name_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginEnd="16dp"
android:text="@string/contact_editor_first_name"
android:labelFor="@id/first_name"
app:layout_constraintStart_toStartOf="@id/first_name"
app:layout_constraintTop_toBottomOf="@id/avatar_barrier"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:onClick="@{pickImageClickListener}"
android:id="@+id/add_picture_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:padding="5dp"
android:text="@string/manage_account_add_picture"
android:textSize="14sp"
android:drawableTint="?attr/color_main2_600"
android:drawableStart="@drawable/camera"
android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/first_name"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="5dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.firstName, default=`John`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:hint="@string/contact_editor_first_name"
android:maxLines="1"
android:background="@drawable/edit_text_background"
android:inputType="text|textPersonName|textCapWords"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/first_name_label"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:onClick="@{pickImageClickListener}"
android:id="@+id/edit_picture_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:padding="5dp"
android:text="@string/manage_account_edit_picture"
android:textSize="14sp"
android:drawableTint="?attr/color_main2_600"
android:drawableStart="@drawable/pencil_simple"
android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.GONE : View.VISIBLE}"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/remove_picture_label"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/last_name_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:text="@string/contact_editor_last_name"
android:labelFor="@id/last_name"
app:layout_constraintStart_toStartOf="@id/last_name"
app:layout_constraintTop_toBottomOf="@id/first_name"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:onClick="@{deleteImageClickListener}"
android:id="@+id/remove_picture_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_marginStart="16dp"
android:padding="5dp"
android:text="@string/manage_account_remove_picture"
android:textSize="14sp"
android:drawableTint="?attr/color_main2_600"
android:drawableStart="@drawable/trash_simple"
android:drawablePadding="3dp"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.picturePath.empty ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toBottomOf="@id/avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/edit_picture_label"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/last_name"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="5dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.lastName, default=`Doe`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:hint="@string/contact_editor_last_name"
android:maxLines="1"
android:background="@drawable/edit_text_background"
android:inputType="text|textPersonName|textCapWords"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/last_name_label"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/sip_addresses_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginEnd="16dp"
android:text="@string/sip_address"
android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toBottomOf="@id/last_name"
app:layout_constraintStart_toStartOf="@id/sip_addresses"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/name_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/avatar_content">
<LinearLayout
android:id="@+id/sip_addresses"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:orientation="vertical"
android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/sip_addresses_label"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/first_name_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginEnd="16dp"
android:text="@string/contact_editor_first_name"
android:labelFor="@id/first_name"
app:layout_constraintStart_toStartOf="@id/first_name"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/phone_numbers_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginEnd="16dp"
android:text="@string/phone_number"
app:layout_constraintTop_toBottomOf="@id/sip_addresses"
app:layout_constraintStart_toStartOf="@id/phone_numbers"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/first_name"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="5dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.firstName, default=`John`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:hint="@string/contact_editor_first_name"
android:maxLines="1"
android:background="@drawable/edit_text_background"
android:inputType="text|textPersonName|textCapWords"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/first_name_label"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<LinearLayout
android:id="@+id/phone_numbers"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:orientation="vertical"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/phone_numbers_label"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/last_name_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:text="@string/contact_editor_last_name"
android:labelFor="@id/last_name"
app:layout_constraintStart_toStartOf="@id/last_name"
app:layout_constraintTop_toBottomOf="@id/first_name"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/company_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginEnd="16dp"
android:text="@string/contact_editor_company"
android:labelFor="@id/company"
app:layout_constraintStart_toStartOf="@id/company"
app:layout_constraintTop_toBottomOf="@id/phone_numbers"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/last_name"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.lastName, default=`Doe`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:hint="@string/contact_editor_last_name"
android:maxLines="1"
android:background="@drawable/edit_text_background"
android:inputType="text|textPersonName|textCapWords"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/last_name_label"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/company"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="5dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.company, default=`Belledonne Comm`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:hint="@string/contact_editor_company"
android:maxLines="1"
android:background="@drawable/edit_text_background"
android:inputType="text|textCapWords"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/company_label"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/job_title_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:text="@string/contact_editor_job_title"
android:labelFor="@id/job_title"
app:layout_constraintStart_toStartOf="@id/job_title"
app:layout_constraintTop_toBottomOf="@id/company"/>
<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.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/job_title"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="5dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:text="@={viewModel.jobTitle, default=`Android dev`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:hint="@string/contact_editor_job_title"
android:maxLines="1"
android:background="@drawable/edit_text_background"
android:inputType="text|textCapWords"
app:layout_constraintVertical_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/job_title_label"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/sip_addresses_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginEnd="16dp"
android:text="@string/sip_address"
android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@id/sip_addresses"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:id="@+id/sip_addresses"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:orientation="vertical"
android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/sip_addresses_label"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</ScrollView>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/phone_numbers_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginEnd="16dp"
android:text="@string/phone_number"
app:layout_constraintTop_toBottomOf="@id/sip_addresses"
app:layout_constraintStart_toStartOf="@id/phone_numbers"/>
<LinearLayout
android:id="@+id/phone_numbers"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="10dp"
android:orientation="vertical"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/phone_numbers_label"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="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
style="@style/header_style"
android:id="@+id/company_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginEnd="16dp"
android:text="@string/contact_editor_company"
android:labelFor="@id/company"
app:layout_constraintStart_toStartOf="@id/company"
app:layout_constraintTop_toTopOf="parent"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/company"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="5dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.company, default=`Belledonne Comm`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:hint="@string/contact_editor_company"
android:maxLines="1"
android:background="@drawable/edit_text_background"
android:inputType="text|textCapWords"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/company_label"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/header_style"
android:id="@+id/job_title_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:text="@string/contact_editor_job_title"
android:labelFor="@id/job_title"
app:layout_constraintStart_toStartOf="@id/job_title"
app:layout_constraintTop_toBottomOf="@id/company"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/job_title"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.jobTitle, default=`Android dev`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:hint="@string/contact_editor_job_title"
android:maxLines="1"
android:background="@drawable/edit_text_background"
android:inputType="text|textCapWords"
app:layout_constraintVertical_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/job_title_label"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/save"

View file

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

View file

@ -22,239 +22,252 @@
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:onClick="@{() -> viewModel.closeDrawerMenu()}"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/color_main2_000"
android:clickable="true"
android:focusable="true">
android:layout_height="match_parent">
<ImageView
android:id="@+id/brand_icon"
android:onClick="@{() -> viewModel.closeDrawerMenu()}"
android:layout_width="@dimen/large_icon_size"
android:layout_height="@dimen/large_icon_size"
android:layout_marginStart="26dp"
android:layout_marginTop="15dp"
android:src="@drawable/linphone_notification"
android:contentDescription="@string/app_name"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:tint="?attr/color_main1_500" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:id="@+id/brand_name"
android:onClick="@{() -> viewModel.closeDrawerMenu()}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/app_name"
android:gravity="center_vertical"
app:layout_constraintTop_toTopOf="@id/brand_icon"
app:layout_constraintStart_toEndOf="@id/brand_icon"
app:layout_constraintBottom_toBottomOf="@id/brand_icon"
app:layout_constraintEnd_toStartOf="@id/close_drawer" />
<ImageView
android:id="@+id/close_drawer"
android:onClick="@{() -> viewModel.closeDrawerMenu()}"
android:layout_width="@dimen/large_icon_size"
android:layout_height="@dimen/large_icon_size"
android:layout_marginEnd="16dp"
android:padding="5dp"
android:src="@drawable/x"
android:adjustViewBounds="true"
android:contentDescription="@string/content_description_close_drawer_menu"
android:background="@drawable/circle_transparent_button_background"
app:tint="?attr/color_main2_600"
app:layout_constraintTop_toTopOf="@id/brand_name"
app:layout_constraintStart_toEndOf="@id/brand_name"
app:layout_constraintBottom_toBottomOf="@id/brand_name"
app:layout_constraintEnd_toEndOf="parent"/>
<ScrollView
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:fillViewport="true"
android:background="?attr/color_main2_000"
android:clickable="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"
app:layout_constraintTop_toBottomOf="@id/brand_name"
app:layout_constraintBottom_toTopOf="@id/add_account">
app:layout_constraintEnd_toEndOf="parent">
<ImageView
android:id="@+id/brand_icon"
android:onClick="@{() -> viewModel.closeDrawerMenu()}"
android:layout_width="@dimen/large_icon_size"
android:layout_height="@dimen/large_icon_size"
android:layout_marginStart="26dp"
android:layout_marginTop="15dp"
android:src="@drawable/linphone_notification"
android:contentDescription="@string/app_name"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:tint="?attr/color_main1_500" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:id="@+id/brand_name"
android:onClick="@{() -> viewModel.closeDrawerMenu()}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/app_name"
android:gravity="center_vertical"
app:layout_constraintTop_toTopOf="@id/brand_icon"
app:layout_constraintStart_toEndOf="@id/brand_icon"
app:layout_constraintBottom_toBottomOf="@id/brand_icon"
app:layout_constraintEnd_toStartOf="@id/close_drawer" />
<ImageView
android:id="@+id/close_drawer"
android:onClick="@{() -> viewModel.closeDrawerMenu()}"
android:layout_width="@dimen/large_icon_size"
android:layout_height="@dimen/large_icon_size"
android:layout_marginEnd="16dp"
android:padding="5dp"
android:src="@drawable/x"
android:adjustViewBounds="true"
android:contentDescription="@string/content_description_close_drawer_menu"
android:background="@drawable/circle_transparent_button_background"
app:tint="?attr/color_main2_600"
app:layout_constraintTop_toTopOf="@id/brand_name"
app:layout_constraintStart_toEndOf="@id/brand_name"
app:layout_constraintBottom_toBottomOf="@id/brand_name"
app:layout_constraintEnd_toEndOf="parent"/>
<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:fillViewport="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/brand_name"
app:layout_constraintBottom_toTopOf="@id/add_account">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
entries="@{viewModel.accounts}"
layout="@{@layout/account_list_cell}">
<ImageView
android:id="@+id/no_account_image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/illu"
android:layout_margin="10dp"
android:contentDescription="@null" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:id="@+id/no_account_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/drawer_menu_no_account_configured_yet"
android:gravity="center" />
</LinearLayout>
</ScrollView>
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{() -> viewModel.addAccount()}"
style="@style/secondary_button_label_style"
android:id="@+id/add_account"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="15dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@string/drawer_menu_add_account"
android:drawableStart="@drawable/plus_circle"
android:drawablePadding="8dp"
android:visibility="@{viewModel.hideAddAccount ? View.GONE : View.VISIBLE}"
app:drawableTint="@color/secondary_button_label_color"
app:layout_constraintWidth_max="@dimen/button_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/separator" />
<View
android:id="@+id/separator"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginBottom="15dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/shortcuts" />
<LinearLayout
android:layout_width="match_parent"
android:id="@+id/shortcuts"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:orientation="vertical"
entries="@{viewModel.accounts}"
layout="@{@layout/account_list_cell}">
android:visibility="@{viewModel.shortcuts.empty ? View.GONE : View.VISIBLE, default=gone}"
app:entries="@{viewModel.shortcuts}"
app:layout="@{@layout/drawer_shortcuts_list_cell}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/settings" />
<ImageView
android:id="@+id/no_account_image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/illu"
android:layout_margin="10dp"
android:contentDescription="@null" />
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{settingsClickedListener}"
style="@style/header_style"
android:id="@+id/settings"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:padding="5dp"
android:text="@string/settings_title"
android:drawableStart="@drawable/gear"
android:drawableEnd="@drawable/caret_right"
android:drawablePadding="8dp"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.hideSettings ? View.GONE : View.VISIBLE}"
app:drawableTint="?attr/color_main2_500"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/recordings" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:id="@+id/no_account_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/drawer_menu_no_account_configured_yet"
android:gravity="center" />
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{recordingsClickListener}"
style="@style/header_style"
android:id="@+id/recordings"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:padding="5dp"
android:text="@string/recordings_title"
android:drawableStart="@drawable/record_fill"
android:drawableEnd="@drawable/caret_right"
android:drawablePadding="8dp"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.hideRecordings ? View.GONE : View.VISIBLE}"
app:drawableTint="?attr/color_main2_500"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/help" />
</LinearLayout>
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{helpClickedListener}"
style="@style/header_style"
android:id="@+id/help"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:padding="5dp"
android:text="@string/help_title"
android:drawableStart="@drawable/question"
android:drawableEnd="@drawable/caret_right"
android:drawablePadding="8dp"
android:background="@drawable/squircle_transparent_button_background"
app:drawableTint="?attr/color_main2_500"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/separator_2" />
</ScrollView>
<View
android:id="@+id/separator_2"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginBottom="15dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
android:visibility="@{viewModel.hideQuitButton ? View.GONE : View.VISIBLE, default=gone}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/quit" />
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{() -> viewModel.addAccount()}"
style="@style/secondary_button_label_style"
android:id="@+id/add_account"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="15dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@string/drawer_menu_add_account"
android:drawableStart="@drawable/plus_circle"
android:drawablePadding="8dp"
android:visibility="@{viewModel.hideAddAccount ? View.GONE : View.VISIBLE}"
app:drawableTint="@color/secondary_button_label_color"
app:layout_constraintWidth_max="@dimen/button_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/separator" />
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{quitClickedListener}"
style="@style/header_style"
android:id="@+id/quit"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:padding="5dp"
android:text="@string/help_quit_title"
android:visibility="@{viewModel.hideQuitButton ? View.GONE : View.VISIBLE, default=gone}"
android:drawableStart="@drawable/power"
android:drawablePadding="8dp"
android:background="@drawable/squircle_transparent_button_background"
app:drawableTint="?attr/color_main2_500"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent" />
<View
android:id="@+id/separator"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginBottom="15dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/shortcuts" />
<LinearLayout
android:id="@+id/shortcuts"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:orientation="vertical"
android:visibility="@{viewModel.shortcuts.empty ? View.GONE : View.VISIBLE, default=gone}"
app:entries="@{viewModel.shortcuts}"
app:layout="@{@layout/drawer_shortcuts_list_cell}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/settings" />
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{settingsClickedListener}"
style="@style/header_style"
android:id="@+id/settings"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:padding="5dp"
android:text="@string/settings_title"
android:drawableStart="@drawable/gear"
android:drawableEnd="@drawable/caret_right"
android:drawablePadding="8dp"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.hideSettings ? View.GONE : View.VISIBLE}"
app:drawableTint="?attr/color_main2_500"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/recordings" />
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{recordingsClickListener}"
style="@style/header_style"
android:id="@+id/recordings"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:padding="5dp"
android:text="@string/recordings_title"
android:drawableStart="@drawable/record_fill"
android:drawableEnd="@drawable/caret_right"
android:drawablePadding="8dp"
android:background="@drawable/squircle_transparent_button_background"
android:visibility="@{viewModel.hideRecordings ? View.GONE : View.VISIBLE}"
app:drawableTint="?attr/color_main2_500"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/help" />
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{helpClickedListener}"
style="@style/header_style"
android:id="@+id/help"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:padding="5dp"
android:text="@string/help_title"
android:drawableStart="@drawable/question"
android:drawableEnd="@drawable/caret_right"
android:drawablePadding="8dp"
android:background="@drawable/squircle_transparent_button_background"
app:drawableTint="?attr/color_main2_500"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/separator_2" />
<View
android:id="@+id/separator_2"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginBottom="15dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
android:visibility="@{viewModel.hideQuitButton ? View.GONE : View.VISIBLE, default=gone}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/quit" />
<androidx.appcompat.widget.AppCompatTextView
android:onClick="@{quitClickedListener}"
style="@style/header_style"
android:id="@+id/quit"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:padding="5dp"
android:text="@string/help_quit_title"
android:visibility="@{viewModel.hideQuitButton ? View.GONE : View.VISIBLE, default=gone}"
android:drawableStart="@drawable/power"
android:drawablePadding="8dp"
android:background="@drawable/squircle_transparent_button_background"
app:drawableTint="?attr/color_main2_500"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -75,8 +75,10 @@
android:adjustViewBounds="true"
android:contentDescription="@string/content_description_play_pause_video_playback"
android:background="@drawable/circle_transparent_dark_button_background"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/progress"
app:tint="@color/bc_white"/>
<SeekBar
@ -89,6 +91,7 @@
android:progress="@{viewModel.position, default=75}"
android:progressDrawable="@drawable/media_player_seekbar"
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_constraintBottom_toBottomOf="@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:textSize="13sp"
android:textColor="@color/bc_white"
android:includeFontPadding="false"
android:padding="10dp"
app:layout_constraintTop_toTopOf="@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" />
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -46,125 +46,145 @@
app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/background"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/contacts_content"
android:layout_width="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_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/back" />
app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300"
android:id="@+id/multiple_selection_count"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@{viewModel.selectionCount, default=`0 selected`}"
android:textSize="12sp"
android:textColor="@color/bc_black"
app:layout_constraintStart_toStartOf="@id/title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/title" />
<HorizontalScrollView
android:id="@+id/multiple_selection"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:scrollbars="none"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/multiple_selection_count">
<LinearLayout
android:layout_width="wrap_content"
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300"
android:id="@+id/multiple_selection_count"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="horizontal"
entries="@{viewModel.selection}"
layout="@{@layout/address_selected_list_cell}"
emptyPlaceholder="@{@layout/multiple_participants_selection_placeholder}"/>
android:layout_marginTop="10dp"
android:layout_marginStart="10dp"
android:text="@{viewModel.selectionCount, default=`0 selected`}"
android:textSize="12sp"
android:textColor="?attr/color_main2_900"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</HorizontalScrollView>
<HorizontalScrollView
android:id="@+id/multiple_selection"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:background="@drawable/shape_squircle_white_background"
android:scrollbars="none"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/multiple_selection_count">
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/search_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="20dp"
android:background="@drawable/edit_text_background"
android:drawableStart="@drawable/magnifying_glass"
android:drawablePadding="10dp"
android:drawableTint="?attr/color_main2_600"
android:hint="@string/new_conversation_search_bar_filter_hint"
android:inputType="text|textPersonName|textNoSuggestions"
android:paddingStart="15dp"
android:paddingTop="10dp"
android:paddingEnd="15dp"
android:paddingBottom="10dp"
android:text="@={viewModel.searchFilter}"
android:textSize="14sp"
app:layout_constraintHeight_min="48dp"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/multiple_selection"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
entries="@{viewModel.selection}"
layout="@{@layout/address_selected_list_cell}"
emptyPlaceholder="@{@layout/multiple_participants_selection_placeholder}"/>
<ImageView
android:id="@+id/clear_field"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginEnd="15dp"
android:onClick="@{() -> viewModel.clearFilter()}"
android:src="@drawable/x"
android:contentDescription="@string/content_description_clear_filter"
android:visibility="@{viewModel.searchFilter.length() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintBottom_toBottomOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"
app:layout_constraintTop_toTopOf="@id/search_bar"
app:tint="?attr/color_main2_600" />
</HorizontalScrollView>
<ImageView
android:id="@+id/no_contact_image"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:src="@drawable/illu"
android:contentDescription="@null"
android:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_max="200dp"
app:layout_constraintVertical_bias="0.3"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/search_bar"
app:layout_constraintBottom_toTopOf="@id/add_participants" />
<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.AppCompatTextView
style="@style/section_header_style"
android:id="@+id/no_contact_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
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:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/no_contact_image" />
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/search_bar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="20dp"
android:background="@drawable/edit_text_background"
android:drawableStart="@drawable/magnifying_glass"
android:drawablePadding="10dp"
android:drawableTint="?attr/color_main2_600"
android:hint="@string/new_conversation_search_bar_filter_hint"
android:inputType="text|textPersonName|textNoSuggestions"
android:paddingStart="15dp"
android:paddingTop="10dp"
android:paddingEnd="15dp"
android:paddingBottom="10dp"
android:text="@={viewModel.searchFilter}"
android:textSize="14sp"
app:layout_constraintHeight_min="48dp"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/contacts_list"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="8dp"
android:visibility="@{viewModel.isEmpty ? View.GONE : View.VISIBLE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/search_bar"
app:layout_constraintBottom_toBottomOf="parent" />
<ImageView
android:id="@+id/clear_field"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginEnd="15dp"
android:onClick="@{() -> viewModel.clearFilter()}"
android:src="@drawable/x"
android:contentDescription="@string/content_description_clear_filter"
android:visibility="@{viewModel.searchFilter.length() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintBottom_toBottomOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"
app:layout_constraintTop_toTopOf="@id/search_bar"
app:tint="?attr/color_main2_600" />
<ImageView
android:id="@+id/no_contact_image"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:src="@drawable/illu"
android:contentDescription="@null"
android:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_max="200dp"
app:layout_constraintVertical_bias="0.3"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/search_bar"
app:layout_constraintBottom_toBottomOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:id="@+id/no_contact_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
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:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/no_contact_image" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/contacts_list"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="10dp"
android:visibility="@{viewModel.isEmpty ? View.GONE : View.VISIBLE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/search_bar"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/fetch_in_progress"
@ -175,7 +195,7 @@
app:indicatorColor="?attr/color_main1_500"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/search_bar"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" />
<com.google.android.material.floatingactionbutton.FloatingActionButton

View file

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

View file

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

View file

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

View file

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

View file

@ -59,343 +59,354 @@
app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent"/>
<ScrollView
android:id="@+id/scrollView"
android:layout_width="0dp"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:fillViewport="true"
android:background="?attr/color_main2_000"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toBottomOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ScrollView
android:id="@+id/scrollView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:fillViewport="true"
android:background="@drawable/shape_squircle_white_background"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintWidth_max="@dimen/section_max_width">
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style_800"
android:id="@+id/subject"
android:layout_width="0dp"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:hint="@string/meeting_schedule_subject_hint"
android:textColorHint="?attr/color_main2_600"
android:text="@={viewModel.subject}"
android:textSize="20sp"
android:textColor="?attr/color_main2_600"
android:inputType="text|textCapSentences"
android:drawableStart="@{viewModel.isBroadcastSelected ? @drawable/slideshow : @drawable/video_conference, default=@drawable/video_conference}"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:background="@color/transparent_color"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
android:paddingBottom="@dimen/screen_bottom_margin">
<View
android:id="@+id/separator"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="10dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/subject" />
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style_800"
android:id="@+id/subject"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:hint="@string/meeting_schedule_subject_hint"
android:textColorHint="?attr/color_main2_600"
android:text="@={viewModel.subject}"
android:textSize="20sp"
android:textColor="?attr/color_main2_600"
android:inputType="text|textCapSentences"
android:drawableStart="@{viewModel.isBroadcastSelected ? @drawable/slideshow : @drawable/video_conference, default=@drawable/video_conference}"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:background="@color/transparent_color"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/from_date"
android:onClick="@{pickStartDateClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:text="@{viewModel.fromDate, default=`Tue. October 10th, 2023`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:drawableStart="@drawable/clock"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/separator" />
<View
android:id="@+id/separator"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="10dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/subject" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/from_time"
android:onClick="@{pickStartTimeClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="10dp"
android:text="@{viewModel.fromTime, default=`17:00`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
app:layout_constraintStart_toStartOf="@id/from_date"
app:layout_constraintTop_toBottomOf="@id/from_date" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/from_date"
android:onClick="@{pickStartDateClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:text="@{viewModel.fromDate, default=`Tue. October 10th, 2023`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:drawableStart="@drawable/clock"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/separator" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/to_time"
android:onClick="@{pickEndTimeClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="45dp"
android:text="@{viewModel.toTime, default=`18:00`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
app:layout_constraintStart_toEndOf="@id/from_time"
app:layout_constraintTop_toTopOf="@id/from_time" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/from_time"
android:onClick="@{pickStartTimeClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="10dp"
android:text="@{viewModel.fromTime, default=`17:00`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
app:layout_constraintStart_toStartOf="@id/from_date"
app:layout_constraintTop_toBottomOf="@id/from_date" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/timezone_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_timezone_title"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"
android:drawableStart="@drawable/globe_hemisphere_west"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:labelFor="@id/timezone_picker"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/to_time" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/to_time"
android:onClick="@{pickEndTimeClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="45dp"
android:text="@{viewModel.toTime, default=`18:00`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
app:layout_constraintStart_toEndOf="@id/from_time"
app:layout_constraintTop_toTopOf="@id/from_time" />
<androidx.appcompat.widget.AppCompatSpinner
style="@style/default_text_style"
android:id="@+id/timezone_picker"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="8dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:textSize="14sp"
android:textColor="@color/gray_main2_600"
android:gravity="center_vertical"
android:overlapAnchor="false"
android:dropDownVerticalOffset="25dp"
android:spinnerMode="dropdown"
android:popupBackground="@drawable/shape_squircle_white_background"
android:background="@drawable/edit_text_background"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/timezone_label"
app:layout_constraintStart_toStartOf="@id/timezone_label"
app:layout_constraintEnd_toEndOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/timezone_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_timezone_title"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"
android:drawableStart="@drawable/globe_hemisphere_west"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:labelFor="@id/timezone_picker"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/to_time" />
<ImageView
android:id="@+id/timezone_picker_caret"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:src="@drawable/caret_down"
android:contentDescription="@null"
app:tint="?attr/color_main2_600"
app:layout_constraintTop_toTopOf="@id/timezone_picker"
app:layout_constraintBottom_toBottomOf="@id/timezone_picker"
app:layout_constraintEnd_toEndOf="@id/timezone_picker"/>
<androidx.appcompat.widget.AppCompatSpinner
style="@style/default_text_style"
android:id="@+id/timezone_picker"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="8dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:textSize="14sp"
android:textColor="@color/gray_main2_600"
android:gravity="center_vertical"
android:overlapAnchor="false"
android:dropDownVerticalOffset="25dp"
android:spinnerMode="dropdown"
android:popupBackground="@drawable/shape_squircle_white_background"
android:background="@drawable/edit_text_background"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/timezone_label"
app:layout_constraintStart_toStartOf="@id/timezone_label"
app:layout_constraintEnd_toEndOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/repeat"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_one_time_label"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:drawableStart="@drawable/arrow_clockwise"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/timezone_picker" />
<ImageView
android:id="@+id/timezone_picker_caret"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:src="@drawable/caret_down"
android:contentDescription="@null"
app:tint="?attr/color_main2_600"
app:layout_constraintTop_toTopOf="@id/timezone_picker"
app:layout_constraintBottom_toBottomOf="@id/timezone_picker"
app:layout_constraintEnd_toEndOf="@id/timezone_picker"/>
<View
android:id="@+id/separator_2"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/repeat" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/repeat"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_one_time_label"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:drawableStart="@drawable/arrow_clockwise"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/timezone_picker" />
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style_700"
android:id="@+id/description"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:hint="@string/meeting_schedule_description_hint"
android:textColorHint="?attr/color_main2_600"
android:text="@={viewModel.description}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:inputType="text|textCapSentences"
android:drawableStart="@drawable/file_text"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:background="@color/transparent_color"
app:layout_constraintTop_toBottomOf="@id/separator_2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<View
android:id="@+id/separator_2"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/repeat" />
<View
android:id="@+id/separator_3"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
android:visibility="@{viewModel.isBroadcastSelected ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/description" />
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style_700"
android:id="@+id/description"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:hint="@string/meeting_schedule_description_hint"
android:textColorHint="?attr/color_main2_600"
android:text="@={viewModel.description}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:inputType="text|textCapSentences"
android:drawableStart="@drawable/file_text"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:background="@color/transparent_color"
app:layout_constraintTop_toBottomOf="@id/separator_2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/speakers"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_add_speaker_title"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:drawableStart="@drawable/user_square"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:visibility="@{viewModel.isBroadcastSelected ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/separator_3" />
<View
android:id="@+id/separator_3"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
android:visibility="@{viewModel.isBroadcastSelected ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/description" />
<View
android:id="@+id/separator_4"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/speakers" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/speakers"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_add_speaker_title"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:drawableStart="@drawable/user_square"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:visibility="@{viewModel.isBroadcastSelected ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/separator_3" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/participants"
android:onClick="@{pickParticipantsClickListener}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_add_participants_title"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:drawableStart="@drawable/users"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:visibility="@{viewModel.participants.size() > 0 ? View.GONE : View.VISIBLE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/separator_4" />
<View
android:id="@+id/separator_4"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/speakers" />
<ImageView
android:id="@+id/participants_list_icon"
android:onClick="@{pickParticipantsClickListener}"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginStart="16dp"
android:src="@drawable/users"
android:contentDescription="@string/content_description_meeting_participants_list"
android:visibility="@{viewModel.participants.size() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/add_more_participants"
app:tint="?attr/color_main2_600" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/participants"
android:onClick="@{pickParticipantsClickListener}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_add_participants_title"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:drawableStart="@drawable/users"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:visibility="@{viewModel.participants.size() > 0 ? View.GONE : View.VISIBLE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/separator_4" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300"
android:id="@+id/add_more_participants"
android:onClick="@{pickParticipantsClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:text="@string/meeting_schedule_add_more_participants_title"
android:visibility="@{viewModel.participants.size() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/participants"
app:layout_constraintStart_toEndOf="@id/participants_list_icon" />
<ImageView
android:id="@+id/participants_list_icon"
android:onClick="@{pickParticipantsClickListener}"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginStart="16dp"
android:src="@drawable/users"
android:contentDescription="@string/content_description_meeting_participants_list"
android:visibility="@{viewModel.participants.size() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/add_more_participants"
app:tint="?attr/color_main2_600" />
<LinearLayout
android:id="@+id/participants_list"
android:onClick="@{pickParticipantsClickListener}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="16dp"
android:visibility="@{viewModel.participants.size() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/add_more_participants"
app:layout_constraintStart_toEndOf="@id/participants_list_icon"
app:layout_constraintEnd_toEndOf="parent"
entries="@{viewModel.participants}"
layout="@{@layout/meeting_schedule_participant_list_cell}"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300"
android:id="@+id/add_more_participants"
android:onClick="@{pickParticipantsClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:text="@string/meeting_schedule_add_more_participants_title"
android:visibility="@{viewModel.participants.size() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/participants"
app:layout_constraintStart_toEndOf="@id/participants_list_icon" />
<View
android:id="@+id/separator_5"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/participants_list" />
<LinearLayout
android:id="@+id/participants_list"
android:onClick="@{pickParticipantsClickListener}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="16dp"
android:visibility="@{viewModel.participants.size() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/add_more_participants"
app:layout_constraintStart_toEndOf="@id/participants_list_icon"
app:layout_constraintEnd_toEndOf="parent"
entries="@{viewModel.participants}"
layout="@{@layout/meeting_schedule_participant_list_cell}"/>
<com.google.android.material.materialswitch.MaterialSwitch
style="@style/material_switch_style"
android:id="@+id/send_invitations"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:text="@string/meeting_schedule_send_invitations_title"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:checked="@={viewModel.sendInvitations}"
app:layout_constraintVertical_bias="0"
app:layout_constraintTop_toBottomOf="@id/separator_5"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<View
android:id="@+id/separator_5"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/participants_list" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.materialswitch.MaterialSwitch
style="@style/material_switch_style"
android:id="@+id/send_invitations"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_send_invitations_title"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:checked="@={viewModel.sendInvitations}"
app:layout_constraintVertical_bias="0"
app:layout_constraintTop_toBottomOf="@id/separator_5"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -59,479 +59,490 @@
app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent"/>
<ScrollView
android:id="@+id/scrollView"
android:layout_width="0dp"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:fillViewport="true"
android:background="?attr/color_main2_000"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toBottomOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ScrollView
android:id="@+id/scrollView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:fillViewport="true"
android:background="@drawable/shape_squircle_white_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent">
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/meeting_selected"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_meeting_label"
android:textColor="@color/primary_button_label_color"
android:textSize="16sp"
android:gravity="center"
android:drawableStart="@drawable/video_conference"
android:drawableTint="@color/primary_button_label_color"
android:drawablePadding="5dp"
android:background="@drawable/primary_button_background"
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:visibility="@{viewModel.hideBroadcast || viewModel.isBroadcastSelected ? View.GONE : View.VISIBLE, default=gone}"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/broadcast"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/broadcast"
android:onClick="@{() -> viewModel.selectBroadcast()}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_broadcast_label"
android:textColor="@color/secondary_button_label_color"
android:textSize="16sp"
android:gravity="center"
android:drawableStart="@drawable/slideshow"
android:drawableTint="@color/secondary_button_label_color"
android:drawablePadding="5dp"
android:background="@drawable/secondary_button_background"
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:visibility="@{viewModel.hideBroadcast || viewModel.isBroadcastSelected ? View.GONE : View.VISIBLE, default=gone}"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@id/meeting_selected"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/meeting"
android:onClick="@{() -> viewModel.selectMeeting()}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_meeting_label"
android:textColor="@color/secondary_button_label_color"
android:textSize="16sp"
android:gravity="center"
android:drawableStart="@drawable/video_conference"
android:drawableTint="@color/secondary_button_label_color"
android:drawablePadding="5dp"
android:background="@drawable/secondary_button_background"
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:visibility="@{viewModel.isBroadcastSelected ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/meeting_selected"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/broadcast_selected"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/broadcast_selected"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_broadcast_label"
android:textColor="@color/primary_button_label_color"
android:textSize="16sp"
android:gravity="center"
android:drawableStart="@drawable/slideshow"
android:drawableTint="@color/primary_button_label_color"
android:drawablePadding="5dp"
android:background="@drawable/primary_button_background"
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:visibility="@{viewModel.isBroadcastSelected ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/broadcast"
app:layout_constraintStart_toEndOf="@id/meeting"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/broadcast_help"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="@string/meeting_schedule_broadcast_help"
android:textSize="14sp"
android:textColor="?attr/color_main2_500"
android:drawableStart="@drawable/info"
android:drawablePadding="5dp"
android:gravity="center"
android:background="@drawable/shape_squircle_main2_100_background"
android:visibility="@{viewModel.showBroadcastHelp ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/meeting"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
android:paddingBottom="@dimen/screen_bottom_margin">
<ImageView
android:id="@+id/close_broadcast_help"
android:onClick="@{() -> viewModel.closeBroadcastHelp()}"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginEnd="16dp"
android:src="@drawable/x"
android:contentDescription="@null"
android:visibility="@{viewModel.showBroadcastHelp ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toTopOf="@id/broadcast_help"
app:layout_constraintBottom_toBottomOf="@id/broadcast_help"
app:layout_constraintEnd_toEndOf="@id/broadcast_help" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/meeting_selected"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_meeting_label"
android:textColor="@color/primary_button_label_color"
android:textSize="16sp"
android:gravity="center"
android:drawableStart="@drawable/video_conference"
android:drawableTint="@color/primary_button_label_color"
android:drawablePadding="5dp"
android:background="@drawable/primary_button_background"
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:visibility="@{viewModel.hideBroadcast || viewModel.isBroadcastSelected ? View.GONE : View.VISIBLE, default=gone}"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/broadcast"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style_800"
android:id="@+id/subject"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:hint="@string/meeting_schedule_subject_hint"
android:textColorHint="?attr/color_main2_600"
android:text="@={viewModel.subject}"
android:textSize="20sp"
android:textColor="?attr/color_main2_600"
android:inputType="text|textCapSentences"
android:drawableStart="@{viewModel.isBroadcastSelected ? @drawable/slideshow : @drawable/video_conference, default=@drawable/video_conference}"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:background="@color/transparent_color"
app:layout_constraintTop_toBottomOf="@id/broadcast_help"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/broadcast"
android:onClick="@{() -> viewModel.selectBroadcast()}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_broadcast_label"
android:textColor="@color/secondary_button_label_color"
android:textSize="16sp"
android:gravity="center"
android:drawableStart="@drawable/slideshow"
android:drawableTint="@color/secondary_button_label_color"
android:drawablePadding="5dp"
android:background="@drawable/secondary_button_background"
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:visibility="@{viewModel.hideBroadcast || viewModel.isBroadcastSelected ? View.GONE : View.VISIBLE, default=gone}"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@id/meeting_selected"
app:layout_constraintEnd_toEndOf="parent"/>
<View
android:id="@+id/separator"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="10dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/subject" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/meeting"
android:onClick="@{() -> viewModel.selectMeeting()}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_meeting_label"
android:textColor="@color/secondary_button_label_color"
android:textSize="16sp"
android:gravity="center"
android:drawableStart="@drawable/video_conference"
android:drawableTint="@color/secondary_button_label_color"
android:drawablePadding="5dp"
android:background="@drawable/secondary_button_background"
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:visibility="@{viewModel.isBroadcastSelected ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/meeting_selected"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/broadcast_selected"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/from_date"
android:onClick="@{pickStartDateClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:text="@{viewModel.fromDate, default=`Tue. October 10th, 2023`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:drawableStart="@drawable/clock"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/separator" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/broadcast_selected"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_broadcast_label"
android:textColor="@color/primary_button_label_color"
android:textSize="16sp"
android:gravity="center"
android:drawableStart="@drawable/slideshow"
android:drawableTint="@color/primary_button_label_color"
android:drawablePadding="5dp"
android:background="@drawable/primary_button_background"
android:paddingTop="@dimen/primary_secondary_buttons_label_padding"
android:paddingBottom="@dimen/primary_secondary_buttons_label_padding"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:visibility="@{viewModel.isBroadcastSelected ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/broadcast"
app:layout_constraintStart_toEndOf="@id/meeting"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/from_time"
android:onClick="@{pickStartTimeClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="10dp"
android:text="@{viewModel.fromTime, default=`17:00`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
app:layout_constraintStart_toStartOf="@id/from_date"
app:layout_constraintTop_toBottomOf="@id/from_date" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style"
android:id="@+id/broadcast_help"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="@string/meeting_schedule_broadcast_help"
android:textSize="14sp"
android:textColor="?attr/color_main2_500"
android:drawableStart="@drawable/info"
android:drawablePadding="5dp"
android:gravity="center"
android:background="@drawable/shape_squircle_main2_100_background"
android:visibility="@{viewModel.showBroadcastHelp ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/meeting"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/to_time"
android:onClick="@{pickEndTimeClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="45dp"
android:text="@{viewModel.toTime, default=`18:00`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
app:layout_constraintStart_toEndOf="@id/from_time"
app:layout_constraintTop_toTopOf="@id/from_time" />
<ImageView
android:id="@+id/close_broadcast_help"
android:onClick="@{() -> viewModel.closeBroadcastHelp()}"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginEnd="16dp"
android:src="@drawable/x"
android:contentDescription="@null"
android:visibility="@{viewModel.showBroadcastHelp ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toTopOf="@id/broadcast_help"
app:layout_constraintBottom_toBottomOf="@id/broadcast_help"
app:layout_constraintEnd_toEndOf="@id/broadcast_help" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/timezone_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_timezone_title"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"
android:drawableStart="@drawable/globe_hemisphere_west"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/to_time" />
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style_800"
android:id="@+id/subject"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:hint="@string/meeting_schedule_subject_hint"
android:textColorHint="?attr/color_main2_600"
android:text="@={viewModel.subject}"
android:textSize="20sp"
android:textColor="?attr/color_main2_600"
android:inputType="text|textCapSentences"
android:drawableStart="@{viewModel.isBroadcastSelected ? @drawable/slideshow : @drawable/video_conference, default=@drawable/video_conference}"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:background="@color/transparent_color"
app:layout_constraintTop_toBottomOf="@id/broadcast_help"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<androidx.appcompat.widget.AppCompatSpinner
style="@style/default_text_style"
android:id="@+id/timezone_picker"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="8dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:textSize="14sp"
android:textColor="@color/gray_main2_600"
android:gravity="center_vertical"
android:overlapAnchor="false"
android:dropDownVerticalOffset="25dp"
android:spinnerMode="dropdown"
android:popupBackground="@drawable/shape_squircle_white_background"
android:background="@drawable/edit_text_background"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/timezone_label"
app:layout_constraintStart_toStartOf="@id/timezone_label"
app:layout_constraintEnd_toEndOf="parent" />
<View
android:id="@+id/separator"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="10dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/subject" />
<ImageView
android:id="@+id/timezone_picker_caret"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:src="@drawable/caret_down"
android:contentDescription="@null"
app:tint="?attr/color_main2_600"
app:layout_constraintTop_toTopOf="@id/timezone_picker"
app:layout_constraintBottom_toBottomOf="@id/timezone_picker"
app:layout_constraintEnd_toEndOf="@id/timezone_picker"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/from_date"
android:onClick="@{pickStartDateClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:text="@{viewModel.fromDate, default=`Tue. October 10th, 2023`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:drawableStart="@drawable/clock"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/separator" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/repeat"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_one_time_label"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:drawableStart="@drawable/arrow_clockwise"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/timezone_picker" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/from_time"
android:onClick="@{pickStartTimeClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="10dp"
android:text="@{viewModel.fromTime, default=`17:00`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
app:layout_constraintStart_toStartOf="@id/from_date"
app:layout_constraintTop_toBottomOf="@id/from_date" />
<View
android:id="@+id/separator_2"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/repeat" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/to_time"
android:onClick="@{pickEndTimeClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="45dp"
android:text="@{viewModel.toTime, default=`18:00`}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
app:layout_constraintStart_toEndOf="@id/from_time"
app:layout_constraintTop_toTopOf="@id/from_time" />
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style_700"
android:id="@+id/description"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:hint="@string/meeting_schedule_description_hint"
android:textColorHint="?attr/color_main2_600"
android:text="@={viewModel.description}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:inputType="text|textCapSentences"
android:drawableStart="@drawable/file_text"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:background="@color/transparent_color"
app:layout_constraintTop_toBottomOf="@id/separator_2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/timezone_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_timezone_title"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"
android:drawableStart="@drawable/globe_hemisphere_west"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/to_time" />
<View
android:id="@+id/separator_3"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
android:visibility="@{viewModel.isBroadcastSelected ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/description" />
<androidx.appcompat.widget.AppCompatSpinner
style="@style/default_text_style"
android:id="@+id/timezone_picker"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="8dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:textSize="14sp"
android:textColor="@color/gray_main2_600"
android:gravity="center_vertical"
android:overlapAnchor="false"
android:dropDownVerticalOffset="25dp"
android:spinnerMode="dropdown"
android:popupBackground="@drawable/shape_squircle_white_background"
android:background="@drawable/edit_text_background"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/timezone_label"
app:layout_constraintStart_toStartOf="@id/timezone_label"
app:layout_constraintEnd_toEndOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/speakers"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_add_speaker_title"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:drawableStart="@drawable/user_square"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:visibility="@{viewModel.isBroadcastSelected ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/separator_3" />
<ImageView
android:id="@+id/timezone_picker_caret"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:src="@drawable/caret_down"
android:contentDescription="@null"
app:tint="?attr/color_main2_600"
app:layout_constraintTop_toTopOf="@id/timezone_picker"
app:layout_constraintBottom_toBottomOf="@id/timezone_picker"
app:layout_constraintEnd_toEndOf="@id/timezone_picker"/>
<View
android:id="@+id/separator_4"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/speakers" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/repeat"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_one_time_label"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:drawableStart="@drawable/arrow_clockwise"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/timezone_picker" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/participants"
android:onClick="@{pickParticipantsClickListener}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_add_participants_title"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:drawableStart="@drawable/users"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:visibility="@{viewModel.participants.size() > 0 ? View.GONE : View.VISIBLE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/separator_4" />
<View
android:id="@+id/separator_2"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/repeat" />
<ImageView
android:id="@+id/participants_list_icon"
android:onClick="@{pickParticipantsClickListener}"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginStart="16dp"
android:src="@drawable/users"
android:contentDescription="@string/content_description_meeting_participants_list"
android:visibility="@{viewModel.participants.size() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/add_more_participants" />
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style_700"
android:id="@+id/description"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:hint="@string/meeting_schedule_description_hint"
android:textColorHint="?attr/color_main2_600"
android:text="@={viewModel.description}"
android:textSize="14sp"
android:textColor="?attr/color_main2_600"
android:inputType="text|textCapSentences"
android:drawableStart="@drawable/file_text"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:background="@color/transparent_color"
app:layout_constraintTop_toBottomOf="@id/separator_2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300"
android:id="@+id/add_more_participants"
android:onClick="@{pickParticipantsClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:text="@string/meeting_schedule_add_more_participants_title"
android:visibility="@{viewModel.participants.size() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/participants"
app:layout_constraintStart_toEndOf="@id/participants_list_icon" />
<View
android:id="@+id/separator_3"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
android:visibility="@{viewModel.isBroadcastSelected ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/description" />
<LinearLayout
android:id="@+id/participants_list"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="16dp"
android:visibility="@{viewModel.participants.size() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/add_more_participants"
app:layout_constraintStart_toEndOf="@id/participants_list_icon"
app:layout_constraintEnd_toEndOf="parent"
entries="@{viewModel.participants}"
layout="@{@layout/meeting_schedule_participant_list_cell}"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/speakers"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_add_speaker_title"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:drawableStart="@drawable/user_square"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:visibility="@{viewModel.isBroadcastSelected ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/separator_3" />
<View
android:id="@+id/separator_5"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/participants_list" />
<View
android:id="@+id/separator_4"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/speakers" />
<com.google.android.material.materialswitch.MaterialSwitch
style="@style/material_switch_style"
android:id="@+id/send_invitations"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:text="@string/meeting_schedule_send_invitations_title"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:checked="@={viewModel.sendInvitations}"
app:layout_constraintVertical_bias="0"
app:layout_constraintTop_toBottomOf="@id/separator_5"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_700"
android:id="@+id/participants"
android:onClick="@{pickParticipantsClickListener}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_add_participants_title"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:drawableStart="@drawable/users"
android:drawablePadding="8dp"
android:drawableTint="?attr/color_main2_600"
android:visibility="@{viewModel.participants.size() > 0 ? View.GONE : View.VISIBLE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/separator_4" />
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:id="@+id/participants_list_icon"
android:onClick="@{pickParticipantsClickListener}"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginStart="16dp"
android:src="@drawable/users"
android:contentDescription="@string/content_description_meeting_participants_list"
android:visibility="@{viewModel.participants.size() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/add_more_participants" />
</ScrollView>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300"
android:id="@+id/add_more_participants"
android:onClick="@{pickParticipantsClickListener}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:text="@string/meeting_schedule_add_more_participants_title"
android:visibility="@{viewModel.participants.size() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/participants"
app:layout_constraintStart_toEndOf="@id/participants_list_icon" />
<LinearLayout
android:id="@+id/participants_list"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="16dp"
android:visibility="@{viewModel.participants.size() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/add_more_participants"
app:layout_constraintStart_toEndOf="@id/participants_list_icon"
app:layout_constraintEnd_toEndOf="parent"
entries="@{viewModel.participants}"
layout="@{@layout/meeting_schedule_participant_list_cell}"/>
<View
android:id="@+id/separator_5"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?attr/color_separator"
android:importantForAccessibility="no"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/participants_list" />
<com.google.android.material.materialswitch.MaterialSwitch
style="@style/material_switch_style"
android:id="@+id/send_invitations"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/meeting_schedule_send_invitations_title"
android:textColor="?attr/color_main2_600"
android:textSize="14sp"
android:checked="@={viewModel.sendInvitations}"
app:layout_constraintVertical_bias="0"
app:layout_constraintTop_toBottomOf="@id/separator_5"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -62,8 +62,10 @@
android:adjustViewBounds="true"
android:contentDescription="@string/content_description_play_pause_audio_playback"
android:background="@drawable/circle_transparent_dark_button_background"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/progress"
app:tint="@color/bc_white"/>
<SeekBar
@ -76,6 +78,7 @@
android:progress="@{viewModel.position, default=75}"
android:progressDrawable="@drawable/media_player_seekbar"
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_constraintBottom_toBottomOf="@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:textSize="13sp"
android:textColor="@color/bc_white"
android:includeFontPadding="false"
android:padding="10dp"
app:layout_constraintTop_toTopOf="@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" />
<androidx.constraintlayout.widget.Barrier

View file

@ -18,13 +18,6 @@
android:layout_height="match_parent"
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
android:id="@+id/group2"
android:layout_width="wrap_content"
@ -128,50 +121,74 @@
app:layout_constraintTop_toTopOf="@id/search"
app:tint="?attr/color_main2_500" />
<View
android:id="@+id/background"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="@dimen/top_bar_height"
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="parent" />
<ImageView
android:id="@+id/no_recording_image"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:contentDescription="@null"
android:src="@drawable/illu_recordings"
app:layout_constraintBottom_toTopOf="@id/no_recording_label"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_max="200dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintVertical_chainStyle="packed" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/no_recording_label"
style="@style/section_header_style"
<androidx.constraintlayout.widget.Barrier
android:id="@+id/top_bar_barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/recordings_list_empty"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/no_recording_image" />
app:barrierDirection="bottom"
app:constraint_referenced_ids="back, cancel_search" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recordings_list"
android:layout_width="match_parent"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/contacts_content"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="@dimen/top_bar_height"
android:background="?attr/color_grey_100"
app:layout_constraintTop_toBottomOf="@id/top_bar_barrier"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintStart_toStartOf="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
android:id="@+id/no_recording_image"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:contentDescription="@null"
android:src="@drawable/illu_recordings"
android:visibility="@{viewModel.recordings.empty ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toTopOf="@id/no_recording_label"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_max="200dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:id="@+id/no_recording_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/recordings_list_empty"
android:visibility="@{viewModel.recordings.empty ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/no_recording_image" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recordings_list"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="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
android:id="@+id/fetch_in_progress"

View file

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

View file

@ -57,16 +57,18 @@
<androidx.constraintlayout.widget.ConstraintLayout
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/main_section"
android:layout_width="match_parent"
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_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="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:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/main_section"/>
@ -275,6 +278,7 @@
android:background="@drawable/shape_squircle_white_background"
android:orientation="vertical"
android:visibility="@{viewModel.expandAudioDevices ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintTop_toBottomOf="@id/audio_devices_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
@ -394,7 +398,7 @@
android:drawableEnd="@drawable/arrow_square_out"
android:drawableTint="?attr/color_main2_600"
android:background="@drawable/squircle_transparent_button_background"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintWidth_max="@dimen/section_max_width"
app:layout_constraintVertical_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"

View file

@ -63,253 +63,264 @@
app:layout_constraintTop_toTopOf="@id/back"
app:layout_constraintBottom_toBottomOf="@id/back"/>
<ScrollView
android:layout_width="0dp"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:fillViewport="true"
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_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
app:layout_constraintBottom_toBottomOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:fillViewport="true"
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
style="@style/settings_title_padding_style"
android:id="@+id/name_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/settings_contacts_carddav_name_title"
android:maxLines="2"
android:ellipsize="end"
android:labelFor="@id/name"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/name"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:background="@drawable/edit_text_background"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.displayName}"
android:inputType="text|textPersonName"
android:hint="@string/settings_contacts_carddav_name_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/name_title"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_padding_style"
android:id="@+id/name_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/settings_contacts_carddav_name_title"
android:maxLines="2"
android:ellipsize="end"
android:labelFor="@id/name"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_padding_style"
android:id="@+id/server_url_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/settings_contacts_carddav_server_url_title"
android:maxLines="2"
android:ellipsize="end"
android:labelFor="@id/server_url"
app:layout_constraintTop_toBottomOf="@id/name"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/name"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:background="@drawable/edit_text_background"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.displayName}"
android:inputType="text|textPersonName"
android:hint="@string/settings_contacts_carddav_name_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/name_title"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/server_url"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:background="@drawable/edit_text_background"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.serverUrl}"
android:inputType="text|textUri"
android:hint="@string/settings_contacts_carddav_server_url_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/server_url_title"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_padding_style"
android:id="@+id/server_url_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/settings_contacts_carddav_server_url_title"
android:maxLines="2"
android:ellipsize="end"
android:labelFor="@id/server_url"
app:layout_constraintTop_toBottomOf="@id/name"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_padding_style"
android:id="@+id/username_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/settings_contacts_carddav_username_title"
android:maxLines="2"
android:ellipsize="end"
android:labelFor="@id/username"
app:layout_constraintTop_toBottomOf="@id/server_url"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/server_url"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:background="@drawable/edit_text_background"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.serverUrl}"
android:inputType="text|textUri"
android:hint="@string/settings_contacts_carddav_server_url_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/server_url_title"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/username"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:background="@drawable/edit_text_background"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.username}"
android:inputType="text"
android:hint="@string/username"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/username_title"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_padding_style"
android:id="@+id/username_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/settings_contacts_carddav_username_title"
android:maxLines="2"
android:ellipsize="end"
android:labelFor="@id/username"
app:layout_constraintTop_toBottomOf="@id/server_url"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_padding_style"
android:id="@+id/password_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/settings_contacts_carddav_password_title"
android:maxLines="2"
android:ellipsize="end"
android:labelFor="@id/password"
app:layout_constraintTop_toBottomOf="@id/username"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/username"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:background="@drawable/edit_text_background"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.username}"
android:inputType="text"
android:hint="@string/username"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/username_title"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/password"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:background="@drawable/edit_text_background"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.password}"
android:hint="@string/password"
passwordInputType="@{viewModel.showPassword ? InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD : InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD, default=textPassword}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/password_title" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_padding_style"
android:id="@+id/password_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/settings_contacts_carddav_password_title"
android:maxLines="2"
android:ellipsize="end"
android:labelFor="@id/password"
app:layout_constraintTop_toBottomOf="@id/username"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<ImageView
android:onClick="@{() -> viewModel.toggleShowPassword()}"
android:id="@+id/eye"
android:layout_width="@dimen/icon_size"
android:layout_height="0dp"
android:padding="4dp"
android:layout_marginEnd="20dp"
android:contentDescription="@string/content_description_toggle_password_visibility"
android:src="@{viewModel.showPassword ? @drawable/eye_slash : @drawable/eye, default=@drawable/eye}"
app:tint="?attr/color_main2_500"
app:layout_constraintEnd_toEndOf="@id/password"
app:layout_constraintTop_toTopOf="@id/password"
app:layout_constraintBottom_toBottomOf="@id/password" />
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/password"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:background="@drawable/edit_text_background"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.password}"
android:hint="@string/password"
passwordInputType="@{viewModel.showPassword ? InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD : InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD, default=textPassword}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/password_title" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_padding_style"
android:id="@+id/realm_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/settings_contacts_carddav_realm_title"
android:maxLines="2"
android:ellipsize="end"
android:labelFor="@id/realm"
app:layout_constraintTop_toBottomOf="@id/password"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<ImageView
android:onClick="@{() -> viewModel.toggleShowPassword()}"
android:id="@+id/eye"
android:layout_width="@dimen/icon_size"
android:layout_height="0dp"
android:padding="4dp"
android:layout_marginEnd="20dp"
android:contentDescription="@string/content_description_toggle_password_visibility"
android:src="@{viewModel.showPassword ? @drawable/eye_slash : @drawable/eye, default=@drawable/eye}"
app:tint="?attr/color_main2_500"
app:layout_constraintEnd_toEndOf="@id/password"
app:layout_constraintTop_toTopOf="@id/password"
app:layout_constraintBottom_toBottomOf="@id/password" />
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/realm"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:background="@drawable/edit_text_background"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.realm}"
android:inputType="text"
android:hint="@string/settings_contacts_carddav_realm_title"
app:layout_constraintVertical_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/realm_title"
app:layout_constraintBottom_toBottomOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_padding_style"
android:id="@+id/realm_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/settings_contacts_carddav_realm_title"
android:maxLines="2"
android:ellipsize="end"
android:labelFor="@id/realm"
app:layout_constraintTop_toBottomOf="@id/password"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_style"
android:id="@+id/save_new_contacts_in_this_list_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="10dp"
android:text="@string/settings_contacts_carddav_use_as_default_title"
android:maxLines="2"
android:ellipsize="end"
android:labelFor="@id/save_new_contacts_in_this_list_switch"
android:visibility="@{viewModel.isReadOnly ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toTopOf="@id/save_new_contacts_in_this_list_switch"
app:layout_constraintBottom_toBottomOf="@id/save_new_contacts_in_this_list_switch"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/save_new_contacts_in_this_list_switch"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/realm"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:background="@drawable/edit_text_background"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:text="@={viewModel.realm}"
android:inputType="text"
android:hint="@string/settings_contacts_carddav_realm_title"
app:layout_constraintVertical_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/realm_title"
app:layout_constraintBottom_toBottomOf="parent"/>
<com.google.android.material.materialswitch.MaterialSwitch
style="@style/material_switch_style"
android:id="@+id/save_new_contacts_in_this_list_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="16dp"
android:checked="@={viewModel.storeNewContactsInIt}"
android:visibility="@{viewModel.isReadOnly ? View.GONE : View.VISIBLE}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/realm" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_style"
android:id="@+id/save_new_contacts_in_this_list_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="10dp"
android:text="@string/settings_contacts_carddav_use_as_default_title"
android:maxLines="2"
android:ellipsize="end"
android:labelFor="@id/save_new_contacts_in_this_list_switch"
android:visibility="@{viewModel.isReadOnly ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toTopOf="@id/save_new_contacts_in_this_list_switch"
app:layout_constraintBottom_toBottomOf="@id/save_new_contacts_in_this_list_switch"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/save_new_contacts_in_this_list_switch"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_style"
android:id="@+id/carddav_read_only"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="10dp"
android:text="@string/settings_contacts_carddav_read_only_label"
android:maxLines="2"
android:ellipsize="end"
android:drawableStart="@drawable/warning_circle"
android:drawablePadding="5dp"
app:drawableTint="?attr/color_main2_700"
android:visibility="@{viewModel.isReadOnly ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/save_new_contacts_in_this_list_switch"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<com.google.android.material.materialswitch.MaterialSwitch
style="@style/material_switch_style"
android:id="@+id/save_new_contacts_in_this_list_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="16dp"
android:checked="@={viewModel.storeNewContactsInIt}"
android:visibility="@{viewModel.isReadOnly ? View.GONE : View.VISIBLE}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/realm" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_style"
android:id="@+id/carddav_read_only"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="10dp"
android:text="@string/settings_contacts_carddav_read_only_label"
android:maxLines="2"
android:ellipsize="end"
android:drawableStart="@drawable/warning_circle"
android:drawablePadding="5dp"
app:drawableTint="?attr/color_main2_700"
android:visibility="@{viewModel.isReadOnly ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/save_new_contacts_in_this_list_switch"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/add_account"

File diff suppressed because it is too large Load diff

View file

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

View file

@ -28,13 +28,6 @@
android:layout_height="match_parent"
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
style="@style/icon_top_bar_button_style"
android:id="@+id/back"
@ -60,218 +53,238 @@
app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/background"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/contacts_content"
android:layout_width="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_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/back" />
app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300"
android:id="@+id/multiple_selection_count"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginStart="5dp"
android:text="@{viewModel.selectionCount, default=`0 selected`}"
android:textSize="12sp"
android:textColor="?attr/color_main2_900"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/back" />
<HorizontalScrollView
android:id="@+id/multiple_selection"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:scrollbars="none"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/multiple_selection_count">
<LinearLayout
android:layout_width="wrap_content"
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300"
android:id="@+id/multiple_selection_count"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="horizontal"
entries="@{viewModel.selection}"
layout="@{@layout/address_selected_list_cell}"
emptyPlaceholder="@{@layout/multiple_participants_selection_placeholder}"/>
android:layout_marginTop="10dp"
android:layout_marginStart="10dp"
android:text="@{viewModel.selectionCount, default=`0 selected`}"
android:textSize="12sp"
android:textColor="?attr/color_main2_900"
android:visibility="@{viewModel.multipleSelectionMode ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</HorizontalScrollView>
<HorizontalScrollView
android:id="@+id/multiple_selection"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:background="@drawable/shape_squircle_white_background"
android:scrollbars="none"
android:visibility="@{viewModel.multipleSelectionMode ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/multiple_selection_count">
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/search_bar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="20dp"
android:background="@drawable/edit_text_background"
android:drawableStart="@drawable/magnifying_glass"
android:drawablePadding="10dp"
android:drawableTint="?attr/color_main2_600"
android:hint="@string/history_call_start_search_bar_filter_hint"
android:inputType="text|textPersonName|textNoSuggestions"
android:paddingStart="15dp"
android:paddingTop="10dp"
android:paddingEnd="45dp"
android:paddingBottom="10dp"
android:text="@={viewModel.searchFilter}"
android:textSize="14sp"
app:layout_constraintHeight_min="48dp"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/multiple_selection" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
entries="@{viewModel.selection}"
layout="@{@layout/address_selected_list_cell}"
emptyPlaceholder="@{@layout/multiple_participants_selection_placeholder}"/>
<ImageView
android:id="@+id/numpad"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginEnd="15dp"
android:onClick="@{() -> viewModel.switchBetweenKeyboardAndNumpad()}"
android:contentDescription="@string/content_description_show_numpad"
android:src="@{viewModel.isNumpadVisible ? @drawable/keyboard : @drawable/numpad, default=@drawable/numpad}"
android:visibility="@{viewModel.searchFilter.length() == 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"
app:layout_constraintTop_toTopOf="@id/search_bar"
app:tint="?attr/color_main2_600" />
</HorizontalScrollView>
<ImageView
android:id="@+id/clear_field"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginEnd="15dp"
android:onClick="@{() -> viewModel.clearFilter()}"
android:src="@drawable/x"
android:contentDescription="@string/content_description_clear_filter"
android:visibility="@{viewModel.searchFilter.length() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintBottom_toBottomOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"
app:layout_constraintTop_toTopOf="@id/search_bar"
app:tint="?attr/color_main2_600" />
<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.AppCompatTextView
style="@style/default_text_style_300"
android:id="@+id/results_limit_reached"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="@string/contacts_list_search_results_limit_reached_label"
android:textColor="?attr/color_main2_600"
android:textSize="12sp"
android:maxLines="2"
android:ellipsize="end"
android:gravity="center"
android:visibility="@{viewModel.showResultsLimitReached ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/search_bar"
app:layout_constraintStart_toStartOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"/>
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/search_bar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="20dp"
android:background="@drawable/edit_text_background"
android:drawableStart="@drawable/magnifying_glass"
android:drawablePadding="10dp"
android:drawableTint="?attr/color_main2_600"
android:hint="@string/history_call_start_search_bar_filter_hint"
android:inputType="text|textPersonName|textNoSuggestions"
android:paddingStart="15dp"
android:paddingTop="10dp"
android:paddingEnd="45dp"
android:paddingBottom="10dp"
android:text="@={viewModel.searchFilter}"
android:textSize="14sp"
app:layout_constraintHeight_min="48dp"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.Group
android:id="@+id/group_call"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="group_call_icon, gradient_background, group_call_label"
android:visibility="@{viewModel.hideGroupCallButton || viewModel.multipleSelectionMode || viewModel.searchFilter.length() > 0 ? View.GONE : View.VISIBLE}" />
<ImageView
android:id="@+id/numpad"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginEnd="15dp"
android:onClick="@{() -> viewModel.switchBetweenKeyboardAndNumpad()}"
android:contentDescription="@string/content_description_show_numpad"
android:src="@{viewModel.isNumpadVisible ? @drawable/keyboard : @drawable/numpad, default=@drawable/numpad}"
android:visibility="@{viewModel.searchFilter.length() == 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"
app:layout_constraintTop_toTopOf="@id/search_bar"
app:tint="?attr/color_main2_600" />
<!-- margin start must be half the size of the group_call_icon below -->
<View
android:id="@+id/gradient_background"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="@dimen/icon_size"
android:background="@drawable/shape_gradient"
app:layout_constraintBottom_toBottomOf="@id/group_call_icon"
app:layout_constraintEnd_toEndOf="@id/group_call_label"
app:layout_constraintStart_toStartOf="@id/group_call_icon"
app:layout_constraintTop_toTopOf="@id/group_call_icon" />
<ImageView
android:id="@+id/clear_field"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginEnd="15dp"
android:onClick="@{() -> viewModel.clearFilter()}"
android:src="@drawable/x"
android:contentDescription="@string/content_description_clear_filter"
android:visibility="@{viewModel.searchFilter.length() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintBottom_toBottomOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"
app:layout_constraintTop_toTopOf="@id/search_bar"
app:tint="?attr/color_main2_600" />
<ImageView
android:id="@+id/group_call_icon"
android:onClick="@{() -> viewModel.switchToMultipleSelectionMode()}"
android:layout_width="@dimen/big_icon_size"
android:layout_height="@dimen/big_icon_size"
android:layout_marginStart="16dp"
android:layout_marginTop="20dp"
android:background="@drawable/shape_orange_round"
android:padding="10dp"
android:src="@drawable/video_conference"
android:contentDescription="@null"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/results_limit_reached"
app:tint="?attr/color_on_main" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300"
android:id="@+id/results_limit_reached"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="@string/contacts_list_search_results_limit_reached_label"
android:textColor="?attr/color_main2_600"
android:textSize="12sp"
android:maxLines="2"
android:ellipsize="end"
android:gravity="center"
android:visibility="@{viewModel.showResultsLimitReached ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/search_bar"
app:layout_constraintStart_toStartOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_800"
android:id="@+id/group_call_label"
android:onClick="@{() -> viewModel.switchToMultipleSelectionMode()}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:drawableEnd="@drawable/caret_right"
android:drawableTint="?attr/color_main2_900"
android:background="@drawable/transparent_background"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:text="@string/history_call_start_create_group_call"
android:textColor="?attr/color_main2_900"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"
android:labelFor="@id/group_call_icon"
app:layout_constraintBottom_toBottomOf="@id/group_call_icon"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/group_call_icon"
app:layout_constraintTop_toTopOf="@id/group_call_icon" />
<androidx.constraintlayout.widget.Group
android:id="@+id/group_call"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="group_call_icon, gradient_background, group_call_label"
android:visibility="@{viewModel.hideGroupCallButton || viewModel.multipleSelectionMode || viewModel.searchFilter.length() > 0 ? View.GONE : View.VISIBLE}" />
<ImageView
android:id="@+id/no_contacts_nor_suggestion_image"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:src="@drawable/illu"
android:contentDescription="@null"
android:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_max="200dp"
app:layout_constraintVertical_bias="0.3"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/group_call_icon"
app:layout_constraintBottom_toBottomOf="parent" />
<!-- margin start must be half the size of the group_call_icon below -->
<View
android:id="@+id/gradient_background"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="@dimen/icon_size"
android:background="@drawable/shape_gradient"
app:layout_constraintBottom_toBottomOf="@id/group_call_icon"
app:layout_constraintEnd_toEndOf="@id/group_call_label"
app:layout_constraintStart_toStartOf="@id/group_call_icon"
app:layout_constraintTop_toTopOf="@id/group_call_icon" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:id="@+id/no_contacts_nor_suggestion_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/history_call_start_no_suggestion_nor_contact"
android:gravity="center"
android:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/no_contacts_nor_suggestion_image" />
<ImageView
android:id="@+id/group_call_icon"
android:onClick="@{() -> viewModel.switchToMultipleSelectionMode()}"
android:layout_width="@dimen/big_icon_size"
android:layout_height="@dimen/big_icon_size"
android:layout_marginTop="20dp"
android:layout_marginStart="10dp"
android:background="@drawable/shape_orange_round"
android:padding="10dp"
android:src="@drawable/video_conference"
android:contentDescription="@null"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/results_limit_reached"
app:tint="?attr/color_on_main" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/contacts_and_suggestions_list"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="8dp"
android:visibility="@{viewModel.isEmpty ? View.GONE : View.VISIBLE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/group_call_icon"
app:layout_constraintBottom_toBottomOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_800"
android:id="@+id/group_call_label"
android:onClick="@{() -> viewModel.switchToMultipleSelectionMode()}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginEnd="10dp"
android:drawableEnd="@drawable/caret_right"
android:drawableTint="?attr/color_main2_900"
android:background="@drawable/transparent_background"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:text="@string/history_call_start_create_group_call"
android:textColor="?attr/color_main2_900"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"
android:labelFor="@id/group_call_icon"
app:layout_constraintBottom_toBottomOf="@id/group_call_icon"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/group_call_icon"
app:layout_constraintTop_toTopOf="@id/group_call_icon" />
<ImageView
android:id="@+id/no_contacts_nor_suggestion_image"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:src="@drawable/illu"
android:contentDescription="@null"
android:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_max="200dp"
app:layout_constraintVertical_bias="0.3"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/group_call_icon"
app:layout_constraintBottom_toBottomOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:id="@+id/no_contacts_nor_suggestion_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/history_call_start_no_suggestion_nor_contact"
android:gravity="center"
android:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/no_contacts_nor_suggestion_image" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/contacts_and_suggestions_list"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="10dp"
android:visibility="@{viewModel.isEmpty ? View.INVISIBLE : View.VISIBLE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/group_call_icon"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/fetch_in_progress"
@ -282,7 +295,7 @@
app:indicatorColor="?attr/color_main1_500"
app:layout_constraintStart_toStartOf="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" />
<com.google.android.material.floatingactionbutton.FloatingActionButton

View file

@ -25,13 +25,6 @@
android:layout_height="match_parent"
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
style="@style/icon_top_bar_button_style"
android:id="@+id/back"
@ -56,204 +49,224 @@
app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/background"
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/contacts_content"
android:layout_width="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_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/back" />
app:layout_constraintEnd_toEndOf="parent">
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300"
android:id="@+id/multiple_selection_count"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginStart="5dp"
android:text="@{viewModel.selectionCount, default=`0 selected`}"
android:textSize="12sp"
android:textColor="?attr/color_main2_900"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/back" />
<HorizontalScrollView
android:id="@+id/multiple_selection"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:scrollbars="none"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/multiple_selection_count">
<LinearLayout
android:layout_width="wrap_content"
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300"
android:id="@+id/multiple_selection_count"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="horizontal"
entries="@{viewModel.selection}"
layout="@{@layout/address_selected_list_cell}"
emptyPlaceholder="@{@layout/multiple_participants_selection_placeholder}"/>
android:layout_marginTop="10dp"
android:layout_marginStart="10dp"
android:text="@{viewModel.selectionCount, default=`0 selected`}"
android:textSize="12sp"
android:textColor="?attr/color_main2_900"
android:visibility="@{viewModel.multipleSelectionMode ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</HorizontalScrollView>
<HorizontalScrollView
android:id="@+id/multiple_selection"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:background="@drawable/shape_squircle_white_background"
android:scrollbars="none"
android:visibility="@{viewModel.multipleSelectionMode ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/multiple_selection_count">
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/search_bar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="20dp"
android:background="@drawable/edit_text_background"
android:drawableStart="@drawable/magnifying_glass"
android:drawablePadding="10dp"
android:drawableTint="?attr/color_main2_600"
android:hint="@string/new_conversation_search_bar_filter_hint"
android:inputType="text|textPersonName|textNoSuggestions"
android:paddingStart="15dp"
android:paddingTop="10dp"
android:paddingEnd="15dp"
android:paddingBottom="10dp"
android:text="@={viewModel.searchFilter}"
android:textSize="14sp"
app:layout_constraintHeight_min="48dp"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/multiple_selection" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
entries="@{viewModel.selection}"
layout="@{@layout/address_selected_list_cell}"
emptyPlaceholder="@{@layout/multiple_participants_selection_placeholder}"/>
<ImageView
android:id="@+id/clear_field"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginEnd="15dp"
android:onClick="@{() -> viewModel.clearFilter()}"
android:src="@drawable/x"
android:contentDescription="@string/content_description_clear_filter"
android:visibility="@{viewModel.searchFilter.length() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintBottom_toBottomOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"
app:layout_constraintTop_toTopOf="@id/search_bar"
app:tint="?attr/color_main2_600" />
</HorizontalScrollView>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300"
android:id="@+id/results_limit_reached"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="@string/contacts_list_search_results_limit_reached_label"
android:textColor="?attr/color_main2_600"
android:textSize="12sp"
android:maxLines="2"
android:ellipsize="end"
android:gravity="center"
android:visibility="@{viewModel.showResultsLimitReached ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/search_bar"
app:layout_constraintStart_toStartOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"/>
<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.constraintlayout.widget.Group
android:id="@+id/group_chat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="group_chat_icon, gradient_background, group_chat_label"
android:visibility="@{viewModel.hideGroupChatButton || viewModel.multipleSelectionMode || viewModel.searchFilter.length() > 0 ? View.GONE : View.VISIBLE}" />
<androidx.appcompat.widget.AppCompatEditText
style="@style/default_text_style"
android:id="@+id/search_bar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="20dp"
android:background="@drawable/edit_text_background"
android:drawableStart="@drawable/magnifying_glass"
android:drawablePadding="10dp"
android:drawableTint="?attr/color_main2_600"
android:hint="@string/new_conversation_search_bar_filter_hint"
android:inputType="text|textPersonName|textNoSuggestions"
android:paddingStart="15dp"
android:paddingTop="10dp"
android:paddingEnd="15dp"
android:paddingBottom="10dp"
android:text="@={viewModel.searchFilter}"
android:textSize="14sp"
app:layout_constraintHeight_min="48dp"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- margin start must be half the size of the group_call_icon below -->
<View
android:id="@+id/gradient_background"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="@dimen/icon_size"
android:background="@drawable/shape_gradient"
app:layout_constraintBottom_toBottomOf="@id/group_chat_icon"
app:layout_constraintEnd_toEndOf="@id/group_chat_label"
app:layout_constraintStart_toStartOf="@id/group_chat_icon"
app:layout_constraintTop_toTopOf="@id/group_chat_icon" />
<ImageView
android:id="@+id/clear_field"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginEnd="15dp"
android:onClick="@{() -> viewModel.clearFilter()}"
android:src="@drawable/x"
android:contentDescription="@string/content_description_clear_filter"
android:visibility="@{viewModel.searchFilter.length() > 0 ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintBottom_toBottomOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"
app:layout_constraintTop_toTopOf="@id/search_bar"
app:tint="?attr/color_main2_600" />
<ImageView
android:id="@+id/group_chat_icon"
android:onClick="@{() -> viewModel.switchToMultipleSelectionMode()}"
android:layout_width="@dimen/big_icon_size"
android:layout_height="@dimen/big_icon_size"
android:layout_marginStart="16dp"
android:layout_marginTop="20dp"
android:background="@drawable/shape_orange_round"
android:padding="10dp"
android:src="@drawable/users_three"
android:contentDescription="@null"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/results_limit_reached"
app:tint="?attr/color_on_main" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_300"
android:id="@+id/results_limit_reached"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="@string/contacts_list_search_results_limit_reached_label"
android:textColor="?attr/color_main2_600"
android:textSize="12sp"
android:maxLines="2"
android:ellipsize="end"
android:gravity="center"
android:visibility="@{viewModel.showResultsLimitReached ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintTop_toBottomOf="@id/search_bar"
app:layout_constraintStart_toStartOf="@id/search_bar"
app:layout_constraintEnd_toEndOf="@id/search_bar"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_800"
android:id="@+id/group_chat_label"
android:onClick="@{() -> viewModel.switchToMultipleSelectionMode()}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:drawableEnd="@drawable/caret_right"
android:drawableTint="?attr/color_main2_900"
android:background="@drawable/transparent_background"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:text="@string/new_conversation_create_group"
android:textColor="?attr/color_main2_900"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"
android:labelFor="@id/group_chat_icon"
app:layout_constraintBottom_toBottomOf="@id/group_chat_icon"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/group_chat_icon"
app:layout_constraintTop_toTopOf="@id/group_chat_icon" />
<androidx.constraintlayout.widget.Group
android:id="@+id/group_chat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="group_chat_icon, gradient_background, group_chat_label"
android:visibility="@{viewModel.hideGroupChatButton || viewModel.multipleSelectionMode || viewModel.searchFilter.length() > 0 ? View.GONE : View.VISIBLE}" />
<ImageView
android:id="@+id/no_contact_image"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:src="@drawable/illu"
android:contentDescription="@null"
android:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_max="200dp"
app:layout_constraintVertical_bias="0.3"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/group_chat_icon"
app:layout_constraintBottom_toTopOf="@id/create_group" />
<!-- margin start must be half the size of the group_call_icon below -->
<View
android:id="@+id/gradient_background"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="@dimen/icon_size"
android:background="@drawable/shape_gradient"
app:layout_constraintBottom_toBottomOf="@id/group_chat_icon"
app:layout_constraintEnd_toEndOf="@id/group_chat_label"
app:layout_constraintStart_toStartOf="@id/group_chat_icon"
app:layout_constraintTop_toTopOf="@id/group_chat_icon" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:id="@+id/no_contact_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
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:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/no_contact_image" />
<ImageView
android:id="@+id/group_chat_icon"
android:onClick="@{() -> viewModel.switchToMultipleSelectionMode()}"
android:layout_width="@dimen/big_icon_size"
android:layout_height="@dimen/big_icon_size"
android:layout_marginTop="20dp"
android:layout_marginStart="10dp"
android:background="@drawable/shape_orange_round"
android:padding="10dp"
android:src="@drawable/users_three"
android:contentDescription="@null"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/results_limit_reached"
app:tint="?attr/color_on_main" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/contacts_list"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="8dp"
android:visibility="@{viewModel.isEmpty ? View.GONE : View.VISIBLE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/group_chat_icon"
app:layout_constraintBottom_toBottomOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/default_text_style_800"
android:id="@+id/group_chat_label"
android:onClick="@{() -> viewModel.switchToMultipleSelectionMode()}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginEnd="10dp"
android:drawableEnd="@drawable/caret_right"
android:drawableTint="?attr/color_main2_900"
android:background="@drawable/transparent_background"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:text="@string/new_conversation_create_group"
android:textColor="?attr/color_main2_900"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"
android:labelFor="@id/group_chat_icon"
app:layout_constraintBottom_toBottomOf="@id/group_chat_icon"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/group_chat_icon"
app:layout_constraintTop_toTopOf="@id/group_chat_icon" />
<ImageView
android:id="@+id/no_contact_image"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:src="@drawable/illu"
android:contentDescription="@null"
android:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_max="200dp"
app:layout_constraintVertical_bias="0.3"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/group_chat_icon"
app:layout_constraintBottom_toBottomOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:id="@+id/no_contact_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
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:visibility="@{viewModel.isEmpty ? View.VISIBLE : View.GONE}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/no_contact_image" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/contacts_list"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="10dp"
android:visibility="@{viewModel.isEmpty ? View.INVISIBLE : View.VISIBLE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/group_chat_icon"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/fetch_in_progress"
@ -264,7 +277,7 @@
app:indicatorColor="?attr/color_main1_500"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/group_chat_icon"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" />
<com.google.android.material.floatingactionbutton.FloatingActionButton

View file

@ -5,8 +5,10 @@
<dimen name="call_main_actions_menu_height">110dp</dimen>
<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="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>
</resources>

View file

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

View file

@ -49,6 +49,7 @@
<dimen name="top_bar_shadow_height">54dp</dimen>
<dimen name="top_bar_height">55dp</dimen>
<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_text_max_width">350dp</dimen>
<dimen name="button_max_width">400dp</dimen>