diff --git a/app/src/main/java/fr/free/nrw/commons/upload/FailedUploadsAdapter.kt b/app/src/main/java/fr/free/nrw/commons/upload/FailedUploadsAdapter.kt index fc57ffe41..5b3eb5140 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/FailedUploadsAdapter.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/FailedUploadsAdapter.kt @@ -1,5 +1,8 @@ package fr.free.nrw.commons.upload +import android.content.ClipData +import android.content.ClipboardManager +import android.content.Context.CLIPBOARD_SERVICE import android.net.Uri import android.text.TextUtils import android.view.LayoutInflater @@ -13,6 +16,7 @@ import androidx.paging.PagedListAdapter import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.RecyclerView import com.facebook.imagepipeline.request.ImageRequest +import com.google.android.material.snackbar.Snackbar import fr.free.nrw.commons.R import fr.free.nrw.commons.contributions.Contribution import java.io.File @@ -51,6 +55,24 @@ class FailedUploadsAdapter( position: Int, ) { val item: Contribution? = getItem(position) + val itemView = holder.itemView + val clipboardManager = + itemView.context.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager + + itemView.setOnLongClickListener { + val clip = ClipData.newPlainText( + itemView.context.getString(R.string.caption), + item?.media?.displayTitle + ) + clipboardManager.setPrimaryClip(clip) + Snackbar.make( + itemView, + itemView.context.getString(R.string.caption_copied_to_clipboard), + Snackbar.LENGTH_SHORT + ).show() + true + } + if (item != null) { holder.titleTextView.setText(item.media.displayTitle) } diff --git a/app/src/main/java/fr/free/nrw/commons/upload/PendingUploadsAdapter.kt b/app/src/main/java/fr/free/nrw/commons/upload/PendingUploadsAdapter.kt index 8edfcb472..7f0b8aba1 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/PendingUploadsAdapter.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/PendingUploadsAdapter.kt @@ -1,5 +1,8 @@ package fr.free.nrw.commons.upload +import android.content.ClipData +import android.content.ClipboardManager +import android.content.Context.CLIPBOARD_SERVICE import android.net.Uri import android.text.TextUtils import android.view.LayoutInflater @@ -13,6 +16,7 @@ import androidx.paging.PagedListAdapter import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.RecyclerView import com.facebook.imagepipeline.request.ImageRequest +import com.google.android.material.snackbar.Snackbar import fr.free.nrw.commons.R import fr.free.nrw.commons.contributions.Contribution import java.io.File @@ -99,6 +103,22 @@ class PendingUploadsAdapter( fun bind(contribution: Contribution) { titleTextView.text = contribution.media.displayTitle + val clipboardManager = + itemView.context.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager + + itemView.setOnLongClickListener { + val clip = ClipData.newPlainText( + itemView.context.getString(R.string.caption), + titleTextView.text + ) + clipboardManager.setPrimaryClip(clip) + Snackbar.make( + itemView, + itemView.context.getString(R.string.caption_copied_to_clipboard), + Snackbar.LENGTH_SHORT + ).show() + true + } val imageSource: String = contribution.localUri.toString() var imageRequest: ImageRequest? = null diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 843ab6545..7f5cbf814 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -860,5 +860,7 @@ Upload your first media by tapping on the add button. Other wikis File usages + Caption + Caption copied to clipboard