Created
March 18, 2020 20:17
-
-
Save boek/7f067cf198baaeae6e549cbb7f088f5a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| diff --git a/app/src/main/java/org/mozilla/fenix/library/LibraryPageView.kt b/app/src/main/java/org/mozilla/fenix/library/LibraryPageView.kt | |
| index 3f5eecfb..bc51ba84 100644 | |
| --- a/app/src/main/java/org/mozilla/fenix/library/LibraryPageView.kt | |
| +++ b/app/src/main/java/org/mozilla/fenix/library/LibraryPageView.kt | |
| @@ -22,27 +22,23 @@ open class LibraryPageView( | |
| protected val activity = context.asActivity() | |
| protected fun setUiForNormalMode( | |
| - title: String?, | |
| - libraryItemsList: RecyclerView | |
| + title: String? | |
| ) { | |
| updateToolbar( | |
| title = title, | |
| foregroundColor = context.getColorFromAttr(R.attr.primaryText), | |
| backgroundColor = context.getColorFromAttr(R.attr.foundation) | |
| ) | |
| - libraryItemsList.adapter?.notifyDataSetChanged() | |
| } | |
| protected fun setUiForSelectingMode( | |
| - title: String?, | |
| - libraryItemsList: RecyclerView | |
| + title: String? | |
| ) { | |
| updateToolbar( | |
| title = title, | |
| foregroundColor = ContextCompat.getColor(context, R.color.white_color), | |
| backgroundColor = context.getColorFromAttr(R.attr.accentHighContrast) | |
| ) | |
| - libraryItemsList.adapter?.notifyDataSetChanged() | |
| } | |
| private fun updateToolbar(title: String?, foregroundColor: Int, backgroundColor: Int) { | |
| diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkView.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkView.kt | |
| index c71dcedb..bccfd2a5 100644 | |
| --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkView.kt | |
| +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkView.kt | |
| @@ -127,8 +127,7 @@ class BookmarkView( | |
| setUiForNormalMode(state.tree) | |
| is BookmarkFragmentState.Mode.Selecting -> | |
| setUiForSelectingMode( | |
| - context.getString(R.string.bookmarks_multi_select_title, mode.selectedItems.size), | |
| - view.bookmark_list | |
| + context.getString(R.string.bookmarks_multi_select_title, mode.selectedItems.size) | |
| ) | |
| } | |
| view.bookmarks_progress_bar.isVisible = state.isLoading | |
| @@ -150,8 +149,7 @@ class BookmarkView( | |
| private fun setUiForNormalMode(root: BookmarkNode?) { | |
| super.setUiForNormalMode( | |
| - if (BookmarkRoot.Mobile.id == root?.guid) context.getString(R.string.library_bookmarks) else root?.title, | |
| - view.bookmark_list | |
| + if (BookmarkRoot.Mobile.id == root?.guid) context.getString(R.string.library_bookmarks) else root?.title | |
| ) | |
| } | |
| 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 9c3097e4..ca3fce72 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 | |
| @@ -78,14 +78,14 @@ class HistoryView( | |
| items = state.items | |
| mode = state.mode | |
| - if (state.mode != oldMode) { | |
| - interactor.onModeSwitched() | |
| - historyAdapter.updateMode(state.mode) | |
| + historyAdapter.updateMode(state.mode) | |
| + val first = layoutManager.findFirstVisibleItemPosition() | |
| + val last = layoutManager.findLastCompletelyVisibleItemPosition() | |
| + historyAdapter.notifyItemRangeChanged(first, last - first) | |
| - // Deselect all the previously selected items | |
| - oldMode.selectedItems.forEach { | |
| - historyAdapter.notifyItemChanged(it.id) | |
| - } | |
| + | |
| + if (state.mode::class != oldMode::class) { | |
| + interactor.onModeSwitched() | |
| } | |
| if (state.mode is HistoryFragmentState.Mode.Editing) { | |
| @@ -99,12 +99,10 @@ class HistoryView( | |
| when (val mode = state.mode) { | |
| is HistoryFragmentState.Mode.Normal -> | |
| setUiForNormalMode( | |
| - context.getString(R.string.library_history), | |
| - view.history_list) | |
| + context.getString(R.string.library_history)) | |
| is HistoryFragmentState.Mode.Editing -> | |
| setUiForSelectingMode( | |
| - context.getString(R.string.history_multi_select_title, mode.selectedItems.size), | |
| - view.history_list) | |
| + context.getString(R.string.history_multi_select_title, mode.selectedItems.size)) | |
| } | |
| } | |
| diff --git a/app/src/main/java/org/mozilla/fenix/library/history/viewholders/HistoryListItemViewHolder.kt b/app/src/main/java/org/mozilla/fenix/library/history/viewholders/HistoryListItemViewHolder.kt | |
| index 526144d1..8545d5dc 100644 | |
| --- a/app/src/main/java/org/mozilla/fenix/library/history/viewholders/HistoryListItemViewHolder.kt | |
| +++ b/app/src/main/java/org/mozilla/fenix/library/history/viewholders/HistoryListItemViewHolder.kt | |
| @@ -45,8 +45,6 @@ class HistoryListItemViewHolder( | |
| showDeleteButton: Boolean, | |
| mode: HistoryFragmentState.Mode | |
| ) { | |
| - this.item = item | |
| - | |
| itemView.history_layout.titleView.text = item.title | |
| itemView.history_layout.urlView.text = item.url | |
| @@ -57,12 +55,18 @@ class HistoryListItemViewHolder( | |
| itemView.history_layout.setSelectionInteractor(item, selectionHolder, historyInteractor) | |
| itemView.history_layout.changeSelected(item in selectionHolder.selectedItems) | |
| - itemView.history_layout.loadFavicon(item.url) | |
| + | |
| + if (this.item?.url != item.url) { | |
| + itemView.history_layout.loadFavicon(item.url) | |
| + } | |
| + | |
| if (mode === HistoryFragmentState.Mode.Normal) { | |
| itemView.overflow_menu.showAndEnable() | |
| } else { | |
| itemView.overflow_menu.hideAndDisable() | |
| } | |
| + | |
| + this.item = item | |
| } | |
| private fun toggleHeader(headerText: String?) { |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment