Fixed a few leaks identified by LeakCanary
This commit is contained in:
parent
4297a4e557
commit
03e4415b5c
7 changed files with 36 additions and 10 deletions
|
@ -151,6 +151,13 @@ class CallActivity : ProximitySensorActivity() {
|
|||
super.onPause()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
coreContext.core.nativeVideoWindowId = null
|
||||
coreContext.core.nativePreviewWindowId = null
|
||||
|
||||
super.onDestroy()
|
||||
}
|
||||
|
||||
override fun onUserLeaveHint() {
|
||||
super.onUserLeaveHint()
|
||||
|
||||
|
|
|
@ -122,10 +122,14 @@ class OutgoingCallActivity : ProximitySensorActivity() {
|
|||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
|
||||
initNumpadLayout()
|
||||
}
|
||||
|
||||
override fun onStop() {
|
||||
numpadAnimator.end()
|
||||
super.onStop()
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
|
||||
|
|
|
@ -183,10 +183,14 @@ class ControlsFragment : GenericFragment<CallControlsFragmentBinding>() {
|
|||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
|
||||
initNumpadLayout()
|
||||
}
|
||||
|
||||
override fun onStop() {
|
||||
numpadAnimator.end()
|
||||
super.onStop()
|
||||
}
|
||||
|
||||
override fun onRequestPermissionsResult(
|
||||
requestCode: Int,
|
||||
permissions: Array<out String>,
|
||||
|
|
|
@ -233,6 +233,9 @@ class ControlsViewModel : ViewModel() {
|
|||
}
|
||||
|
||||
override fun onCleared() {
|
||||
if (corePreferences.enableAnimations) bounceAnimator.end()
|
||||
optionsMenuAnimator.end()
|
||||
audioRoutesMenuAnimator.end()
|
||||
coreContext.core.removeListener(listener)
|
||||
super.onCleared()
|
||||
}
|
||||
|
|
|
@ -395,6 +395,7 @@ class AccountSettingsViewModel(val account: Account) : GenericSettingsViewModel(
|
|||
}
|
||||
|
||||
fun destroy() {
|
||||
accountsSettingsListener = object : SettingListenerStub() {}
|
||||
account.removeListener(listener)
|
||||
}
|
||||
|
||||
|
|
|
@ -43,12 +43,6 @@ class SideMenuViewModel : ViewModel() {
|
|||
|
||||
lateinit var accountsSettingsListener: SettingListenerStub
|
||||
|
||||
private var accountClickListener = object : SettingListenerStub() {
|
||||
override fun onAccountClicked(identity: String) {
|
||||
accountsSettingsListener.onAccountClicked(identity)
|
||||
}
|
||||
}
|
||||
|
||||
private val listener: CoreListenerStub = object : CoreListenerStub() {
|
||||
override fun onAccountRegistrationStateChanged(
|
||||
core: Core,
|
||||
|
@ -71,18 +65,26 @@ class SideMenuViewModel : ViewModel() {
|
|||
}
|
||||
|
||||
override fun onCleared() {
|
||||
defaultAccountViewModel.value?.destroy()
|
||||
accounts.value.orEmpty().forEach(AccountSettingsViewModel::destroy)
|
||||
coreContext.core.removeListener(listener)
|
||||
super.onCleared()
|
||||
}
|
||||
|
||||
fun updateAccountsList() {
|
||||
defaultAccountFound.value = false // Do not assume a default account will still be found
|
||||
|
||||
accounts.value.orEmpty().forEach(AccountSettingsViewModel::destroy)
|
||||
val list = arrayListOf<AccountSettingsViewModel>()
|
||||
if (coreContext.core.accountList.isNotEmpty()) {
|
||||
val defaultAccount = coreContext.core.defaultAccount
|
||||
if (defaultAccount != null) {
|
||||
val defaultViewModel = AccountSettingsViewModel(defaultAccount)
|
||||
defaultViewModel.accountsSettingsListener = accountClickListener
|
||||
defaultViewModel.accountsSettingsListener = object : SettingListenerStub() {
|
||||
override fun onAccountClicked(identity: String) {
|
||||
accountsSettingsListener.onAccountClicked(identity)
|
||||
}
|
||||
}
|
||||
defaultAccountViewModel.value = defaultViewModel
|
||||
defaultAccountFound.value = true
|
||||
}
|
||||
|
@ -90,7 +92,11 @@ class SideMenuViewModel : ViewModel() {
|
|||
for (account in coreContext.core.accountList) {
|
||||
if (account != coreContext.core.defaultAccount) {
|
||||
val viewModel = AccountSettingsViewModel(account)
|
||||
viewModel.accountsSettingsListener = accountClickListener
|
||||
viewModel.accountsSettingsListener = object : SettingListenerStub() {
|
||||
override fun onAccountClicked(identity: String) {
|
||||
accountsSettingsListener.onAccountClicked(identity)
|
||||
}
|
||||
}
|
||||
list.add(viewModel)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -101,6 +101,7 @@ class TabsViewModel : ViewModel() {
|
|||
}
|
||||
|
||||
override fun onCleared() {
|
||||
if (corePreferences.enableAnimations) bounceAnimator.end()
|
||||
coreContext.core.removeListener(listener)
|
||||
super.onCleared()
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue