From 565e957387294d56cd54d43e53225bf5c6a95186 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 27 Sep 2023 14:43:04 +0200 Subject: [PATCH] Fixed issue when creating a new contact --- .../viewmodel/ContactNewOrEditViewModel.kt | 9 ++++++--- .../linphone/ui/main/model/AccountModel.kt | 20 ++++++++----------- app/src/main/res/layout/account_list_cell.xml | 5 +++-- .../res/layout/account_profile_fragment.xml | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactNewOrEditViewModel.kt b/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactNewOrEditViewModel.kt index 78358c603..89dd767da 100644 --- a/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactNewOrEditViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactNewOrEditViewModel.kt @@ -131,9 +131,6 @@ class ContactNewOrEditViewModel @UiThread constructor() : ViewModel() { if (!::friend.isInitialized) { friend = core.createFriend() - friend.isSubscribesEnabled = false - // Disable peer to peer short term presence - friend.incSubscribePolicy = SubscribePolicy.SPDeny } val fn = firstName.value.orEmpty().trim() val ln = lastName.value.orEmpty().trim() @@ -188,6 +185,11 @@ class ContactNewOrEditViewModel @UiThread constructor() : ViewModel() { Log.e("$TAG Failed to generate a ref key using vCard's generateUniqueId()") // TODO? : generate unique ref key } + + friend.isSubscribesEnabled = false + // Disable peer to peer short term presence + friend.incSubscribePolicy = SubscribePolicy.SPDeny + friend.done() val fl = core.getFriendListByName(LINPHONE_ADDRESS_BOOK_FRIEND_LIST) ?: core.createFriendList() @@ -200,6 +202,7 @@ class ContactNewOrEditViewModel @UiThread constructor() : ViewModel() { core.addFriendList(fl) } status = fl.addFriend(friend) + Log.e("UPDATE SUB") fl.updateSubscriptions() } else { friend.done() diff --git a/app/src/main/java/org/linphone/ui/main/model/AccountModel.kt b/app/src/main/java/org/linphone/ui/main/model/AccountModel.kt index 32acff5ab..cc9174f47 100644 --- a/app/src/main/java/org/linphone/ui/main/model/AccountModel.kt +++ b/app/src/main/java/org/linphone/ui/main/model/AccountModel.kt @@ -47,16 +47,12 @@ class AccountModel @WorkerThread constructor( val initials = MutableLiveData() - val registrationState = MutableLiveData() + val registrationState = MutableLiveData() + + val registrationStateLabel = MutableLiveData() val registrationStateSummary = MutableLiveData() - val isConnected = MutableLiveData() - - val inError = MutableLiveData() - - val isDisabled = MutableLiveData() - val isDefault = MutableLiveData() val showTrust = MutableLiveData() @@ -142,9 +138,11 @@ class AccountModel @WorkerThread constructor( isDefault.postValue(coreContext.core.defaultAccount == account) - val state = when (account.state) { + val state = account.state + registrationState.postValue(state) + + val label = when (state) { RegistrationState.None, RegistrationState.Cleared -> { - isDisabled.postValue(true) AppUtils.getString( R.string.drawer_menu_account_connection_status_cleared ) @@ -153,13 +151,11 @@ class AccountModel @WorkerThread constructor( R.string.drawer_menu_account_connection_status_progress ) RegistrationState.Failed -> { - inError.postValue(true) AppUtils.getString( R.string.drawer_menu_account_connection_status_failed ) } RegistrationState.Ok -> { - isConnected.postValue(true) AppUtils.getString( R.string.drawer_menu_account_connection_status_connected ) @@ -169,7 +165,7 @@ class AccountModel @WorkerThread constructor( ) else -> "${account.state}" } - registrationState.postValue(state) + registrationStateLabel.postValue(label) val summary = when (account.state) { RegistrationState.None, RegistrationState.Cleared -> AppUtils.getString( diff --git a/app/src/main/res/layout/account_list_cell.xml b/app/src/main/res/layout/account_list_cell.xml index 6c5145f45..f3945c634 100644 --- a/app/src/main/res/layout/account_list_cell.xml +++ b/app/src/main/res/layout/account_list_cell.xml @@ -6,6 +6,7 @@ + @@ -84,8 +85,8 @@ android:paddingBottom="4dp" android:background="@drawable/shape_squircle_main2_200_background" android:gravity="center" - android:text="@{model.registrationState, default=@string/drawer_menu_account_connection_status_connected}" - android:textColor="@{model.isConnected ? @color/green_success_500 : model.inError ? @color/red_danger_500 : model.isDisabled ? @color/orange_warning_600 : @color/gray_main2_500, default=@color/green_success_500}" + android:text="@{model.registrationStateLabel, default=@string/drawer_menu_account_connection_status_connected}" + android:textColor="@{model.registrationState == RegistrationState.Ok ? @color/green_success_500 : model.registrationState == RegistrationState.Failed ? @color/red_danger_500 : model.registrationState == RegistrationState.Cleared || model.registrationState == RegistrationState.None ? @color/orange_warning_600 : @color/gray_main2_500, default=@color/green_success_500}" android:textSize="12sp" app:layout_constraintHorizontal_bias="0" app:layout_constraintStart_toStartOf="@id/name" diff --git a/app/src/main/res/layout/account_profile_fragment.xml b/app/src/main/res/layout/account_profile_fragment.xml index 9ef9324a0..04f9cb2dd 100644 --- a/app/src/main/res/layout/account_profile_fragment.xml +++ b/app/src/main/res/layout/account_profile_fragment.xml @@ -263,7 +263,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" - android:text="@{viewModel.accountModel.registrationState, default=@string/drawer_menu_account_connection_status_connected}" + android:text="@{viewModel.accountModel.registrationStateLabel, default=@string/drawer_menu_account_connection_status_connected}" app:layout_constraintStart_toEndOf="@id/connected_switch" app:layout_constraintTop_toTopOf="@id/connected_switch" app:layout_constraintBottom_toBottomOf="@id/connected_switch" />