aboutsummaryrefslogtreecommitdiff
path: root/library/src/main/kotlin/ca/allanwang/kau/about/MainItem.kt
blob: decacfc6009856a1df689f788bacc2382f2b7627 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package ca.allanwang.kau.about

import android.graphics.drawable.Drawable
import android.support.v7.widget.CardView
import android.support.v7.widget.RecyclerView
import android.view.View
import android.widget.LinearLayout
import android.widget.TextView
import ca.allanwang.kau.R
import ca.allanwang.kau.utils.bindView
import com.mikepenz.fastadapter.items.AbstractItem

/**
 * Created by Allan Wang on 2017-06-27.
 */
class MainItem(builder: Config.() -> Unit) : AbstractItem<MainItem, MainItem.ViewHolder>() {

    val configs = Config().apply { builder() }

    class Config {
        var icon: Drawable? = null
        var title: String = "App Title"
        var author: String? = null
        var description: String? = null
        var version: String? = null
        var githubLink: String? = null
    }

    override fun getType(): Int = R.id.kau_item_about_main

    override fun getLayoutRes(): Int = R.layout.kau_about_item_main

    override fun isSelectable(): Boolean = false

    override fun getViewHolder(v: View): ViewHolder = ViewHolder(v)

    override fun bindView(holder: ViewHolder, payloads: MutableList<Any>?) {
        super.bindView(holder, payloads)
        with (holder) {
            title.text = configs.title
            creator.text = configs.author
            description.text = configs.description
//            license.text = configs.description
        }
    }

    class ViewHolder(v: View) : RecyclerView.ViewHolder(v) {
        val card: CardView by bindView(R.id.container)
        val title: TextView by bindView(R.id.title)
        val creator: TextView by bindView(R.id.creator)
        val description: TextView by bindView(R.id.description)
        val version: TextView by bindView(R.id.version)
        val license: TextView by bindView(R.id.license)
        val bottomContainer: LinearLayout by bindView(R.id.bottom_container)

        val divider: View by bindView(R.id.top_divider)
        val bottomDivider: View by bindView(R.id.bottom_divider)
    }
}