1
1
package com.example.smartrecycleradapter
2
2
3
3
import android.os.Bundle
4
+ import android.os.Handler
4
5
import android.support.v7.app.AppCompatActivity
5
6
import android.support.v7.widget.GridLayoutManager
6
7
import android.widget.Toast
@@ -10,8 +11,8 @@ import com.example.smartrecycleradapter.models.MovieModel
10
11
import com.example.smartrecycleradapter.viewholder.HeaderViewHolder
11
12
import com.example.smartrecycleradapter.viewholder.ThumbViewHolder
12
13
import kotlinx.android.synthetic.main.activity_movie_category_details.*
14
+ import smartadapter.SmartEndlessScrollRecyclerAdapter
13
15
import smartadapter.SmartRecyclerAdapter
14
- import java.util.Arrays.asList
15
16
16
17
enum class MovieType (val title : String ) {
17
18
COMING_SOON (" Coming soon" ),
@@ -24,14 +25,15 @@ enum class MovieType(val title: String) {
24
25
25
26
class MovieCategoryDetailsActivity : AppCompatActivity () {
26
27
27
- private lateinit var movieType: MovieType ;
28
+ private lateinit var movieType: MovieType
29
+ private var endlessScrollCount = 0
28
30
29
31
override fun onCreate (savedInstanceState : Bundle ? ) {
30
32
super .onCreate(savedInstanceState)
31
33
setContentView(R .layout.activity_movie_category_details)
32
34
33
35
intent?.getIntExtra(" MovieType" , MovieType .ANIMATED .ordinal)?.let {
34
- movieType = MovieType .values()[it];
36
+ movieType = MovieType .values()[it]
35
37
}
36
38
37
39
initSmartRecyclerAdapter()
@@ -45,11 +47,10 @@ class MovieCategoryDetailsActivity : AppCompatActivity() {
45
47
MovieType .ADVENTURE -> MovieDataItems .nestedAdventureItems
46
48
MovieType .ANIMATED -> MovieDataItems .nestedAnimatedItems
47
49
MovieType .SCI_FI -> MovieDataItems .nestedSciFiItems
48
- else -> asList()
49
50
}
50
51
51
52
val adapterItems: ArrayList <Any > = ArrayList <Any >()
52
- adapterItems.add(movieType.title);
53
+ adapterItems.add(movieType.title)
53
54
adapterItems.addAll(movieItems)
54
55
55
56
val gridAutoLayoutManager = GridAutoLayoutManager (this , 100 )
@@ -59,13 +60,43 @@ class MovieCategoryDetailsActivity : AppCompatActivity() {
59
60
}
60
61
}
61
62
62
- SmartRecyclerAdapter .items(adapterItems)
63
- .map(String ::class .java, HeaderViewHolder ::class .java)
64
- .map(MovieModel ::class .java, ThumbViewHolder ::class .java)
65
- .setLayoutManager(gridAutoLayoutManager)
66
- .addViewEventListener(ThumbViewHolder ::class .java, R .id.action_on_click) { view, actionId, position ->
67
- Toast .makeText(this , " Movie $position " , Toast .LENGTH_SHORT ).show()
63
+ when (movieType) {
64
+ MovieType .COMING_SOON , MovieType .MY_WATCH_LIST -> {
65
+ SmartRecyclerAdapter .items(adapterItems)
66
+ .map(String ::class .java, HeaderViewHolder ::class .java)
67
+ .map(MovieModel ::class .java, ThumbViewHolder ::class .java)
68
+ .setLayoutManager(gridAutoLayoutManager)
69
+ .addViewEventListener(ThumbViewHolder ::class .java, R .id.action_on_click) { view, actionId, position ->
70
+ Toast .makeText(this , " Movie $position " , Toast .LENGTH_SHORT ).show()
71
+ }
72
+ .into(recyclerView)
73
+ }
74
+ MovieType .ACTION , MovieType .ADVENTURE ,MovieType .ANIMATED , MovieType .SCI_FI -> {
75
+ val endlessScrollAdapter: SmartEndlessScrollRecyclerAdapter = SmartEndlessScrollRecyclerAdapter .items(adapterItems)
76
+ .map(String ::class .java, HeaderViewHolder ::class .java)
77
+ .map(MovieModel ::class .java, ThumbViewHolder ::class .java)
78
+ .setLayoutManager(gridAutoLayoutManager)
79
+ .addViewEventListener(ThumbViewHolder ::class .java, R .id.action_on_click) { view, actionId, position ->
80
+ Toast .makeText(this , " Movie $position " , Toast .LENGTH_SHORT ).show()
81
+ }
82
+ .into(recyclerView)
83
+
84
+ endlessScrollAdapter.setOnLoadMoreListener {
85
+ if (! endlessScrollAdapter.isLoading) {
86
+ endlessScrollAdapter.setIsLoading(true )
87
+ Toast .makeText(applicationContext, " LoadMore" , Toast .LENGTH_SHORT ).show()
88
+
89
+ Handler ().postDelayed({
90
+ endlessScrollAdapter.addItems(movieItems)
91
+ if (endlessScrollCount++ == 3 ) {
92
+ endlessScrollAdapter.setEndlessScrollEnabled(false );
93
+ }
94
+ endlessScrollAdapter.setIsLoading(false )
95
+ },
96
+ 3000 )
97
+ }
68
98
}
69
- .into(recyclerView)
99
+ }
100
+ }
70
101
}
71
102
}
0 commit comments