Guest User

Untitled

a guest
Jul 6th, 2020
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 2.81 KB | None | 0 0
  1. //HOME FRAGMENT    
  2.   private fun initRows(genresMap: LinkedHashMap<String, ArrayList<Channel>>) {
  3.         val classPresenterSelector = ClassPresenterSelector()
  4.         .addClassPresenter(
  5.             ChannelsListRow::class.java,
  6.             ChannelsListRowPresenter()
  7.         )
  8.         .addClassPresenter(
  9.             SettingsListRow::class.java,
  10.             ListRowPresenter()
  11.         )
  12.         val browseAdapter = ArrayObjectAdapter(classPresenterSelector)
  13.         val channelsCardPresenter = ChannelsCardPresenter(requireContext())
  14.         genresMap.forEach { (key, value) ->
  15.             if (value.size != 0) {
  16.                 val genreHeaderItem =
  17.                     ChannelsHeaderItem(value.size, getGenreName(key))
  18.                 val channelsRowAdapter = ArrayObjectAdapter(channelsCardPresenter)
  19.                 channelsRowAdapter.addAll(0, value)
  20.                 val row = ChannelsListRow(genreHeaderItem, channelsRowAdapter)
  21.                 row.id = Utils.getGenreIdbyKey(key)
  22.                 browseAdapter.add(row)
  23.             }
  24.         }
  25.         Toast.makeText(requireContext(),"DONE",Toast.LENGTH_SHORT).show()
  26.  
  27.         adapter = browseAdapter
  28.         progressBarManager.hide()
  29.  
  30.     }
  31.  
  32.  
  33. //CARD PRESENTER
  34. class ChannelsCardPresenter(val context: Context) : Presenter() {
  35.  
  36.     private var mContext: Context? = null
  37.  
  38.     init {
  39.         mContext = ContextThemeWrapper(context, R.style.DefaultCardTheme)
  40.     }
  41.  
  42.     inner class ChannelViewHolder(view: View) : ViewHolder(view) {
  43.  
  44.         private val context = view.context
  45.  
  46.         fun bind( channeItem:Channel){
  47.             val iCardView = view as ImageCardView
  48.             iCardView.titleText = channeItem.name
  49.             GlideApp.with(context)
  50.                 .load(NetworkConstants.SERVER_LOGO_IMAGE + channeItem.id + ".png")
  51. //            .apply(RequestOptions.placeholderOf(R.drawable.movie))
  52.                 .fitCenter()
  53.                 .override(100, 100)
  54.                 .error(R.drawable.movie)
  55.                 .into(iCardView.mainImageView)
  56.  
  57.         }
  58.  
  59.     }
  60.  
  61.  
  62.     override fun onCreateViewHolder(parent: ViewGroup): ChannelViewHolder {
  63.         val cardView = ImageCardView(mContext)
  64.         cardView.cardType = BaseCardView.CARD_TYPE_INFO_UNDER
  65.         cardView.infoVisibility = BaseCardView.CARD_REGION_VISIBLE_ACTIVATED
  66.         cardView.isFocusable = true
  67.         cardView.isFocusableInTouchMode = true
  68.         return ChannelViewHolder(cardView)
  69.     }
  70.  
  71.     override fun onBindViewHolder(viewHolder: ViewHolder, item: Any) {
  72.             val channelVh = viewHolder as ChannelViewHolder
  73.         val channeItem = item as Channel
  74.         channelVh.bind(channeItem)
  75.     }
  76.  
  77.     override fun onUnbindViewHolder(viewHolder: ViewHolder?) {
  78.         viewHolder?.view?.let {
  79.             GlideApp.with(context).clear(it)
  80.         }
  81.     }
  82.  
  83. }
Advertisement
Add Comment
Please, Sign In to add comment