@@ -4,8 +4,10 @@ import android.content.Context
44import android.support.v7.widget.RecyclerView
55import android.view.View
66import android.view.ViewGroup
7+ import com.bumptech.glide.Glide
78import com.rayfantasy.icode.R
89import com.rayfantasy.icode.extension.inflate
10+ import com.rayfantasy.icode.extension.loadPortrait
911import com.rayfantasy.icode.postutil.bean.CodeGood
1012import com.rayfantasy.icode.ui.fragment.SettingFragment
1113import kotlinx.android.synthetic.main.item_block_favorite.view.*
@@ -20,34 +22,44 @@ class BlockAdapter(ctx: Context, val codeGood: CodeGood, var blocks: List<CodeG
2022 private val FAVORITE_VIEW = 999
2123 private val highlightTheme = ctx.defaultSharedPreferences.getString(SettingFragment .PREF_HIGHLIGHT , SettingFragment .DEFAULT_HIGHLIGHT )
2224 override fun onBindViewHolder (holder : RecyclerView .ViewHolder ? , position : Int ) {
23- val block = blocks[position]
2425 when (holder) {
2526 is CodeViewHolder -> {
27+ val block = blocks[position - 1 ]
2628 val configure = holder.highlight.configure
2729 configure.mLanguage = block.extra
2830 holder.highlight.loadFromConfigure(configure)
2931 holder.highlight.setSource(block.content)
3032 }
31- is TextViewHolder -> holder.content.text = block.content
33+ is TextViewHolder -> {
34+ val block = blocks[position - 1 ]
35+ holder.content.text = block.content
36+ }
3237 is TitleViewHolder -> {
3338 holder.username.text = codeGood.username
3439 holder.subtitle.text = codeGood.subtitle
40+ holder.user_icon.loadPortrait(codeGood.username)
41+
3542 }
43+ is FavoriteViewHolder -> {}
44+
3645 }
3746
3847 }
3948
40- override fun getItemCount () = blocks.size
49+ override fun getItemCount () = blocks.size + 2
4150
4251 override fun onCreateViewHolder (parent : ViewGroup , viewType : Int ) = when (viewType) {
4352 CodeGood .BlockType .CODE -> CodeViewHolder (parent.inflate(R .layout.item_block_code) as ViewGroup , highlightTheme)
4453 TITLE_VIEW -> TitleViewHolder (parent.inflate(R .layout.item_block_title))
4554 FAVORITE_VIEW -> FavoriteViewHolder (parent.inflate(R .layout.item_block_favorite))
46- else -> TextViewHolder (parent.inflate(R .layout.item_block_text))
55+ CodeGood .BlockType .TEXT -> TextViewHolder (parent.inflate(R .layout.item_block_text))
56+ else -> FavoriteViewHolder (parent.inflate(R .layout.item_block_favorite))
4757
4858 }
4959
50- override fun getItemViewType (position : Int ) = blocks[position].blockType
60+ override fun getItemViewType (position : Int ) = if (position == 0 ) TITLE_VIEW else if (position == blocks.size+ 1 ) FAVORITE_VIEW else {
61+ blocks[position - 1 ].blockType
62+ }
5163
5264 class TextViewHolder (itemView : View ) : RecyclerView.ViewHolder(itemView) {
5365 val content = itemView.tv_text
@@ -70,11 +82,10 @@ class BlockAdapter(ctx: Context, val codeGood: CodeGood, var blocks: List<CodeG
7082 class TitleViewHolder (itemView : View ) : RecyclerView.ViewHolder(itemView) {
7183 val username = itemView.block_username
7284 val subtitle = itemView.block_sub_title
73- val usericon = itemView.block_userIcon
85+ val user_icon = itemView.block_userIcon
7486 }
7587
7688 class FavoriteViewHolder (itemView : View ) : RecyclerView.ViewHolder(itemView) {
7789 val favorite = itemView.favo_btn
78- val favo_count = itemView.favo_count
7990 }
8091}
0 commit comments