Skip to content

Commit 02b786a

Browse files
committed
修改UI,添加收藏,更新版本
1 parent d9e593c commit 02b786a

File tree

9 files changed

+248
-116
lines changed

9 files changed

+248
-116
lines changed

app/src/main/kotlin/com/rayfantasy/icode/BaseApplication.kt

+8-8
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,12 @@ class BaseApplication : MultiDexApplication() {
8888

8989
}
9090
fun loadFavorite(){
91-
PostUtil.findFavorite({
92-
Toast.makeText(this,"同步收藏中", Toast.LENGTH_SHORT).show()
93-
it.forEach {
94-
it.save()
95-
}
96-
Toast.makeText(this,"同步收藏完成", Toast.LENGTH_SHORT).show()
97-
},{t,rc -> Toast.makeText(this,"取消收藏失败,$rc", Toast.LENGTH_SHORT).show()})
98-
}
91+
/* PostUtil.findFavorite({
92+
Toast.makeText(this,"同步收藏中", Toast.LENGTH_SHORT).show()
93+
it.forEach {
94+
it.save()
95+
}
96+
Toast.makeText(this,"同步收藏完成", Toast.LENGTH_SHORT).show()
97+
},{t,rc -> Toast.makeText(this,"取消收藏失败,$rc", Toast.LENGTH_SHORT).show()})*/
98+
}
9999
}

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

+13-2
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,16 @@ import android.view.ViewGroup
77
import android.widget.Toast
88
import com.bumptech.glide.Glide
99
import com.like.*
10+
import com.raizlabs.android.dbflow.sql.language.Delete
11+
import com.raizlabs.android.dbflow.sql.language.Select
1012
import com.rayfantasy.icode.R
1113
import com.rayfantasy.icode.extension.inflate
1214
import com.rayfantasy.icode.extension.loadPortrait
1315
import com.rayfantasy.icode.extension.onLike
1416
import com.rayfantasy.icode.postutil.PostUtil
1517
import com.rayfantasy.icode.postutil.bean.CodeGood
18+
import com.rayfantasy.icode.postutil.bean.Favorite
19+
import com.rayfantasy.icode.postutil.bean.Favorite_Table
1620
import com.rayfantasy.icode.ui.fragment.SettingFragment
1721
import kotlinx.android.synthetic.main.item_block_favorite.view.*
1822
import kotlinx.android.synthetic.main.item_block_text.view.*
@@ -46,12 +50,19 @@ class BlockAdapter(var ctx: Context, val codeGood: CodeGood, var blocks: List<
4650

4751
}
4852
is FavoriteViewHolder ->{
53+
val favorite = Select().from(Favorite::class.java).where(Favorite_Table.goodId.`is`(codeGood.id)).querySingle()
54+
holder.favorite.setLiked(favorite != null)
4955
holder.favorite.onLike {
5056
liked {
51-
PostUtil.addFavorite(codeGood.id,{Toast.makeText(ctx,"收藏成功",Toast.LENGTH_LONG).show()},{t,rc -> Toast.makeText(ctx,"收藏失败,$rc",Toast.LENGTH_LONG).show()})
57+
PostUtil.addFavorite(codeGood.id,{Toast.makeText(ctx,"收藏成功",Toast.LENGTH_LONG).show(); Favorite(codeGood.id, System.currentTimeMillis()).save()},{t,rc -> Toast.makeText(ctx,"收藏失败,$rc",Toast.LENGTH_LONG).show()})
5258
}
5359
unLiked {
54-
PostUtil.delFavorite(codeGood.id,{Toast.makeText(ctx,"取消收藏成功",Toast.LENGTH_LONG).show()},{t,rc -> Toast.makeText(ctx,"取消收藏失败,$rc",Toast.LENGTH_LONG).show()})
60+
PostUtil.delFavorite(codeGood.id,{Toast.makeText(ctx,"取消收藏成功",Toast.LENGTH_LONG).show()
61+
Delete()
62+
.from(Favorite::class.java)
63+
.where(Favorite_Table.goodId.`is`(codeGood.id))
64+
.execute()
65+
},{t,rc -> Toast.makeText(ctx,"取消收藏失败,$rc",Toast.LENGTH_LONG).show()})
5566
}
5667
}
5768

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

+45-24
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,24 @@ import android.app.Activity
2020
import android.support.v7.widget.RecyclerView
2121
import android.view.View
2222
import android.view.ViewGroup
23+
import android.widget.Toast
24+
import com.raizlabs.android.dbflow.sql.language.Delete
25+
import com.raizlabs.android.dbflow.sql.language.Select
2326
import com.rayfantasy.icode.R
27+
import com.rayfantasy.icode.databinding.ItemCodeListBinding
2428
import com.rayfantasy.icode.databinding.ItemRecyclerCodeListBinding
2529
import com.rayfantasy.icode.extension.inflate
2630
import com.rayfantasy.icode.extension.loadPortrait
31+
import com.rayfantasy.icode.extension.onLike
2732
import com.rayfantasy.icode.model.ICodeTheme
33+
import com.rayfantasy.icode.postutil.PostUtil
2834
import com.rayfantasy.icode.postutil.bean.CodeGood
35+
import com.rayfantasy.icode.postutil.bean.Favorite
36+
import com.rayfantasy.icode.postutil.bean.Favorite_Table
2937
import com.rayfantasy.icode.ui.activity.UserActivity
3038
import com.rayfantasy.icode.ui.activity.startBlockActivity
3139
import com.rayfantasy.icode.util.ms2RelativeDate
40+
import kotlinx.android.synthetic.main.item_code_list.view.*
3241
import kotlinx.android.synthetic.main.item_recycler_code_list.view.*
3342
import org.jetbrains.anko.onClick
3443
import org.jetbrains.anko.startActivity
@@ -50,40 +59,52 @@ class CodeListAdapter(val activity: Activity, var codeGoods: MutableList<CodeGoo
5059
activity.startActivity<UserActivity>("username" to codeGood.username.toString())
5160
}
5261
holder.binding.highlight = codeGood.highlight ?: false
53-
/*if (codeGood.highlight ?: false) {
54-
holder.title.setTextColor(Color.RED)
55-
holder.username.setTextColor(Color.RED)
56-
holder.subTitle.setTextColor(Color.RED)
57-
holder.username.append("被管理员临时高亮!")
58-
}*/
59-
6062
holder.bg.onClick {
6163
holder.bg.startBlockActivity(codeGood)
62-
/*val location = intArrayOf(0,0)
63-
holder.bg.getLocationOnScreen(location)
64-
val y = location[1]
65-
val height = holder.bg.height
66-
activity.startActivity<BlocksActivity>("codeGood" to codeGood,
67-
"y" to y.toFloat(),
68-
"height" to height.toFloat())
69-
activity.overridePendingTransition(0, 0)*/
7064
}
65+
val favorite = Select().from(Favorite::class.java).where(Favorite_Table.goodId.`is`(codeGood.id)).querySingle()
66+
holder.like.setLiked(favorite != null)
67+
holder.like.onLike {
68+
liked { PostUtil.addFavorite(codeGood.id,
69+
{
70+
Toast.makeText(activity,"成功",Toast.LENGTH_SHORT)
71+
Favorite(codeGood.id, System.currentTimeMillis()).save()
72+
holder.like_count.text = "被收藏${codeGood.favorite +1}"
73+
74+
},
75+
{t,rc -> Toast.makeText(activity,"失败",Toast.LENGTH_SHORT) }) }
76+
unLiked { PostUtil.delFavorite(codeGood.id,{
77+
Toast.makeText(activity,"成功",Toast.LENGTH_SHORT)
78+
Delete()
79+
.from(Favorite::class.java)
80+
.where(Favorite_Table.goodId.`is`(codeGood.id))
81+
.execute()
82+
holder.like_count.text = "被收藏${codeGood.favorite -1}"
83+
},
84+
{t,rc -> Toast.makeText(activity,"失败",Toast.LENGTH_SHORT) })
85+
}
86+
}
87+
holder.reply_count.text = "${codeGood.reply}条回复"
88+
holder.like_count.text = "被收藏${codeGood.favorite}"
7189
}
7290

