skyline/app/src/main/java/emu/skyline/adapter/LogViewItem.kt

34 lines
1.3 KiB
Kotlin

/*
* SPDX-License-Identifier: MPL-2.0
* Copyright © 2020 Skyline Team and Contributors (https://github.com/skyline-emu/)
*/
package emu.skyline.adapter
import android.content.ClipData
import android.content.ClipboardManager
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import emu.skyline.R
import kotlinx.android.synthetic.main.log_item.*
private data class LogLayoutFactory(private val compact : Boolean) : GenericLayoutFactory {
override fun createLayout(parent : ViewGroup) : View = LayoutInflater.from(parent.context).inflate(if (compact) R.layout.log_item_compact else R.layout.log_item, parent, false)
}
data class LogViewItem(private val compact : Boolean, private val message : String, private val level : String) : GenericListItem() {
override fun getLayoutFactory() : GenericLayoutFactory = LogLayoutFactory(compact)
override fun bind(holder : GenericViewHolder, position : Int) {
holder.text_title.text = message
holder.text_subtitle?.text = level
holder.itemView.setOnClickListener {
it.context.getSystemService(ClipboardManager::class.java).setPrimaryClip(ClipData.newPlainText("Log Message", "$message ($level)"))
Toast.makeText(it.context, "Copied to clipboard", Toast.LENGTH_LONG).show()
}
}
}