mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-01-17 11:28:06 +00:00
Trying new in-call layout
This commit is contained in:
parent
72daf9ebd2
commit
784803336c
10 changed files with 117 additions and 124 deletions
|
|
@ -94,9 +94,8 @@ class ActiveCallFragment : GenericCallFragment() {
|
|||
}
|
||||
}
|
||||
|
||||
private val bottomSheetCallback = object : BottomSheetBehavior.BottomSheetCallback() {
|
||||
private val numpadBottomSheetCallback = object : BottomSheetBehavior.BottomSheetCallback() {
|
||||
override fun onStateChanged(bottomSheet: View, newState: Int) {
|
||||
Log.i("$TAG Bottom sheet state is [$newState]")
|
||||
if (newState == BottomSheetBehavior.STATE_COLLAPSED) {
|
||||
val numpadBottomSheetBehavior = BottomSheetBehavior.from(bottomSheet)
|
||||
numpadBottomSheetBehavior.state = BottomSheetBehavior.STATE_HIDDEN
|
||||
|
|
@ -106,6 +105,14 @@ class ActiveCallFragment : GenericCallFragment() {
|
|||
override fun onSlide(bottomSheet: View, slideOffset: Float) { }
|
||||
}
|
||||
|
||||
private val actionsBottomSheetCallback = object : BottomSheetBehavior.BottomSheetCallback() {
|
||||
override fun onStateChanged(bottomSheet: View, newState: Int) {
|
||||
callViewModel.extraActionsBottomSheetVisible.value = newState != BottomSheetBehavior.STATE_COLLAPSED
|
||||
}
|
||||
|
||||
override fun onSlide(bottomSheet: View, slideOffset: Float) { }
|
||||
}
|
||||
|
||||
override fun onCreateAnimation(transit: Int, enter: Boolean, nextAnim: Int): Animation? {
|
||||
if (findNavController().currentDestination?.id == R.id.newCallFragment || findNavController().currentDestination?.id == R.id.callsListFragment) {
|
||||
// Holds fragment in place while new fragment slides over it
|
||||
|
|
@ -141,10 +148,15 @@ class ActiveCallFragment : GenericCallFragment() {
|
|||
|
||||
val actionsBottomSheetBehavior = BottomSheetBehavior.from(binding.bottomBar.root)
|
||||
actionsBottomSheetBehavior.state = BottomSheetBehavior.STATE_COLLAPSED
|
||||
actionsBottomSheetBehavior.addBottomSheetCallback(actionsBottomSheetCallback)
|
||||
|
||||
val numpadBottomSheetBehavior = BottomSheetBehavior.from(binding.callNumpad.root)
|
||||
numpadBottomSheetBehavior.state = BottomSheetBehavior.STATE_HIDDEN
|
||||
numpadBottomSheetBehavior.addBottomSheetCallback(bottomSheetCallback)
|
||||
numpadBottomSheetBehavior.addBottomSheetCallback(numpadBottomSheetCallback)
|
||||
|
||||
binding.setBackClickListener {
|
||||
requireActivity().finish()
|
||||
}
|
||||
|
||||
binding.setNewCallClickListener {
|
||||
val action = ActiveCallFragmentDirections.actionActiveCallFragmentToNewCallFragment()
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ import org.linphone.core.Core
|
|||
import org.linphone.core.CoreListenerStub
|
||||
import org.linphone.core.MediaDirection
|
||||
import org.linphone.core.MediaEncryption
|
||||
import org.linphone.core.StreamType
|
||||
import org.linphone.core.tools.Log
|
||||
import org.linphone.ui.call.model.AudioDeviceModel
|
||||
import org.linphone.ui.call.model.CallMediaEncryptionModel
|
||||
|
|
@ -150,6 +151,8 @@ class CurrentCallViewModel @UiThread constructor() : ViewModel() {
|
|||
|
||||
// Extras actions
|
||||
|
||||
val extraActionsBottomSheetVisible = MutableLiveData<Boolean>()
|
||||
|
||||
val toggleExtraActionsBottomSheetEvent: MutableLiveData<Event<Boolean>> by lazy {
|
||||
MutableLiveData<Event<Boolean>>()
|
||||
}
|
||||
|
|
@ -711,8 +714,12 @@ class CurrentCallViewModel @UiThread constructor() : ViewModel() {
|
|||
}
|
||||
|
||||
isMediaEncrypted.postValue(true)
|
||||
// When Post Quantum is available, ZRTP is Post Quantum
|
||||
isZrtpPq.postValue(coreContext.core.postQuantumAvailable)
|
||||
|
||||
// When Post Quantum is available, ZRTP is Post Quantum if key exchange was made with Post Quantum algorithm
|
||||
val stats = currentCall.getStats(StreamType.Audio)
|
||||
isZrtpPq.postValue(
|
||||
coreContext.core.postQuantumAvailable && stats?.isZrtpKeyAgreementAlgoPostQuantum == true
|
||||
)
|
||||
|
||||
if (!isDeviceTrusted && !authToken.isNullOrEmpty()) {
|
||||
Log.i("$TAG Showing ZRTP SAS confirmation dialog")
|
||||
|
|
|
|||
9
app/src/main/res/drawable/atom.xml
Normal file
9
app/src/main/res/drawable/atom.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="256"
|
||||
android:viewportHeight="256">
|
||||
<path
|
||||
android:pathData="M196.12,128c24.65,-34.61 37.22,-70.38 19.74,-87.86S162.61,35.23 128,59.88C93.39,35.23 57.62,22.66 40.14,40.14S35.23,93.39 59.88,128c-24.65,34.61 -37.22,70.38 -19.74,87.86h0c5.63,5.63 13.15,8.14 21.91,8.14 18.48,0 42.48,-11.17 66,-27.88C151.47,212.83 175.47,224 194,224c8.76,0 16.29,-2.52 21.91,-8.14h0C233.34,198.38 220.77,162.61 196.12,128ZM204.55,51.45c7.64,7.64 2.48,32.4 -18.52,63.28a300.33,300.33 0,0 0,-21.19 -23.57A300.33,300.33 0,0 0,141.27 70C172.15,49 196.91,43.8 204.55,51.45ZM176.29,128a289.14,289.14 0,0 1,-22.76 25.53A289.14,289.14 0,0 1,128 176.29a289.14,289.14 0,0 1,-25.53 -22.76A289.14,289.14 0,0 1,79.71 128,298.62 298.62,0 0,1 128,79.71a289.14,289.14 0,0 1,25.53 22.76A289.14,289.14 0,0 1,176.29 128ZM51.45,51.45c2.2,-2.21 5.83,-3.35 10.62,-3.35C73.89,48.1 92.76,55 114.72,70A304,304 0,0 0,91.16 91.16,300.33 300.33,0 0,0 70,114.73C49,83.85 43.81,59.09 51.45,51.45ZM51.45,204.55C43.81,196.91 49,172.15 70,141.27a300.33,300.33 0,0 0,21.19 23.57A304.18,304.18 0,0 0,114.73 186C83.85,207 59.09,212.2 51.45,204.55ZM204.55,204.55c-7.64,7.65 -32.4,2.48 -63.28,-18.52a304.18,304.18 0,0 0,23.57 -21.19A300.33,300.33 0,0 0,186 141.27C207,172.15 212.19,196.91 204.55,204.55ZM140,128a12,12 0,1 1,-12 -12A12,12 0,0 1,140 128Z"
|
||||
android:fillColor="#4e6074"/>
|
||||
</vector>
|
||||
9
app/src/main/res/drawable/handle.xml
Normal file
9
app/src/main/res/drawable/handle.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="38dp"
|
||||
android:height="9dp"
|
||||
android:viewportWidth="38"
|
||||
android:viewportHeight="9">
|
||||
<path
|
||||
android:pathData="M0,6.907C0,6.231 0.442,5.635 1.088,5.439L19,0L36.912,5.439C37.558,5.635 38,6.231 38,6.907C38,7.944 36.993,8.682 36.004,8.37L19,3L1.996,8.37C1.007,8.682 0,7.944 0,6.907Z"
|
||||
android:fillColor="#ffffff"/>
|
||||
</vector>
|
||||
9
app/src/main/res/drawable/lock_simple.xml
Normal file
9
app/src/main/res/drawable/lock_simple.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="256"
|
||||
android:viewportHeight="256">
|
||||
<path
|
||||
android:pathData="M208,80H176V56a48,48 0,0 0,-96 0V80H48A16,16 0,0 0,32 96V208a16,16 0,0 0,16 16H208a16,16 0,0 0,16 -16V96A16,16 0,0 0,208 80ZM96,56a32,32 0,0 1,64 0V80H96ZM208,208H48V96H208V208Z"
|
||||
android:fillColor="#4e6074"/>
|
||||
</vector>
|
||||
|
|
@ -11,9 +11,6 @@
|
|||
<variable
|
||||
name="callsListClickListener"
|
||||
type="View.OnClickListener" />
|
||||
<variable
|
||||
name="callStatisticsClickListener"
|
||||
type="View.OnClickListener" />
|
||||
<variable
|
||||
name="viewModel"
|
||||
type="org.linphone.ui.call.viewmodel.CurrentCallViewModel" />
|
||||
|
|
@ -26,6 +23,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/call_all_actions_menu_height"
|
||||
android:background="@drawable/shape_call_bottom_sheet_background"
|
||||
android:visibility="@{viewModel.fullScreenMode || viewModel.pipMode ? View.INVISIBLE : View.VISIBLE}"
|
||||
app:behavior_hideable="false"
|
||||
app:behavior_peekHeight="@dimen/call_main_actions_menu_height"
|
||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
|
||||
|
|
@ -126,28 +124,12 @@
|
|||
android:background="@drawable/shape_round_in_call_disabled_button_background"
|
||||
android:padding="@dimen/call_button_icon_padding"
|
||||
android:src="@drawable/chat_teardrop_text"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintDimensionRatio="1:1"
|
||||
app:layout_constraintEnd_toEndOf="@id/chat_label"
|
||||
app:layout_constraintStart_toStartOf="@id/chat_label"
|
||||
app:layout_constraintTop_toBottomOf="@id/main_actions"
|
||||
app:tint="@color/gray_500" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/stats"
|
||||
android:onClick="@{callStatisticsClickListener}"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/call_button_size"
|
||||
android:layout_marginTop="@dimen/call_extra_button_top_margin"
|
||||
android:background="@drawable/in_call_button_background_red"
|
||||
android:padding="@dimen/call_button_icon_padding"
|
||||
android:src="@drawable/chart_bar"
|
||||
app:layout_constraintDimensionRatio="1:1"
|
||||
app:layout_constraintEnd_toEndOf="@id/stats_label"
|
||||
app:layout_constraintStart_toStartOf="@id/stats_label"
|
||||
app:layout_constraintTop_toBottomOf="@id/main_actions"
|
||||
app:tint="@color/in_call_button_tint_color" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/pause_call"
|
||||
android:onClick="@{() -> viewModel.togglePause()}"
|
||||
|
|
@ -227,7 +209,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="15dp"
|
||||
android:text="@string/call_action_show_dialer"
|
||||
app:layout_constraintEnd_toStartOf="@id/stats_label"
|
||||
app:layout_constraintEnd_toStartOf="@id/chat_label"
|
||||
app:layout_constraintStart_toEndOf="@id/calls_list_label"
|
||||
app:layout_constraintTop_toBottomOf="@id/numpad" />
|
||||
|
||||
|
|
@ -238,23 +220,10 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="15dp"
|
||||
android:text="@string/call_action_show_messages"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toStartOf="@id/pause_call_label"
|
||||
app:layout_constraintStart_toEndOf="@id/numpad_label"
|
||||
app:layout_constraintTop_toBottomOf="@id/chat" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/stats_label"
|
||||
android:onClick="@{callStatisticsClickListener}"
|
||||
style="@style/in_call_extra_action_label_style"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="15dp"
|
||||
android:text="@string/call_action_show_statistics"
|
||||
app:layout_constraintEnd_toStartOf="@id/pause_call_label"
|
||||
app:layout_constraintStart_toEndOf="@id/numpad_label"
|
||||
app:layout_constraintTop_toBottomOf="@id/stats" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/in_call_extra_action_label_style"
|
||||
android:id="@+id/pause_call_label"
|
||||
|
|
@ -265,7 +234,7 @@
|
|||
android:paddingBottom="15dp"
|
||||
android:text="@{viewModel.isPaused ? @string/call_action_resume_call : @string/call_action_pause_call, default=@string/call_action_pause_call}"
|
||||
app:layout_constraintEnd_toStartOf="@id/record_call_label"
|
||||
app:layout_constraintStart_toEndOf="@id/stats_label"
|
||||
app:layout_constraintStart_toEndOf="@id/chat_label"
|
||||
app:layout_constraintTop_toBottomOf="@id/pause_call" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
|
|
|
|||
|
|
@ -11,9 +11,6 @@
|
|||
<variable
|
||||
name="callsListClickListener"
|
||||
type="View.OnClickListener" />
|
||||
<variable
|
||||
name="callStatisticsClickListener"
|
||||
type="View.OnClickListener" />
|
||||
<variable
|
||||
name="viewModel"
|
||||
type="org.linphone.ui.call.viewmodel.CurrentCallViewModel" />
|
||||
|
|
@ -26,6 +23,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/call_all_actions_menu_height"
|
||||
android:background="@drawable/shape_call_bottom_sheet_background"
|
||||
android:visibility="@{viewModel.fullScreenMode || viewModel.pipMode ? View.INVISIBLE : View.VISIBLE}"
|
||||
app:behavior_hideable="false"
|
||||
app:behavior_peekHeight="@dimen/call_main_actions_menu_height"
|
||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
|
||||
|
|
@ -126,28 +124,12 @@
|
|||
android:padding="@dimen/call_button_icon_padding"
|
||||
android:src="@drawable/chat_teardrop_text"
|
||||
android:background="@drawable/shape_round_in_call_disabled_button_background"
|
||||
android:visibility="gone"
|
||||
app:tint="?attr/color_grey_500"
|
||||
app:layout_constraintDimensionRatio="1:1"
|
||||
app:layout_constraintTop_toBottomOf="@id/transfer_label"
|
||||
app:layout_constraintStart_toStartOf="@id/transfer"
|
||||
app:layout_constraintEnd_toEndOf="@id/transfer"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/stats"
|
||||
android:onClick="@{callStatisticsClickListener}"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/call_button_size"
|
||||
android:layout_marginTop="@dimen/call_extra_button_top_margin"
|
||||
android:padding="@dimen/call_button_icon_padding"
|
||||
android:src="@drawable/chart_bar"
|
||||
android:background="@drawable/in_call_button_background_red"
|
||||
app:tint="@color/in_call_button_tint_color"
|
||||
app:layout_constraintDimensionRatio="1:1"
|
||||
app:layout_constraintTop_toBottomOf="@id/transfer_label"
|
||||
app:layout_constraintStart_toStartOf="@id/transfer"
|
||||
app:layout_constraintEnd_toEndOf="@id/transfer"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/pause_call"
|
||||
android:onClick="@{() -> viewModel.togglePause()}"
|
||||
|
|
@ -234,22 +216,10 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="15dp"
|
||||
android:text="@string/call_action_show_messages"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintTop_toBottomOf="@id/chat"
|
||||
app:layout_constraintStart_toStartOf="@id/transfer_label"
|
||||
app:layout_constraintEnd_toEndOf="@id/transfer_label" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/in_call_extra_action_label_style"
|
||||
android:id="@+id/stats_label"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="15dp"
|
||||
android:text="@string/call_action_show_statistics"
|
||||
app:layout_constraintTop_toBottomOf="@id/stats"
|
||||
app:layout_constraintStart_toStartOf="@id/transfer_label"
|
||||
app:layout_constraintEnd_toEndOf="@id/transfer_label" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/in_call_extra_action_label_style"
|
||||
android:id="@+id/pause_call_label"
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="11dp"
|
||||
android:src="@drawable/shape_drawer_handle"
|
||||
android:src="@{viewModel.extraActionsBottomSheetVisible ? @drawable/caret_down : @drawable/handle, default=@drawable/handle}"
|
||||
app:tint="@color/white"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
|
|
|||
|
|
@ -6,6 +6,9 @@
|
|||
<data>
|
||||
<import type="android.view.View" />
|
||||
<import type="org.linphone.core.ChatRoom.SecurityLevel" />
|
||||
<variable
|
||||
name="backClickListener"
|
||||
type="View.OnClickListener" />
|
||||
<variable
|
||||
name="newCallClickListener"
|
||||
type="View.OnClickListener" />
|
||||
|
|
@ -58,7 +61,7 @@
|
|||
android:layout_marginStart="12dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:layout_marginBottom="@dimen/call_main_actions_menu_margin"
|
||||
app:layout_constraintTop_toBottomOf="@id/call_direction_label"
|
||||
app:layout_constraintTop_toBottomOf="@id/media_encryption"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
|
@ -77,7 +80,7 @@
|
|||
app:layout_constraintEnd_toEndOf="@id/background"
|
||||
app:layout_constraintStart_toStartOf="@id/background"
|
||||
app:layout_constraintTop_toTopOf="@id/background"
|
||||
app:layout_constraintBottom_toTopOf="@id/name"/>
|
||||
app:layout_constraintBottom_toTopOf="@id/address"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/trust_badge"
|
||||
|
|
@ -88,30 +91,17 @@
|
|||
app:layout_constraintStart_toStartOf="@id/avatar"
|
||||
app:layout_constraintBottom_toBottomOf="@id/avatar"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/default_text_style_300"
|
||||
android:id="@+id/name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="15dp"
|
||||
android:text="@{viewModel.displayedName, default=`John Doe`}"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="22sp"
|
||||
app:layout_constraintTop_toBottomOf="@id/avatar"
|
||||
app:layout_constraintBottom_toTopOf="@id/address"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/default_text_style"
|
||||
android:id="@+id/address"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:text="@{viewModel.displayedAddress, default=`sip:johndoe@sip.linphone.org`}"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="14sp"
|
||||
app:layout_constraintTop_toBottomOf="@id/name"
|
||||
app:layout_constraintTop_toBottomOf="@id/avatar"
|
||||
app:layout_constraintBottom_toBottomOf="@id/background"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
|
@ -134,31 +124,30 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="@{viewModel.fullScreenMode || viewModel.pipMode ? View.INVISIBLE : View.VISIBLE}"
|
||||
app:constraint_referenced_ids="call_direction_icon, call_direction_label, separator, chronometer" />
|
||||
app:constraint_referenced_ids="back, name, separator, chronometer" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/call_direction_icon"
|
||||
android:layout_width="12dp"
|
||||
android:layout_height="12dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:id="@+id/back"
|
||||
android:onClick="@{backClickListener}"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/top_bar_height"
|
||||
android:adjustViewBounds="true"
|
||||
android:src="@{viewModel.isOutgoing ? @drawable/outgoing_call : @drawable/incoming_call, default=@drawable/outgoing_call}"
|
||||
android:padding="15dp"
|
||||
android:src="@drawable/caret_left"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/call_direction_label"
|
||||
app:layout_constraintBottom_toBottomOf="@id/call_direction_label"/>
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:tint="@color/white" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/call_header_style"
|
||||
android:id="@+id/call_direction_label"
|
||||
android:id="@+id/name"
|
||||
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:layout_marginBottom="10dp"
|
||||
android:text="@{viewModel.isOutgoing ? @string/call_outgoing : viewModel.incomingCallTitle, default=@string/call_outgoing}"
|
||||
app:layout_constraintStart_toEndOf="@id/call_direction_icon"
|
||||
app:layout_constraintTop_toTopOf="@id/hinge_top"
|
||||
app:layout_constraintBottom_toTopOf="@id/background"/>
|
||||
android:text="@{viewModel.displayedName, default=`John Doe`}"
|
||||
app:layout_constraintStart_toEndOf="@id/back"
|
||||
app:layout_constraintTop_toTopOf="@id/back"
|
||||
app:layout_constraintBottom_toBottomOf="@id/back"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/call_header_style"
|
||||
|
|
@ -167,8 +156,8 @@
|
|||
android:layout_height="@dimen/call_top_bar_text_height"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@string/vertical_separator"
|
||||
app:layout_constraintStart_toEndOf="@id/call_direction_label"
|
||||
app:layout_constraintTop_toTopOf="@id/call_direction_label"/>
|
||||
app:layout_constraintStart_toEndOf="@id/name"
|
||||
app:layout_constraintTop_toTopOf="@id/name"/>
|
||||
|
||||
<Chronometer
|
||||
style="@style/call_header_style"
|
||||
|
|
@ -179,8 +168,8 @@
|
|||
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/media_encryption"
|
||||
app:layout_constraintTop_toTopOf="@id/call_direction_label"/>
|
||||
app:layout_constraintEnd_toStartOf="@id/switch_camera"
|
||||
app:layout_constraintTop_toTopOf="@id/name"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/call_header_style"
|
||||
|
|
@ -193,20 +182,39 @@
|
|||
app:layout_constraintHorizontal_bias="0"
|
||||
app:layout_constraintStart_toEndOf="@id/separator"
|
||||
app:layout_constraintEnd_toStartOf="@id/media_encryption"
|
||||
app:layout_constraintTop_toTopOf="@id/call_direction_label"/>
|
||||
app:layout_constraintTop_toTopOf="@id/name"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/default_text_style"
|
||||
android:id="@+id/media_encryption"
|
||||
android:onClick="@{() -> viewModel.showMediaEncryptionStatisticsIfPossible()}"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:text="@{viewModel.isZrtpPq ? @string/call_post_quantum_zrtp_end_to_end_encrypted : @string/call_zrtp_end_to_end_encrypted, default=@string/call_post_quantum_zrtp_end_to_end_encrypted}"
|
||||
android:textSize="12sp"
|
||||
android:textColor="@color/blue_info_500"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:drawableStart="@{viewModel.isZrtpPq ? @drawable/atom : @drawable/lock_simple, default=@drawable/atom}"
|
||||
android:drawablePadding="5dp"
|
||||
android:drawableTint="@color/blue_info_500"
|
||||
android:visibility="@{!viewModel.fullScreenMode && !viewModel.pipMode && viewModel.isMediaEncrypted ? View.VISIBLE : View.GONE}"
|
||||
app:layout_constraintStart_toEndOf="@id/back"
|
||||
app:layout_constraintTop_toBottomOf="@id/name"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/media_encryption"
|
||||
android:onClick="@{() -> viewModel.showZrtpSasDialogIfPossible()}"
|
||||
android:onLongClick="@{() -> viewModel.showMediaEncryptionStatisticsIfPossible()}"
|
||||
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="@{viewModel.isZrtpPq ? @drawable/media_encryption_zrtp_pq : @drawable/media_encryption_srtp, default=@drawable/media_encryption_zrtp_pq}"
|
||||
android:visibility="@{!viewModel.fullScreenMode && !viewModel.pipMode && viewModel.isMediaEncrypted ? View.VISIBLE : View.GONE}"
|
||||
app:layout_constraintTop_toTopOf="@id/call_direction_label"
|
||||
app:layout_constraintBottom_toBottomOf="@id/call_direction_label"
|
||||
app:layout_constraintEnd_toStartOf="@id/switch_camera" />
|
||||
android:src="@drawable/cell_signal_full"
|
||||
android:visibility="@{!viewModel.fullScreenMode && !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()}"
|
||||
|
|
@ -214,13 +222,13 @@
|
|||
android:layout_width="@dimen/call_top_bar_info_height"
|
||||
android:layout_height="@dimen/call_top_bar_info_height"
|
||||
android:padding="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:src="@drawable/camera_rotate"
|
||||
android:visibility="@{!viewModel.fullScreenMode && !viewModel.pipMode && viewModel.isVideoEnabled && viewModel.showSwitchCamera ? View.VISIBLE : View.GONE}"
|
||||
app:tint="@color/white"
|
||||
app:layout_constraintTop_toTopOf="@id/call_direction_label"
|
||||
app:layout_constraintBottom_toBottomOf="@id/call_direction_label"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
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"
|
||||
|
|
@ -252,13 +260,11 @@
|
|||
|
||||
<include
|
||||
android:id="@+id/bottom_bar"
|
||||
android:visibility="@{viewModel.fullScreenMode || viewModel.pipMode ? View.INVISIBLE : View.VISIBLE}"
|
||||
layout="@layout/call_actions_bottom_sheet"
|
||||
bind:viewModel="@{viewModel}"
|
||||
bind:callsViewModel="@{callsViewModel}"
|
||||
bind:newCallClickListener="@{newCallClickListener}"
|
||||
bind:callsListClickListener="@{callsListClickListener}"
|
||||
bind:callStatisticsClickListener="@{callStatisticsClickListener}"/>
|
||||
bind:callsListClickListener="@{callsListClickListener}"/>
|
||||
|
||||
<include
|
||||
android:id="@+id/call_numpad"
|
||||
|
|
|
|||
|
|
@ -514,6 +514,8 @@
|
|||
<string name="call_state_paused_by_remote">Paused by remote</string>
|
||||
<string name="call_state_resuming">Resuming…</string>
|
||||
<string name="call_state_ended">Ended</string>
|
||||
<string name="call_zrtp_end_to_end_encrypted">End-to-end encrypted by ZRTP</string>
|
||||
<string name="call_post_quantum_zrtp_end_to_end_encrypted">End-to-end encrypted by post-quantum ZRTP</string>
|
||||
<string name="calls_list_title">Calls list</string>
|
||||
<string name="call_transfer_title">Transfer call to</string>
|
||||
<string name="call_remote_is_recording">%s is recording</string>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue