mirror of
				https://github.com/commons-app/apps-android-commons.git
				synced 2025-11-04 08:43:52 +01:00 
			
		
		
		
	feat: Long-pressing a row in "Uploads" copies the caption to clipboard, and displays a snack saying "Caption copied to clipboard
This commit is contained in:
		
							parent
							
								
									1d8d1d6b03
								
							
						
					
					
						commit
						fef0d03b11
					
				
					 2 changed files with 28 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -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,17 @@ 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("Caption", item?.media?.displayTitle)
 | 
			
		||||
            clipboardManager.setPrimaryClip(clip)
 | 
			
		||||
            Snackbar.make(itemView, "Caption copied to clipboard", Snackbar.LENGTH_SHORT).show()
 | 
			
		||||
            true
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (item != null) {
 | 
			
		||||
            holder.titleTextView.setText(item.media.displayTitle)
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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,15 @@ 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("Caption", titleTextView.text)
 | 
			
		||||
                clipboardManager.setPrimaryClip(clip)
 | 
			
		||||
                Snackbar.make(itemView, "Caption copied to clipboard", Snackbar.LENGTH_SHORT).show()
 | 
			
		||||
                true
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            val imageSource: String = contribution.localUri.toString()
 | 
			
		||||
            var imageRequest: ImageRequest? = null
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue