From ef01cdcefe3e76612335f8d96ed95baafd4d71d8 Mon Sep 17 00:00:00 2001 From: Kate Glazko Date: Wed, 2 Dec 2020 10:07:10 -0800 Subject: [PATCH] For #16541: Download UX Updates --- .../fenix/library/downloads/DownloadAdapter.kt | 2 +- .../fenix/library/downloads/DownloadFragment.kt | 15 +++++++++++---- .../fenix/library/downloads/DownloadView.kt | 2 +- .../viewholders/DownloadsListItemViewHolder.kt | 9 +++++++-- app/src/main/res/layout/component_downloads.xml | 2 +- app/src/main/res/menu/download_select_multi.xml | 6 +++++- app/src/main/res/values/strings.xml | 8 +++++--- 7 files changed, 31 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadAdapter.kt b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadAdapter.kt index 747512daa..043053049 100644 --- a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadAdapter.kt @@ -36,7 +36,7 @@ class DownloadAdapter( override fun onBindViewHolder(holder: DownloadsListItemViewHolder, position: Int) { val current = downloads[position] val isPendingDeletion = pendingDeletionIds.contains(current.id) - holder.bind(downloads[position], position == 0, mode, isPendingDeletion) + holder.bind(downloads[position], mode, isPendingDeletion) } fun updateDownloads(downloads: List) { diff --git a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadFragment.kt b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadFragment.kt index a3fd6302c..68ebf203f 100644 --- a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadFragment.kt @@ -128,7 +128,7 @@ class DownloadFragment : LibraryPageFragment(), UserInteractionHan launch(Dispatchers.Main) { showSnackBar( requireView(), - getString(R.string.download_delete_multiple_items_snackbar) + getString(R.string.download_delete_multiple_items_snackbar_1) ) } } @@ -175,7 +175,7 @@ class DownloadFragment : LibraryPageFragment(), UserInteractionHan inflater.inflate(menuRes, menu) menu.findItem(R.id.delete_downloads_multi_select)?.title = - SpannableString(getString(R.string.bookmark_menu_delete_button)).apply { + SpannableString(getString(R.string.download_delete_item_1)).apply { setTextColor(requireContext(), R.attr.destructive) } } @@ -191,16 +191,23 @@ class DownloadFragment : LibraryPageFragment(), UserInteractionHan downloadStore.dispatch(DownloadFragmentAction.ExitEditMode) true } + + R.id.select_all_downloads_multi_select -> { + for (items in downloadStore.state.items) { + downloadInteractor.select(items) + } + true + } else -> super.onOptionsItemSelected(item) } private fun getMultiSelectSnackBarMessage(downloadItems: Set): String { return if (downloadItems.size > 1) { - getString(R.string.download_delete_multiple_items_snackbar) + getString(R.string.download_delete_multiple_items_snackbar_1) } else { String.format( requireContext().getString( - R.string.history_delete_single_item_snackbar + R.string.download_delete_single_item_snackbar ), downloadItems.first().fileName ) } diff --git a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadView.kt b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadView.kt index 03f50c2a5..82ad310b1 100644 --- a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadView.kt +++ b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadView.kt @@ -114,7 +114,7 @@ class DownloadView( download_list.isVisible = userHasDownloads download_empty_view.isVisible = !userHasDownloads if (!userHasDownloads) { - download_empty_view.announceForAccessibility(context.getString(R.string.download_empty_message)) + download_empty_view.announceForAccessibility(context.getString(R.string.download_empty_message_1)) } } diff --git a/app/src/main/java/org/mozilla/fenix/library/downloads/viewholders/DownloadsListItemViewHolder.kt b/app/src/main/java/org/mozilla/fenix/library/downloads/viewholders/DownloadsListItemViewHolder.kt index 0a305e82f..46e76067d 100644 --- a/app/src/main/java/org/mozilla/fenix/library/downloads/viewholders/DownloadsListItemViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/library/downloads/viewholders/DownloadsListItemViewHolder.kt @@ -42,7 +42,6 @@ class DownloadsListItemViewHolder( fun bind( item: DownloadItem, - showDeleteButton: Boolean, mode: DownloadFragmentState.Mode, isPendingDeletion: Boolean = false ) { @@ -54,15 +53,21 @@ class DownloadsListItemViewHolder( itemView.download_layout.titleView.text = item.fileName itemView.download_layout.urlView.text = item.size.toLong().toMegabyteOrKilobyteString() - toggleTopContent(showDeleteButton, mode == DownloadFragmentState.Mode.Normal) + toggleTopContent(false, mode == DownloadFragmentState.Mode.Normal) itemView.download_layout.setSelectionInteractor(item, selectionHolder, downloadInteractor) itemView.download_layout.changeSelected(item in selectionHolder.selectedItems) itemView.favicon.setImageResource(item.getIcon()) + itemView.overflow_menu.setImageResource(R.drawable.ic_delete) + itemView.overflow_menu.showAndEnable() + itemView.overflow_menu.setOnClickListener { + downloadInteractor.onDeleteSome(setOf(item)) + } + this.item = item } diff --git a/app/src/main/res/layout/component_downloads.xml b/app/src/main/res/layout/component_downloads.xml index a6bcbe35e..ef2a15f7e 100644 --- a/app/src/main/res/layout/component_downloads.xml +++ b/app/src/main/res/layout/component_downloads.xml @@ -25,7 +25,7 @@ android:layout_width="0dp" android:layout_height="0dp" android:gravity="center" - android:text="@string/download_empty_message" + android:text="@string/download_empty_message_1" android:textColor="?secondaryText" android:textSize="16sp" android:visibility="gone" diff --git a/app/src/main/res/menu/download_select_multi.xml b/app/src/main/res/menu/download_select_multi.xml index 849ba2557..e0087d5c2 100644 --- a/app/src/main/res/menu/download_select_multi.xml +++ b/app/src/main/res/menu/download_select_multi.xml @@ -4,8 +4,12 @@ - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 50e097275..016cafc2d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -710,16 +710,18 @@ Are you sure you want to clear your downloads? - Downloads Deleted + Downloads Removed + + Removed %1$s - No downloads here + No downloaded files %1$d selected Open - Delete + Remove