Skip to content

Commit d2266bb

Browse files
committed
Merge remote-tracking branch 'github/master'
2 parents af866b7 + 12a401a commit d2266bb

File tree

3 files changed

+54
-5
lines changed

3 files changed

+54
-5
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.rayfantasy.icode.extension
2+
3+
import com.like.LikeButton
4+
import com.like.OnLikeListener
5+
/**
6+
* Created by qweas on 2016/2/15 0015.
7+
*/
8+
class _OnLikeListener() : OnLikeListener{
9+
private var _liked: ((LikeButton?) -> Unit)? = null
10+
private var _unLiked: ((LikeButton?) -> Unit)? = null
11+
12+
override fun liked(p0: LikeButton?) {
13+
_liked?.invoke(p0)
14+
}
15+
16+
override fun unLiked(p0: LikeButton?) {
17+
_unLiked?.invoke(p0)
18+
}
19+
20+
fun liked(listener: (LikeButton?) -> Unit){
21+
_liked = listener
22+
}
23+
24+
fun unLiked(listener: (LikeButton?) -> Unit){
25+
_unLiked = listener
26+
}
27+
}
28+
29+
fun LikeButton.onLike(init: _OnLikeListener.() -> Unit){
30+
setOnLikeListener(_OnLikeListener().apply(init))
31+
}

app/src/main/kotlin/com/rayfantasy/icode/ui/adapter/BlockAdapter.kt

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,14 @@ import android.content.Context
44
import android.support.v7.widget.RecyclerView
55
import android.view.View
66
import android.view.ViewGroup
7+
import android.widget.Toast
78
import com.bumptech.glide.Glide
9+
import com.like.*
810
import com.rayfantasy.icode.R
911
import com.rayfantasy.icode.extension.inflate
1012
import com.rayfantasy.icode.extension.loadPortrait
13+
import com.rayfantasy.icode.extension.onLike
14+
import com.rayfantasy.icode.postutil.PostUtil
1115
import com.rayfantasy.icode.postutil.bean.CodeGood
1216
import com.rayfantasy.icode.ui.fragment.SettingFragment
1317
import kotlinx.android.synthetic.main.item_block_favorite.view.*
@@ -16,8 +20,9 @@ import kotlinx.android.synthetic.main.item_block_title.view.*
1620
import org.evilbinary.highliter.HighlightEditText
1721
import org.evilbinary.managers.Configure
1822
import org.jetbrains.anko.defaultSharedPreferences
23+
import org.jetbrains.anko.onClick
1924

20-
class BlockAdapter(ctx: Context, val codeGood: CodeGood, var blocks: List<CodeGood.Block>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
25+
class BlockAdapter(var ctx: Context, val codeGood: CodeGood, var blocks: List<CodeGood.Block>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
2126
private val TITLE_VIEW = 998
2227
private val FAVORITE_VIEW = 999
2328
private val highlightTheme = ctx.defaultSharedPreferences.getString(SettingFragment.PREF_HIGHLIGHT, SettingFragment.DEFAULT_HIGHLIGHT)
@@ -40,13 +45,25 @@ class BlockAdapter(ctx: Context, val codeGood: CodeGood, var blocks: List<CodeG
4045
holder.user_icon.loadPortrait(codeGood.username)
4146

4247
}
43-
is FavoriteViewHolder ->{}
48+
is FavoriteViewHolder ->{
49+
holder.favorite.onLike {
50+
liked {
51+
PostUtil.addFavorite(codeGood.id,{Toast.makeText(ctx,"收藏成功",Toast.LENGTH_LONG).show()},{t,rc -> Toast.makeText(ctx,"收藏失败,$rc",Toast.LENGTH_LONG).show()})
52+
}
53+
unLiked {
54+
PostUtil.delFavorite(codeGood.id,{Toast.makeText(ctx,"取消收藏成功",Toast.LENGTH_LONG).show()},{t,rc -> Toast.makeText(ctx,"取消收藏失败,$rc",Toast.LENGTH_LONG).show()})
55+
}
56+
}
57+
58+
}
59+
60+
}
4461

4562
}
4663

47-
}
4864

49-
override fun getItemCount() = blocks.size + 1
65+
66+
override fun getItemCount() = blocks.size + 2
5067

5168
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = when (viewType) {
5269
CodeGood.BlockType.CODE -> CodeViewHolder(parent.inflate(R.layout.item_block_code) as ViewGroup, highlightTheme)
@@ -57,7 +74,7 @@ class BlockAdapter(ctx: Context, val codeGood: CodeGood, var blocks: List<CodeG
5774

5875
}
5976

60-
override fun getItemViewType(position: Int) = if (position == 0) TITLE_VIEW/* else if (position == blocks.size+1) FAVORITE_VIEW */else {
77+
override fun getItemViewType(position: Int) = if (position == 0) TITLE_VIEW else if (position == blocks.size+1) FAVORITE_VIEW else {
6178
blocks[position - 1].blockType
6279
}
6380

app/src/main/kotlin/com/rayfantasy/icode/ui/fragment/FavoriteFragment.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import android.view.ViewGroup
77
import com.rayfantasy.icode.R
88

99
class FavoriteFragment : FragmentBase() {
10+
1011
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
1112
savedInstanceState: Bundle?): View? {
1213
// Inflate the layout for this fragment

0 commit comments

Comments
 (0)