[fenix] Issue https://github.com/mozilla-mobile/fenix/issues/18934: Do not nullify adapter on window detached
Previously, to fix a memory leak, we were removing the adapter reference entirely in order to have the `onDetachedFromRecyclerView` callback invoked. This causes a side-effect where we can no longer reference the adapter any more when we re-attach. The simpler solution is to just invoke the needed callback directly instead.pull/600/head
parent
ac29b50dfa
commit
bc628f6770
@ -0,0 +1,35 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
package org.mozilla.fenix.tabstray.browser
|
||||
|
||||
import android.content.Context
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
import mozilla.components.support.test.robolectric.testContext
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mozilla.fenix.helpers.FenixRobolectricTestRunner
|
||||
import org.mozilla.fenix.tabstray.TabsTrayStore
|
||||
|
||||
@RunWith(FenixRobolectricTestRunner::class)
|
||||
class BaseBrowserTrayListTest {
|
||||
|
||||
@Test
|
||||
fun `WHEN recyclerview detaches from window THEN notify adapter`() {
|
||||
val trayList = TestBaseBrowserTrayList(testContext)
|
||||
val adapter = mockk<BrowserTabsAdapter>(relaxed = true)
|
||||
|
||||
trayList.adapter = adapter
|
||||
trayList.tabsTrayStore = TabsTrayStore()
|
||||
|
||||
trayList.onDetachedFromWindow()
|
||||
|
||||
verify { adapter.onDetachedFromRecyclerView(trayList) }
|
||||
}
|
||||
|
||||
class TestBaseBrowserTrayList(context: Context) : BaseBrowserTrayList(context) {
|
||||
override val configuration = Configuration(BrowserTabType.PRIVATE)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue