Renamed 'now' conferences as group calls, added group call button to group chat rooms
This commit is contained in:
parent
363322485e
commit
91dae25936
8 changed files with 77 additions and 40 deletions
|
@ -96,6 +96,9 @@ class ChatRoomViewModel(val chatRoom: ChatRoom) : ViewModel(), ContactDataInterf
|
|||
|
||||
val chatUnreadCountTranslateY = MutableLiveData<Float>()
|
||||
|
||||
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)
|
||||
}
|
||||
|
|
|
@ -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" />
|
||||
|
||||
<ImageView
|
||||
android:onClick="@{() -> viewModel.startGroupCall()}"
|
||||
android:contentDescription="@string/content_description_start_call"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="0.2"
|
||||
android:background="?attr/button_background_drawable"
|
||||
android:padding="7dp"
|
||||
android:enabled="@{viewModel.groupCallAvailable}"
|
||||
android:visibility="@{viewModel.oneToOneChatRoom ? View.GONE : View.VISIBLE}"
|
||||
android:src="@drawable/icon_video_conf_new" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/menu"
|
||||
android:visibility="@{viewModel.hideMenu() || chatSendingViewModel.isReadOnly ? View.GONE : View.VISIBLE}"
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
android:gravity="center"
|
||||
android:orientation="horizontal"
|
||||
style="@style/calls_list_header_font"
|
||||
android:text="@string/conference_schedule_title"/>
|
||||
android:text="@{viewModel.scheduleForLater ? @string/conference_schedule_title : @string/conference_group_call_title, default=@string/conference_group_call_title}"/>
|
||||
|
||||
<ImageView
|
||||
android:onClick="@{nextClickListener}"
|
||||
|
@ -97,7 +97,7 @@
|
|||
android:inputType="text"
|
||||
style="@style/conference_scheduling_font"
|
||||
android:background="@drawable/shape_edittext_background"
|
||||
android:hint="@string/conference_schedule_subject_hint"
|
||||
android:hint="@{viewModel.scheduleForLater ? @string/conference_schedule_subject_hint : @string/conference_group_call_subject_hint, default=@string/conference_group_call_subject_hint}"
|
||||
android:text="@={viewModel.subject}" />
|
||||
|
||||
</LinearLayout>
|
||||
|
@ -289,31 +289,27 @@
|
|||
|
||||
</LinearLayout>
|
||||
|
||||
<com.google.android.material.checkbox.MaterialCheckBox
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:text="@string/conference_schedule_send_invite_chat"
|
||||
android:checked="@={viewModel.sendInviteViaChat, default=true}"
|
||||
style="@style/conference_scheduling_font"/>
|
||||
|
||||
<com.google.android.material.checkbox.MaterialCheckBox
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:visibility="gone"
|
||||
android:text="@string/conference_schedule_send_invite_email"
|
||||
android:checked="@={viewModel.sendInviteViaEmail}"
|
||||
style="@style/conference_scheduling_font"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<com.google.android.material.checkbox.MaterialCheckBox
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:text="@string/conference_schedule_send_invite_chat"
|
||||
android:checked="@={viewModel.sendInviteViaChat, default=true}"
|
||||
style="@style/conference_scheduling_font"/>
|
||||
|
||||
<com.google.android.material.checkbox.MaterialCheckBox
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:visibility="gone"
|
||||
android:text="@string/conference_schedule_send_invite_email"
|
||||
android:checked="@={viewModel.sendInviteViaEmail}"
|
||||
style="@style/conference_scheduling_font"/>
|
||||
|
||||
<TextView
|
||||
android:visibility="gone"
|
||||
android:layout_width="wrap_content"
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
android:gravity="center"
|
||||
android:orientation="horizontal"
|
||||
style="@style/calls_list_header_font"
|
||||
android:text="@string/conference_schedule_summary"/>
|
||||
android:text="@{viewModel.scheduleForLater ? @string/conference_schedule_summary : @string/conference_group_call_summary, default=@string/conference_group_call_summary}"/>
|
||||
|
||||
<View
|
||||
android:layout_width="0dp"
|
||||
|
@ -269,9 +269,10 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
style="@style/conference_scheduling_font"
|
||||
android:visibility="@{viewModel.scheduleForLater && viewModel.sendInviteViaChat ? View.VISIBLE : View.GONE}"
|
||||
android:text="@string/conference_schedule_send_invite_chat_summary"/>
|
||||
|
||||
<LinearLayout
|
||||
|
@ -313,7 +314,7 @@
|
|||
android:layout_marginBottom="10dp"
|
||||
android:layout_gravity="center"
|
||||
android:background="@drawable/shape_rect_orange_button"
|
||||
android:text="@{viewModel.scheduleForLater ? @string/conference_schedule : @string/conference_schedule_create, default=@string/conference_schedule}"
|
||||
android:text="@{viewModel.scheduleForLater ? @string/conference_schedule_start : @string/conference_group_call_create, default=@string/conference_group_call_create}"
|
||||
style="@style/big_orange_button_font"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
|
|
@ -245,7 +245,6 @@
|
|||
<string name="chat_room_choose_conversation_for_text_sharing">Auswählen oder erstellen einer Konversation um den Text zu teilen</string>
|
||||
<string name="chat_message_cant_open_file_in_app_dialog_message">Möchten Sie die Datei als Text öffnen oder sie (unverschlüsselt) in eine Anwendung eines Drittanbieters exportieren, falls verfügbar\?</string>
|
||||
<string name="conference">Konferenz</string>
|
||||
<string name="conference_schedule_later">Möchten Sie die Konferenz auf einen späteren Zeitpunkt planen\?</string>
|
||||
<string name="conference_schedule_subject_title">Betreff</string>
|
||||
<string name="conference_schedule_description_title">Beschreibung hinzufügen</string>
|
||||
</resources>
|
|
@ -668,8 +668,8 @@
|
|||
<string name="content_description_create_conference">Créer une conférence</string>
|
||||
<string name="content_description_encrypted_conference">La conférence sera chiffrée</string>
|
||||
<string name="conference">Conférence</string>
|
||||
<string name="conference_schedule_title">Démarrer une conférence</string>
|
||||
<string name="conference_schedule_later">Voulez-vous la programmer pour plus tard \?</string>
|
||||
<string name="conference_schedule_title">Programmer une conférence</string>
|
||||
<string name="conference_schedule_later">Voulez-vous programmer une conférence pour plus tard ?</string>
|
||||
<string name="conference_schedule_mandatory_field">Obligatoire</string>
|
||||
<string name="conference_schedule_subject_title">Sujet</string>
|
||||
<string name="conference_schedule_subject_hint">Sujet de la conférence</string>
|
||||
|
@ -685,8 +685,7 @@
|
|||
<string name="conference_schedule_encryption">Voulez-vous chiffrer la conférence \?</string>
|
||||
<string name="conference_schedule_send_invite_chat_summary">L\'invitation va être envoyée depuis mon compte &appName;</string>
|
||||
<string name="conference_schedule_participants_list">Liste des participants</string>
|
||||
<string name="conference_schedule_create">Créer la conférence</string>
|
||||
<string name="conference_schedule">Planifier une conférence</string>
|
||||
<string name="conference_schedule_start">Planifier une conférence</string>
|
||||
<string name="conference_schedule_address_copied_to_clipboard">L\'adresse de la conférence à été copiée dans le presse papier</string>
|
||||
<string name="conference_schedule_info_not_sent_to_participant">Échec de l\'envoi de l\'invitation de conférence à un participant</string>
|
||||
<string name="conference_paused_title">Vous êtes actuellement en dehors de la conférence.</string>
|
||||
|
@ -719,4 +718,8 @@
|
|||
<string name="conference_first_to_join">Vous êtes le premier à avoir rejoint la conférence</string>
|
||||
<string name="conference_last_user">Tous les autres participants ont quitté la conférence</string>
|
||||
<string name="conference_incoming_title">Appel de conférence entrant</string>
|
||||
<string name="conference_group_call_title">Démarrer un appel de groupe</string>
|
||||
<string name="conference_group_call_subject_hint">Sujet de l\'appel de groupe</string>
|
||||
<string name="conference_group_call_summary">Informations de l\'appel de groupe</string>
|
||||
<string name="conference_group_call_create">Démarrer l\'appel de groupe</string>
|
||||
</resources>
|
|
@ -596,8 +596,7 @@
|
|||
<string name="chat_message_abort_removal">Прервать</string>
|
||||
<string name="conference_schedule_participants_list">Список участников</string>
|
||||
<string name="conference_schedule_summary">Информация конференции</string>
|
||||
<string name="conference_schedule_create">Создать конференцию</string>
|
||||
<string name="conference_schedule">Запланировать конференцию</string>
|
||||
<string name="conference_schedule_start">Запланировать конференцию</string>
|
||||
<string name="conference_schedule_address_copied_to_clipboard">Адрес конференции скопирован в буфер обмена</string>
|
||||
<string name="conference_schedule_info_not_sent_to_participant">Не удалось отправить информацию о конференции участнику</string>
|
||||
<string name="conference_paused_title">В настоящее время вы вне конференции.</string>
|
||||
|
@ -649,8 +648,6 @@
|
|||
<string name="conferences_settings_layout_title">Макет по умолчанию</string>
|
||||
<string name="content_description_delete_conference">Удалить конференцию</string>
|
||||
<string name="conference">Конференция</string>
|
||||
<string name="conference_schedule_title">Начать конференцию</string>
|
||||
<string name="conference_schedule_later">Вы хотите запланировать эту конференцию на потом\?</string>
|
||||
<string name="conference_schedule_mandatory_field">Обязательно</string>
|
||||
<string name="conference_schedule_subject_title">Тема</string>
|
||||
<string name="conference_schedule_subject_hint">Тема конференции</string>
|
||||
|
|
|
@ -234,11 +234,13 @@
|
|||
|
||||
<!-- Conferencing -->
|
||||
<string name="conference">Conference</string>
|
||||
<string name="conference_schedule_title">Start a conference</string>
|
||||
<string name="conference_schedule_later">Do you want to schedule this conference for later?</string>
|
||||
<string name="conference_schedule_title">Schedule a conference</string>
|
||||
<string name="conference_group_call_title">Start a group call</string>
|
||||
<string name="conference_schedule_later">Do you want to schedule a conference for later?</string>
|
||||
<string name="conference_schedule_mandatory_field">Mandatory</string>
|
||||
<string name="conference_schedule_subject_title">Subject</string>
|
||||
<string name="conference_schedule_subject_hint">Conference subject</string>
|
||||
<string name="conference_group_call_subject_hint">Group call subject</string>
|
||||
<string name="conference_schedule_address_title">Conference address</string>
|
||||
<string name="conference_schedule_description_title">Add a description</string>
|
||||
<string name="conference_schedule_description_hint">Description</string>
|
||||
|
@ -253,8 +255,9 @@
|
|||
<string name="conference_schedule_participants_list">Participants list</string>
|
||||
<string name="conference_organizer">Organizer</string>
|
||||
<string name="conference_schedule_summary">Conference info</string>
|
||||
<string name="conference_schedule_create">Create conference</string>
|
||||
<string name="conference_schedule">Schedule conference</string>
|
||||
<string name="conference_group_call_summary">Group call info</string>
|
||||
<string name="conference_schedule_start">Schedule conference</string>
|
||||
<string name="conference_group_call_create">Start group call</string>
|
||||
<string name="conference_schedule_address_copied_to_clipboard">Conference address copied into clipboard</string>
|
||||
<string name="conference_schedule_info_not_sent_to_participant">Failed to send conference info to a participant</string>
|
||||
<string name="conference_paused_title">You are currently out of the conference.</string>
|
||||
|
|
Loading…
Reference in a new issue