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

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import net.lacolaco.smileessence.R
import net.lacolaco.smileessence.data.PageInfo
import net.lacolaco.smileessence.entity.Tweet
import net.lacolaco.smileessence.util.launchUi
import net.lacolaco.smileessence.view.Partials

class TweetsPageFragment : TimelinePageFragment<Tweet, PageInfo.TweetsPageInfo>() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val patterns = pageInfo.patterns
        world.addTimeline(this) { tweet ->
            if (patterns.any { it.containsMatchIn(tweet.originalTweet.text) })
                launchUi { adapter.sortedList.add(tweet) }
        }
    }

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
        return inflater.inflate(R.layout.page_fragment_timeline, container, false)
    }

    override fun onBindItemView(item: Tweet, itemView: View) {
        Partials.getTweetView(item, world, activity!!, itemView)
    }

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