diff --git a/app/src/main/java/org/linphone/activities/voip/fragments/ConferenceCallFragment.kt b/app/src/main/java/org/linphone/activities/voip/fragments/ConferenceCallFragment.kt index c689f7d1d..2312912aa 100644 --- a/app/src/main/java/org/linphone/activities/voip/fragments/ConferenceCallFragment.kt +++ b/app/src/main/java/org/linphone/activities/voip/fragments/ConferenceCallFragment.kt @@ -83,7 +83,7 @@ class ConferenceCallFragment : GenericFragment(inflated) binding?.lifecycleOwner = viewLifecycleOwner - startTimer(R.id.active_speaker_conference_timer) + startTimer(R.id.active_conference_timer) } binding.stubbedConferenceGridLayout.setOnInflateListener { _, inflated -> Log.i("[Conference Call] Mosaic conference layout inflated") val binding = DataBindingUtil.bind(inflated) binding?.lifecycleOwner = viewLifecycleOwner - startTimer(R.id.grid_conference_timer) + startTimer(R.id.active_conference_timer) } binding.stubbedConferenceAudioOnlyLayout.setOnInflateListener { _, inflated -> Log.i("[Conference Call] Audio only conference layout inflated") val binding = DataBindingUtil.bind(inflated) binding?.lifecycleOwner = viewLifecycleOwner - startTimer(R.id.audio_only_conference_timer) + startTimer(R.id.active_conference_timer) } binding.stubbedAudioRoutes.setOnInflateListener { _, inflated -> diff --git a/app/src/main/res/layout-land/voip_conference_grid.xml b/app/src/main/res/layout-land/voip_conference_grid.xml index bad39308f..8c549f70a 100644 --- a/app/src/main/res/layout-land/voip_conference_grid.xml +++ b/app/src/main/res/layout-land/voip_conference_grid.xml @@ -3,13 +3,17 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> + + + + @@ -18,8 +22,8 @@ + android:layout_margin="@{controlsViewModel.fullScreenMode || controlsViewModel.pipMode ? @dimen/voip_remote_margin_full_screen : @dimen/voip_remote_margin, default=@dimen/voip_remote_margin}" + android:visibility="@{inflatedVisibility}"> - + app:conferenceViewModel="@{conferenceViewModel}" /> - - - - - - - - - - - - - - - - - - - - - + android:visibility="@{conferenceViewModel.isRemotelyRecorded ? View.VISIBLE : View.GONE, default=gone}" /> + app:layout="@{@layout/voip_conference_participant_remote_grid}" /> diff --git a/app/src/main/res/layout/voip_conference_active_speaker.xml b/app/src/main/res/layout/voip_conference_active_speaker.xml index ade129ef1..05a3ea9d2 100644 --- a/app/src/main/res/layout/voip_conference_active_speaker.xml +++ b/app/src/main/res/layout/voip_conference_active_speaker.xml @@ -3,13 +3,17 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> + + + + @@ -18,131 +22,63 @@ + android:layout_margin="@{controlsViewModel.fullScreenMode || controlsViewModel.pipMode ? @dimen/voip_remote_margin_full_screen : @dimen/voip_remote_margin, default=@dimen/voip_remote_margin}" + android:visibility="@{inflatedVisibility}"> - + app:conferenceViewModel="@{conferenceViewModel}" /> - - - - - - - - - - - - - - - - - - - - - + android:visibility="@{conferenceViewModel.isRemotelyRecorded ? View.VISIBLE : View.GONE, default=gone}" /> + android:layout_marginTop="10dp" + android:background="@drawable/shape_remote_background" + android:onClick="@{() -> controlsViewModel.toggleFullScreen()}"> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHeight_max="200dp" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + android:layout_marginBottom="10dp" + android:text="@{conferenceViewModel.speakingParticipant.contact.fullName ?? conferenceViewModel.speakingParticipant.displayName}" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" /> @@ -170,8 +106,8 @@ android:id="@+id/scroll_indicator" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_centerHorizontal="true" android:layout_alignParentBottom="true" + android:layout_centerHorizontal="true" android:layout_marginTop="5dp" android:layout_marginBottom="5dp" app:dotColor="@color/voip_gray_background" diff --git a/app/src/main/res/layout/voip_conference_audio_only.xml b/app/src/main/res/layout/voip_conference_audio_only.xml index f20cd1d00..1242bc214 100644 --- a/app/src/main/res/layout/voip_conference_audio_only.xml +++ b/app/src/main/res/layout/voip_conference_audio_only.xml @@ -4,13 +4,17 @@ xmlns:tools="http://schemas.android.com/tools"> + + + + @@ -19,120 +23,53 @@ + android:layout_margin="@{controlsViewModel.fullScreenMode || controlsViewModel.pipMode ? @dimen/voip_remote_margin_full_screen : @dimen/voip_remote_margin, default=@dimen/voip_remote_margin}" + android:visibility="@{inflatedVisibility}"> - + app:conferenceViewModel="@{conferenceViewModel}" /> - - - - - - - - - - - - - - - - - - - - - + android:layout_margin="10dp" + android:visibility="@{conferenceViewModel.isRemotelyRecorded ? View.VISIBLE : View.GONE, default=gone}" /> + android:layout_marginTop="10dp" + android:background="@drawable/shape_remote_background"> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHeight_max="200dp" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + android:layout_marginBottom="10dp" + android:text="@{conferenceViewModel.speakingParticipant.contact.fullName ?? conferenceViewModel.speakingParticipant.displayName}" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" /> diff --git a/app/src/main/res/layout/voip_conference_grid.xml b/app/src/main/res/layout/voip_conference_grid.xml index bad39308f..8c549f70a 100644 --- a/app/src/main/res/layout/voip_conference_grid.xml +++ b/app/src/main/res/layout/voip_conference_grid.xml @@ -3,13 +3,17 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> + + + + @@ -18,8 +22,8 @@ + android:layout_margin="@{controlsViewModel.fullScreenMode || controlsViewModel.pipMode ? @dimen/voip_remote_margin_full_screen : @dimen/voip_remote_margin, default=@dimen/voip_remote_margin}" + android:visibility="@{inflatedVisibility}"> - + app:conferenceViewModel="@{conferenceViewModel}" /> - - - - - - - - - - - - - - - - - - - - - + android:visibility="@{conferenceViewModel.isRemotelyRecorded ? View.VISIBLE : View.GONE, default=gone}" /> + app:layout="@{@layout/voip_conference_participant_remote_grid}" /> diff --git a/app/src/main/res/layout/voip_conference_header.xml b/app/src/main/res/layout/voip_conference_header.xml new file mode 100644 index 000000000..5416788ff --- /dev/null +++ b/app/src/main/res/layout/voip_conference_header.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/voip_remote_recording.xml b/app/src/main/res/layout/voip_remote_recording.xml new file mode 100644 index 000000000..3ed694958 --- /dev/null +++ b/app/src/main/res/layout/voip_remote_recording.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/voip_single_call_fragment.xml b/app/src/main/res/layout/voip_single_call_fragment.xml index 107c0fd14..65a7128ed 100644 --- a/app/src/main/res/layout/voip_single_call_fragment.xml +++ b/app/src/main/res/layout/voip_single_call_fragment.xml @@ -4,17 +4,23 @@ xmlns:bind="http://schemas.android.com/tools"> + + + + + + @@ -31,293 +37,262 @@ android:layout_height="match_parent" android:background="@{controlsViewModel.fullScreenMode ? @color/black_color : @color/transparent_color}"> - + + + app:layout_constraintTop_toTopOf="parent" /> - + - + - - - - - - - - - - - - - - - - - + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/remote_address" /> + app:constraint_referenced_ids="remote_address,remotely_recorded" /> - + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/call_header_barrier" /> - + - + - + - + - - - + + android:onTouch="@{controlsViewModel.previewTouchListener}" + android:visibility="@{controlsViewModel.isVideoEnabled && !callsViewModel.currentCallData.isRemotelyPaused ? View.VISIBLE : View.GONE}" + app:layout_constraintBottom_toTopOf="@id/primary_buttons" + app:layout_constraintEnd_toEndOf="@id/background"> + android:visibility="@{controlsViewModel.isSwitchCameraAvailable && !controlsViewModel.pipMode ? View.VISIBLE : View.GONE, default=gone}" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" /> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintWidth_max="@dimen/voip_buttons_max_width" /> + app:layout_constraintBottom_toTopOf="@id/primary_buttons" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="parent" /> + android:background="@color/voip_translucent_popup_background" + android:onClick="@{() -> controlsViewModel.hideExtraButtons(false)}" + android:visibility="@{controlsViewModel.showExtras ? View.VISIBLE : View.GONE, default=gone}" /> + app:conferenceViewModel="@{conferenceViewModel}" + app:controlsViewModel="@{controlsViewModel}" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintWidth_max="@dimen/voip_extra_menu_max_width" /> + android:layout="@layout/voip_call_stats" + android:visibility="@{controlsViewModel.callStatsVisible ? View.VISIBLE : View.GONE, default=gone}" + app:controlsViewModel="@{controlsViewModel}" + app:inflatedVisibility="@{controlsViewModel.callStatsVisible ? View.VISIBLE : View.GONE}" + app:statsViewModel="@{statsViewModel}" /> + android:layout="@layout/voip_numpad" + android:visibility="@{controlsViewModel.numpadVisible ? View.VISIBLE : View.GONE, default=gone}" + app:controlsViewModel="@{controlsViewModel}" + app:inflatedVisibility="@{controlsViewModel.numpadVisible ? View.VISIBLE : View.GONE}" />