mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-01-17 11:28:06 +00:00
Moved third party sip account login auth id field to advanced settings, added outbound proxy advanced setting
This commit is contained in:
parent
0d5bf5ed3e
commit
eebc1bc91e
2 changed files with 113 additions and 36 deletions
|
|
@ -65,6 +65,10 @@ class ThirdPartySipAccountLoginViewModel
|
|||
|
||||
val showPassword = MutableLiveData<Boolean>()
|
||||
|
||||
val expandAdvancedSettings = MutableLiveData<Boolean>()
|
||||
|
||||
val outboundProxy = MutableLiveData<String>()
|
||||
|
||||
val loginEnabled = MediatorLiveData<Boolean>()
|
||||
|
||||
val registrationInProgress = MutableLiveData<Boolean>()
|
||||
|
|
@ -131,6 +135,7 @@ class ThirdPartySipAccountLoginViewModel
|
|||
|
||||
init {
|
||||
showPassword.value = false
|
||||
expandAdvancedSettings.value = false
|
||||
registrationInProgress.value = false
|
||||
|
||||
loginEnabled.addSource(username) {
|
||||
|
|
@ -218,11 +223,22 @@ class ThirdPartySipAccountLoginViewModel
|
|||
val accountParams = core.createAccountParams()
|
||||
|
||||
if (displayName.value.orEmpty().isNotEmpty()) {
|
||||
identityAddress?.displayName = displayName.value.orEmpty().trim()
|
||||
identityAddress.displayName = displayName.value.orEmpty().trim()
|
||||
}
|
||||
accountParams.identityAddress = identityAddress
|
||||
|
||||
val serverAddress = Factory.instance().createAddress("sip:$domain")
|
||||
val outboundProxyValue = outboundProxy.value.orEmpty().trim()
|
||||
val serverAddress = if (outboundProxyValue.isNotEmpty()) {
|
||||
val server = if (outboundProxyValue.startsWith("sip:")) {
|
||||
outboundProxyValue
|
||||
} else {
|
||||
"sip:$outboundProxyValue"
|
||||
}
|
||||
Factory.instance().createAddress(server)
|
||||
} else {
|
||||
Factory.instance().createAddress("sip:$domain")
|
||||
}
|
||||
|
||||
serverAddress?.transport = when (transport.value.orEmpty().trim()) {
|
||||
TransportType.Tcp.name.uppercase(Locale.getDefault()) -> TransportType.Tcp
|
||||
TransportType.Tls.name.uppercase(Locale.getDefault()) -> TransportType.Tls
|
||||
|
|
@ -265,4 +281,9 @@ class ThirdPartySipAccountLoginViewModel
|
|||
// Password isn't mandatory as authentication could be Bearer
|
||||
return username.value.orEmpty().isNotEmpty() && domain.value.orEmpty().isNotEmpty()
|
||||
}
|
||||
|
||||
@UiThread
|
||||
fun toggleAdvancedSettingsExpand() {
|
||||
expandAdvancedSettings.value = expandAdvancedSettings.value == false
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,38 +94,6 @@
|
|||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/authentication_id_label"
|
||||
style="@style/header_style"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:text="@string/authentication_id"
|
||||
app:layout_constraintTop_toBottomOf="@id/username"
|
||||
app:layout_constraintStart_toStartOf="@id/authentication_id"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatEditText
|
||||
style="@style/default_text_style"
|
||||
android:id="@+id/authentication_id"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:paddingStart="20dp"
|
||||
android:paddingEnd="20dp"
|
||||
android:text="@={viewModel.authId}"
|
||||
android:textSize="14sp"
|
||||
android:textColor="?attr/color_main2_600"
|
||||
android:background="@drawable/edit_text_background"
|
||||
android:inputType="text"
|
||||
android:hint="@string/authentication_id"
|
||||
app:layout_constraintWidth_max="@dimen/text_input_max_width"
|
||||
app:layout_constraintTop_toBottomOf="@id/authentication_id_label"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/password_label"
|
||||
style="@style/header_style"
|
||||
|
|
@ -135,7 +103,7 @@
|
|||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:text="@string/password"
|
||||
app:layout_constraintTop_toBottomOf="@id/authentication_id"
|
||||
app:layout_constraintTop_toBottomOf="@id/username"
|
||||
app:layout_constraintStart_toStartOf="@id/password"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatEditText
|
||||
|
|
@ -277,6 +245,94 @@
|
|||
app:layout_constraintBottom_toBottomOf="@id/transport"
|
||||
app:layout_constraintEnd_toEndOf="@id/transport"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/section_header_style"
|
||||
android:onClick="@{() -> viewModel.toggleAdvancedSettingsExpand()}"
|
||||
android:id="@+id/advanced_settings"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="5dp"
|
||||
android:layout_marginStart="26dp"
|
||||
android:layout_marginEnd="26dp"
|
||||
android:layout_marginTop="32dp"
|
||||
android:text="@string/settings_advanced_title"
|
||||
android:drawableEnd="@{viewModel.expandAdvancedSettings ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
|
||||
android:drawableTint="?attr/color_main2_600"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/transport"/>
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
android:id="@+id/advanced_settings_group"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:constraint_referenced_ids="authentication_id_label, authentication_id, outbound_proxy_label, outbound_proxy"
|
||||
android:visibility="@{viewModel.expandAdvancedSettings ? View.VISIBLE : View.GONE, default=gone}" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/authentication_id_label"
|
||||
style="@style/header_style"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:text="@string/authentication_id"
|
||||
app:layout_constraintTop_toBottomOf="@id/advanced_settings"
|
||||
app:layout_constraintStart_toStartOf="@id/authentication_id"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatEditText
|
||||
style="@style/default_text_style"
|
||||
android:id="@+id/authentication_id"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:paddingStart="20dp"
|
||||
android:paddingEnd="20dp"
|
||||
android:text="@={viewModel.authId}"
|
||||
android:textSize="14sp"
|
||||
android:textColor="?attr/color_main2_600"
|
||||
android:background="@drawable/edit_text_background"
|
||||
android:inputType="text"
|
||||
android:hint="@string/authentication_id"
|
||||
app:layout_constraintWidth_max="@dimen/text_input_max_width"
|
||||
app:layout_constraintTop_toBottomOf="@id/authentication_id_label"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/outbound_proxy_label"
|
||||
style="@style/header_style"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="18dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:text="@string/account_settings_sip_proxy_url_title"
|
||||
app:layout_constraintTop_toBottomOf="@id/authentication_id"
|
||||
app:layout_constraintStart_toStartOf="@id/outbound_proxy"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatEditText
|
||||
style="@style/default_text_style"
|
||||
android:id="@+id/outbound_proxy"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:paddingStart="20dp"
|
||||
android:paddingEnd="20dp"
|
||||
android:text="@={viewModel.outboundProxy, default=`sip12.example.net`}"
|
||||
android:textSize="14sp"
|
||||
android:textColor="?attr/color_main2_600"
|
||||
android:background="@drawable/edit_text_background"
|
||||
android:inputType="text|textUri"
|
||||
android:hint="@string/account_settings_sip_proxy_url_title"
|
||||
app:layout_constraintWidth_max="@dimen/text_input_max_width"
|
||||
app:layout_constraintTop_toBottomOf="@id/outbound_proxy_label"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:onClick="@{() -> viewModel.login()}"
|
||||
android:enabled="@{viewModel.loginEnabled && !viewModel.registrationInProgress, default=false}"
|
||||
|
|
@ -293,7 +349,7 @@
|
|||
android:text="@string/assistant_account_login"
|
||||
app:layout_constraintWidth_max="@dimen/button_max_width"
|
||||
app:layout_constraintVertical_bias="1"
|
||||
app:layout_constraintTop_toBottomOf="@id/transport"
|
||||
app:layout_constraintTop_toBottomOf="@id/outbound_proxy"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue