kopia lustrzana https://github.com/ryukoposting/Signal-Android
36 wiersze
1.2 KiB
Kotlin
36 wiersze
1.2 KiB
Kotlin
package org.thoughtcrime.securesms.components.settings.conversation.preferences
|
|
|
|
import android.view.View
|
|
import org.thoughtcrime.securesms.R
|
|
import org.thoughtcrime.securesms.components.settings.PreferenceModel
|
|
import org.thoughtcrime.securesms.recipients.Recipient
|
|
import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory
|
|
import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter
|
|
import org.thoughtcrime.securesms.util.adapter.mapping.MappingViewHolder
|
|
|
|
object InternalPreference {
|
|
|
|
fun register(adapter: MappingAdapter) {
|
|
adapter.registerFactory(Model::class.java, LayoutFactory(::ViewHolder, R.layout.conversation_settings_internal_preference))
|
|
}
|
|
|
|
class Model(
|
|
private val recipient: Recipient,
|
|
val onInternalDetailsClicked: () -> Unit
|
|
) : PreferenceModel<Model>() {
|
|
|
|
override fun areItemsTheSame(newItem: Model): Boolean {
|
|
return recipient == newItem.recipient
|
|
}
|
|
}
|
|
|
|
private class ViewHolder(itemView: View) : MappingViewHolder<Model>(itemView) {
|
|
|
|
private val internalDetails: View = itemView.findViewById(R.id.internal_details)
|
|
|
|
override fun bind(model: Model) {
|
|
internalDetails.setOnClickListener { model.onInternalDetailsClicked() }
|
|
}
|
|
}
|
|
}
|