Code cleanup

This commit is contained in:
Sylvain Berfini 2021-04-23 10:48:48 +02:00
parent e2324eae66
commit 5d2621af03
55 changed files with 123 additions and 179 deletions

View file

@ -38,7 +38,7 @@ abstract class GenericFragment<T : ViewDataBinding> : Fragment() {
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = DataBindingUtil.inflate<T>(inflater, getLayoutId(), container, false)
_binding = DataBindingUtil.inflate(inflater, getLayoutId(), container, false)
return _binding!!.root
}

View file

@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.linphone.activities.main
package org.linphone.activities
import android.net.Uri
import android.os.Bundle
@ -31,6 +31,7 @@ import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.corePreferences
import org.linphone.R
import org.linphone.activities.assistant.fragments.*
import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.chat.fragments.ChatRoomCreationFragment
import org.linphone.activities.main.chat.fragments.DetailChatRoomFragment
import org.linphone.activities.main.chat.fragments.GroupInfoFragment

View file

@ -31,9 +31,9 @@ import org.linphone.activities.assistant.AssistantActivity
import org.linphone.activities.assistant.viewmodels.AccountLoginViewModel
import org.linphone.activities.assistant.viewmodels.AccountLoginViewModelFactory
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
import org.linphone.activities.main.navigateToEchoCancellerCalibration
import org.linphone.activities.main.navigateToPhoneAccountValidation
import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.activities.navigateToEchoCancellerCalibration
import org.linphone.activities.navigateToPhoneAccountValidation
import org.linphone.databinding.AssistantAccountLoginFragmentBinding
import org.linphone.utils.DialogUtils

View file

