Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //HOME FRAGMENT
- private fun initRows(genresMap: LinkedHashMap<String, ArrayList<Channel>>) {
- val classPresenterSelector = ClassPresenterSelector()
- .addClassPresenter(
- ChannelsListRow::class.java,
- ChannelsListRowPresenter()
- )
- .addClassPresenter(
- SettingsListRow::class.java,
- ListRowPresenter()
- )
- val browseAdapter = ArrayObjectAdapter(classPresenterSelector)
- val channelsCardPresenter = ChannelsCardPresenter(requireContext())
- genresMap.forEach { (key, value) ->
- if (value.size != 0) {
- val genreHeaderItem =
- ChannelsHeaderItem(value.size, getGenreName(key))
- val channelsRowAdapter = ArrayObjectAdapter(channelsCardPresenter)
- channelsRowAdapter.addAll(0, value)
- val row = ChannelsListRow(genreHeaderItem, channelsRowAdapter)
- row.id = Utils.getGenreIdbyKey(key)
- browseAdapter.add(row)
- }
- }
- Toast.makeText(requireContext(),"DONE",Toast.LENGTH_SHORT).show()
- adapter = browseAdapter
- progressBarManager.hide()
- }
- //CARD PRESENTER
- class ChannelsCardPresenter(val context: Context) : Presenter() {
- private var mContext: Context? = null
- init {
- mContext = ContextThemeWrapper(context, R.style.DefaultCardTheme)
- }
- inner class ChannelViewHolder(view: View) : ViewHolder(view) {
- private val context = view.context
- fun bind( channeItem:Channel){
- val iCardView = view as ImageCardView
- iCardView.titleText = channeItem.name
- GlideApp.with(context)
- .load(NetworkConstants.SERVER_LOGO_IMAGE + channeItem.id + ".png")
- // .apply(RequestOptions.placeholderOf(R.drawable.movie))
- .fitCenter()
- .override(100, 100)
- .error(R.drawable.movie)
- .into(iCardView.mainImageView)
- }
- }
- override fun onCreateViewHolder(parent: ViewGroup): ChannelViewHolder {
- val cardView = ImageCardView(mContext)
- cardView.cardType = BaseCardView.CARD_TYPE_INFO_UNDER
- cardView.infoVisibility = BaseCardView.CARD_REGION_VISIBLE_ACTIVATED
- cardView.isFocusable = true
- cardView.isFocusableInTouchMode = true
- return ChannelViewHolder(cardView)
- }
- override fun onBindViewHolder(viewHolder: ViewHolder, item: Any) {
- val channelVh = viewHolder as ChannelViewHolder
- val channeItem = item as Channel
- channelVh.bind(channeItem)
- }
- override fun onUnbindViewHolder(viewHolder: ViewHolder?) {
- viewHolder?.view?.let {
- GlideApp.with(context).clear(it)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment