@@ -7,20 +7,24 @@ import android.support.v7.widget.RecyclerView
7
7
import android.view.LayoutInflater
8
8
import android.view.View
9
9
import android.view.ViewGroup
10
+ import android.widget.Toast
10
11
import com.bumptech.glide.Glide
12
+ import com.raizlabs.android.dbflow.sql.language.Delete
13
+ import com.raizlabs.android.dbflow.sql.language.Select
11
14
import com.rayfantasy.icode.R
15
+ import com.rayfantasy.icode.databinding.ItemCodeListBinding
12
16
import 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.*
17
18
import com.rayfantasy.icode.model.ICodeTheme
18
19
import com.rayfantasy.icode.postutil.PostUtil
19
20
import com.rayfantasy.icode.postutil.bean.CodeGood
21
+ import com.rayfantasy.icode.postutil.bean.Favorite
22
+ import com.rayfantasy.icode.postutil.bean.Favorite_Table
20
23
import com.rayfantasy.icode.ui.activity.startBlockActivity
21
24
import com.rayfantasy.icode.util.ms2RelativeDate
22
25
import jp.wasabeef.glide.transformations.CropCircleTransformation
23
26
import kotlinx.android.synthetic.main.footer_recycler_view.view.*
27
+ import kotlinx.android.synthetic.main.item_code_list.view.*
24
28
import kotlinx.android.synthetic.main.item_recycler_code_list.view.*
25
29
import kotlinx.android.synthetic.main.item_recycler_user.view.*
26
30
import org.jetbrains.anko.onClick
@@ -82,6 +86,24 @@ class UserListAdapter(val activity: Activity, var username: String, var codeGood
82
86
holder.username.text = codeGood.username
83
87
holder.binding.highlight = codeGood.highlight ? : false
84
88
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} 次"
85
107
holder.bg.onClick { holder.bg.startBlockActivity(codeGood, false ) }
86
108
}
87
109
is FooterViewHolder -> {
@@ -96,7 +118,7 @@ class UserListAdapter(val activity: Activity, var username: String, var codeGood
96
118
97
119
override fun onCreateViewHolder (parent : ViewGroup , viewType : Int ) = when (viewType) {
98
120
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 ))
100
122
VIEW_TYPE_FOOTER -> FooterViewHolder (parent.inflate(R .layout.footer_recycler_view))
101
123
else -> null
102
124
}
@@ -138,16 +160,19 @@ class UserListAdapter(val activity: Activity, var username: String, var codeGood
138
160
}
139
161
140
162
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
148
173
149
174
init {
150
- binding = ItemRecyclerCodeListBinding .bind(itemView)
175
+ binding = ItemCodeListBinding .bind(itemView)
151
176
binding.theme = ICodeTheme
152
177
}
153
178
}
0 commit comments