@ -28,7 +28,7 @@ import org.linphone.activities.assistant.AssistantActivity
import org.linphone.activities.assistant.viewmodels.EmailAccountCreationViewModel
import org.linphone.activities.assistant.viewmodels.EmailAccountCreationViewModelFactory
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
import org.linphone.activities.main.navigateToEmailAccountValidation
import org.linphone.activities.navigateToEmailAccountValidation
import org.linphone.databinding.AssistantEmailAccountCreationFragmentBinding
class EmailAccountCreationFragment : GenericFragment<AssistantEmailAccountCreationFragmentBinding>() {

View file

@ -26,7 +26,7 @@ import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.AssistantActivity
import org.linphone.activities.assistant.viewmodels.*
import org.linphone.activities.main.navigateToAccountLinking
import org.linphone.activities.navigateToAccountLinking
import org.linphone.databinding.AssistantEmailAccountValidationFragmentBinding
class EmailAccountValidationFragment : GenericFragment<AssistantEmailAccountValidationFragmentBinding>() {

View file

@ -30,8 +30,8 @@ import org.linphone.activities.assistant.AssistantActivity
import org.linphone.activities.assistant.viewmodels.GenericLoginViewModel
import org.linphone.activities.assistant.viewmodels.GenericLoginViewModelFactory
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
import org.linphone.activities.main.navigateToEchoCancellerCalibration
import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.activities.navigateToEchoCancellerCalibration
import org.linphone.databinding.AssistantGenericAccountLoginFragmentBinding
import org.linphone.utils.DialogUtils

View file

@ -27,7 +27,7 @@ import org.linphone.activities.assistant.AssistantActivity
import org.linphone.activities.assistant.viewmodels.PhoneAccountCreationViewModel
import org.linphone.activities.assistant.viewmodels.PhoneAccountCreationViewModelFactory
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
import org.linphone.activities.main.navigateToPhoneAccountValidation
import org.linphone.activities.navigateToPhoneAccountValidation
import org.linphone.databinding.AssistantPhoneAccountCreationFragmentBinding
class PhoneAccountCreationFragment : AbstractPhoneFragment<AssistantPhoneAccountCreationFragmentBinding>() {

View file

@ -26,8 +26,8 @@ import org.linphone.LinphoneApplication
import org.linphone.R
import org.linphone.activities.assistant.AssistantActivity
import org.linphone.activities.assistant.viewmodels.*
import org.linphone.activities.main.navigateToEchoCancellerCalibration
import org.linphone.activities.main.navigateToPhoneAccountValidation
import org.linphone.activities.navigateToEchoCancellerCalibration
import org.linphone.activities.navigateToPhoneAccountValidation
import org.linphone.core.tools.Log
import org.linphone.databinding.AssistantPhoneAccountLinkingFragmentBinding

View file

@ -31,8 +31,8 @@ import org.linphone.activities.assistant.AssistantActivity
import org.linphone.activities.assistant.viewmodels.PhoneAccountValidationViewModel
import org.linphone.activities.assistant.viewmodels.PhoneAccountValidationViewModelFactory
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
import org.linphone.activities.main.navigateToAccountSettings
import org.linphone.activities.main.navigateToEchoCancellerCalibration
import org.linphone.activities.navigateToAccountSettings
import org.linphone.activities.navigateToEchoCancellerCalibration
import org.linphone.databinding.AssistantPhoneAccountValidationFragmentBinding
class PhoneAccountValidationFragment : GenericFragment<AssistantPhoneAccountValidationFragmentBinding>() {

View file

@ -28,8 +28,8 @@ import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.AssistantActivity
import org.linphone.activities.assistant.viewmodels.RemoteProvisioningViewModel
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
import org.linphone.activities.main.navigateToEchoCancellerCalibration
import org.linphone.activities.main.navigateToQrCode
import org.linphone.activities.navigateToEchoCancellerCalibration
import org.linphone.activities.navigateToQrCode
import org.linphone.databinding.AssistantRemoteProvisioningFragmentBinding
class RemoteProvisioningFragment : GenericFragment<AssistantRemoteProvisioningFragmentBinding>() {

View file

@ -31,13 +31,12 @@ import androidx.lifecycle.ViewModelProvider
import java.util.regex.Pattern
import org.linphone.LinphoneApplication.Companion.corePreferences
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.*
import org.linphone.activities.assistant.viewmodels.WelcomeViewModel
import org.linphone.activities.main.*
import org.linphone.activities.main.navigateToAccountLogin
import org.linphone.activities.main.navigateToEmailAccountCreation
import org.linphone.activities.main.navigateToGenericLogin
import org.linphone.activities.main.navigateToRemoteProvisioning
import org.linphone.activities.navigateToAccountLogin
import org.linphone.activities.navigateToEmailAccountCreation
import org.linphone.activities.navigateToGenericLogin
import org.linphone.activities.navigateToRemoteProvisioning
import org.linphone.databinding.AssistantWelcomeFragmentBinding
class WelcomeFragment : GenericFragment<AssistantWelcomeFragmentBinding>() {

View file

@ -112,12 +112,12 @@ class IncomingCallActivity : GenericActivity() {
val permissionsRequiredList = arrayListOf<String>()
if (!PermissionHelper.get().hasRecordAudioPermission()) {
Log.i("[Incoming Call Activity] Asking for RECORD_AUDIO permission")
permissionsRequiredList.add(android.Manifest.permission.RECORD_AUDIO)
permissionsRequiredList.add(Manifest.permission.RECORD_AUDIO)
}
if (viewModel.call.currentParams.videoEnabled() && !PermissionHelper.get().hasCameraPermission()) {
Log.i("[Incoming Call Activity] Asking for CAMERA permission")
permissionsRequiredList.add(android.Manifest.permission.CAMERA)
permissionsRequiredList.add(Manifest.permission.CAMERA)
}
if (permissionsRequiredList.isNotEmpty()) {
@ -145,6 +145,7 @@ class IncomingCallActivity : GenericActivity() {
}
}
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
}
private fun findIncomingCall(): Call? {

View file

@ -131,11 +131,11 @@ class OutgoingCallActivity : ProximitySensorActivity() {
val permissionsRequiredList = arrayListOf<String>()
if (!PermissionHelper.get().hasRecordAudioPermission()) {
Log.i("[Outgoing Call Activity] Asking for RECORD_AUDIO permission")
permissionsRequiredList.add(android.Manifest.permission.RECORD_AUDIO)
permissionsRequiredList.add(Manifest.permission.RECORD_AUDIO)
}
if (viewModel.call.currentParams.videoEnabled() && !PermissionHelper.get().hasCameraPermission()) {
Log.i("[Outgoing Call Activity] Asking for CAMERA permission")
permissionsRequiredList.add(android.Manifest.permission.CAMERA)
permissionsRequiredList.add(Manifest.permission.CAMERA)
}
if (permissionsRequiredList.isNotEmpty()) {
val permissionsRequired = arrayOfNulls<String>(permissionsRequiredList.size)
@ -163,6 +163,7 @@ class OutgoingCallActivity : ProximitySensorActivity() {
}
}
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
}
private fun findOutgoingCall(): Call? {

View file

@ -21,8 +21,6 @@ package org.linphone.activities.call.data
import androidx.lifecycle.MutableLiveData
import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.activities.call.viewmodels.StatItemData
import org.linphone.activities.call.viewmodels.StatType
import org.linphone.contact.GenericContactData
import org.linphone.core.*

View file

@ -17,7 +17,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.linphone.activities.call.viewmodels
package org.linphone.activities.call.data
import androidx.lifecycle.MutableLiveData
import java.text.DecimalFormat

View file

@ -139,14 +139,6 @@ open class CallViewModel(val call: Call) : GenericContactViewModel(call.remoteAd
call.resume()
}
fun removeFromConference() {
val conference = call.conference
if (conference != null) {
conference.removeParticipant(call.remoteAddress)
if (call.core.conferenceSize <= 1) call.core.leaveConference()
}
}
fun takeScreenshot() {
if (call.currentParams.videoEnabled()) {
val fileName = System.currentTimeMillis().toString() + ".jpeg"

View file

@ -46,6 +46,7 @@ import org.linphone.activities.SnackBarActivity
import org.linphone.activities.assistant.AssistantActivity
import org.linphone.activities.call.CallActivity
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.activities.navigateToDialer
import org.linphone.compatibility.Compatibility
import org.linphone.contact.ContactsUpdatedListenerStub
import org.linphone.core.tools.Log
@ -260,15 +261,19 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin
val stringUri = uri.toString()
var addressToCall: String = stringUri
if (addressToCall.startsWith("tel:")) {
Log.i("[Main Activity] Removing tel: prefix")
addressToCall = addressToCall.substring("tel:".length)
} else if (addressToCall.startsWith("linphone:")) {
Log.i("[Main Activity] Removing linphone: prefix")
addressToCall = addressToCall.substring("linphone:".length)
} else if (addressToCall.startsWith("sip-linphone:")) {
Log.i("[Main Activity] Removing linphone: sip-linphone")
addressToCall = addressToCall.substring("sip-linphone:".length)
when {
addressToCall.startsWith("tel:") -> {
Log.i("[Main Activity] Removing tel: prefix")
addressToCall = addressToCall.substring("tel:".length)
}
addressToCall.startsWith("linphone:") -> {
Log.i("[Main Activity] Removing linphone: prefix")
addressToCall = addressToCall.substring("linphone:".length)
}
addressToCall.startsWith("sip-linphone:") -> {
Log.i("[Main Activity] Removing linphone: sip-linphone")
addressToCall = addressToCall.substring("sip-linphone:".length)
}
}
val address = coreContext.core.interpretUrl(addressToCall)

View file

@ -24,7 +24,6 @@ import android.text.Spannable
import android.text.util.Linkify
import androidx.core.text.util.LinkifyCompat
import androidx.lifecycle.MutableLiveData
import kotlinx.coroutines.*
import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.LinphoneApplication.Companion.corePreferences
import org.linphone.R

View file

@ -32,9 +32,9 @@ import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.chat.adapters.ChatRoomCreationContactsAdapter
import org.linphone.activities.main.chat.viewmodels.ChatRoomCreationViewModel
import org.linphone.activities.main.fragments.SecureFragment
import org.linphone.activities.main.navigateToChatRoom
import org.linphone.activities.main.navigateToGroupInfo
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.activities.navigateToChatRoom
import org.linphone.activities.navigateToGroupInfo
import org.linphone.core.tools.Log
import org.linphone.databinding.ChatRoomCreationFragmentBinding
import org.linphone.utils.PermissionHelper

View file

@ -43,13 +43,18 @@ import kotlinx.coroutines.launch
import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.LinphoneApplication.Companion.corePreferences
import org.linphone.R
import org.linphone.activities.main.*
import org.linphone.activities.*
import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.chat.ChatScrollListener
import org.linphone.activities.main.chat.adapters.ChatMessagesListAdapter
import org.linphone.activities.main.chat.viewmodels.*
import org.linphone.activities.main.fragments.MasterFragment
import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.activities.navigateToChatRooms
import org.linphone.activities.navigateToContacts
import org.linphone.activities.navigateToImageFileViewer
import org.linphone.activities.navigateToImdn
import org.linphone.compatibility.Compatibility
import org.linphone.core.*
import org.linphone.core.tools.Log

View file

@ -33,10 +33,10 @@ import org.linphone.activities.main.chat.adapters.GroupInfoParticipantsAdapter
import org.linphone.activities.main.chat.viewmodels.GroupInfoViewModel
import org.linphone.activities.main.chat.viewmodels.GroupInfoViewModelFactory
import org.linphone.activities.main.fragments.SecureFragment
import org.linphone.activities.main.navigateToChatRoom
import org.linphone.activities.main.navigateToChatRoomCreation
import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.activities.navigateToChatRoom
import org.linphone.activities.navigateToChatRoomCreation
import org.linphone.core.Address
import org.linphone.core.ChatRoom
import org.linphone.core.ChatRoomCapabilities

View file

@ -35,10 +35,10 @@ import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.chat.adapters.ChatRoomsListAdapter
import org.linphone.activities.main.chat.viewmodels.ChatRoomsListViewModel
import org.linphone.activities.main.fragments.MasterFragment
import org.linphone.activities.main.navigateToChatRoom
import org.linphone.activities.main.navigateToChatRoomCreation
import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.activities.navigateToChatRoom
import org.linphone.activities.navigateToChatRoomCreation
import org.linphone.core.ChatRoom
import org.linphone.core.Factory
import org.linphone.core.tools.Log

View file

@ -144,7 +144,7 @@ class ChatRoomsListViewModel : ErrorReportingViewModel() {
}
private fun updateChatRooms() {
var list = arrayListOf<ChatRoom>()
val list = arrayListOf<ChatRoom>()
list.addAll(coreContext.core.chatRooms)

View file

@ -38,8 +38,8 @@ import org.linphone.activities.GenericFragment
import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.contact.data.NumberOrAddressEditorData
import org.linphone.activities.main.contact.viewmodels.*
import org.linphone.activities.main.navigateToContact
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.activities.navigateToContact
import org.linphone.contact.NativeContact
import org.linphone.core.tools.Log
import org.linphone.databinding.ContactEditorFragmentBinding

View file

@ -32,10 +32,11 @@ import org.linphone.activities.GenericFragment
import org.linphone.activities.main.*
import org.linphone.activities.main.contact.viewmodels.ContactViewModel
import org.linphone.activities.main.contact.viewmodels.ContactViewModelFactory
import org.linphone.activities.main.navigateToContactEditor
import org.linphone.activities.main.navigateToDialer
import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.activities.navigateToChatRoom
import org.linphone.activities.navigateToContactEditor
import org.linphone.activities.navigateToDialer
import org.linphone.core.tools.Log
import org.linphone.databinding.ContactDetailFragmentBinding
import org.linphone.utils.DialogUtils

View file

@ -35,10 +35,10 @@ import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.contact.adapters.ContactsListAdapter
import org.linphone.activities.main.contact.viewmodels.ContactsListViewModel
import org.linphone.activities.main.fragments.MasterFragment
import org.linphone.activities.main.navigateToContact
import org.linphone.activities.main.navigateToContactEditor
import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.activities.navigateToContact
import org.linphone.activities.navigateToContactEditor
import org.linphone.contact.Contact
import org.linphone.core.Factory
import org.linphone.core.tools.Log

View file

@ -36,10 +36,10 @@ import org.linphone.R
import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.dialer.viewmodels.DialerViewModel
import org.linphone.activities.main.fragments.SecureFragment
import org.linphone.activities.main.navigateToConfigFileViewer
import org.linphone.activities.main.navigateToContacts
import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.activities.navigateToConfigFileViewer
import org.linphone.activities.navigateToContacts
import org.linphone.core.tools.Log
import org.linphone.databinding.DialerFragmentBinding
import org.linphone.utils.AppUtils

View file

@ -27,7 +27,6 @@ import android.view.WindowManager
import androidx.core.view.ViewCompat
import androidx.databinding.ViewDataBinding
import androidx.lifecycle.lifecycleScope
import java.util.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch

View file

@ -28,11 +28,11 @@ import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.corePreferences
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.navigateToCallHistory
import org.linphone.activities.main.navigateToChatRooms
import org.linphone.activities.main.navigateToContacts
import org.linphone.activities.main.navigateToDialer
import org.linphone.activities.main.viewmodels.TabsViewModel
import org.linphone.activities.navigateToCallHistory
import org.linphone.activities.navigateToChatRooms
import org.linphone.activities.navigateToContacts
import org.linphone.activities.navigateToDialer
import org.linphone.databinding.TabsFragmentBinding
class TabsFragment : GenericFragment<TabsFragmentBinding>(), NavController.OnDestinationChangedListener {

View file

@ -25,14 +25,14 @@ import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.*
import org.linphone.activities.main.*
import org.linphone.activities.main.history.viewmodels.CallLogViewModel
import org.linphone.activities.main.history.viewmodels.CallLogViewModelFactory
import org.linphone.activities.main.navigateToContact
import org.linphone.activities.main.navigateToContacts
import org.linphone.activities.main.navigateToFriend
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.activities.navigateToContact
import org.linphone.activities.navigateToContacts
import org.linphone.activities.navigateToFriend
import org.linphone.contact.NativeContact
import org.linphone.core.tools.Log
import org.linphone.databinding.HistoryDetailFragmentBinding

View file

@ -34,11 +34,11 @@ import org.linphone.activities.main.fragments.MasterFragment
import org.linphone.activities.main.history.adapters.CallLogsListAdapter
import org.linphone.activities.main.history.data.GroupedCallLogData
import org.linphone.activities.main.history.viewmodels.CallLogsListViewModel
import org.linphone.activities.main.navigateToCallHistory
import org.linphone.activities.main.navigateToDialer
import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.activities.main.viewmodels.TabsViewModel
import org.linphone.activities.navigateToCallHistory
import org.linphone.activities.navigateToDialer
import org.linphone.core.tools.Log
import org.linphone.databinding.HistoryMasterFragmentBinding
import org.linphone.utils.*

View file

@ -26,10 +26,10 @@ import androidx.navigation.fragment.findNavController
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.navigateToPhoneLinking
import org.linphone.activities.main.settings.viewmodels.AccountSettingsViewModel
import org.linphone.activities.main.settings.viewmodels.AccountSettingsViewModelFactory
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.activities.navigateToPhoneLinking
import org.linphone.core.tools.Log
import org.linphone.databinding.SettingsAccountFragmentBinding

View file

@ -24,14 +24,15 @@ import android.view.View
import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import org.linphone.R
import org.linphone.activities.main.*
import org.linphone.activities.*
import org.linphone.activities.main.fragments.SecureFragment
import org.linphone.activities.main.navigateToAccountSettings
import org.linphone.activities.main.navigateToAudioSettings
import org.linphone.activities.main.navigateToTunnelSettings
import org.linphone.activities.main.settings.SettingListenerStub
import org.linphone.activities.main.settings.viewmodels.SettingsViewModel
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.activities.navigateToAccountSettings
import org.linphone.activities.navigateToAudioSettings
import org.linphone.activities.navigateToTunnelSettings
import org.linphone.activities.navigateToVideoSettings
import org.linphone.core.tools.Log
import org.linphone.databinding.SettingsFragmentBinding

View file

@ -23,7 +23,6 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import java.lang.NumberFormatException
import java.util.*
import kotlin.collections.ArrayList
import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.LinphoneApplication.Companion.corePreferences
@ -251,7 +250,7 @@ class AccountSettingsViewModel(val account: Account) : GenericSettingsViewModel(
val params = account.params.clone()
params.transport = TransportType.fromInt(position)
account.params = params
proxy.value = account.params.serverAddr
proxy.value = account.params.serverAddress?.asStringUriOnly()
}
}
val transportIndex = MutableLiveData<Int>()
@ -260,9 +259,12 @@ class AccountSettingsViewModel(val account: Account) : GenericSettingsViewModel(
val proxyListener = object : SettingListenerStub() {
override fun onTextValueChanged(newValue: String) {
val params = account.params.clone()
params.serverAddr = newValue
account.params = params
transportIndex.value = account.params.transport.toInt()
val address = Factory.instance().createAddress(newValue)
if (address != null) {
params.serverAddress = address
account.params = params
transportIndex.value = account.params.transport.toInt()
}
}
}
val proxy = MutableLiveData<String>()
@ -408,7 +410,7 @@ class AccountSettingsViewModel(val account: Account) : GenericSettingsViewModel(
disable.value = !params.registerEnabled
pushNotification.value = params.pushNotificationAllowed
pushNotificationsAvailable.value = core.isPushNotificationAvailable
proxy.value = params.serverAddr
proxy.value = params.serverAddress?.asStringUriOnly()
outboundProxy.value = params.outboundProxyEnabled
stunServer.value = params.natPolicy?.stunServer
ice.value = params.natPolicy?.iceEnabled()

View file

@ -35,13 +35,13 @@ import org.linphone.LinphoneApplication.Companion.corePreferences
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.AssistantActivity
import org.linphone.activities.main.navigateToAbout
import org.linphone.activities.main.navigateToAccountSettings
import org.linphone.activities.main.navigateToRecordings
import org.linphone.activities.main.navigateToSettings
import org.linphone.activities.main.settings.SettingListenerStub
import org.linphone.activities.main.sidemenu.viewmodels.SideMenuViewModel
import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.activities.navigateToAbout
import org.linphone.activities.navigateToAccountSettings
import org.linphone.activities.navigateToRecordings
import org.linphone.activities.navigateToSettings
import org.linphone.core.tools.Log
import org.linphone.databinding.SideMenuFragmentBinding
import org.linphone.utils.Event

View file

@ -19,6 +19,7 @@
*/
package org.linphone.compatibility
import android.annotation.SuppressLint
import android.annotation.TargetApi
import android.app.Activity
import android.bluetooth.BluetoothAdapter
@ -56,6 +57,7 @@ class Api21Compatibility {
return name
}
@SuppressLint("MissingPermission")
fun eventVibration(vibrator: Vibrator) {
val pattern = longArrayOf(0, 100, 100)
vibrator.vibrate(pattern, -1)

View file

@ -20,14 +20,9 @@
package org.linphone.compatibility
import android.annotation.TargetApi
import android.app.NotificationManager
import android.content.Context
import android.content.pm.PackageManager
import android.provider.Settings
import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.contact.Contact
import org.linphone.core.Address
import org.linphone.core.tools.Log
@TargetApi(23)
class Api23Compatibility {
@ -36,70 +31,6 @@ class Api23Compatibility {
return context.checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED
}
fun isDoNotDisturbSettingsAccessGranted(context: Context): Boolean {
val notificationManager =
context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
return notificationManager.isNotificationPolicyAccessGranted
}
fun isDoNotDisturbPolicyAllowingRinging(context: Context, remoteAddress: Address): Boolean {
val notificationManager =
context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
val filter = notificationManager.currentInterruptionFilter
if (filter == NotificationManager.INTERRUPTION_FILTER_PRIORITY) {
Log.w("[Audio Manager] Priority interruption filter detected")
if (!notificationManager.isNotificationPolicyAccessGranted) {
Log.e(
"[Audio Manager] Access to policy is denied, let's assume it is not safe for ringing"
)
return false
}
val callPolicy = notificationManager.notificationPolicy.priorityCallSenders
if (callPolicy == NotificationManager.Policy.PRIORITY_SENDERS_ANY) {
Log.i("[Audio Manager] Priority for calls is Any, we can ring")
} else {
val contact: Contact? = coreContext.contactsManager.findContactByAddress(remoteAddress)
if (callPolicy == NotificationManager.Policy.PRIORITY_SENDERS_CONTACTS) {
Log.i("[Audio Manager] Priority for calls is Contacts, let's check")
if (contact == null) {
Log.w(
"[Audio Manager] Couldn't find a contact for address ${remoteAddress.asStringUriOnly()}"
)
return false
} else {
Log.i(
"[Audio Manager] Contact found for address ${remoteAddress.asStringUriOnly()}, we can ring"
)
}
} else if (callPolicy == NotificationManager.Policy.PRIORITY_SENDERS_STARRED) {
Log.i("[Audio Manager] Priority for calls is Starred Contacts, let's check")
if (contact == null) {
Log.w(
"[Audio Manager] Couldn't find a contact for address ${remoteAddress.asStringUriOnly()}"
)
return false
} else if (!contact.isStarred) {
Log.w(
"[Audio Manager] Contact found for address ${remoteAddress.asStringUriOnly()}, but it isn't starred"
)
return false
} else {
Log.i(
"[Audio Manager] Starred contact found for address ${remoteAddress.asStringUriOnly()}, we can ring"
)
}
}
}
} else if (filter == NotificationManager.INTERRUPTION_FILTER_ALARMS) {
Log.w("[Audio Manager] Alarms interruption filter detected")
return false
} else {
Log.i("[Audio Manager] Interruption filter is $filter, we can ring")
}
return true
}
fun canDrawOverlay(context: Context): Boolean {
return Settings.canDrawOverlays(context)
}

View file

@ -19,6 +19,7 @@
*/
package org.linphone.compatibility
import android.annotation.SuppressLint
import android.annotation.TargetApi
import android.app.Activity
import android.app.NotificationChannel
@ -116,6 +117,7 @@ class Api26Compatibility {
return WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY
}
@SuppressLint("MissingPermission")
fun eventVibration(vibrator: Vibrator) {
val effect = VibrationEffect.createWaveform(longArrayOf(0L, 100L, 100L), intArrayOf(0, VibrationEffect.DEFAULT_AMPLITUDE, 0), -1)
val audioAttrs = AudioAttributes.Builder()

View file

@ -487,9 +487,8 @@ class CoreContext(val context: Context, coreConfig: Config) {
}
}
if (core.conference != null && core.isInConference) {
// Nothing to do
} else {
val conference = core.conference
if (conference == null || !conference.isIn) {
val call = core.currentCall
if (call == null) {
Log.w("[Context] Switching camera while not in call")
@ -505,8 +504,8 @@ class CoreContext(val context: Context, coreConfig: Config) {
fun isVideoCallOrConferenceActive(): Boolean {
val conference = core.conference
return if (conference != null && core.isInConference) {
conference.currentParams.isVideoEnabled()
return if (conference != null && conference.isIn) {
conference.currentParams.isVideoEnabled
} else {
core.currentCall?.currentParams?.videoEnabled() ?: false
}
@ -684,7 +683,7 @@ class CoreContext(val context: Context, coreConfig: Config) {
}
@Throws(java.lang.Exception::class)
fun generateToken(): String? {
fun generateToken(): String {
return sha512(UUID.randomUUID().toString())
}
@ -745,7 +744,7 @@ class CoreContext(val context: Context, coreConfig: Config) {
if (corePreferences.encryptedSharedPreferences.getString(VFS_IV, null) == null) {
generateSecretKey()
generateToken()?.let { encryptToken(it) }?.let { data ->
encryptToken(generateToken()).let { data ->
corePreferences.encryptedSharedPreferences
.edit()
.putString(VFS_IV, data.first)

View file

@ -19,6 +19,7 @@
*/
package org.linphone.utils
import android.annotation.SuppressLint
import android.content.Context
import android.net.ConnectivityManager
import android.net.NetworkInfo
@ -114,6 +115,7 @@ class LinphoneUtils {
return SimpleDateFormat(RECORDING_DATE_PATTERN, Locale.getDefault()).parse(name)
}
@SuppressLint("MissingPermission")
fun checkIfNetworkHasLowBandwidth(context: Context): Boolean {
val connMgr = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val networkInfo: NetworkInfo? = connMgr.activeNetworkInfo

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools"
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<import type="android.view.View" />

View file

@ -5,7 +5,7 @@
<import type="android.view.View" />
<variable
name="data"
type="org.linphone.activities.call.viewmodels.StatItemData" />
type="org.linphone.activities.call.data.StatItemData" />
</data>
<LinearLayout

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<import type="android.view.View" />

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>

View file

@ -10,6 +10,7 @@
android:id="@+id/account_icon"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:contentDescription="@null"
android:adjustViewBounds="true"/>
<TextView

View file

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View"/>

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<import type="android.view.View"/>

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>

View file

@ -34,6 +34,7 @@
android:layout_marginLeft="10dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:contentDescription="@null"
android:src="@{icon}" />
<org.linphone.views.MarqueeTextView

View file

@ -372,7 +372,7 @@
<string name="call_stats_capture_filter">Filtro de captura:</string>
<string name="assistant_welcome_title">Bienvenido</string>
<string name="assistant_create_account">Crear cuenta</string>
<string name="assistant_login_linphone">Utilize %appNombre; cuenta</string>
<string name="assistant_login_linphone">Utilize &appName; cuenta</string>
<string name="assistant_login_generic">Utilizar cuenta SIP</string>
<string name="assistant_remote_provisioning">Buscar la configuración remota</string>
<string name="assistant_ec_calibration">Calibración del cancelador de eco en curso</string>

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="FullScreenTheme" parent="@style/AppTheme">
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>
</resources>

View file

@ -172,7 +172,7 @@
<string name="received_chat_notification_mark_as_read_label">标记为已读</string>
<string name="missed_call_notification_title">未接来电</string>
<string name="missed_call_notification_body">来自%s 的未接来电</string>
<string name="missed_calls_notification_body">%sd 未接来电</string>
<string name="missed_calls_notification_body">%d 未接来电</string>
<string name="zrtp_dialog_title">通讯安全</string>
<string name="zrtp_dialog_ok_button_label">接受</string>
<string name="content_description_forwarded_message">信息已转发</string>

View file

@ -4,7 +4,7 @@
<!ENTITY appName "Linphone">
]>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="app_name" translatable="false">&appName;</string>
<string name="app_name_debug" translatable="false">&appName; (debug)</string>
<string name="service_name">&appName; Service</string>
@ -582,7 +582,7 @@
<string name="received_chat_notification_mark_as_read_label">Mark as read</string>
<string name="missed_call_notification_title">Missed call</string>
<string name="missed_call_notification_body">Missed call from %s</string>
<string name="missed_calls_notification_body">%d missed calls</string>
<string name="missed_calls_notification_body" tools:ignore="PluralsCandidate">%d missed calls</string>
<!-- Dialog -->
<string name="zrtp_dialog_title">Communication security</string>

View file

@ -52,7 +52,6 @@
</style>
<style name="FullScreenTheme" parent="@style/AppTheme">
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>