Added leak canary + started fixing leaks

This commit is contained in:
Sylvain Berfini 2020-08-28 16:52:50 +02:00
parent ae98121140
commit ebda69e739
50 changed files with 209 additions and 598 deletions

View file

@ -156,7 +156,7 @@ dependencies {
implementation 'androidx.core:core-ktx:1.3.1' implementation 'androidx.core:core-ktx:1.3.1'
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.0' implementation 'androidx.navigation:navigation-fragment-ktx:2.3.0'
implementation 'androidx.navigation:navigation-ui-ktx:2.3.0' implementation 'androidx.navigation:navigation-ui-ktx:2.3.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0' implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'androidx.recyclerview:recyclerview:1.1.0'
@ -169,6 +169,7 @@ dependencies {
} }
implementation 'org.linphone:linphone-sdk-android:4.5+' implementation 'org.linphone:linphone-sdk-android:4.5+'
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.4'
} }
if (firebaseEnabled()) { if (firebaseEnabled()) {

View file

@ -0,0 +1,49 @@
/*
* Copyright (c) 2010-2020 Belledonne Communications SARL.
*
* This file is part of linphone-android
* (see https://www.linphone.org).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* 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
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.databinding.DataBindingUtil
import androidx.databinding.ViewDataBinding
import androidx.fragment.app.Fragment
abstract class GenericFragment<T : ViewDataBinding> : Fragment() {
private var _binding: T? = null
protected val binding get() = _binding!!
abstract fun getLayoutId(): Int
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = DataBindingUtil.inflate<T>(inflater, getLayoutId(), container, false)
return _binding!!.root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
}

View file

@ -22,15 +22,16 @@ package org.linphone.activities.assistant.fragments
import android.Manifest import android.Manifest
import android.content.pm.PackageManager import android.content.pm.PackageManager
import androidx.fragment.app.Fragment import androidx.databinding.ViewDataBinding
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.viewmodels.AbstractPhoneViewModel import org.linphone.activities.assistant.viewmodels.AbstractPhoneViewModel
import org.linphone.core.tools.Log import org.linphone.core.tools.Log
import org.linphone.utils.PermissionHelper import org.linphone.utils.PermissionHelper
import org.linphone.utils.PhoneNumberUtils import org.linphone.utils.PhoneNumberUtils
abstract class AbstractPhoneFragment : Fragment() { abstract class AbstractPhoneFragment<T : ViewDataBinding> : GenericFragment<T>() {
abstract val viewModel: AbstractPhoneViewModel abstract val viewModel: AbstractPhoneViewModel
override fun onRequestPermissionsResult( override fun onRequestPermissionsResult(

View file

@ -23,9 +23,6 @@ import android.app.Dialog
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
@ -37,19 +34,11 @@ import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.databinding.AssistantAccountLoginFragmentBinding import org.linphone.databinding.AssistantAccountLoginFragmentBinding
import org.linphone.utils.DialogUtils import org.linphone.utils.DialogUtils
class AccountLoginFragment : AbstractPhoneFragment() { class AccountLoginFragment : AbstractPhoneFragment<AssistantAccountLoginFragmentBinding>() {
private lateinit var binding: AssistantAccountLoginFragmentBinding
override lateinit var viewModel: AccountLoginViewModel override lateinit var viewModel: AccountLoginViewModel
private lateinit var sharedViewModel: SharedAssistantViewModel private lateinit var sharedViewModel: SharedAssistantViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.assistant_account_login_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = AssistantAccountLoginFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -30,7 +30,8 @@ import org.linphone.core.DialPlan
import org.linphone.databinding.AssistantCountryPickerFragmentBinding import org.linphone.databinding.AssistantCountryPickerFragmentBinding
class CountryPickerFragment(private val listener: CountryPickedListener) : DialogFragment() { class CountryPickerFragment(private val listener: CountryPickedListener) : DialogFragment() {
private lateinit var binding: AssistantCountryPickerFragmentBinding private var _binding: AssistantCountryPickerFragmentBinding? = null
private val binding get() = _binding!!
private lateinit var adapter: CountryPickerAdapter private lateinit var adapter: CountryPickerAdapter
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
@ -38,12 +39,17 @@ class CountryPickerFragment(private val listener: CountryPickedListener) : Dialo
setStyle(STYLE_NO_TITLE, R.style.assistant_country_dialog_style) setStyle(STYLE_NO_TITLE, R.style.assistant_country_dialog_style)
} }
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, inflater: LayoutInflater,
container: ViewGroup?, container: ViewGroup?,
savedInstanceState: Bundle? savedInstanceState: Bundle?
): View { ): View {
binding = AssistantCountryPickerFragmentBinding.inflate(inflater, container, false) _binding = AssistantCountryPickerFragmentBinding.inflate(inflater, container, false)
adapter = CountryPickerAdapter() adapter = CountryPickerAdapter()
binding.countryList.adapter = adapter binding.countryList.adapter = adapter

View file

@ -21,28 +21,18 @@ package org.linphone.activities.assistant.fragments
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.viewmodels.EchoCancellerCalibrationViewModel import org.linphone.activities.assistant.viewmodels.EchoCancellerCalibrationViewModel
import org.linphone.core.tools.Log import org.linphone.core.tools.Log
import org.linphone.databinding.AssistantEchoCancellerCalibrationFragmentBinding import org.linphone.databinding.AssistantEchoCancellerCalibrationFragmentBinding
import org.linphone.utils.PermissionHelper import org.linphone.utils.PermissionHelper
class EchoCancellerCalibrationFragment : Fragment() { class EchoCancellerCalibrationFragment : GenericFragment<AssistantEchoCancellerCalibrationFragmentBinding>() {
private lateinit var binding: AssistantEchoCancellerCalibrationFragmentBinding
private lateinit var viewModel: EchoCancellerCalibrationViewModel private lateinit var viewModel: EchoCancellerCalibrationViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.assistant_echo_canceller_calibration_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = AssistantEchoCancellerCalibrationFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,31 +20,20 @@
package org.linphone.activities.assistant.fragments package org.linphone.activities.assistant.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.viewmodels.EmailAccountCreationViewModel import org.linphone.activities.assistant.viewmodels.EmailAccountCreationViewModel
import org.linphone.activities.assistant.viewmodels.EmailAccountCreationViewModelFactory import org.linphone.activities.assistant.viewmodels.EmailAccountCreationViewModelFactory
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
import org.linphone.databinding.AssistantEmailAccountCreationFragmentBinding import org.linphone.databinding.AssistantEmailAccountCreationFragmentBinding
class EmailAccountCreationFragment : Fragment() { class EmailAccountCreationFragment : GenericFragment<AssistantEmailAccountCreationFragmentBinding>() {
private lateinit var binding: AssistantEmailAccountCreationFragmentBinding
private lateinit var sharedViewModel: SharedAssistantViewModel private lateinit var sharedViewModel: SharedAssistantViewModel
private lateinit var viewModel: EmailAccountCreationViewModel private lateinit var viewModel: EmailAccountCreationViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.assistant_email_account_creation_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = AssistantEmailAccountCreationFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,29 +20,18 @@
package org.linphone.activities.assistant.fragments package org.linphone.activities.assistant.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.viewmodels.* import org.linphone.activities.assistant.viewmodels.*
import org.linphone.databinding.AssistantEmailAccountValidationFragmentBinding import org.linphone.databinding.AssistantEmailAccountValidationFragmentBinding
class EmailAccountValidationFragment : Fragment() { class EmailAccountValidationFragment : GenericFragment<AssistantEmailAccountValidationFragmentBinding>() {
private lateinit var binding: AssistantEmailAccountValidationFragmentBinding
private lateinit var sharedViewModel: SharedAssistantViewModel private lateinit var sharedViewModel: SharedAssistantViewModel
private lateinit var viewModel: EmailAccountValidationViewModel private lateinit var viewModel: EmailAccountValidationViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.assistant_email_account_validation_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = AssistantEmailAccountValidationFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -21,14 +21,11 @@ package org.linphone.activities.assistant.fragments
import android.app.Dialog import android.app.Dialog
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.viewmodels.GenericLoginViewModel import org.linphone.activities.assistant.viewmodels.GenericLoginViewModel
import org.linphone.activities.assistant.viewmodels.GenericLoginViewModelFactory import org.linphone.activities.assistant.viewmodels.GenericLoginViewModelFactory
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
@ -36,19 +33,11 @@ import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.databinding.AssistantGenericAccountLoginFragmentBinding import org.linphone.databinding.AssistantGenericAccountLoginFragmentBinding
import org.linphone.utils.DialogUtils import org.linphone.utils.DialogUtils
class GenericAccountLoginFragment : Fragment() { class GenericAccountLoginFragment : GenericFragment<AssistantGenericAccountLoginFragmentBinding>() {
private lateinit var binding: AssistantGenericAccountLoginFragmentBinding
private lateinit var sharedViewModel: SharedAssistantViewModel private lateinit var sharedViewModel: SharedAssistantViewModel
private lateinit var viewModel: GenericLoginViewModel private lateinit var viewModel: GenericLoginViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.assistant_generic_account_login_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = AssistantGenericAccountLoginFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,9 +20,6 @@
package org.linphone.activities.assistant.fragments package org.linphone.activities.assistant.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.R import org.linphone.R
@ -31,19 +28,11 @@ import org.linphone.activities.assistant.viewmodels.PhoneAccountCreationViewMode
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
import org.linphone.databinding.AssistantPhoneAccountCreationFragmentBinding import org.linphone.databinding.AssistantPhoneAccountCreationFragmentBinding
class PhoneAccountCreationFragment : AbstractPhoneFragment() { class PhoneAccountCreationFragment : AbstractPhoneFragment<AssistantPhoneAccountCreationFragmentBinding>() {
private lateinit var binding: AssistantPhoneAccountCreationFragmentBinding
private lateinit var sharedViewModel: SharedAssistantViewModel private lateinit var sharedViewModel: SharedAssistantViewModel
override lateinit var viewModel: PhoneAccountCreationViewModel override lateinit var viewModel: PhoneAccountCreationViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.assistant_phone_account_creation_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = AssistantPhoneAccountCreationFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,9 +20,6 @@
package org.linphone.activities.assistant.fragments package org.linphone.activities.assistant.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication import org.linphone.LinphoneApplication
@ -31,19 +28,11 @@ import org.linphone.activities.assistant.viewmodels.*
import org.linphone.core.tools.Log import org.linphone.core.tools.Log
import org.linphone.databinding.AssistantPhoneAccountLinkingFragmentBinding import org.linphone.databinding.AssistantPhoneAccountLinkingFragmentBinding
class PhoneAccountLinkingFragment : AbstractPhoneFragment() { class PhoneAccountLinkingFragment : AbstractPhoneFragment<AssistantPhoneAccountLinkingFragmentBinding>() {
private lateinit var binding: AssistantPhoneAccountLinkingFragmentBinding
private lateinit var sharedViewModel: SharedAssistantViewModel private lateinit var sharedViewModel: SharedAssistantViewModel
override lateinit var viewModel: PhoneAccountLinkingViewModel override lateinit var viewModel: PhoneAccountLinkingViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.assistant_phone_account_linking_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = AssistantPhoneAccountLinkingFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -22,32 +22,21 @@ package org.linphone.activities.assistant.fragments
import android.content.ClipboardManager import android.content.ClipboardManager
import android.content.Context.CLIPBOARD_SERVICE import android.content.Context.CLIPBOARD_SERVICE
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.viewmodels.PhoneAccountValidationViewModel import org.linphone.activities.assistant.viewmodels.PhoneAccountValidationViewModel
import org.linphone.activities.assistant.viewmodels.PhoneAccountValidationViewModelFactory import org.linphone.activities.assistant.viewmodels.PhoneAccountValidationViewModelFactory
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
import org.linphone.databinding.AssistantPhoneAccountValidationFragmentBinding import org.linphone.databinding.AssistantPhoneAccountValidationFragmentBinding
class PhoneAccountValidationFragment : Fragment() { class PhoneAccountValidationFragment : GenericFragment<AssistantPhoneAccountValidationFragmentBinding>() {
private lateinit var binding: AssistantPhoneAccountValidationFragmentBinding
private lateinit var sharedViewModel: SharedAssistantViewModel private lateinit var sharedViewModel: SharedAssistantViewModel
private lateinit var viewModel: PhoneAccountValidationViewModel private lateinit var viewModel: PhoneAccountValidationViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.assistant_phone_account_validation_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = AssistantPhoneAccountValidationFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -21,32 +21,22 @@ package org.linphone.activities.assistant.fragments
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.viewmodels.QrCodeViewModel import org.linphone.activities.assistant.viewmodels.QrCodeViewModel
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
import org.linphone.core.tools.Log import org.linphone.core.tools.Log
import org.linphone.databinding.AssistantQrCodeFragmentBinding import org.linphone.databinding.AssistantQrCodeFragmentBinding
import org.linphone.utils.PermissionHelper import org.linphone.utils.PermissionHelper
class QrCodeFragment : Fragment() { class QrCodeFragment : GenericFragment<AssistantQrCodeFragmentBinding>() {
private lateinit var binding: AssistantQrCodeFragmentBinding
private lateinit var sharedViewModel: SharedAssistantViewModel private lateinit var sharedViewModel: SharedAssistantViewModel
private lateinit var viewModel: QrCodeViewModel private lateinit var viewModel: QrCodeViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.assistant_qr_code_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = AssistantQrCodeFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,32 +20,21 @@
package org.linphone.activities.assistant.fragments package org.linphone.activities.assistant.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.AssistantActivity import org.linphone.activities.assistant.AssistantActivity
import org.linphone.activities.assistant.viewmodels.RemoteProvisioningViewModel import org.linphone.activities.assistant.viewmodels.RemoteProvisioningViewModel
import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel import org.linphone.activities.assistant.viewmodels.SharedAssistantViewModel
import org.linphone.databinding.AssistantRemoteProvisioningFragmentBinding import org.linphone.databinding.AssistantRemoteProvisioningFragmentBinding
class RemoteProvisioningFragment : Fragment() { class RemoteProvisioningFragment : GenericFragment<AssistantRemoteProvisioningFragmentBinding>() {
private lateinit var binding: AssistantRemoteProvisioningFragmentBinding
private lateinit var sharedViewModel: SharedAssistantViewModel private lateinit var sharedViewModel: SharedAssistantViewModel
private lateinit var viewModel: RemoteProvisioningViewModel private lateinit var viewModel: RemoteProvisioningViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.assistant_remote_provisioning_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = AssistantRemoteProvisioningFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,24 +20,13 @@
package org.linphone.activities.assistant.fragments package org.linphone.activities.assistant.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.databinding.AssistantTopBarFragmentBinding import org.linphone.databinding.AssistantTopBarFragmentBinding
class TopBarFragment : Fragment() { class TopBarFragment : GenericFragment<AssistantTopBarFragmentBinding>() {
private lateinit var binding: AssistantTopBarFragmentBinding override fun getLayoutId(): Int = R.layout.assistant_top_bar_fragment
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = AssistantTopBarFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,28 +20,17 @@
package org.linphone.activities.assistant.fragments package org.linphone.activities.assistant.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.viewmodels.WelcomeViewModel import org.linphone.activities.assistant.viewmodels.WelcomeViewModel
import org.linphone.databinding.AssistantWelcomeFragmentBinding import org.linphone.databinding.AssistantWelcomeFragmentBinding
class WelcomeFragment : Fragment() { class WelcomeFragment : GenericFragment<AssistantWelcomeFragmentBinding>() {
private lateinit var binding: AssistantWelcomeFragmentBinding
private lateinit var viewModel: WelcomeViewModel private lateinit var viewModel: WelcomeViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.assistant_welcome_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = AssistantWelcomeFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -23,12 +23,9 @@ import android.app.Dialog
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.os.SystemClock import android.os.SystemClock
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.call.viewmodels.CallsViewModel import org.linphone.activities.call.viewmodels.CallsViewModel
import org.linphone.activities.call.viewmodels.ControlsViewModel import org.linphone.activities.call.viewmodels.ControlsViewModel
import org.linphone.activities.call.viewmodels.SharedCallViewModel import org.linphone.activities.call.viewmodels.SharedCallViewModel
@ -40,22 +37,14 @@ import org.linphone.utils.AppUtils
import org.linphone.utils.DialogUtils import org.linphone.utils.DialogUtils
import org.linphone.utils.Event import org.linphone.utils.Event
class ControlsFragment : Fragment() { class ControlsFragment : GenericFragment<CallControlsFragmentBinding>() {
private lateinit var binding: CallControlsFragmentBinding
private lateinit var callsViewModel: CallsViewModel private lateinit var callsViewModel: CallsViewModel
private lateinit var controlsViewModel: ControlsViewModel private lateinit var controlsViewModel: ControlsViewModel
private lateinit var sharedViewModel: SharedCallViewModel private lateinit var sharedViewModel: SharedCallViewModel
private var dialog: Dialog? = null private var dialog: Dialog? = null
override fun onCreateView( override fun getLayoutId(): Int = R.layout.call_controls_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = CallControlsFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,26 +20,16 @@
package org.linphone.activities.call.fragments package org.linphone.activities.call.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.call.viewmodels.StatisticsListViewModel import org.linphone.activities.call.viewmodels.StatisticsListViewModel
import org.linphone.databinding.CallStatisticsFragmentBinding import org.linphone.databinding.CallStatisticsFragmentBinding
class StatisticsFragment : Fragment() { class StatisticsFragment : GenericFragment<CallStatisticsFragmentBinding>() {
private lateinit var binding: CallStatisticsFragmentBinding
private lateinit var viewModel: StatisticsListViewModel private lateinit var viewModel: StatisticsListViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.call_statistics_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = CallStatisticsFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -21,13 +21,10 @@ package org.linphone.activities.call.fragments
import android.app.Dialog import android.app.Dialog
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import java.util.* import java.util.*
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.call.viewmodels.SharedCallViewModel import org.linphone.activities.call.viewmodels.SharedCallViewModel
import org.linphone.activities.call.viewmodels.StatusViewModel import org.linphone.activities.call.viewmodels.StatusViewModel
import org.linphone.activities.main.viewmodels.DialogViewModel import org.linphone.activities.main.viewmodels.DialogViewModel
@ -37,20 +34,12 @@ import org.linphone.databinding.CallStatusFragmentBinding
import org.linphone.utils.DialogUtils import org.linphone.utils.DialogUtils
import org.linphone.utils.Event import org.linphone.utils.Event
class StatusFragment : Fragment() { class StatusFragment : GenericFragment<CallStatusFragmentBinding>() {
private lateinit var binding: CallStatusFragmentBinding
private lateinit var viewModel: StatusViewModel private lateinit var viewModel: StatusViewModel
private lateinit var sharedViewModel: SharedCallViewModel private lateinit var sharedViewModel: SharedCallViewModel
private var zrtpDialog: Dialog? = null private var zrtpDialog: Dialog? = null
override fun onCreateView( override fun getLayoutId(): Int = R.layout.call_status_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = CallStatusFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -22,29 +22,18 @@ package org.linphone.activities.main.about
import android.content.* import android.content.*
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.MainActivity import org.linphone.activities.main.MainActivity
import org.linphone.databinding.AboutFragmentBinding import org.linphone.databinding.AboutFragmentBinding
import org.linphone.utils.AppUtils import org.linphone.utils.AppUtils
class AboutFragment : Fragment() { class AboutFragment : GenericFragment<AboutFragmentBinding>() {
private lateinit var binding: AboutFragmentBinding
private lateinit var viewModel: AboutViewModel private lateinit var viewModel: AboutViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.about_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = AboutFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,15 +20,13 @@
package org.linphone.activities.main.chat.fragments package org.linphone.activities.main.chat.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.MainActivity import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.chat.adapters.ChatRoomCreationContactsAdapter import org.linphone.activities.main.chat.adapters.ChatRoomCreationContactsAdapter
import org.linphone.activities.main.chat.viewmodels.ChatRoomCreationViewModel import org.linphone.activities.main.chat.viewmodels.ChatRoomCreationViewModel
@ -36,20 +34,12 @@ import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.core.Address import org.linphone.core.Address
import org.linphone.databinding.ChatRoomCreationFragmentBinding import org.linphone.databinding.ChatRoomCreationFragmentBinding
class ChatRoomCreationFragment : Fragment() { class ChatRoomCreationFragment : GenericFragment<ChatRoomCreationFragmentBinding>() {
private lateinit var binding: ChatRoomCreationFragmentBinding
private lateinit var viewModel: ChatRoomCreationViewModel private lateinit var viewModel: ChatRoomCreationViewModel
private lateinit var sharedViewModel: SharedMainViewModel private lateinit var sharedViewModel: SharedMainViewModel
private lateinit var adapter: ChatRoomCreationContactsAdapter private lateinit var adapter: ChatRoomCreationContactsAdapter
override fun onCreateView( override fun getLayoutId(): Int = R.layout.chat_room_creation_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = ChatRoomCreationFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -56,8 +56,7 @@ import org.linphone.databinding.ChatRoomDetailFragmentBinding
import org.linphone.utils.* import org.linphone.utils.*
import org.linphone.utils.Event import org.linphone.utils.Event
class DetailChatRoomFragment : MasterFragment() { class DetailChatRoomFragment : MasterFragment<ChatRoomDetailFragmentBinding>() {
private lateinit var binding: ChatRoomDetailFragmentBinding
private lateinit var viewModel: ChatRoomViewModel private lateinit var viewModel: ChatRoomViewModel
private lateinit var chatSendingViewModel: ChatMessageSendingViewModel private lateinit var chatSendingViewModel: ChatMessageSendingViewModel
private lateinit var listViewModel: ChatMessagesListViewModel private lateinit var listViewModel: ChatMessagesListViewModel
@ -65,13 +64,8 @@ class DetailChatRoomFragment : MasterFragment() {
private lateinit var sharedViewModel: SharedMainViewModel private lateinit var sharedViewModel: SharedMainViewModel
private var chatRoomAddress: String? = null private var chatRoomAddress: String? = null
override fun onCreateView( override fun getLayoutId(): Int {
inflater: LayoutInflater, return R.layout.chat_room_detail_fragment
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = ChatRoomDetailFragmentBinding.inflate(inflater, container, false)
return binding.root
} }
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {

View file

@ -20,30 +20,20 @@
package org.linphone.activities.main.chat.fragments package org.linphone.activities.main.chat.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.chat.viewmodels.DevicesListViewModel import org.linphone.activities.main.chat.viewmodels.DevicesListViewModel
import org.linphone.activities.main.chat.viewmodels.DevicesListViewModelFactory import org.linphone.activities.main.chat.viewmodels.DevicesListViewModelFactory
import org.linphone.activities.main.viewmodels.SharedMainViewModel import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.databinding.ChatRoomDevicesFragmentBinding import org.linphone.databinding.ChatRoomDevicesFragmentBinding
class DevicesFragment : Fragment() { class DevicesFragment : GenericFragment<ChatRoomDevicesFragmentBinding>() {
private lateinit var binding: ChatRoomDevicesFragmentBinding
private lateinit var listViewModel: DevicesListViewModel private lateinit var listViewModel: DevicesListViewModel
private lateinit var sharedViewModel: SharedMainViewModel private lateinit var sharedViewModel: SharedMainViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.chat_room_devices_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = ChatRoomDevicesFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,29 +20,21 @@
package org.linphone.activities.main.chat.fragments package org.linphone.activities.main.chat.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.chat.viewmodels.EphemeralViewModel import org.linphone.activities.main.chat.viewmodels.EphemeralViewModel
import org.linphone.activities.main.chat.viewmodels.EphemeralViewModelFactory import org.linphone.activities.main.chat.viewmodels.EphemeralViewModelFactory
import org.linphone.activities.main.viewmodels.SharedMainViewModel import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.databinding.ChatRoomEphemeralFragmentBinding import org.linphone.databinding.ChatRoomEphemeralFragmentBinding
class EphemeralFragment : Fragment() { class EphemeralFragment : GenericFragment<ChatRoomEphemeralFragmentBinding>() {
private lateinit var binding: ChatRoomEphemeralFragmentBinding
private lateinit var viewModel: EphemeralViewModel private lateinit var viewModel: EphemeralViewModel
private lateinit var sharedViewModel: SharedMainViewModel private lateinit var sharedViewModel: SharedMainViewModel
override fun onCreateView( override fun getLayoutId(): Int {
inflater: LayoutInflater, return R.layout.chat_room_ephemeral_fragment
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = ChatRoomEphemeralFragmentBinding.inflate(inflater, container, false)
return binding.root
} }
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {

View file

@ -21,15 +21,12 @@ package org.linphone.activities.main.chat.fragments
import android.app.Dialog import android.app.Dialog
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.MainActivity import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.chat.GroupChatRoomMember import org.linphone.activities.main.chat.GroupChatRoomMember
import org.linphone.activities.main.chat.adapters.GroupInfoParticipantsAdapter import org.linphone.activities.main.chat.adapters.GroupInfoParticipantsAdapter
@ -43,21 +40,13 @@ import org.linphone.core.ChatRoomCapabilities
import org.linphone.databinding.ChatRoomGroupInfoFragmentBinding import org.linphone.databinding.ChatRoomGroupInfoFragmentBinding
import org.linphone.utils.DialogUtils import org.linphone.utils.DialogUtils
class GroupInfoFragment : Fragment() { class GroupInfoFragment : GenericFragment<ChatRoomGroupInfoFragmentBinding>() {
private lateinit var binding: ChatRoomGroupInfoFragmentBinding
private lateinit var viewModel: GroupInfoViewModel private lateinit var viewModel: GroupInfoViewModel
private lateinit var sharedViewModel: SharedMainViewModel private lateinit var sharedViewModel: SharedMainViewModel
private lateinit var adapter: GroupInfoParticipantsAdapter private lateinit var adapter: GroupInfoParticipantsAdapter
private var meAdminStatusChangedDialog: Dialog? = null private var meAdminStatusChangedDialog: Dialog? = null
override fun onCreateView( override fun getLayoutId(): Int = R.layout.chat_room_group_info_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = ChatRoomGroupInfoFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,15 +20,12 @@
package org.linphone.activities.main.chat.fragments package org.linphone.activities.main.chat.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.chat.adapters.ImdnAdapter import org.linphone.activities.main.chat.adapters.ImdnAdapter
import org.linphone.activities.main.chat.viewmodels.ImdnViewModel import org.linphone.activities.main.chat.viewmodels.ImdnViewModel
import org.linphone.activities.main.chat.viewmodels.ImdnViewModelFactory import org.linphone.activities.main.chat.viewmodels.ImdnViewModelFactory
@ -37,19 +34,13 @@ import org.linphone.core.tools.Log
import org.linphone.databinding.ChatRoomImdnFragmentBinding import org.linphone.databinding.ChatRoomImdnFragmentBinding
import org.linphone.utils.RecyclerViewHeaderDecoration import org.linphone.utils.RecyclerViewHeaderDecoration
class ImdnFragment : Fragment() { class ImdnFragment : GenericFragment<ChatRoomImdnFragmentBinding>() {
private lateinit var binding: ChatRoomImdnFragmentBinding
private lateinit var viewModel: ImdnViewModel private lateinit var viewModel: ImdnViewModel
private lateinit var adapter: ImdnAdapter private lateinit var adapter: ImdnAdapter
private lateinit var sharedViewModel: SharedMainViewModel private lateinit var sharedViewModel: SharedMainViewModel
override fun onCreateView( override fun getLayoutId(): Int {
inflater: LayoutInflater, return R.layout.chat_room_imdn_fragment
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = ChatRoomImdnFragmentBinding.inflate(inflater, container, false)
return binding.root
} }
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {

View file

@ -21,9 +21,6 @@ package org.linphone.activities.main.chat.fragments
import android.app.Dialog import android.app.Dialog
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.DividerItemDecoration
@ -46,21 +43,13 @@ import org.linphone.core.tools.Log
import org.linphone.databinding.ChatRoomMasterFragmentBinding import org.linphone.databinding.ChatRoomMasterFragmentBinding
import org.linphone.utils.* import org.linphone.utils.*
class MasterChatRoomsFragment : MasterFragment() { class MasterChatRoomsFragment : MasterFragment<ChatRoomMasterFragmentBinding>() {
override val dialogConfirmationMessageBeforeRemoval = R.plurals.chat_room_delete_dialog override val dialogConfirmationMessageBeforeRemoval = R.plurals.chat_room_delete_dialog
private lateinit var binding: ChatRoomMasterFragmentBinding
private lateinit var listViewModel: ChatRoomsListViewModel private lateinit var listViewModel: ChatRoomsListViewModel
private lateinit var adapter: ChatRoomsListAdapter private lateinit var adapter: ChatRoomsListAdapter
private lateinit var sharedViewModel: SharedMainViewModel private lateinit var sharedViewModel: SharedMainViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.chat_room_master_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = ChatRoomMasterFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -26,10 +26,6 @@ import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.os.Parcelable import android.os.Parcelable
import android.provider.MediaStore import android.provider.MediaStore
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
@ -37,6 +33,7 @@ import java.io.File
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.LinphoneApplication.Companion.corePreferences
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.MainActivity import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.contact.viewmodels.* import org.linphone.activities.main.contact.viewmodels.*
import org.linphone.activities.main.navigateToContact import org.linphone.activities.main.navigateToContact
@ -48,20 +45,12 @@ import org.linphone.utils.FileUtils
import org.linphone.utils.ImageUtils import org.linphone.utils.ImageUtils
import org.linphone.utils.PermissionHelper import org.linphone.utils.PermissionHelper
class ContactEditorFragment : Fragment(), SyncAccountPickerFragment.SyncAccountPickedListener { class ContactEditorFragment : GenericFragment<ContactEditorFragmentBinding>(), SyncAccountPickerFragment.SyncAccountPickedListener {
private lateinit var binding: ContactEditorFragmentBinding
private lateinit var viewModel: ContactEditorViewModel private lateinit var viewModel: ContactEditorViewModel
private lateinit var sharedViewModel: SharedMainViewModel private lateinit var sharedViewModel: SharedMainViewModel
private var temporaryPicturePath: File? = null private var temporaryPicturePath: File? = null
override fun onCreateView( override fun getLayoutId(): Int = R.layout.contact_editor_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = ContactEditorFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -23,14 +23,12 @@ import android.app.Dialog
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.MainActivity import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.contact.viewmodels.ContactViewModel import org.linphone.activities.main.contact.viewmodels.ContactViewModel
import org.linphone.activities.main.contact.viewmodels.ContactViewModelFactory import org.linphone.activities.main.contact.viewmodels.ContactViewModelFactory
@ -40,19 +38,11 @@ import org.linphone.core.tools.Log
import org.linphone.databinding.ContactDetailFragmentBinding import org.linphone.databinding.ContactDetailFragmentBinding
import org.linphone.utils.DialogUtils import org.linphone.utils.DialogUtils
class DetailContactFragment : Fragment() { class DetailContactFragment : GenericFragment<ContactDetailFragmentBinding>() {
private lateinit var binding: ContactDetailFragmentBinding
private lateinit var viewModel: ContactViewModel private lateinit var viewModel: ContactViewModel
private lateinit var sharedViewModel: SharedMainViewModel private lateinit var sharedViewModel: SharedMainViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.contact_detail_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = ContactDetailFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -22,9 +22,6 @@ package org.linphone.activities.main.contact.fragments
import android.app.Dialog import android.app.Dialog
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.DividerItemDecoration
@ -47,9 +44,8 @@ import org.linphone.core.tools.Log
import org.linphone.databinding.ContactMasterFragmentBinding import org.linphone.databinding.ContactMasterFragmentBinding
import org.linphone.utils.* import org.linphone.utils.*
class MasterContactsFragment : MasterFragment() { class MasterContactsFragment : MasterFragment<ContactMasterFragmentBinding>() {
override val dialogConfirmationMessageBeforeRemoval = R.plurals.contact_delete_dialog override val dialogConfirmationMessageBeforeRemoval = R.plurals.contact_delete_dialog
private lateinit var binding: ContactMasterFragmentBinding
private lateinit var listViewModel: ContactsListViewModel private lateinit var listViewModel: ContactsListViewModel
private lateinit var adapter: ContactsListAdapter private lateinit var adapter: ContactsListAdapter
private lateinit var sharedViewModel: SharedMainViewModel private lateinit var sharedViewModel: SharedMainViewModel
@ -57,14 +53,7 @@ class MasterContactsFragment : MasterFragment() {
private var sipUriToAdd: String? = null private var sipUriToAdd: String? = null
private var editOnClick: Boolean = false private var editOnClick: Boolean = false
override fun onCreateView( override fun getLayoutId(): Int = R.layout.contact_master_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = ContactMasterFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -28,7 +28,8 @@ import org.linphone.core.tools.Log
import org.linphone.databinding.ContactSyncAccountPickerFragmentBinding import org.linphone.databinding.ContactSyncAccountPickerFragmentBinding
class SyncAccountPickerFragment(private val listener: SyncAccountPickedListener) : DialogFragment() { class SyncAccountPickerFragment(private val listener: SyncAccountPickedListener) : DialogFragment() {
private lateinit var binding: ContactSyncAccountPickerFragmentBinding private var _binding: ContactSyncAccountPickerFragmentBinding? = null
private val binding get() = _binding!!
private lateinit var adapter: SyncAccountAdapter private lateinit var adapter: SyncAccountAdapter
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
@ -36,12 +37,17 @@ class SyncAccountPickerFragment(private val listener: SyncAccountPickedListener)
setStyle(STYLE_NO_TITLE, R.style.assistant_country_dialog_style) setStyle(STYLE_NO_TITLE, R.style.assistant_country_dialog_style)
} }
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, inflater: LayoutInflater,
container: ViewGroup?, container: ViewGroup?,
savedInstanceState: Bundle? savedInstanceState: Bundle?
): View { ): View {
binding = ContactSyncAccountPickerFragmentBinding.inflate(inflater, container, false) _binding = ContactSyncAccountPickerFragmentBinding.inflate(inflater, container, false)
adapter = SyncAccountAdapter() adapter = SyncAccountAdapter()
binding.accountsList.adapter = adapter binding.accountsList.adapter = adapter

View file

@ -26,10 +26,6 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
@ -37,6 +33,7 @@ import org.linphone.BuildConfig
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.LinphoneApplication.Companion.corePreferences
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.MainActivity import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.dialer.viewmodels.DialerViewModel import org.linphone.activities.main.dialer.viewmodels.DialerViewModel
import org.linphone.activities.main.viewmodels.DialogViewModel import org.linphone.activities.main.viewmodels.DialogViewModel
@ -46,21 +43,13 @@ import org.linphone.databinding.DialerFragmentBinding
import org.linphone.utils.AppUtils import org.linphone.utils.AppUtils
import org.linphone.utils.DialogUtils import org.linphone.utils.DialogUtils
class DialerFragment : Fragment() { class DialerFragment : GenericFragment<DialerFragmentBinding>() {
private lateinit var binding: DialerFragmentBinding
private lateinit var viewModel: DialerViewModel private lateinit var viewModel: DialerViewModel
private lateinit var sharedViewModel: SharedMainViewModel private lateinit var sharedViewModel: SharedMainViewModel
private var uploadLogsInitiatedByUs = false private var uploadLogsInitiatedByUs = false
override fun onCreateView( override fun getLayoutId(): Int = R.layout.dialer_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = DialerFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,27 +20,17 @@
package org.linphone.activities.main.fragments package org.linphone.activities.main.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.viewmodels.ListTopBarViewModel import org.linphone.activities.main.viewmodels.ListTopBarViewModel
import org.linphone.databinding.ListEditTopBarFragmentBinding import org.linphone.databinding.ListEditTopBarFragmentBinding
import org.linphone.utils.Event import org.linphone.utils.Event
class ListTopBarFragment : Fragment() { class ListTopBarFragment : GenericFragment<ListEditTopBarFragmentBinding>() {
private lateinit var binding: ListEditTopBarFragmentBinding
private lateinit var viewModel: ListTopBarViewModel private lateinit var viewModel: ListTopBarViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.list_edit_top_bar_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = ListEditTopBarFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -21,9 +21,10 @@ package org.linphone.activities.main.fragments
import android.app.Dialog import android.app.Dialog
import android.os.Bundle import android.os.Bundle
import androidx.fragment.app.Fragment import androidx.databinding.ViewDataBinding
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.viewmodels.DialogViewModel import org.linphone.activities.main.viewmodels.DialogViewModel
import org.linphone.activities.main.viewmodels.ListTopBarViewModel import org.linphone.activities.main.viewmodels.ListTopBarViewModel
import org.linphone.utils.AppUtils import org.linphone.utils.AppUtils
@ -33,7 +34,7 @@ import org.linphone.utils.DialogUtils
* This fragment can be inherited by all fragments that will display a list * This fragment can be inherited by all fragments that will display a list
* where items can be selected for removal through the ListTopBarFragment * where items can be selected for removal through the ListTopBarFragment
*/ */
abstract class MasterFragment : Fragment() { abstract class MasterFragment<T : ViewDataBinding> : GenericFragment<T>() {
protected lateinit var listSelectionViewModel: ListTopBarViewModel protected lateinit var listSelectionViewModel: ListTopBarViewModel
protected open val dialogConfirmationMessageBeforeRemoval: Int = R.plurals.dialog_default_delete protected open val dialogConfirmationMessageBeforeRemoval: Int = R.plurals.dialog_default_delete

View file

@ -20,31 +20,21 @@
package org.linphone.activities.main.fragments package org.linphone.activities.main.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.viewmodels.SharedMainViewModel import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.activities.main.viewmodels.StatusViewModel import org.linphone.activities.main.viewmodels.StatusViewModel
import org.linphone.core.tools.Log import org.linphone.core.tools.Log
import org.linphone.databinding.StatusFragmentBinding import org.linphone.databinding.StatusFragmentBinding
import org.linphone.utils.Event import org.linphone.utils.Event
class StatusFragment : Fragment() { class StatusFragment : GenericFragment<StatusFragmentBinding>() {
private lateinit var binding: StatusFragmentBinding
private lateinit var viewModel: StatusViewModel private lateinit var viewModel: StatusViewModel
private lateinit var sharedViewModel: SharedMainViewModel private lateinit var sharedViewModel: SharedMainViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.status_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = StatusFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,28 +20,17 @@
package org.linphone.activities.main.fragments package org.linphone.activities.main.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.viewmodels.TabsViewModel import org.linphone.activities.main.viewmodels.TabsViewModel
import org.linphone.databinding.TabsFragmentBinding import org.linphone.databinding.TabsFragmentBinding
class TabsFragment : Fragment() { class TabsFragment : GenericFragment<TabsFragmentBinding>() {
private lateinit var binding: TabsFragmentBinding
private lateinit var viewModel: TabsViewModel private lateinit var viewModel: TabsViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.tabs_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = TabsFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,14 +20,12 @@
package org.linphone.activities.main.history.fragments package org.linphone.activities.main.history.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.MainActivity import org.linphone.activities.main.MainActivity
import org.linphone.activities.main.history.viewmodels.CallLogViewModel import org.linphone.activities.main.history.viewmodels.CallLogViewModel
import org.linphone.activities.main.history.viewmodels.CallLogViewModelFactory import org.linphone.activities.main.history.viewmodels.CallLogViewModelFactory
@ -39,19 +37,11 @@ import org.linphone.contact.NativeContact
import org.linphone.core.tools.Log import org.linphone.core.tools.Log
import org.linphone.databinding.HistoryDetailFragmentBinding import org.linphone.databinding.HistoryDetailFragmentBinding
class DetailCallLogFragment : Fragment() { class DetailCallLogFragment : GenericFragment<HistoryDetailFragmentBinding>() {
private lateinit var binding: HistoryDetailFragmentBinding
private lateinit var viewModel: CallLogViewModel private lateinit var viewModel: CallLogViewModel
private lateinit var sharedViewModel: SharedMainViewModel private lateinit var sharedViewModel: SharedMainViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.history_detail_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = HistoryDetailFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -21,9 +21,6 @@ package org.linphone.activities.main.history.fragments
import android.app.Dialog import android.app.Dialog
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
@ -45,21 +42,13 @@ import org.linphone.core.tools.Log
import org.linphone.databinding.HistoryMasterFragmentBinding import org.linphone.databinding.HistoryMasterFragmentBinding
import org.linphone.utils.* import org.linphone.utils.*
class MasterCallLogsFragment : MasterFragment() { class MasterCallLogsFragment : MasterFragment<HistoryMasterFragmentBinding>() {
override val dialogConfirmationMessageBeforeRemoval = R.plurals.history_delete_dialog override val dialogConfirmationMessageBeforeRemoval = R.plurals.history_delete_dialog
private lateinit var binding: HistoryMasterFragmentBinding
private lateinit var listViewModel: CallLogsListViewModel private lateinit var listViewModel: CallLogsListViewModel
private lateinit var adapter: CallLogsListAdapter private lateinit var adapter: CallLogsListAdapter
private lateinit var sharedViewModel: SharedMainViewModel private lateinit var sharedViewModel: SharedMainViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.history_master_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = HistoryMasterFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,10 +20,7 @@
package org.linphone.activities.main.recordings.fragments package org.linphone.activities.main.recordings.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.MotionEvent import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.DividerItemDecoration
@ -36,22 +33,14 @@ import org.linphone.activities.main.recordings.viewmodels.RecordingsViewModel
import org.linphone.databinding.RecordingsFragmentBinding import org.linphone.databinding.RecordingsFragmentBinding
import org.linphone.utils.RecyclerViewHeaderDecoration import org.linphone.utils.RecyclerViewHeaderDecoration
class RecordingsFragment : MasterFragment() { class RecordingsFragment : MasterFragment<RecordingsFragmentBinding>() {
private lateinit var binding: RecordingsFragmentBinding
private lateinit var viewModel: RecordingsViewModel private lateinit var viewModel: RecordingsViewModel
private lateinit var adapter: RecordingsListAdapter private lateinit var adapter: RecordingsListAdapter
private var videoX: Float = 0f private var videoX: Float = 0f
private var videoY: Float = 0f private var videoY: Float = 0f
override fun onCreateView( override fun getLayoutId(): Int = R.layout.recordings_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = RecordingsFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,32 +20,22 @@
package org.linphone.activities.main.settings.fragments package org.linphone.activities.main.settings.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.settings.viewmodels.AccountSettingsViewModel import org.linphone.activities.main.settings.viewmodels.AccountSettingsViewModel
import org.linphone.activities.main.settings.viewmodels.AccountSettingsViewModelFactory import org.linphone.activities.main.settings.viewmodels.AccountSettingsViewModelFactory
import org.linphone.activities.main.viewmodels.SharedMainViewModel import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.core.tools.Log import org.linphone.core.tools.Log
import org.linphone.databinding.SettingsAccountFragmentBinding import org.linphone.databinding.SettingsAccountFragmentBinding
class AccountSettingsFragment : Fragment() { class AccountSettingsFragment : GenericFragment<SettingsAccountFragmentBinding>() {
private lateinit var binding: SettingsAccountFragmentBinding
private lateinit var sharedViewModel: SharedMainViewModel private lateinit var sharedViewModel: SharedMainViewModel
private lateinit var viewModel: AccountSettingsViewModel private lateinit var viewModel: AccountSettingsViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.settings_account_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = SettingsAccountFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -24,34 +24,24 @@ import android.content.Intent
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.provider.Settings import android.provider.Settings
import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatDelegate import androidx.appcompat.app.AppCompatDelegate
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericActivity import org.linphone.activities.GenericActivity
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.settings.viewmodels.AdvancedSettingsViewModel import org.linphone.activities.main.settings.viewmodels.AdvancedSettingsViewModel
import org.linphone.core.tools.Log import org.linphone.core.tools.Log
import org.linphone.core.tools.compatibility.DeviceUtils import org.linphone.core.tools.compatibility.DeviceUtils
import org.linphone.databinding.SettingsAdvancedFragmentBinding import org.linphone.databinding.SettingsAdvancedFragmentBinding
import org.linphone.utils.PowerManagerUtils import org.linphone.utils.PowerManagerUtils
class AdvancedSettingsFragment : Fragment() { class AdvancedSettingsFragment : GenericFragment<SettingsAdvancedFragmentBinding>() {
private lateinit var binding: SettingsAdvancedFragmentBinding
private lateinit var viewModel: AdvancedSettingsViewModel private lateinit var viewModel: AdvancedSettingsViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.settings_advanced_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = SettingsAdvancedFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -23,33 +23,24 @@ import android.content.pm.PackageManager
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.databinding.DataBindingUtil import androidx.databinding.DataBindingUtil
import androidx.databinding.ViewDataBinding import androidx.databinding.ViewDataBinding
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.BR import org.linphone.BR
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.settings.SettingListenerStub import org.linphone.activities.main.settings.SettingListenerStub
import org.linphone.activities.main.settings.viewmodels.AudioSettingsViewModel import org.linphone.activities.main.settings.viewmodels.AudioSettingsViewModel
import org.linphone.core.tools.Log import org.linphone.core.tools.Log
import org.linphone.databinding.SettingsAudioFragmentBinding import org.linphone.databinding.SettingsAudioFragmentBinding
import org.linphone.utils.PermissionHelper import org.linphone.utils.PermissionHelper
class AudioSettingsFragment : Fragment() { class AudioSettingsFragment : GenericFragment<SettingsAudioFragmentBinding>() {
private lateinit var binding: SettingsAudioFragmentBinding
private lateinit var viewModel: AudioSettingsViewModel private lateinit var viewModel: AudioSettingsViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.settings_audio_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = SettingsAudioFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -24,30 +24,20 @@ import android.net.Uri
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.provider.Settings import android.provider.Settings
import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.settings.viewmodels.CallSettingsViewModel import org.linphone.activities.main.settings.viewmodels.CallSettingsViewModel
import org.linphone.compatibility.Compatibility import org.linphone.compatibility.Compatibility
import org.linphone.databinding.SettingsCallFragmentBinding import org.linphone.databinding.SettingsCallFragmentBinding
import org.linphone.mediastream.Version import org.linphone.mediastream.Version
class CallSettingsFragment : Fragment() { class CallSettingsFragment : GenericFragment<SettingsCallFragmentBinding>() {
private lateinit var binding: SettingsCallFragmentBinding
private lateinit var viewModel: CallSettingsViewModel private lateinit var viewModel: CallSettingsViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.settings_call_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = SettingsCallFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -23,30 +23,20 @@ import android.content.Intent
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.provider.Settings import android.provider.Settings
import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.settings.viewmodels.ChatSettingsViewModel import org.linphone.activities.main.settings.viewmodels.ChatSettingsViewModel
import org.linphone.compatibility.Compatibility import org.linphone.compatibility.Compatibility
import org.linphone.databinding.SettingsChatFragmentBinding import org.linphone.databinding.SettingsChatFragmentBinding
import org.linphone.mediastream.Version import org.linphone.mediastream.Version
class ChatSettingsFragment : Fragment() { class ChatSettingsFragment : GenericFragment<SettingsChatFragmentBinding>() {
private lateinit var binding: SettingsChatFragmentBinding
private lateinit var viewModel: ChatSettingsViewModel private lateinit var viewModel: ChatSettingsViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.settings_chat_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = SettingsChatFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -21,33 +21,23 @@ package org.linphone.activities.main.settings.fragments
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.LinphoneApplication.Companion.corePreferences
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.settings.viewmodels.ContactsSettingsViewModel import org.linphone.activities.main.settings.viewmodels.ContactsSettingsViewModel
import org.linphone.compatibility.Compatibility import org.linphone.compatibility.Compatibility
import org.linphone.core.tools.Log import org.linphone.core.tools.Log
import org.linphone.databinding.SettingsContactsFragmentBinding import org.linphone.databinding.SettingsContactsFragmentBinding
import org.linphone.utils.PermissionHelper import org.linphone.utils.PermissionHelper
class ContactsSettingsFragment : Fragment() { class ContactsSettingsFragment : GenericFragment<SettingsContactsFragmentBinding>() {
private lateinit var binding: SettingsContactsFragmentBinding
private lateinit var viewModel: ContactsSettingsViewModel private lateinit var viewModel: ContactsSettingsViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.settings_contacts_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = SettingsContactsFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,28 +20,18 @@
package org.linphone.activities.main.settings.fragments package org.linphone.activities.main.settings.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.settings.viewmodels.NetworkSettingsViewModel import org.linphone.activities.main.settings.viewmodels.NetworkSettingsViewModel
import org.linphone.databinding.SettingsNetworkFragmentBinding import org.linphone.databinding.SettingsNetworkFragmentBinding
class NetworkSettingsFragment : Fragment() { class NetworkSettingsFragment : GenericFragment<SettingsNetworkFragmentBinding>() {
private lateinit var binding: SettingsNetworkFragmentBinding
private lateinit var viewModel: NetworkSettingsViewModel private lateinit var viewModel: NetworkSettingsViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.settings_network_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = SettingsNetworkFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,12 +20,10 @@
package org.linphone.activities.main.settings.fragments package org.linphone.activities.main.settings.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.* import org.linphone.activities.main.*
import org.linphone.activities.main.navigateToAccountSettings import org.linphone.activities.main.navigateToAccountSettings
import org.linphone.activities.main.navigateToAudioSettings import org.linphone.activities.main.navigateToAudioSettings
@ -36,19 +34,11 @@ import org.linphone.activities.main.viewmodels.SharedMainViewModel
import org.linphone.core.tools.Log import org.linphone.core.tools.Log
import org.linphone.databinding.SettingsFragmentBinding import org.linphone.databinding.SettingsFragmentBinding
class SettingsFragment : Fragment() { class SettingsFragment : GenericFragment<SettingsFragmentBinding>() {
private lateinit var binding: SettingsFragmentBinding
private lateinit var sharedViewModel: SharedMainViewModel private lateinit var sharedViewModel: SharedMainViewModel
private lateinit var viewModel: SettingsViewModel private lateinit var viewModel: SettingsViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.settings_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = SettingsFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -20,28 +20,18 @@
package org.linphone.activities.main.settings.fragments package org.linphone.activities.main.settings.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.settings.viewmodels.TunnelSettingsViewModel import org.linphone.activities.main.settings.viewmodels.TunnelSettingsViewModel
import org.linphone.databinding.SettingsTunnelFragmentBinding import org.linphone.databinding.SettingsTunnelFragmentBinding
class TunnelSettingsFragment : Fragment() { class TunnelSettingsFragment : GenericFragment<SettingsTunnelFragmentBinding>() {
private lateinit var binding: SettingsTunnelFragmentBinding
private lateinit var viewModel: TunnelSettingsViewModel private lateinit var viewModel: TunnelSettingsViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.settings_tunnel_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = SettingsTunnelFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -23,33 +23,24 @@ import android.content.pm.PackageManager
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup
import androidx.databinding.DataBindingUtil import androidx.databinding.DataBindingUtil
import androidx.databinding.ViewDataBinding import androidx.databinding.ViewDataBinding
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import org.linphone.BR import org.linphone.BR
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.main.settings.SettingListenerStub import org.linphone.activities.main.settings.SettingListenerStub
import org.linphone.activities.main.settings.viewmodels.VideoSettingsViewModel import org.linphone.activities.main.settings.viewmodels.VideoSettingsViewModel
import org.linphone.core.tools.Log import org.linphone.core.tools.Log
import org.linphone.databinding.SettingsVideoFragmentBinding import org.linphone.databinding.SettingsVideoFragmentBinding
import org.linphone.utils.PermissionHelper import org.linphone.utils.PermissionHelper
class VideoSettingsFragment : Fragment() { class VideoSettingsFragment : GenericFragment<SettingsVideoFragmentBinding>() {
private lateinit var binding: SettingsVideoFragmentBinding
private lateinit var viewModel: VideoSettingsViewModel private lateinit var viewModel: VideoSettingsViewModel
override fun onCreateView( override fun getLayoutId(): Int = R.layout.settings_video_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = SettingsVideoFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)

View file

@ -25,10 +25,6 @@ import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.os.Parcelable import android.os.Parcelable
import android.provider.MediaStore import android.provider.MediaStore
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
@ -36,6 +32,7 @@ import java.io.File
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R import org.linphone.R
import org.linphone.activities.GenericFragment
import org.linphone.activities.assistant.AssistantActivity import org.linphone.activities.assistant.AssistantActivity
import org.linphone.activities.main.navigateToAccountSettings import org.linphone.activities.main.navigateToAccountSettings
import org.linphone.activities.main.settings.SettingListenerStub import org.linphone.activities.main.settings.SettingListenerStub
@ -48,20 +45,12 @@ import org.linphone.utils.FileUtils
import org.linphone.utils.ImageUtils import org.linphone.utils.ImageUtils
import org.linphone.utils.PermissionHelper import org.linphone.utils.PermissionHelper
class SideMenuFragment : Fragment() { class SideMenuFragment : GenericFragment<SideMenuFragmentBinding>() {
private lateinit var binding: SideMenuFragmentBinding
private lateinit var viewModel: SideMenuViewModel private lateinit var viewModel: SideMenuViewModel
private lateinit var sharedViewModel: SharedMainViewModel private lateinit var sharedViewModel: SharedMainViewModel
private var temporaryPicturePath: File? = null private var temporaryPicturePath: File? = null
override fun onCreateView( override fun getLayoutId(): Int = R.layout.side_menu_fragment
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = SideMenuFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)