34 lines
1.3 KiB
Kotlin
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()
|
|
}
|
|
}
|
|
}
|