From 3a2d85265d279981af253ecc975edc9a520b058b Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 28 Feb 2024 14:11:54 +0100 Subject: [PATCH] Small improvements --- app/build.gradle | 1 + .../main/java/org/linphone/core/CoreContext.kt | 10 ++++++++++ .../ui/assistant/fragment/ProfileModeFragment.kt | 1 + .../linphone/ui/call/model/ConferenceModel.kt | 5 ++--- .../ui/call/model/ConferenceParticipantModel.kt | 4 ---- .../ui/call/viewmodel/CurrentCallViewModel.kt | 2 +- .../main/contacts/viewmodel/ContactViewModel.kt | 4 ++-- .../ui/main/fragment/AuthRequestedDialogModel.kt | 2 +- .../ui/main/meetings/model/ParticipantModel.kt | 4 ---- .../main/meetings/viewmodel/MeetingViewModel.kt | 8 -------- .../java/org/linphone/utils/TimestampUtils.kt | 16 ---------------- .../layout/contacts_list_filter_popup_menu.xml | 2 +- app/src/main/res/layout/settings_contacts.xml | 3 +-- 13 files changed, 20 insertions(+), 42 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 9833f9ac5..9447d4166 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -175,6 +175,7 @@ dependencies { // https://github.com/openid/AppAuth-Android/blob/master/LICENSE Apache v2.0 implementation 'net.openid:appauth:0.11.1' + //noinspection GroovyConstructorNamedArguments android.defaultConfig.manifestPlaceholders = [appAuthRedirectScheme: 'org.linphone'] //noinspection GradleDynamicVersion diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index fa199c699..51a0dcf04 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -241,6 +241,16 @@ class CoreContext @UiThread constructor(val context: Context) : HandlerThread("C Looper.loop() } + override fun quit(): Boolean { + destroyCore() + return super.quit() + } + + override fun quitSafely(): Boolean { + destroyCore() + return super.quitSafely() + } + @WorkerThread fun startCore() { Log.i("$TAG Configuring Core") diff --git a/app/src/main/java/org/linphone/ui/assistant/fragment/ProfileModeFragment.kt b/app/src/main/java/org/linphone/ui/assistant/fragment/ProfileModeFragment.kt index 3c30410c9..b30489ef1 100644 --- a/app/src/main/java/org/linphone/ui/assistant/fragment/ProfileModeFragment.kt +++ b/app/src/main/java/org/linphone/ui/assistant/fragment/ProfileModeFragment.kt @@ -57,6 +57,7 @@ class ProfileModeFragment : Fragment() { super.onViewCreated(view, savedInstanceState) binding.lifecycleOwner = viewLifecycleOwner + binding.viewModel = viewModel binding.setBackClickListener { findNavController().popBackStack() diff --git a/app/src/main/java/org/linphone/ui/call/model/ConferenceModel.kt b/app/src/main/java/org/linphone/ui/call/model/ConferenceModel.kt index 816c9b0b4..3240fbf9c 100644 --- a/app/src/main/java/org/linphone/ui/call/model/ConferenceModel.kt +++ b/app/src/main/java/org/linphone/ui/call/model/ConferenceModel.kt @@ -19,6 +19,7 @@ */ package org.linphone.ui.call.model +import android.annotation.SuppressLint import androidx.annotation.UiThread import androidx.annotation.WorkerThread import androidx.lifecycle.MutableLiveData @@ -113,7 +114,7 @@ class ConferenceModel { if (found != null) { Log.i("$TAG Newly active speaker participant is [${found.name}]") found.isActiveSpeaker.postValue(true) - activeSpeaker.postValue(found!!) + activeSpeaker.postValue(found) } else { Log.i("$TAG Failed to find actively speaking participant...") val model = ConferenceParticipantDeviceModel(participantDevice) @@ -300,7 +301,6 @@ class ConferenceModel { @WorkerThread private fun computeParticipants() { - participants.value.orEmpty().forEach(ConferenceParticipantModel::destroy) participantDevices.value.orEmpty().forEach(ConferenceParticipantDeviceModel::destroy) val participantsList = arrayListOf() @@ -457,7 +457,6 @@ class ConferenceModel { participant.address.weakEqual(it.participant.address) } if (toRemove != null) { - toRemove.destroy() list.remove(toRemove) } diff --git a/app/src/main/java/org/linphone/ui/call/model/ConferenceParticipantModel.kt b/app/src/main/java/org/linphone/ui/call/model/ConferenceParticipantModel.kt index 26c236666..fd637c622 100644 --- a/app/src/main/java/org/linphone/ui/call/model/ConferenceParticipantModel.kt +++ b/app/src/main/java/org/linphone/ui/call/model/ConferenceParticipantModel.kt @@ -36,8 +36,4 @@ class ConferenceParticipantModel @WorkerThread constructor(val participant: Part init { isAdmin.postValue(participant.isAdmin) } - - @WorkerThread - fun destroy() { - } } diff --git a/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt b/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt index 8aac3cfe9..c2a0ad2f6 100644 --- a/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt +++ b/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt @@ -726,7 +726,7 @@ class CurrentCallViewModel @UiThread constructor() : ViewModel() { val avatarModel = contact.value if (avatarModel != null) { avatarModel.trust.postValue(securityLevel) - contact.postValue(avatarModel!!) + contact.postValue(avatarModel) } else { Log.e("$TAG No avatar model found!") } diff --git a/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactViewModel.kt b/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactViewModel.kt index 38f001557..396e468fd 100644 --- a/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactViewModel.kt @@ -257,11 +257,11 @@ class ContactViewModel @UiThread constructor() : ViewModel() { val organization = friend.organization if (!organization.isNullOrEmpty()) { - company.postValue(organization!!) + company.postValue(organization) } val jobTitle = friend.jobTitle if (!jobTitle.isNullOrEmpty()) { - title.postValue(jobTitle!!) + title.postValue(jobTitle) } val addressesAndNumbers = friend.getListOfSipAddressesAndPhoneNumbers(listener) diff --git a/app/src/main/java/org/linphone/ui/main/fragment/AuthRequestedDialogModel.kt b/app/src/main/java/org/linphone/ui/main/fragment/AuthRequestedDialogModel.kt index 38bc1509e..e7b355890 100644 --- a/app/src/main/java/org/linphone/ui/main/fragment/AuthRequestedDialogModel.kt +++ b/app/src/main/java/org/linphone/ui/main/fragment/AuthRequestedDialogModel.kt @@ -39,7 +39,7 @@ class AuthRequestedDialogModel @UiThread constructor(identity: String) { init { showPassword.value = false message.value = AppUtils.getFormattedString( - R.string.dialog_account_invalid_password_message, + R.string.account_settings_dialog_invalid_password_message, identity ) } diff --git a/app/src/main/java/org/linphone/ui/main/meetings/model/ParticipantModel.kt b/app/src/main/java/org/linphone/ui/main/meetings/model/ParticipantModel.kt index c15e18881..abd90a29b 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/model/ParticipantModel.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/model/ParticipantModel.kt @@ -32,8 +32,4 @@ class ParticipantModel @WorkerThread constructor(address: Address, val isOrganiz val avatar = coreContext.contactsManager.getContactAvatarModelForAddress(address) avatarModel.postValue(avatar) } - - @WorkerThread - fun destroy() { - } } diff --git a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingViewModel.kt b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingViewModel.kt index 37b2100ae..858d87045 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingViewModel.kt @@ -74,11 +74,6 @@ class MeetingViewModel @UiThread constructor() : ViewModel() { override fun onCleared() { super.onCleared() - - coreContext.postOnCoreThread { - speakers.value.orEmpty().forEach(ParticipantModel::destroy) - participants.value.orEmpty().forEach(ParticipantModel::destroy) - } } @UiThread @@ -163,9 +158,6 @@ class MeetingViewModel @UiThread constructor() : ViewModel() { } private fun computeParticipantsList() { - speakers.value.orEmpty().forEach(ParticipantModel::destroy) - participants.value.orEmpty().forEach(ParticipantModel::destroy) - val speakersList = arrayListOf() val participantsList = arrayListOf() diff --git a/app/src/main/java/org/linphone/utils/TimestampUtils.kt b/app/src/main/java/org/linphone/utils/TimestampUtils.kt index 02fcbe9cd..9dd4f241b 100644 --- a/app/src/main/java/org/linphone/utils/TimestampUtils.kt +++ b/app/src/main/java/org/linphone/utils/TimestampUtils.kt @@ -69,22 +69,6 @@ class TimestampUtils { return isSameDay(cal, yesterday) } - @AnyThread - fun dateToString(date: Long, timestampInSecs: Boolean = true): String { - val dateFormat: Format = android.text.format.DateFormat.getDateFormat( - coreContext.context - ) - val pattern = (dateFormat as SimpleDateFormat).toLocalizedPattern() - - val calendar = Calendar.getInstance() - calendar.timeInMillis = if (timestampInSecs) date * 1000 else date - - // See https://github.com/material-components/material-components-android/issues/882 - val dateFormatter = SimpleDateFormat(pattern, Locale.getDefault()) - dateFormatter.timeZone = TimeZone.getTimeZone("UTC") - return dateFormatter.format(calendar.time) - } - @AnyThread fun dayOfWeek(timestamp: Long, timestampInSecs: Boolean = true): String { val calendar = Calendar.getInstance() diff --git a/app/src/main/res/layout/contacts_list_filter_popup_menu.xml b/app/src/main/res/layout/contacts_list_filter_popup_menu.xml index 3dd05bdf3..35b47a7c2 100644 --- a/app/src/main/res/layout/contacts_list_filter_popup_menu.xml +++ b/app/src/main/res/layout/contacts_list_filter_popup_menu.xml @@ -1,5 +1,5 @@ - diff --git a/app/src/main/res/layout/settings_contacts.xml b/app/src/main/res/layout/settings_contacts.xml index ee4918ee9..db9813bc3 100644 --- a/app/src/main/res/layout/settings_contacts.xml +++ b/app/src/main/res/layout/settings_contacts.xml @@ -1,7 +1,6 @@ + xmlns:android="http://schemas.android.com/apk/res/android">