diff --git a/app/src/main/java/org/linphone/ui/call/fragment/ActiveCallFragment.kt b/app/src/main/java/org/linphone/ui/call/fragment/ActiveCallFragment.kt index 7c4af1a05..95fd828c1 100644 --- a/app/src/main/java/org/linphone/ui/call/fragment/ActiveCallFragment.kt +++ b/app/src/main/java/org/linphone/ui/call/fragment/ActiveCallFragment.kt @@ -234,6 +234,7 @@ class ActiveCallFragment : GenericCallFragment() { model.skipEvent.observe(viewLifecycleOwner) { event -> event.consume { callViewModel.skipZrtpSas() + callMediaEncryptionStatsBottomSheetBehavior.state = BottomSheetBehavior.STATE_HIDDEN dialog.dismiss() } } @@ -241,6 +242,7 @@ class ActiveCallFragment : GenericCallFragment() { model.authTokenClickedEvent.observe(viewLifecycleOwner) { event -> event.consume { authToken -> callViewModel.updateZrtpSas(authToken) + callMediaEncryptionStatsBottomSheetBehavior.state = BottomSheetBehavior.STATE_HIDDEN dialog.dismiss() } } diff --git a/app/src/main/java/org/linphone/ui/call/model/ZrtpSasConfirmationDialogModel.kt b/app/src/main/java/org/linphone/ui/call/model/ZrtpSasConfirmationDialogModel.kt index 6dd75f33d..f6efea533 100644 --- a/app/src/main/java/org/linphone/ui/call/model/ZrtpSasConfirmationDialogModel.kt +++ b/app/src/main/java/org/linphone/ui/call/model/ZrtpSasConfirmationDialogModel.kt @@ -19,16 +19,10 @@ */ package org.linphone.ui.call.model -import android.graphics.Typeface -import android.text.SpannableStringBuilder -import android.text.Spanned -import android.text.style.StyleSpan import androidx.annotation.UiThread import androidx.lifecycle.MutableLiveData -import org.linphone.R import org.linphone.core.tools.Log import org.linphone.ui.GenericViewModel -import org.linphone.utils.AppUtils import org.linphone.utils.Event class ZrtpSasConfirmationDialogModel @UiThread constructor( @@ -39,7 +33,7 @@ class ZrtpSasConfirmationDialogModel @UiThread constructor( private const val TAG = "[ZRTP SAS Confirmation Dialog]" } - val message = MutableLiveData() + val localToken = MutableLiveData() val letters1 = MutableLiveData() val letters2 = MutableLiveData() val letters3 = MutableLiveData() @@ -50,17 +44,7 @@ class ZrtpSasConfirmationDialogModel @UiThread constructor( val skipEvent = MutableLiveData>() init { - val text = AppUtils.getString(R.string.call_dialog_zrtp_validate_trust_subtitle) - val boldIndex = text.indexOf("%s") - val formattedText = text.replace("%s", authTokenToRead) - val builder = SpannableStringBuilder(formattedText) - builder.setSpan( - StyleSpan(Typeface.BOLD), - boldIndex, - boldIndex + authTokenToRead.length, - Spanned.SPAN_EXCLUSIVE_EXCLUSIVE - ) - message.value = builder + localToken.value = authTokenToRead letters1.value = authTokensToListen[0] letters2.value = authTokensToListen[1] letters3.value = authTokensToListen[2] diff --git a/app/src/main/res/drawable/shape_zrtp_dialog_background.xml b/app/src/main/res/drawable/shape_zrtp_dialog_background.xml new file mode 100644 index 000000000..03b497e33 --- /dev/null +++ b/app/src/main/res/drawable/shape_zrtp_dialog_background.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_zrtp_dialog_header_background.xml b/app/src/main/res/drawable/shape_zrtp_dialog_header_background.xml new file mode 100644 index 000000000..e37318ed3 --- /dev/null +++ b/app/src/main/res/drawable/shape_zrtp_dialog_header_background.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_zrtp_tokens_dialog_background.xml b/app/src/main/res/drawable/shape_zrtp_tokens_dialog_background.xml new file mode 100644 index 000000000..38d45062c --- /dev/null +++ b/app/src/main/res/drawable/shape_zrtp_tokens_dialog_background.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-land/dialog_confirm_zrtp_sas.xml b/app/src/main/res/layout-land/dialog_confirm_zrtp_sas.xml index 3aa70350c..e6c9fcce7 100644 --- a/app/src/main/res/layout-land/dialog_confirm_zrtp_sas.xml +++ b/app/src/main/res/layout-land/dialog_confirm_zrtp_sas.xml @@ -13,173 +13,252 @@ + android:layout_height="match_parent" + android:layout_marginStart="10dp" + android:layout_marginEnd="10dp"> - - - + app:layout_constraintWidth_max="@dimen/dialog_max_width" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toTopOf="@id/body" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent"> - + + + + + + + + - - + app:layout_constraintEnd_toEndOf="parent"> - + - + - + - + - + - + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/call_ended_fragment.xml b/app/src/main/res/layout/call_ended_fragment.xml index e2d90291a..4a7aee60b 100644 --- a/app/src/main/res/layout/call_ended_fragment.xml +++ b/app/src/main/res/layout/call_ended_fragment.xml @@ -66,7 +66,7 @@ android:layout_height="wrap_content" layout="@layout/call_media_encryption_info" bind:viewModel="@{viewModel}" - app:layout_constraintTop_toBottomOf="@id/name" + app:layout_constraintTop_toBottomOf="@id/call_direction_label" app:layout_constraintStart_toEndOf="@id/back" app:layout_constraintEnd_toEndOf="parent"/> diff --git a/app/src/main/res/layout/dialog_confirm_zrtp_sas.xml b/app/src/main/res/layout/dialog_confirm_zrtp_sas.xml index 19a416b4e..7331a7226 100644 --- a/app/src/main/res/layout/dialog_confirm_zrtp_sas.xml +++ b/app/src/main/res/layout/dialog_confirm_zrtp_sas.xml @@ -13,174 +13,244 @@ + android:layout_height="match_parent" + android:layout_marginStart="10dp" + android:layout_marginEnd="10dp"> - - - + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toTopOf="@id/body"> - + + + + + + + + + android:background="@drawable/shape_zrtp_dialog_background" + app:layout_constraintTop_toBottomOf="@id/header" + app:layout_constraintBottom_toBottomOf="parent"> - + - + - + - + - + - + - + + + + + + + + + + + diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 13740ac3a..1f48416b4 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -586,9 +586,11 @@ Fusionner les appels en une conférence ? Créer une conférence - Valider l\'appareil - Dites %s puis cliquez sur les lettres données par votre correspondant : - Je ne trouve pas + Vérification de sécurité + Pour votre sécurité, nous avons besoin de vérifier l\'appareil de votre correspondant.\nVeuillez échanger vos codes : + Votre code : + Code correspondant : + Aucune correspondance Oreilette Haut parleur diff --git a/app/src/main/res/values-land/dimen.xml b/app/src/main/res/values-land/dimen.xml index f5abb6700..9ded4c217 100644 --- a/app/src/main/res/values-land/dimen.xml +++ b/app/src/main/res/values-land/dimen.xml @@ -4,4 +4,6 @@ 110dp 235dp + + 600dp \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c693351bd..a6f407c27 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -624,8 +624,10 @@ Create conference Validate the device - Say %s and click on the letters given by your correspondent: - Letters don\'t match! + For your safety, we need to validate your correspondent device.\nPlease exchange your codes: + Your code: + Correspondent code: + Nothing matches Earpiece Speaker