mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Add ability to copy a genre/tag to clipboard by long-pressing it's chip (#6084)
* Allow copying a genre by long-pressing it's chip * Make chip click listeners nullable, and only attach if not-null
This commit is contained in:
		@@ -167,17 +167,20 @@ inline fun ExtendedFloatingActionButton.shrinkOnScroll(recycler: RecyclerView):
 | 
			
		||||
 *
 | 
			
		||||
 * @param items List of strings that are shown as individual chips.
 | 
			
		||||
 * @param onClick Optional on click listener for each chip.
 | 
			
		||||
 * @param onLongClick Optional on long click listener for each chip.
 | 
			
		||||
 */
 | 
			
		||||
inline fun ChipGroup.setChips(
 | 
			
		||||
    items: List<String>?,
 | 
			
		||||
    noinline onClick: (item: String) -> Unit = {}
 | 
			
		||||
    noinline onClick: ((item: String) -> Unit)? = null,
 | 
			
		||||
    noinline onLongClick: ((item: String) -> Unit)? = null
 | 
			
		||||
) {
 | 
			
		||||
    removeAllViews()
 | 
			
		||||
 | 
			
		||||
    items?.forEach { item ->
 | 
			
		||||
        val chip = Chip(context).apply {
 | 
			
		||||
            text = item
 | 
			
		||||
            setOnClickListener { onClick(item) }
 | 
			
		||||
            if (onClick != null) { setOnClickListener { onClick(item) } }
 | 
			
		||||
            if (onLongClick != null) { setOnLongClickListener { onLongClick(item); true } }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        addView(chip)
 | 
			
		||||
 
 | 
			
		||||
@@ -64,8 +64,9 @@ class MangaSummaryView @JvmOverloads constructor(
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    fun setTags(items: List<String>?, onClick: (item: String) -> Unit) {
 | 
			
		||||
        binding.tagChipsShrunk.setChips(items, onClick)
 | 
			
		||||
        binding.tagChipsExpanded.setChips(items, onClick)
 | 
			
		||||
        listOfNotNull(binding.tagChipsShrunk, binding.tagChipsExpanded).forEach { chips ->
 | 
			
		||||
            chips.setChips(items, onClick) { tag -> context.copyToClipboard(tag, tag) }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private fun updateExpandState() = binding.apply {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user