diff --git a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomViewModel.kt b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomViewModel.kt index 1286336f2..4dbd6cc00 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatRoomViewModel.kt @@ -96,6 +96,9 @@ class ChatRoomViewModel(val chatRoom: ChatRoom) : ViewModel(), ContactDataInterf val chatUnreadCountTranslateY = MutableLiveData() + val groupCallAvailable: Boolean + get() = LinphoneUtils.isRemoteConferencingAvailable() + private var addressToCall: Address? = null private val bounceAnimator: ValueAnimator by lazy { @@ -277,6 +280,29 @@ class ChatRoomViewModel(val chatRoom: ChatRoom) : ViewModel(), ContactDataInterf } } + fun startGroupCall() { + val conferenceScheduler = coreContext.core.createConferenceScheduler() + val conferenceInfo = Factory.instance().createConferenceInfo() + + val localAddress = chatRoom.localAddress.clone() + localAddress.clean() // Remove GRUU + val addresses = Array(chatRoom.participants.size) { + index -> + chatRoom.participants[index].address + } + val localAccount = coreContext.core.accountList.find { + account -> + account.params.identityAddress?.weakEqual(localAddress) ?: false + } + + conferenceInfo.organizer = localAddress + conferenceInfo.subject = subject.value + conferenceInfo.setParticipants(addresses) + conferenceScheduler.account = localAccount + // Will trigger the conference creation/update automatically + conferenceScheduler.info = conferenceInfo + } + fun updateLastMessageToDisplay() { formatLastMessage(chatRoom.lastMessageInHistory) } diff --git a/app/src/main/res/layout/chat_room_detail_fragment.xml b/app/src/main/res/layout/chat_room_detail_fragment.xml index 268c248b3..cbc56e81b 100644 --- a/app/src/main/res/layout/chat_room_detail_fragment.xml +++ b/app/src/main/res/layout/chat_room_detail_fragment.xml @@ -71,7 +71,7 @@ android:layout_width="0dp" android:layout_height="match_parent" android:layout_gravity="center_vertical|left" - android:layout_weight="@{viewModel.oneToOneChatRoom ? 0.4f : 0.6f}" + android:layout_weight="0.4" android:gravity="center_vertical|left" android:orientation="vertical" android:paddingLeft="15dp"> @@ -114,6 +114,18 @@ android:visibility="@{viewModel.oneToOneChatRoom ? View.VISIBLE : View.GONE}" android:src="@drawable/call_alt_start" /> + + + android:text="@{viewModel.scheduleForLater ? @string/conference_schedule_title : @string/conference_group_call_title, default=@string/conference_group_call_title}"/> @@ -289,31 +289,27 @@ + + + + - - - - + android:text="@{viewModel.scheduleForLater ? @string/conference_schedule_summary : @string/conference_group_call_summary, default=@string/conference_group_call_summary}"/> diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index ee39957eb..7ddc8cd04 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -245,7 +245,6 @@ Auswählen oder erstellen einer Konversation um den Text zu teilen Möchten Sie die Datei als Text öffnen oder sie (unverschlüsselt) in eine Anwendung eines Drittanbieters exportieren, falls verfügbar\? Konferenz - Möchten Sie die Konferenz auf einen späteren Zeitpunkt planen\? Betreff Beschreibung hinzufügen \ No newline at end of file diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 4ec1e05f6..318ef81bb 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -668,8 +668,8 @@ Créer une conférence La conférence sera chiffrée Conférence - Démarrer une conférence - Voulez-vous la programmer pour plus tard \? + Programmer une conférence + Voulez-vous programmer une conférence pour plus tard ? Obligatoire Sujet Sujet de la conférence @@ -685,8 +685,7 @@ Voulez-vous chiffrer la conférence \? L\'invitation va être envoyée depuis mon compte &appName; Liste des participants - Créer la conférence - Planifier une conférence + Planifier une conférence L\'adresse de la conférence à été copiée dans le presse papier Échec de l\'envoi de l\'invitation de conférence à un participant Vous êtes actuellement en dehors de la conférence. @@ -719,4 +718,8 @@ Vous êtes le premier à avoir rejoint la conférence Tous les autres participants ont quitté la conférence Appel de conférence entrant + Démarrer un appel de groupe + Sujet de l\'appel de groupe + Informations de l\'appel de groupe + Démarrer l\'appel de groupe \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index e76122b7b..e9095906c 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -596,8 +596,7 @@ Прервать Список участников Информация конференции - Создать конференцию - Запланировать конференцию + Запланировать конференцию Адрес конференции скопирован в буфер обмена Не удалось отправить информацию о конференции участнику В настоящее время вы вне конференции. @@ -649,8 +648,6 @@ Макет по умолчанию Удалить конференцию Конференция - Начать конференцию - Вы хотите запланировать эту конференцию на потом\? Обязательно Тема Тема конференции diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 01be1e555..add85f705 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -234,11 +234,13 @@ Conference - Start a conference - Do you want to schedule this conference for later? + Schedule a conference + Start a group call + Do you want to schedule a conference for later? Mandatory Subject Conference subject + Group call subject Conference address Add a description Description @@ -253,8 +255,9 @@ Participants list Organizer Conference info - Create conference - Schedule conference + Group call info + Schedule conference + Start group call Conference address copied into clipboard Failed to send conference info to a participant You are currently out of the conference.