mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +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