Fixed top header in call/conference for both short/long name/title

This commit is contained in:
Sylvain Berfini 2024-02-02 16:19:48 +01:00
parent 25a0f4b65a
commit 01361bfcaa
2 changed files with 83 additions and 70 deletions

View file

@ -122,50 +122,82 @@
style="@style/call_header_style"
android:id="@+id/conference_subject"
android:layout_width="wrap_content"
android:layout_height="@dimen/call_top_bar_text_height"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:text="@{conferenceViewModel.subject, default=`Meeting with John Doe`}"
android:maxLines="1"
android:ellipsize="end"
app:layout_constrainedWidth="true"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent"/>
app:layout_constraintEnd_toStartOf="@id/separator"
app:layout_constraintTop_toTopOf="@id/back"
app:layout_constraintBottom_toBottomOf="@id/back"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/call_header_style"
android:id="@+id/separator"
android:layout_width="wrap_content"
android:layout_height="@dimen/call_top_bar_text_height"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:text="@string/vertical_separator"
app:layout_constraintStart_toEndOf="@id/conference_subject"
app:layout_constraintEnd_toStartOf="@id/chronometer"
app:layout_constraintTop_toTopOf="@id/conference_subject"/>
<Chronometer
style="@style/call_header_style"
android:id="@+id/chronometer"
android:layout_width="wrap_content"
android:layout_height="@dimen/call_top_bar_text_height"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:visibility="@{viewModel.isPaused || viewModel.isPausedByRemote ? View.GONE : View.VISIBLE}"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toEndOf="@id/separator"
app:layout_constraintEnd_toStartOf="@id/switch_camera"
app:layout_constraintEnd_toStartOf="@id/paused_call_header"
app:layout_constraintTop_toTopOf="@id/conference_subject"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/call_header_style"
android:id="@+id/paused_call_header"
android:layout_width="wrap_content"
android:layout_height="@dimen/call_top_bar_text_height"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:text="@{viewModel.isPaused ? @string/call_state_paused : @string/call_state_paused_by_remote, default=@string/call_state_paused}"
android:visibility="@{viewModel.isPaused || viewModel.isPausedByRemote ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toEndOf="@id/separator"
app:layout_constraintStart_toEndOf="@id/chronometer"
app:layout_constraintEnd_toStartOf="@id/switch_camera"
app:layout_constraintTop_toTopOf="@id/conference_subject"/>
<ImageView
android:id="@+id/switch_camera"
android:onClick="@{() -> viewModel.switchCamera()}"
android:layout_width="@dimen/call_top_bar_info_height"
android:layout_height="@dimen/call_top_bar_info_height"
android:padding="10dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:src="@drawable/camera_rotate"
android:visibility="@{!viewModel.fullScreenMode &amp;&amp; !viewModel.pipMode &amp;&amp; viewModel.isVideoEnabled &amp;&amp; viewModel.showSwitchCamera ? View.VISIBLE : View.GONE}"
app:tint="@color/white"
app:layout_constraintTop_toTopOf="@id/conference_subject"
app:layout_constraintBottom_toBottomOf="@id/conference_subject"
app:layout_constraintEnd_toStartOf="@+id/stats" />
<ImageView
android:id="@+id/stats"
android:onClick="@{callStatisticsClickListener}"
android:layout_width="@dimen/call_top_bar_info_height"
android:layout_height="@dimen/call_top_bar_info_height"
android:padding="10dp"
android:src="@drawable/cell_signal_full"
android:visibility="@{!viewModel.fullScreenMode &amp;&amp; !viewModel.pipMode ? View.VISIBLE : View.GONE}"
app:tint="@color/white"
app:layout_constraintTop_toTopOf="@id/conference_subject"
app:layout_constraintBottom_toBottomOf="@id/conference_subject"
app:layout_constraintEnd_toEndOf="parent" />
<ImageView
style="@style/default_text_style"
android:id="@+id/media_encryption_icon"
@ -199,33 +231,6 @@
app:layout_constraintStart_toEndOf="@id/media_encryption_icon"
app:layout_constraintTop_toBottomOf="@id/conference_subject"/>
<ImageView
android:id="@+id/stats"
android:onClick="@{callStatisticsClickListener}"
android:layout_width="@dimen/call_top_bar_info_height"
android:layout_height="@dimen/call_top_bar_info_height"
android:padding="10dp"
android:src="@drawable/cell_signal_full"
android:visibility="@{!viewModel.fullScreenMode &amp;&amp; !viewModel.pipMode ? View.VISIBLE : View.GONE}"
app:tint="@color/white"
app:layout_constraintTop_toTopOf="@id/conference_subject"
app:layout_constraintBottom_toBottomOf="@id/conference_subject"
app:layout_constraintEnd_toEndOf="parent" />
<ImageView
android:id="@+id/switch_camera"
android:onClick="@{() -> viewModel.switchCamera()}"
android:layout_width="@dimen/call_top_bar_info_height"
android:layout_height="@dimen/call_top_bar_info_height"
android:padding="10dp"
android:layout_marginEnd="5dp"
android:src="@drawable/camera_rotate"
android:visibility="@{!viewModel.fullScreenMode &amp;&amp; !viewModel.pipMode &amp;&amp; viewModel.isVideoEnabled &amp;&amp; viewModel.showSwitchCamera ? View.VISIBLE : View.GONE}"
app:tint="@color/white"
app:layout_constraintTop_toTopOf="@id/conference_subject"
app:layout_constraintBottom_toBottomOf="@id/conference_subject"
app:layout_constraintEnd_toStartOf="@+id/stats" />
<ImageView
android:id="@+id/recording"
android:layout_width="@dimen/icon_size"