7391
override fun onCreateNormalViewHolder(parent: ViewGroup, viewType: Int)
74-
= NormalViewHolder(parent.inflate(R.layout.item_recycler_code_list))
92+
= NormalViewHolder(parent.inflate(R.layout.item_code_list))
7593

7694
class NormalViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
77-
val pic = itemView.pic
78-
val username = itemView.username
79-
val time = itemView.time
80-
val title = itemView.title
81-
val subTitle = itemView.sub_title
82-
val bg = itemView.element_bg
83-
val binding: ItemRecyclerCodeListBinding
95+
val pic = itemView.code_usericon
96+
val username = itemView.code_username
97+
val time = itemView.code_time
98+
val title = itemView.code_title
99+
val subTitle = itemView.code_subtitle
100+
val bg = itemView.code_card
101+
val like = itemView.code_like
102+
val like_count = itemView.code_favoCount
103+
val reply_count = itemView.code_replyCount
104+
val binding: ItemCodeListBinding
84105

85106
init {
86-
binding = ItemRecyclerCodeListBinding.bind(itemView)
107+
binding = ItemCodeListBinding.bind(itemView)
87108
binding.theme = ICodeTheme
88109
}
89110
}

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

-66
This file was deleted.

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

+38-13
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,24 @@ import android.support.v7.widget.RecyclerView
77
import android.view.LayoutInflater
88
import android.view.View
99
import android.view.ViewGroup
10+
import android.widget.Toast
1011
import com.bumptech.glide.Glide
12+
import com.raizlabs.android.dbflow.sql.language.Delete
13+
import com.raizlabs.android.dbflow.sql.language.Select
1114
import com.rayfantasy.icode.R
15+
import com.rayfantasy.icode.databinding.ItemCodeListBinding
1216
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.*
1718
import com.rayfantasy.icode.model.ICodeTheme
1819
import com.rayfantasy.icode.postutil.PostUtil
1920
import com.rayfantasy.icode.postutil.bean.CodeGood
21+
import com.rayfantasy.icode.postutil.bean.Favorite
22+
import com.rayfantasy.icode.postutil.bean.Favorite_Table
2023
import com.rayfantasy.icode.ui.activity.startBlockActivity
2124
import com.rayfantasy.icode.util.ms2RelativeDate
2225
import jp.wasabeef.glide.transformations.CropCircleTransformation
2326
import kotlinx.android.synthetic.main.footer_recycler_view.view.*
27+
import kotlinx.android.synthetic.main.item_code_list.view.*
2428
import kotlinx.android.synthetic.main.item_recycler_code_list.view.*
2529
import kotlinx.android.synthetic.main.item_recycler_user.view.*
2630
import 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

Comments
 (0)