aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/net/lacolaco/smileessence/view/page/EventsPageFragment.kt
blob: 4913348d954b7b57bd10ac0313041f28a06df13c (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
package net.lacolaco.smileessence.view.page

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.bumptech.glide.Glide
import kotlinx.android.synthetic.main.list_item_event.view.*
import net.lacolaco.smileessence.R
import net.lacolaco.smileessence.data.PageInfo
import net.lacolaco.smileessence.entity.Event
import net.lacolaco.smileessence.entity.User
import net.lacolaco.smileessence.util.launchUi
import net.lacolaco.smileessence.util.toCompactString
import net.lacolaco.smileessence.view.DialogHelper
import net.lacolaco.smileessence.view.dialog.UserDetailDialogFragment

class EventsPageFragment : TimelinePageFragment<Event, PageInfo.EventsPageInfo>() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        world.addEventNotifier(this) { launchUi { adapter.sortedList.add(it) } }
    }

    override fun onBindItemView(item: Event, itemView: View) {
        Glide.with(view).load(item.source?.profileImageUrl ?: User.DEFAULT_PROFILE_IMAGE_URL)
                .into(itemView.imageview_status_icon)
        itemView.textview_status_header_username.text = item.title
        itemView.textview_status_text.text = item.body
        itemView.textview_status_footer.text = item.createdAt.toCompactString()
        itemView.setOnClickListener {
            if (item.source != null)
                DialogHelper.showDialog(activity,
                        UserDetailDialogFragment.newInstance(item.source!!))
        }
    }

    override fun onCreateItemView(parent: ViewGroup): View {
        val layoutInflater = LayoutInflater.from(parent.context)
        return layoutInflater.inflate(R.layout.list_item_event, parent, false)
    }
}