View file

@ -144,7 +144,13 @@
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:text="@{viewModel.displayedName, default=`John Doe`}"
android:maxLines="1"
android:ellipsize="end"
app:layout_constrainedWidth="true"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintEnd_toStartOf="@id/separator"
app:layout_constraintTop_toTopOf="@id/back"
app:layout_constraintBottom_toBottomOf="@id/back"/>
@ -152,36 +158,65 @@
style="@style/call_header_style"
android:id="@+id/separator"
android:layout_width="wrap_content"
android:layout_height="@dimen/call_top_bar_text_height"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:text="@string/vertical_separator"
app:layout_constraintTop_toTopOf="@id/name"
app:layout_constraintStart_toEndOf="@id/name"
app:layout_constraintTop_toTopOf="@id/name"/>
app:layout_constraintEnd_toStartOf="@id/chronometer"/>
<Chronometer
style="@style/call_header_style"
android:id="@+id/chronometer"
android:layout_width="wrap_content"
android:layout_height="@dimen/call_top_bar_text_height"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:visibility="@{viewModel.isPaused || viewModel.isPausedByRemote ? View.GONE : View.VISIBLE}"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toEndOf="@id/separator"
app:layout_constraintEnd_toStartOf="@id/switch_camera"
app:layout_constraintEnd_toStartOf="@id/paused_call_header"
app:layout_constraintTop_toTopOf="@id/name"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/call_header_style"
android:id="@+id/paused_call_header"
android:layout_width="wrap_content"
android:layout_height="@dimen/call_top_bar_text_height"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:text="@{viewModel.isPaused ? @string/call_state_paused : @string/call_state_paused_by_remote, default=@string/call_state_paused}"
android:visibility="@{viewModel.isPaused || viewModel.isPausedByRemote ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toEndOf="@id/separator"
app:layout_constraintStart_toEndOf="@id/chronometer"
app:layout_constraintEnd_toStartOf="@id/switch_camera"
app:layout_constraintTop_toTopOf="@id/name"/>
<ImageView
android:onClick="@{() -> viewModel.switchCamera()}"
android:id="@+id/switch_camera"
android:layout_width="@dimen/call_top_bar_info_height"
android:layout_height="@dimen/call_top_bar_info_height"
android:padding="10dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:src="@drawable/camera_rotate"
android:visibility="@{!viewModel.fullScreenMode &amp;&amp; !viewModel.pipMode &amp;&amp; viewModel.isVideoEnabled &amp;&amp; viewModel.showSwitchCamera ? View.VISIBLE : View.GONE}"
app:tint="@color/white"
app:layout_constraintTop_toTopOf="@id/back"
app:layout_constraintBottom_toBottomOf="@id/back"
app:layout_constraintEnd_toStartOf="@+id/stats" />
<ImageView
android:id="@+id/stats"
android:onClick="@{callStatisticsClickListener}"
android:layout_width="@dimen/call_top_bar_info_height"
android:layout_height="@dimen/call_top_bar_info_height"
android:padding="10dp"
android:src="@drawable/cell_signal_full"
android:visibility="@{!viewModel.fullScreenMode &amp;&amp; !viewModel.pipMode ? View.VISIBLE : View.GONE}"
app:tint="@color/white"
app:layout_constraintTop_toTopOf="@id/back"
app:layout_constraintBottom_toBottomOf="@id/back"
app:layout_constraintEnd_toEndOf="parent" />
<ImageView
style="@style/default_text_style"
android:id="@+id/media_encryption_icon"
@ -215,33 +250,6 @@
app:layout_constraintStart_toEndOf="@id/media_encryption_icon"
app:layout_constraintTop_toBottomOf="@id/name"/>
<ImageView
android:id="@+id/stats"
android:onClick="@{callStatisticsClickListener}"
android:layout_width="@dimen/call_top_bar_info_height"
android:layout_height="@dimen/call_top_bar_info_height"
android:padding="10dp"
android:src="@drawable/cell_signal_full"
android:visibility="@{!viewModel.fullScreenMode &amp;&amp; !viewModel.pipMode ? View.VISIBLE : View.GONE}"
app:tint="@color/white"
app:layout_constraintTop_toTopOf="@id/back"
app:layout_constraintBottom_toBottomOf="@id/back"
app:layout_constraintEnd_toEndOf="parent" />
<ImageView
android:onClick="@{() -> viewModel.switchCamera()}"
android:id="@+id/switch_camera"
android:layout_width="@dimen/call_top_bar_info_height"
android:layout_height="@dimen/call_top_bar_info_height"
android:padding="10dp"
android:layout_marginEnd="5dp"
android:src="@drawable/camera_rotate"
android:visibility="@{!viewModel.fullScreenMode &amp;&amp; !viewModel.pipMode &amp;&amp; viewModel.isVideoEnabled &amp;&amp; viewModel.showSwitchCamera ? View.VISIBLE : View.GONE}"
app:tint="@color/white"
app:layout_constraintTop_toTopOf="@id/back"
app:layout_constraintBottom_toBottomOf="@id/back"
app:layout_constraintEnd_toStartOf="@+id/stats" />
<org.linphone.ui.call.view.RoundCornersTextureView
android:id="@+id/local_preview_video_surface"
android:layout_width="wrap_content"