[fenix] Refactor History types to eliminate nullability
commit6957ca43bb92c9a9b2eb503862870d19e3e56ad0
authorGrisha Kruglov <gkruglov@mozilla.com>
Tue, 21 Dec 2021 18:40:35 +0000 (21 10:40 -0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Tue, 21 Dec 2021 19:54:18 +0000 (21 19:54 +0000)
tree2269924e4c946c271558fad3f954820f4c4f1d65
parentae77fb42492ffae120313d20161dc442e2c15f2c
[fenix] Refactor History types to eliminate nullability

This introduces a separate HistoryDB type at the PagedHistoryProvider
layer, that doesn't need to deal with positions. Positioning logic in
HistoryDataSource becomes a type conversion between the new type and an
existing History type that UI and ItemKeyedDataSource API is written against.

With this refactor, we entirely eliminate nullability from these types.
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/history/PagedHistoryProvider.kt
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/recentvisits/controller/RecentVisitsController.kt
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/library/history/HistoryDataSource.kt
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragmentStore.kt
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/library/history/HistoryView.kt
mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/history/PagedHistoryProviderTest.kt
mobile/android/fenix/app/src/test/java/org/mozilla/fenix/library/history/HistoryAdapterTest.kt
mobile/android/fenix/app/src/test/java/org/mozilla/fenix/library/history/HistoryDataSourceTest.kt
mobile/android/fenix/app/src/test/java/org/mozilla/fenix/library/historymetadata/HistoryMetadataGroupFragmentStoreTest.kt
mobile/android/fenix/app/src/test/java/org/mozilla/fenix/library/historymetadata/controller/HistoryMetadataGroupControllerTest.kt
mobile/android/fenix/app/src/test/java/org/mozilla/fenix/library/historymetadata/view/HistoryMetadataGroupItemViewHolderTest.kt