Updated history cell layout

This commit is contained in:
Sylvain Berfini 2022-03-30 17:32:13 +02:00
parent 2e327ac30d
commit e165e73b0e

View file

@ -4,107 +4,116 @@
xmlns:tools="http://schemas.android.com/tools"> xmlns:tools="http://schemas.android.com/tools">
<data> <data>
<import type="android.view.View"/>
<import type="android.view.View" />
<variable <variable
name="clickListener" name="clickListener"
type="android.view.View.OnClickListener"/> type="android.view.View.OnClickListener" />
<variable <variable
name="longClickListener" name="longClickListener"
type="android.view.View.OnLongClickListener"/> type="android.view.View.OnLongClickListener" />
<variable <variable
name="detailsClickListener" name="detailsClickListener"
type="android.view.View.OnClickListener"/> type="android.view.View.OnClickListener" />
<variable <variable
name="position" name="position"
type="Integer"/> type="Integer" />
<variable <variable
name="viewModel" name="viewModel"
type="org.linphone.activities.main.history.viewmodels.CallLogViewModel" /> type="org.linphone.activities.main.history.viewmodels.CallLogViewModel" />
<variable <variable
name="selectionListViewModel" name="selectionListViewModel"
type="org.linphone.activities.main.viewmodels.ListTopBarViewModel" /> type="org.linphone.activities.main.viewmodels.ListTopBarViewModel" />
<variable <variable
name="groupCount" name="groupCount"
type="Integer"/> type="Integer" />
</data> </data>
<RelativeLayout <RelativeLayout
android:onClick="@{clickListener}"
android:onLongClick="@{longClickListener}"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="50dp" android:layout_height="50dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:background="?attr/backgroundColor" android:background="?attr/backgroundColor"
android:gravity="center_vertical"> android:gravity="center_vertical"
android:onClick="@{clickListener}"
android:onLongClick="@{longClickListener}"
android:paddingTop="5dp"
android:paddingBottom="5dp">
<LinearLayout <LinearLayout
android:id="@+id/right" android:id="@+id/right"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="horizontal" android:layout_alignParentRight="true"
android:layout_marginLeft="5dp" android:layout_marginLeft="5dp"
android:layout_marginRight="10dp" android:layout_marginRight="10dp"
android:layout_alignParentRight="true"> android:orientation="horizontal">
<ImageView <ImageView
android:onClick="@{detailsClickListener}"
android:enabled="@{!selectionListViewModel.isEditionEnabled}"
android:contentDescription="@string/content_description_show_call_details"
android:layout_width="40dp" android:layout_width="40dp"
android:layout_height="40dp" android:layout_height="40dp"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:background="@drawable/history_detail_background" android:background="@drawable/history_detail_background"
android:contentDescription="@string/content_description_show_call_details"
android:enabled="@{!selectionListViewModel.isEditionEnabled}"
android:onClick="@{detailsClickListener}"
android:src="@drawable/list_detail" /> android:src="@drawable/list_detail" />
<CheckBox <CheckBox
android:onClick="@{() -> selectionListViewModel.onToggleSelect(position)}"
android:visibility="@{selectionListViewModel.isEditionEnabled ? View.VISIBLE : View.GONE, default=gone}"
android:checked="@{selectionListViewModel.selectedItems.contains(position)}"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:checked="@{selectionListViewModel.selectedItems.contains(position)}"
android:onClick="@{() -> selectionListViewModel.onToggleSelect(position)}"
android:paddingLeft="5dp" android:paddingLeft="5dp"
android:paddingRight="5dp" /> android:paddingRight="5dp"
android:visibility="@{selectionListViewModel.isEditionEnabled ? View.VISIBLE : View.GONE, default=gone}" />
</LinearLayout> </LinearLayout>
<RelativeLayout <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_toLeftOf="@id/right"
android:layout_marginLeft="10dp" android:layout_marginLeft="10dp"
android:layout_toLeftOf="@id/right"
android:gravity="center_vertical"> android:gravity="center_vertical">
<ImageView
android:id="@+id/icon"
android:src="@{viewModel.statusIconResource}"
android:contentDescription="@{viewModel.iconContentDescription}"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:adjustViewBounds="true"
android:layout_marginRight="10dp"
android:paddingTop="7dp"
android:paddingBottom="7dp"/>
<org.linphone.contact.ContactAvatarView <org.linphone.contact.ContactAvatarView
android:id="@+id/avatar" android:id="@+id/avatar"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_toRightOf="@id/icon" android:layout_alignParentLeft="true"
android:gravity="center" android:gravity="center"
app:data="@{viewModel}" app:data="@{viewModel}"
tools:layout="@layout/contact_avatar" /> tools:layout="@layout/contact_avatar" />
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginRight="10dp"
android:layout_toRightOf="@id/avatar"
android:adjustViewBounds="true"
android:contentDescription="@{viewModel.iconContentDescription}"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:src="@{viewModel.statusIconResource, default=@drawable/call_status_outgoing}"
android:visibility="@{viewModel.isConferenceCallLog ? View.GONE : View.VISIBLE}" />
<org.linphone.views.MarqueeTextView <org.linphone.views.MarqueeTextView
android:id="@+id/sip_uri" android:id="@+id/sip_uri"
android:text="@{(viewModel.isConferenceCallLog ? viewModel.conferenceSubject : viewModel.contact.fullName ?? viewModel.displayName) + (groupCount > 1 ? ` (` + groupCount + `)` : ``)}"
style="@style/contact_name_list_cell_font" style="@style/contact_name_list_cell_font"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_toRightOf="@id/avatar" android:layout_toRightOf="@id/icon"
android:gravity="center_vertical" android:gravity="center_vertical"
android:singleLine="true" /> android:singleLine="true"
android:text="@{(viewModel.isConferenceCallLog ? viewModel.conferenceSubject : viewModel.contact.fullName ?? viewModel.displayName) + (groupCount > 1 ? ` (` + groupCount + `)` : ``), default=`Frodo Baggins (6)`}" />
</RelativeLayout> </RelativeLayout>