From ab96713b8eba7c0307448e298014d9fa830bfcf3 Mon Sep 17 00:00:00 2001 From: Mariotaku Lee Date: Tue, 4 Apr 2017 11:42:45 +0800 Subject: [PATCH] fixed some memory leaks, close #744 --- .../mariotaku/twidere/fragment/AccountsDashboardFragment.kt | 2 +- .../org/mariotaku/twidere/loader/AccountDetailsLoader.kt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AccountsDashboardFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AccountsDashboardFragment.kt index a314a8505..97fa3b397 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AccountsDashboardFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/AccountsDashboardFragment.kt @@ -611,7 +611,6 @@ class AccountsDashboardFragment : BaseFragment(), LoaderCallbacks, context: Context, val firsSyncLoad: Boolean ) : FixedAsyncTaskLoader(context) { - private val am = AccountManager.get(context) private var contentObserver: ContentObserver? = null set(value) { @@ -624,6 +623,7 @@ class AccountsDashboardFragment : BaseFragment(), LoaderCallbacks, } private var accountListener: OnAccountsUpdateListener? = null set(value) { + val am = AccountManager.get(context) field?.let { am.removeOnAccountsUpdatedListenerSafe(it) } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/loader/AccountDetailsLoader.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/loader/AccountDetailsLoader.kt index 6298597de..e2711404b 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/loader/AccountDetailsLoader.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/loader/AccountDetailsLoader.kt @@ -18,10 +18,9 @@ class AccountDetailsLoader( val filter: (AccountDetails.() -> Boolean)? = null ) : FixedAsyncTaskLoader>(context) { - private val am: AccountManager = AccountManager.get(context) - private var accountUpdateListener: OnAccountsUpdateListener? = null set(value) { + val am: AccountManager = AccountManager.get(context) field?.let { am.removeOnAccountsUpdatedListenerSafe(it) } @@ -31,6 +30,7 @@ class AccountDetailsLoader( } override fun loadInBackground(): List { + val am: AccountManager = AccountManager.get(context) return AccountUtils.getAllAccountDetails(am, true).filter { filter?.invoke(it) ?: true }.sortedBy(AccountDetails::position)