@@ -7,20 +7,24 @@ import android.support.v7.widget.RecyclerView
77import android.view.LayoutInflater
88import android.view.View
99import android.view.ViewGroup
10+ import android.widget.Toast
1011import com.bumptech.glide.Glide
12+ import com.raizlabs.android.dbflow.sql.language.Delete
13+ import com.raizlabs.android.dbflow.sql.language.Select
1114import com.rayfantasy.icode.R
15+ import com.rayfantasy.icode.databinding.ItemCodeListBinding
1216import com.rayfantasy.icode.databinding.ItemRecyclerCodeListBinding
13- import com.rayfantasy.icode.extension.alpha
14- import com.rayfantasy.icode.extension.inflate
15- import com.rayfantasy.icode.extension.loadPortrait
16- import com.rayfantasy.icode.extension.shadowColor
17+ import com.rayfantasy.icode.extension.*
1718import com.rayfantasy.icode.model.ICodeTheme
1819import com.rayfantasy.icode.postutil.PostUtil
1920import com.rayfantasy.icode.postutil.bean.CodeGood
21+ import com.rayfantasy.icode.postutil.bean.Favorite
22+ import com.rayfantasy.icode.postutil.bean.Favorite_Table
2023import com.rayfantasy.icode.ui.activity.startBlockActivity
2124import com.rayfantasy.icode.util.ms2RelativeDate
2225import jp.wasabeef.glide.transformations.CropCircleTransformation
2326import kotlinx.android.synthetic.main.footer_recycler_view.view.*
27+ import kotlinx.android.synthetic.main.item_code_list.view.*
2428import kotlinx.android.synthetic.main.item_recycler_code_list.view.*
2529import kotlinx.android.synthetic.main.item_recycler_user.view.*
2630import org.jetbrains.anko.onClick
@@ -82,6 +86,24 @@ class UserListAdapter(val activity: Activity, var username: String, var codeGood
8286 holder.username.text = codeGood.username
8387 holder.binding.highlight = codeGood.highlight ? : false
8488 holder.pic.loadPortrait(username)
89+ val favorite = Select ().from(Favorite ::class .java).where(Favorite_Table .goodId.`is `(codeGood.id)).querySingle()
90+ holder.like.setLiked(favorite != null )
91+ holder.like.onLike {
92+ liked {
93+ PostUtil .addFavorite(codeGood.id,{ Toast .makeText(activity," 成功" , Toast .LENGTH_SHORT )
94+ Favorite (codeGood.id, System .currentTimeMillis()).save()
95+ holder.like_count.text = " 被收藏${codeGood.favorite + 1 } 次" },{ t, rc -> Toast .makeText(activity," 失败" , Toast .LENGTH_SHORT ) }) }
96+ unLiked {
97+ PostUtil .delFavorite(codeGood.id,{ Toast .makeText(activity," 成功" , Toast .LENGTH_SHORT )
98+ holder.like_count.text = " 被收藏${codeGood.favorite - 1 } 次"
99+ Delete ()
100+ .from(Favorite ::class .java)
101+ .where(Favorite_Table .goodId.`is `(codeGood.id))
102+ .execute()},
103+ { t, rc -> Toast .makeText(activity," 失败" , Toast .LENGTH_SHORT ) }) }
104+ }
105+ holder.reply_count.text = " 共${codeGood.reply} 条回复"
106+ holder.like_count.text = " 被收藏${codeGood.favorite} 次"
85107 holder.bg.onClick { holder.bg.startBlockActivity(codeGood, false ) }
86108 }
87109 is FooterViewHolder -> {
@@ -96,7 +118,7 @@ class UserListAdapter(val activity: Activity, var username: String, var codeGood
96118
97119 override fun onCreateViewHolder (parent : ViewGroup , viewType : Int ) = when (viewType) {
98120 VIEW_TYPE_HEADER -> UserViewHolder (parent.inflate(R .layout.item_recycler_user))
99- VIEW_TYPE_NORMAL -> CodeViewHolder (parent.inflate(R .layout.item_recycler_code_list ))
121+ VIEW_TYPE_NORMAL -> CodeViewHolder (parent.inflate(R .layout.item_code_list ))
100122 VIEW_TYPE_FOOTER -> FooterViewHolder (parent.inflate(R .layout.footer_recycler_view))
101123 else -> null
102124 }
@@ -138,16 +160,19 @@ class UserListAdapter(val activity: Activity, var username: String, var codeGood
138160 }
139161
140162 class CodeViewHolder (itemView : View ) : RecyclerView.ViewHolder(itemView) {
141- val pic = itemView.pic
142- val username = itemView.username
143- val time = itemView.time
144- val title = itemView.title
145- val subTitle = itemView.sub_title
146- val bg = itemView.element_bg
147- val binding: ItemRecyclerCodeListBinding
163+ val pic = itemView.code_usericon
164+ val username = itemView.code_username
165+ val time = itemView.code_time
166+ val title = itemView.code_title
167+ val subTitle = itemView.code_subtitle
168+ val bg = itemView.code_card
169+ val like = itemView.code_like
170+ val like_count = itemView.code_favoCount
171+ val reply_count = itemView.code_replyCount
172+ val binding: ItemCodeListBinding
148173
149174 init {
150- binding = ItemRecyclerCodeListBinding .bind(itemView)
175+ binding = ItemCodeListBinding .bind(itemView)
151176 binding.theme = ICodeTheme
152177 }
153178 }
0 commit comments