From 2150bebf5a087be339a5b4ad3526be8a6daf1f32 Mon Sep 17 00:00:00 2001 From: mike a Date: Thu, 24 Mar 2022 00:42:35 -0700 Subject: [PATCH] =?UTF-8?q?[fenix]=20Closes=20https://github.com/mozilla-m?= =?UTF-8?q?obile/fenix/issues/24276:=20=E2=80=93=20make=20comments=20insid?= =?UTF-8?q?e=20HistoryDataSource=20capitalized=20and=20informative=20?= =?UTF-8?q?=E2=80=93=20remove=20scroll=20to=20first=20item=20in=20swipe-to?= =?UTF-8?q?-refresh=20=E2=80=93=20change=20adapter=20initialization=20?= =?UTF-8?q?=E2=80=93=20fixed=20SitePermissionsExceptionsFragment=20flicker?= =?UTF-8?q?ing=20empty=20state?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mozilla/fenix/library/history/HistoryDataSource.kt | 10 +++++----- .../org/mozilla/fenix/library/history/HistoryView.kt | 1 - .../SitePermissionsExceptionsFragment.kt | 7 ++++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistoryDataSource.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistoryDataSource.kt index 84ca5296ac..0b1e89b112 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistoryDataSource.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/HistoryDataSource.kt @@ -14,12 +14,13 @@ class HistoryDataSource( private val historyProvider: PagedHistoryProvider ) : PagingSource() { - // having any value but null creates visual glitches in case or swipe to refresh and immediate - // scroll down + // The refresh key is set to null so that it will always reload the entire list for any data + // updates such as pull to refresh, and return the user to the start of the list. override fun getRefreshKey(state: PagingState): Int? = null - // params.key is expected to be null for the initial load or a refresh override suspend fun load(params: LoadParams): LoadResult { + // Get the offset of the last loaded page or default to 0 when it is null, on the initial + // load or a refresh. val offset = params.key ?: 0 val historyItems = historyProvider.getHistory(offset, params.loadSize).run { positionWithOffset(offset) @@ -29,10 +30,9 @@ class HistoryDataSource( } else { (offset + historyItems.size) + 1 } - // prevKey is needed in case load would work upwards, so passing null is fine return LoadResult.Page( data = historyItems, - prevKey = null, + prevKey = null, // Only paging forward. nextKey = nextOffset ) } diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistoryView.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistoryView.kt index 7d7b9133b9..6f36e3b041 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistoryView.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/HistoryView.kt @@ -65,7 +65,6 @@ class HistoryView( binding.swipeRefresh.setColorSchemeColors(primaryTextColor) binding.swipeRefresh.setOnRefreshListener { interactor.onRequestSync() - binding.historyList.scrollToPosition(0) } } diff --git a/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsExceptionsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsExceptionsFragment.kt index ead7bc1b50..51e776c85d 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsExceptionsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsExceptionsFragment.kt @@ -68,9 +68,12 @@ class SitePermissionsExceptionsFragment : ) { showEmptyListMessage() } else { - hideEmptyListMessage() + if (itemCount != 0) { + hideEmptyListMessage() + } } } + recyclerView.adapter = this } viewLifecycleOwner.lifecycleScope.launch(Dispatchers.IO) { @@ -85,8 +88,6 @@ class SitePermissionsExceptionsFragment : adapter.submitData(it) } } - - recyclerView.adapter = adapter } private fun hideEmptyListMessage() {