mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-01-17 11:28:06 +00:00
Added advanced setting to choose between point to point and end to end encryption when creating a meeting or a group call
This commit is contained in:
parent
74394445c9
commit
3e91f3e5ff
7 changed files with 55 additions and 3 deletions
|
|
@ -142,12 +142,22 @@ class CorePreferences
|
|||
|
||||
// Conversation related
|
||||
|
||||
@get:WorkerThread @set:WorkerThread
|
||||
var markConversationAsReadWhenDismissingMessageNotification: Boolean
|
||||
get() = config.getBool("app", "mark_as_read_notif_dismissal", false)
|
||||
set(value) {
|
||||
config.setBool("app", "mark_as_read_notif_dismissal", value)
|
||||
}
|
||||
|
||||
// Conference related
|
||||
|
||||
@get:WorkerThread @set:WorkerThread
|
||||
var createEndToEndEncryptedMeetingsAndGroupCalls: Boolean
|
||||
get() = config.getBool("app", "create_e2e_encrypted_conferences", false)
|
||||
set(value) {
|
||||
config.setBool("app", "create_e2e_encrypted_conferences", value)
|
||||
}
|
||||
|
||||
// Contacts related
|
||||
|
||||
@get:WorkerThread @set:WorkerThread
|
||||
|
|
|
|||
|
|
@ -399,7 +399,7 @@ class ScheduleMeetingViewModel
|
|||
conferenceInfo.setCapability(StreamType.Text, true)
|
||||
|
||||
// Enable end-to-end encryption if client supports it
|
||||
conferenceInfo.securityLevel = if (LinphoneUtils.isEndToEndEncryptedChatAvailable(core)) {
|
||||
conferenceInfo.securityLevel = if (corePreferences.createEndToEndEncryptedMeetingsAndGroupCalls) {
|
||||
Log.i("$TAG Requesting EndToEnd security level for conference")
|
||||
Conference.SecurityLevel.EndToEnd
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ class SettingsViewModel
|
|||
val mediaEncryptionLabels = arrayListOf<String>()
|
||||
private val mediaEncryptionValues = arrayListOf<MediaEncryption>()
|
||||
val mediaEncryptionMandatory = MutableLiveData<Boolean>()
|
||||
val createEndToEndEncryptedConferences = MutableLiveData<Boolean>()
|
||||
val acceptEarlyMedia = MutableLiveData<Boolean>()
|
||||
val allowOutgoingEarlyMedia = MutableLiveData<Boolean>()
|
||||
|
||||
|
|
@ -675,6 +676,7 @@ class SettingsViewModel
|
|||
}
|
||||
|
||||
mediaEncryptionMandatory.postValue(core.isMediaEncryptionMandatory)
|
||||
createEndToEndEncryptedConferences.postValue(corePreferences.createEndToEndEncryptedMeetingsAndGroupCalls)
|
||||
acceptEarlyMedia.postValue(corePreferences.acceptEarlyMedia)
|
||||
allowOutgoingEarlyMedia.postValue(corePreferences.allowOutgoingEarlyMedia)
|
||||
}
|
||||
|
|
@ -702,6 +704,16 @@ class SettingsViewModel
|
|||
}
|
||||
}
|
||||
|
||||
@UiThread
|
||||
fun toggleConferencesEndToEndEncryption() {
|
||||
val newValue = createEndToEndEncryptedConferences.value == false
|
||||
|
||||
coreContext.postOnCoreThread { core ->
|
||||
corePreferences.createEndToEndEncryptedMeetingsAndGroupCalls = newValue
|
||||
createEndToEndEncryptedConferences.postValue(newValue)
|
||||
}
|
||||
}
|
||||
|
||||
@UiThread
|
||||
fun toggleAcceptEarlyMedia() {
|
||||
val newValue = acceptEarlyMedia.value == false
|
||||
|
|
|
|||
|
|
@ -272,7 +272,7 @@ class LinphoneUtils {
|
|||
conferenceParams.subject = subject
|
||||
|
||||
// Enable end-to-end encryption if client supports it
|
||||
conferenceParams.securityLevel = if (isEndToEndEncryptedChatAvailable(core)) {
|
||||
conferenceParams.securityLevel = if (corePreferences.createEndToEndEncryptedMeetingsAndGroupCalls) {
|
||||
Log.i("$TAG Requesting EndToEnd security level for conference")
|
||||
Conference.SecurityLevel.EndToEnd
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -192,6 +192,34 @@
|
|||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/media_encryption" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/settings_title_style"
|
||||
android:onClick="@{() -> viewModel.toggleConferencesEndToEndEncryption()}"
|
||||
android:id="@+id/e2e_encrypted_conferences_title"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:text="@string/settings_advanced_create_e2e_encrypted_conferences_title"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
app:layout_constraintTop_toTopOf="@id/e2e_encrypted_conferences_switch"
|
||||
app:layout_constraintBottom_toBottomOf="@id/e2e_encrypted_conferences_switch"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/e2e_encrypted_conferences_switch"/>
|
||||
|
||||
<com.google.android.material.materialswitch.MaterialSwitch
|
||||
style="@style/material_switch_style"
|
||||
android:id="@+id/e2e_encrypted_conferences_switch"
|
||||
android:onClick="@{() -> viewModel.toggleConferencesEndToEndEncryption()}"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:checked="@{viewModel.createEndToEndEncryptedConferences}"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/media_encryption_mandatory_switch" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/settings_title_style"
|
||||
android:onClick="@{() -> viewModel.toggleAcceptEarlyMedia()}"
|
||||
|
|
@ -218,7 +246,7 @@
|
|||
android:layout_marginEnd="16dp"
|
||||
android:checked="@{viewModel.acceptEarlyMedia}"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/media_encryption_mandatory_switch" />
|
||||
app:layout_constraintTop_toBottomOf="@id/e2e_encrypted_conferences_switch" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/settings_title_style"
|
||||
|
|
|
|||
|
|
@ -261,6 +261,7 @@
|
|||
<string name="settings_advanced_upload_server_url">URL du serveur de partage de fichier</string>
|
||||
<string name="settings_advanced_media_encryption_title">Chiffrement du média</string>
|
||||
<string name="settings_advanced_media_encryption_mandatory_title">Rendre le chiffrement du média obligatoire</string>
|
||||
<string name="settings_advanced_create_e2e_encrypted_conferences_title">Créer en mode chiffré de bout en bout les réunions et les appels de groupe</string>
|
||||
<string name="settings_advanced_accept_early_media_title">Accepter l\'early media</string>
|
||||
<string name="settings_advanced_allow_outgoing_early_media_title">Autoriser l\'early media pour les appels sortants</string>
|
||||
<string name="settings_advanced_remote_provisioning_url">URL de configuration distante</string>
|
||||
|
|
|
|||
|
|
@ -300,6 +300,7 @@
|
|||
<string name="settings_advanced_upload_server_url">File sharing server URL</string>
|
||||
<string name="settings_advanced_media_encryption_title">Media encryption</string>
|
||||
<string name="settings_advanced_media_encryption_mandatory_title">Media encryption mandatory</string>
|
||||
<string name="settings_advanced_create_e2e_encrypted_conferences_title">Create end-to-end encrypted meetings & group calls</string>
|
||||
<string name="settings_advanced_accept_early_media_title">Accept early media</string>
|
||||
<string name="settings_advanced_allow_outgoing_early_media_title">Allow outgoing early media</string>
|
||||
<string name="settings_advanced_remote_provisioning_url">Remote provisioning URL</string>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue