diff --git a/app/src/main/java/org/linphone/activities/main/chat/data/ChatMessageContentData.kt b/app/src/main/java/org/linphone/activities/main/chat/data/ChatMessageContentData.kt index 1d50b0823..e155c900f 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/data/ChatMessageContentData.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/data/ChatMessageContentData.kt @@ -59,6 +59,8 @@ class ChatMessageContentData( val isGenericFile = MutableLiveData() val isVoiceRecording = MutableLiveData() val isConferenceSchedule = MutableLiveData() + val isConferenceUpdated = MutableLiveData() + val isConferenceCancelled = MutableLiveData() val fileName = MutableLiveData() val filePath = MutableLiveData() @@ -233,6 +235,8 @@ class ChatMessageContentData( isPdf.value = false isVoiceRecording.value = false isConferenceSchedule.value = false + isConferenceUpdated.value = false + isConferenceCancelled.value = false if (content.isFile || (content.isFileTransfer && chatMessage.isOutgoing)) { val path = if (isFileEncrypted) { @@ -308,6 +312,10 @@ class ChatMessageContentData( conferenceSubject.value = conferenceInfo.subject conferenceDescription.value = conferenceInfo.description + val state = conferenceInfo.state + isConferenceUpdated.value = state == ConferenceInfoState.Updated + isConferenceCancelled.value = state == ConferenceInfoState.Cancelled + conferenceDate.value = TimestampUtils.dateToString(conferenceInfo.dateTime) conferenceTime.value = TimestampUtils.timeToString(conferenceInfo.dateTime) diff --git a/app/src/main/java/org/linphone/activities/main/conference/fragments/ConferenceSchedulingSummaryFragment.kt b/app/src/main/java/org/linphone/activities/main/conference/fragments/ConferenceSchedulingSummaryFragment.kt index 5e9b44568..ef1dfb615 100644 --- a/app/src/main/java/org/linphone/activities/main/conference/fragments/ConferenceSchedulingSummaryFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/conference/fragments/ConferenceSchedulingSummaryFragment.kt @@ -42,10 +42,6 @@ class ConferenceSchedulingSummaryFragment : GenericFragment() val scheduleForLater = MutableLiveData() + val isUpdate = MutableLiveData() val formattedDate = MutableLiveData() val formattedTime = MutableLiveData() @@ -156,6 +157,8 @@ class ConferenceSchedulingViewModel : ContactsSelectionViewModel() { subject.value = "" scheduleForLater.value = false + isUpdate.value = false + isEncrypted.value = false sendInviteViaChat.value = true sendInviteViaEmail.value = false @@ -195,9 +198,11 @@ class ConferenceSchedulingViewModel : ContactsSelectionViewModel() { fun populateFromConferenceInfo(conferenceInfo: ConferenceInfo) { confInfo = conferenceInfo + address.value = conferenceInfo.uri subject.value = conferenceInfo.subject description.value = conferenceInfo.description + isUpdate.value = true val dateTime = conferenceInfo.dateTime val calendar = Calendar.getInstance() @@ -262,7 +267,11 @@ class ConferenceSchedulingViewModel : ContactsSelectionViewModel() { val localAccount = core.defaultAccount val localAddress = localAccount?.params?.identityAddress - val conferenceInfo = confInfo ?: Factory.instance().createConferenceInfo() + val conferenceInfo = if (isUpdate.value == true) { + confInfo?.clone() ?: Factory.instance().createConferenceInfo() + } else { + Factory.instance().createConferenceInfo() + } conferenceInfo.organizer = localAddress conferenceInfo.subject = subject.value conferenceInfo.description = description.value @@ -273,6 +282,7 @@ class ConferenceSchedulingViewModel : ContactsSelectionViewModel() { val duration = duration.value?.value ?: 0 conferenceInfo.duration = duration } + confInfo = conferenceInfo conferenceScheduler.account = localAccount // Will trigger the conference creation/update automatically diff --git a/app/src/main/java/org/linphone/contact/ContactLoader.kt b/app/src/main/java/org/linphone/contact/ContactLoader.kt index fe745a36d..9b5514075 100644 --- a/app/src/main/java/org/linphone/contact/ContactLoader.kt +++ b/app/src/main/java/org/linphone/contact/ContactLoader.kt @@ -98,7 +98,7 @@ class ContactLoader : LoaderManager.LoaderCallbacks { val core = coreContext.core val linphoneMime = loader.context.getString(R.string.linphone_address_mime_type) - var preferNormalizedPhoneNumber = corePreferences.preferNormalizedPhoneNumbersFromAddressBook + val preferNormalizedPhoneNumber = corePreferences.preferNormalizedPhoneNumbersFromAddressBook if (core.globalState == GlobalState.Shutdown || core.globalState == GlobalState.Off) { Log.w("[Contacts Loader] Core is being stopped or already destroyed, abort") diff --git a/app/src/main/res/layout/chat_message_conference_invitation_content_cell.xml b/app/src/main/res/layout/chat_message_conference_invitation_content_cell.xml index b03352bcc..2b8df0a22 100644 --- a/app/src/main/res/layout/chat_message_conference_invitation_content_cell.xml +++ b/app/src/main/res/layout/chat_message_conference_invitation_content_cell.xml @@ -29,7 +29,22 @@ android:layout_width="match_parent" android:layout_height="wrap_content" style="@style/conference_invite_title_font" - android:text="@string/conference_invite_title"/> + android:text="@string/conference_invite_title" + android:visibility="@{data.isConferenceUpdated || data.isConferenceCancelled ? View.GONE : View.VISIBLE}"/> + + + + - @@ -300,7 +297,7 @@ diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index c762ebc3c..78b7f00d2 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -744,4 +744,7 @@ Algorithme de hachage : Algorithme d\'authentification : Algorithme SAS : + Modifier la réunion + La réunion a été modifiée : + La réunion a été annulée : \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 136cb0bcd..21199c801 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -36,6 +36,8 @@ #353B3F #6E8596 #A2A2A2 + #EFAE00 + #FF0000 #F7F7F7 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 38ce5719e..570305473 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -261,6 +261,7 @@ Meeting info Group call info Schedule meeting + Edit meeting Start group call Meeting address copied into clipboard Failed to send meeting info to a participant @@ -269,6 +270,8 @@ Remote group call Local group call Meeting invite: + Meeting has been updated: + Meeting has been cancelled: Description Join %d participants diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 83d061e12..0130e12d5 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -145,6 +145,18 @@ 16sp + + + +