pull/600/head
Kate Glazko 4 years ago committed by kglazko
parent 61e10d8561
commit 1e7a67d0ca

@ -36,7 +36,7 @@ class DownloadAdapter(
override fun onBindViewHolder(holder: DownloadsListItemViewHolder, position: Int) { override fun onBindViewHolder(holder: DownloadsListItemViewHolder, position: Int) {
val current = downloads[position] val current = downloads[position]
val isPendingDeletion = pendingDeletionIds.contains(current.id) val isPendingDeletion = pendingDeletionIds.contains(current.id)
holder.bind(downloads[position], position == 0, mode, isPendingDeletion) holder.bind(downloads[position], mode, isPendingDeletion)
} }
fun updateDownloads(downloads: List<DownloadItem>) { fun updateDownloads(downloads: List<DownloadItem>) {

@ -128,7 +128,7 @@ class DownloadFragment : LibraryPageFragment<DownloadItem>(), UserInteractionHan
launch(Dispatchers.Main) { launch(Dispatchers.Main) {
showSnackBar( showSnackBar(
requireView(), 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<DownloadItem>(), UserInteractionHan
inflater.inflate(menuRes, menu) inflater.inflate(menuRes, menu)
menu.findItem(R.id.delete_downloads_multi_select)?.title = 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) setTextColor(requireContext(), R.attr.destructive)
} }
} }
@ -191,16 +191,23 @@ class DownloadFragment : LibraryPageFragment<DownloadItem>(), UserInteractionHan
downloadStore.dispatch(DownloadFragmentAction.ExitEditMode) downloadStore.dispatch(DownloadFragmentAction.ExitEditMode)
true true
} }
R.id.select_all_downloads_multi_select -> {
for (items in downloadStore.state.items) {
downloadInteractor.select(items)
}
true
}
else -> super.onOptionsItemSelected(item) else -> super.onOptionsItemSelected(item)
} }
private fun getMultiSelectSnackBarMessage(downloadItems: Set<DownloadItem>): String { private fun getMultiSelectSnackBarMessage(downloadItems: Set<DownloadItem>): String {
return if (downloadItems.size > 1) { return if (downloadItems.size > 1) {
getString(R.string.download_delete_multiple_items_snackbar) getString(R.string.download_delete_multiple_items_snackbar_1)
} else { } else {
String.format( String.format(
requireContext().getString( requireContext().getString(
R.string.history_delete_single_item_snackbar R.string.download_delete_single_item_snackbar
), downloadItems.first().fileName ), downloadItems.first().fileName
) )
} }

@ -114,7 +114,7 @@ class DownloadView(
download_list.isVisible = userHasDownloads download_list.isVisible = userHasDownloads
download_empty_view.isVisible = !userHasDownloads download_empty_view.isVisible = !userHasDownloads
if (!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))
} }
} }

@ -42,7 +42,6 @@ class DownloadsListItemViewHolder(
fun bind( fun bind(
item: DownloadItem, item: DownloadItem,
showDeleteButton: Boolean,
mode: DownloadFragmentState.Mode, mode: DownloadFragmentState.Mode,
isPendingDeletion: Boolean = false isPendingDeletion: Boolean = false
) { ) {
@ -54,15 +53,21 @@ class DownloadsListItemViewHolder(
itemView.download_layout.titleView.text = item.fileName itemView.download_layout.titleView.text = item.fileName
itemView.download_layout.urlView.text = item.size.toLong().toMegabyteOrKilobyteString() 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.setSelectionInteractor(item, selectionHolder, downloadInteractor)
itemView.download_layout.changeSelected(item in selectionHolder.selectedItems) itemView.download_layout.changeSelected(item in selectionHolder.selectedItems)
itemView.favicon.setImageResource(item.getIcon()) itemView.favicon.setImageResource(item.getIcon())
itemView.overflow_menu.setImageResource(R.drawable.ic_delete)
itemView.overflow_menu.showAndEnable() itemView.overflow_menu.showAndEnable()
itemView.overflow_menu.setOnClickListener {
downloadInteractor.onDeleteSome(setOf(item))
}
this.item = item this.item = item
} }

@ -25,7 +25,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:gravity="center" android:gravity="center"
android:text="@string/download_empty_message" android:text="@string/download_empty_message_1"
android:textColor="?secondaryText" android:textColor="?secondaryText"
android:textSize="16sp" android:textSize="16sp"
android:visibility="gone" android:visibility="gone"

@ -4,8 +4,12 @@
- file, You can obtain one at http://mozilla.org/MPL/2.0/. --> - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/select_all_downloads_multi_select"
android:title="@string/create_collection_select_all"
app:showAsAction="never" />
<item <item
android:id="@+id/delete_downloads_multi_select" android:id="@+id/delete_downloads_multi_select"
android:title="@string/download_delete_item" android:title="@string/download_delete_item_1"
app:showAsAction="never" /> app:showAsAction="never" />
</menu> </menu>

@ -710,16 +710,18 @@
<!-- Text for the dialog to confirm clearing all downloads --> <!-- Text for the dialog to confirm clearing all downloads -->
<string name="download_delete_all_dialog">Are you sure you want to clear your downloads?</string> <string name="download_delete_all_dialog">Are you sure you want to clear your downloads?</string>
<!-- Text for the snackbar to confirm that multiple downloads items have been deleted --> <!-- Text for the snackbar to confirm that multiple downloads items have been deleted -->
<string name="download_delete_multiple_items_snackbar">Downloads Deleted</string> <string name="download_delete_multiple_items_snackbar_1">Downloads Removed</string>
<!-- Text for the snackbar to confirm that a single download item has been deleted. The first parameter is the name of the download item. -->
<string name="download_delete_single_item_snackbar">Removed %1$s</string>
<!-- Text shown when no download exists --> <!-- Text shown when no download exists -->
<string name="download_empty_message">No downloads here</string> <string name="download_empty_message_1">No downloaded files</string>
<!-- History multi select title in app bar <!-- History multi select title in app bar
The first parameter is the number of downloads selected --> The first parameter is the number of downloads selected -->
<string name="download_multi_select_title">%1$d selected</string> <string name="download_multi_select_title">%1$d selected</string>
<!-- History overflow menu open in new tab button --> <!-- History overflow menu open in new tab button -->
<string name="download_menu_open">Open</string> <string name="download_menu_open">Open</string>
<!-- Text for the button to delete a single history item --> <!-- Text for the button to delete a single history item -->
<string name="download_delete_item">Delete</string> <string name="download_delete_item_1">Remove</string>
<!-- Crashes --> <!-- Crashes -->

Loading…
Cancel
Save