From 0428c7497526746b106e21e2db3f3c5baafc0a94 Mon Sep 17 00:00:00 2001
From: wushaocheng <15876365887@163.com>
Date: Fri, 17 Feb 2023 19:53:16 +0800
Subject: [PATCH] =?UTF-8?q?[Modify]=E6=88=91=E7=9A=84=E6=A0=87=E7=AD=BE?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../res/drawable/selector_user_label.xml | 5 +
.../ui/user/activity/EditUserTagActivity.kt | 111 ++++++++++++++++--
.../user/activity/UserInfoModifyActivity.kt | 2 +
.../ui/user/adapter/MyUserLabelAdapter.kt | 21 ++++
.../erban/ui/user/adapter/UserLabelAdapter.kt | 44 +++++++
.../erban/ui/user/adapter/UserTagAdapter.kt | 10 +-
.../yizhuan/erban/ui/user/event/LabelEvent.kt | 8 ++
.../erban/ui/user/event/UserLabelEvent.kt | 8 ++
.../erban/ui/user/fragment/LabelFragment.kt | 62 ++++++++++
.../erban/ui/user/fragment/MyTagFragment.kt | 17 ---
.../ui/user/viewmodel/UserInfoViewModel.kt | 1 -
.../res/drawable-xhdpi/ic_tag_close_my.webp | Bin 0 -> 738 bytes
app/src/main/res/drawable/bg_ffffff_18.xml | 9 ++
app/src/main/res/drawable/bg_user_label.xml | 9 ++
.../res/drawable/bg_user_label_select.xml | 13 ++
.../res/layout/activity_edit_user_tag.xml | 15 +++
.../main/res/layout/item_my_user_label.xml | 31 +++++
app/src/main/res/layout/item_user_label.xml | 17 +++
app/src/main/res/values/colors.xml | 1 +
app/src/main/res/values/strings.xml | 1 +
.../xchat_android_core/user/IUserModel.java | 5 +
.../xchat_android_core/user/UserModel.java | 20 +++-
.../user/bean/UserLabelInfo.kt | 5 +-
.../user/bean/UserLabelItemInfo.kt | 3 +-
24 files changed, 379 insertions(+), 39 deletions(-)
create mode 100644 app/src/common/res/drawable/selector_user_label.xml
create mode 100644 app/src/main/java/com/yizhuan/erban/ui/user/adapter/MyUserLabelAdapter.kt
create mode 100644 app/src/main/java/com/yizhuan/erban/ui/user/adapter/UserLabelAdapter.kt
create mode 100644 app/src/main/java/com/yizhuan/erban/ui/user/event/LabelEvent.kt
create mode 100644 app/src/main/java/com/yizhuan/erban/ui/user/event/UserLabelEvent.kt
create mode 100644 app/src/main/java/com/yizhuan/erban/ui/user/fragment/LabelFragment.kt
delete mode 100644 app/src/main/java/com/yizhuan/erban/ui/user/fragment/MyTagFragment.kt
create mode 100644 app/src/main/res/drawable-xhdpi/ic_tag_close_my.webp
create mode 100644 app/src/main/res/drawable/bg_ffffff_18.xml
create mode 100644 app/src/main/res/drawable/bg_user_label.xml
create mode 100644 app/src/main/res/drawable/bg_user_label_select.xml
create mode 100644 app/src/main/res/layout/item_my_user_label.xml
create mode 100644 app/src/main/res/layout/item_user_label.xml
diff --git a/app/src/common/res/drawable/selector_user_label.xml b/app/src/common/res/drawable/selector_user_label.xml
new file mode 100644
index 000000000..37da61281
--- /dev/null
+++ b/app/src/common/res/drawable/selector_user_label.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/activity/EditUserTagActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/user/activity/EditUserTagActivity.kt
index 50e021eb9..60f433969 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/user/activity/EditUserTagActivity.kt
+++ b/app/src/main/java/com/yizhuan/erban/ui/user/activity/EditUserTagActivity.kt
@@ -2,12 +2,17 @@ package com.yizhuan.erban.ui.user.activity
import android.content.Context
import android.content.Intent
+import android.os.Bundle
import android.view.Gravity
import android.view.View
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter
+import com.google.android.flexbox.FlexDirection
+import com.google.android.flexbox.FlexWrap
+import com.google.android.flexbox.FlexboxLayoutManager
+import com.google.android.flexbox.JustifyContent
import com.netease.nim.uikit.StatusBarUtil
import com.netease.nim.uikit.common.util.sys.ScreenUtil
import com.yizhuan.erban.R
@@ -15,11 +20,24 @@ import com.yizhuan.erban.base.BaseViewBindingActivity
import com.yizhuan.erban.base.TitleBar
import com.yizhuan.erban.databinding.ActivityEditUserTagBinding
import com.yizhuan.erban.ui.user.adapter.CommonWrapIndicatorAdapter
-import com.yizhuan.erban.ui.user.fragment.MyTagFragment
+import com.yizhuan.erban.ui.user.adapter.MyUserLabelAdapter
+import com.yizhuan.erban.ui.user.event.LabelEvent
+import com.yizhuan.erban.ui.user.event.UserLabelEvent
+import com.yizhuan.erban.ui.user.fragment.LabelFragment
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator
+import com.yizhuan.xchat_android_core.user.UserModel
import com.yizhuan.xchat_android_core.user.bean.UserLabelInfo
import com.yizhuan.xchat_android_library.common.entity.CommonTabEntity
+import com.yizhuan.xchat_android_library.utils.ResUtil
+import com.yizhuan.xchat_android_library.utils.StringUtils
+import io.reactivex.SingleObserver
+import io.reactivex.disposables.Disposable
+import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
+import java.io.Serializable
+
/**
* author: wushaocheng
@@ -29,7 +47,7 @@ import com.yizhuan.xchat_android_library.common.entity.CommonTabEntity
class EditUserTagActivity : BaseViewBindingActivity(),
CommonWrapIndicatorAdapter.OnItemSelectListener {
- private var userLabelInfo : UserLabelInfo ?= null
+ private var userLabelInfo: UserLabelInfo? = null
companion object {
@@ -45,7 +63,11 @@ class EditUserTagActivity : BaseViewBindingActivity(
private val mTitles = ArrayList()
+ private val mMyLabelAdapter by lazy { MyUserLabelAdapter() }
+
override fun init() {
+ EventBus.getDefault().register(this)
+
initTitleBar(
getString(R.string.my_tag),
object : TitleBar.TextAction(
@@ -53,26 +75,70 @@ class EditUserTagActivity : BaseViewBindingActivity(
ContextCompat.getColor(this, R.color.color_white)
) {
override fun performAction(view: View) {
+ val list = mMyLabelAdapter.data.joinToString(",")
+ dialogManager.showProgressDialog(
+ this@EditUserTagActivity,
+ ResUtil.getString(R.string.ui_user_userinfomodifyactivity_02)
+ )
+ UserModel.get().saveLabel(list).subscribe(object : SingleObserver {
+ override fun onSubscribe(d: Disposable) {
+ mCompositeDisposable.add(d)
+ }
+ override fun onSuccess(s: String) {
+ dialogManager.dismissDialog()
+ toast(getString(R.string.update_success))
+ }
+
+ override fun onError(e: Throwable) {
+ dialogManager.dismissDialog()
+ toast(e.message)
+ }
+
+ })
}
})
userLabelInfo = intent.getSerializableExtra(USER_LABEL) as UserLabelInfo?
+ initTop()
initTabTitle()
initViewPager()
}
+ private fun initTop() {
+ val flexBoxLayoutManager = FlexboxLayoutManager(context)
+ flexBoxLayoutManager.flexDirection = FlexDirection.ROW//主轴为水平方向,起点在左端
+ flexBoxLayoutManager.flexWrap = FlexWrap.WRAP//按正常方向换行
+ flexBoxLayoutManager.justifyContent = JustifyContent.FLEX_START//交叉轴的起点对齐
+ binding.mRecyclerView.layoutManager = flexBoxLayoutManager
+ binding.mRecyclerView.adapter = mMyLabelAdapter
+
+ mMyLabelAdapter.setOnItemChildClickListener { _, _, position ->
+ EventBus.getDefault().post(LabelEvent(mMyLabelAdapter.data[position]))
+ mMyLabelAdapter.remove(position)
+ }
+
+ userLabelInfo?.meLabels?.let {
+ if (it.isNotEmpty()) {
+ mMyLabelAdapter.setNewData(it)
+ } else {
+ binding.group.visibility = View.GONE
+ }
+ }
+ }
+
private fun initTabTitle() {
- mTitles.add(CommonTabEntity(MyTagFragment::class.java, "在做"))
- mTitles.add(CommonTabEntity(MyTagFragment::class.java, "兴趣"))
- mTitles.add(CommonTabEntity(MyTagFragment::class.java, "经历"))
- mTitles.add(CommonTabEntity(MyTagFragment::class.java, "性格"))
- mTitles.add(CommonTabEntity(MyTagFragment::class.java, "阅读"))
- mTitles.add(CommonTabEntity(MyTagFragment::class.java, "音乐"))
+ val tabList = userLabelInfo?.groups
+ tabList?.let {
+ it.forEach { tab ->
+ mTitles.add(CommonTabEntity(LabelFragment::class.java, tab))
+ }
+ }
}
private fun initViewPager() {
+ if (mTitles.size == 0) return
val commonNavigator = CommonNavigator(context)
commonNavigator.setTitleWrapContent(false)
commonNavigator.titleMargin = ScreenUtil.dip2px(2.0F)
@@ -86,7 +152,13 @@ class EditUserTagActivity : BaseViewBindingActivity(
object : FragmentStateAdapter(supportFragmentManager, lifecycle) {
override fun createFragment(position: Int): Fragment {
val tabEntity = mTitles[position]
- return tabEntity.frgClazz.newInstance()
+ val newInstance = tabEntity.frgClazz.newInstance()
+ val bundle = Bundle()
+ val labelList =
+ userLabelInfo?.labels?.let { label -> label.filter { it.group == mTitles[position].title } }
+ bundle.putSerializable(LabelFragment.USER_TAG, labelList as Serializable?)
+ newInstance.arguments = bundle
+ return newInstance
}
override fun getItemCount(): Int {
@@ -101,6 +173,21 @@ class EditUserTagActivity : BaseViewBindingActivity(
binding.mViewPager.currentItem = position
}
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ fun onUserLabelEvent(event: UserLabelEvent) {
+ val data = mMyLabelAdapter.data
+ if (data.contains(event.label)) {
+ val pos = data.indexOf(event.label)
+ mMyLabelAdapter.remove(pos)
+ } else {
+ if (data.size == 20) {
+ toast(getString(R.string.max_to_add_label))
+ } else {
+ mMyLabelAdapter.addData(event.label)
+ }
+ }
+ }
+
override fun needSteepStateBar(): Boolean {
return true
}
@@ -111,4 +198,10 @@ class EditUserTagActivity : BaseViewBindingActivity(
StatusBarUtil.StatusBarLightMode(this)
}
+ override fun onDestroy() {
+ super.onDestroy()
+ dialogManager.dismissDialog()
+ EventBus.getDefault().unregister(this)
+ }
+
}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/activity/UserInfoModifyActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/user/activity/UserInfoModifyActivity.kt
index 46a16699d..bdbf50468 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/user/activity/UserInfoModifyActivity.kt
+++ b/app/src/main/java/com/yizhuan/erban/ui/user/activity/UserInfoModifyActivity.kt
@@ -279,6 +279,7 @@ class UserInfoModifyActivity : BaseViewBindingActivity(R.layout.item_my_user_label) {
+
+ override fun convert(helper: BaseViewHolder, item: String) {
+ helper.setText(R.id.tv_label, item)
+ helper.addOnClickListener(R.id.iv_close)
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/adapter/UserLabelAdapter.kt b/app/src/main/java/com/yizhuan/erban/ui/user/adapter/UserLabelAdapter.kt
new file mode 100644
index 000000000..020816220
--- /dev/null
+++ b/app/src/main/java/com/yizhuan/erban/ui/user/adapter/UserLabelAdapter.kt
@@ -0,0 +1,44 @@
+package com.yizhuan.erban.ui.user.adapter
+
+import androidx.appcompat.widget.AppCompatTextView
+import com.chad.library.adapter.base.BaseQuickAdapter
+import com.chad.library.adapter.base.BaseViewHolder
+import com.yizhuan.erban.R
+import com.yizhuan.erban.ui.user.event.UserLabelEvent
+import com.yizhuan.xchat_android_core.user.bean.UserLabelItemInfo
+import org.greenrobot.eventbus.EventBus
+
+/**
+ * author: wushaocheng
+ * Created by wushaocheng on 2023/2/16.
+ * desc: 用户标签
+ */
+class UserLabelAdapter :
+ BaseQuickAdapter(R.layout.item_user_label) {
+
+ //用来记录已经勾选的位置(set集合是为了防止放入重复数据)
+ var mutilSelectedList = mutableSetOf()
+
+ override fun convert(helper: BaseViewHolder, item: UserLabelItemInfo) {
+ helper.setText(R.id.tv_user_tag, item.label)
+ val tvLabel = helper.getView(R.id.tv_user_tag)
+ if (item.picked) {
+ mutilSelectedList.add(helper.layoutPosition)
+ }else{
+ mutilSelectedList.remove(helper.layoutPosition)
+ }
+ tvLabel.isSelected = item.picked
+ helper.itemView.setOnClickListener {
+ if (mutilSelectedList.contains(helper.layoutPosition)) {
+ mutilSelectedList.remove(helper.layoutPosition)
+ tvLabel.isSelected = false
+ EventBus.getDefault().post(UserLabelEvent(item.label))
+ } else {
+ mutilSelectedList.add(helper.layoutPosition)
+ tvLabel.isSelected = true
+ EventBus.getDefault().post(UserLabelEvent(item.label))
+ }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/adapter/UserTagAdapter.kt b/app/src/main/java/com/yizhuan/erban/ui/user/adapter/UserTagAdapter.kt
index 04ed0db3e..547cb19c7 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/user/adapter/UserTagAdapter.kt
+++ b/app/src/main/java/com/yizhuan/erban/ui/user/adapter/UserTagAdapter.kt
@@ -3,16 +3,18 @@ package com.yizhuan.erban.ui.user.adapter
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.yizhuan.erban.R
+import com.yizhuan.xchat_android_core.user.bean.UserLabelItemInfo
/**
- * 用户标签
+ * author: wushaocheng
* Created by wushaocheng on 2023/2/16.
+ * desc: 用户标签
*/
class UserTagAdapter :
- BaseQuickAdapter(R.layout.item_user_tag) {
+ BaseQuickAdapter(R.layout.item_user_tag) {
- override fun convert(helper: BaseViewHolder, item: String) {
- helper.setText(R.id.tv_user_tag, item)
+ override fun convert(helper: BaseViewHolder, item: UserLabelItemInfo) {
+ helper.setText(R.id.tv_user_tag, item.label)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/event/LabelEvent.kt b/app/src/main/java/com/yizhuan/erban/ui/user/event/LabelEvent.kt
new file mode 100644
index 000000000..df2c6a1c9
--- /dev/null
+++ b/app/src/main/java/com/yizhuan/erban/ui/user/event/LabelEvent.kt
@@ -0,0 +1,8 @@
+package com.yizhuan.erban.ui.user.event
+
+import lombok.AllArgsConstructor
+import lombok.Data
+
+@AllArgsConstructor
+@Data
+class LabelEvent(val label: String = "")
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/event/UserLabelEvent.kt b/app/src/main/java/com/yizhuan/erban/ui/user/event/UserLabelEvent.kt
new file mode 100644
index 000000000..26d560e50
--- /dev/null
+++ b/app/src/main/java/com/yizhuan/erban/ui/user/event/UserLabelEvent.kt
@@ -0,0 +1,8 @@
+package com.yizhuan.erban.ui.user.event
+
+import lombok.AllArgsConstructor
+import lombok.Data
+
+@AllArgsConstructor
+@Data
+class UserLabelEvent(val label: String = "")
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/fragment/LabelFragment.kt b/app/src/main/java/com/yizhuan/erban/ui/user/fragment/LabelFragment.kt
new file mode 100644
index 000000000..74efa5913
--- /dev/null
+++ b/app/src/main/java/com/yizhuan/erban/ui/user/fragment/LabelFragment.kt
@@ -0,0 +1,62 @@
+package com.yizhuan.erban.ui.user.fragment
+
+import com.google.android.flexbox.FlexDirection
+import com.google.android.flexbox.FlexWrap
+import com.google.android.flexbox.FlexboxLayoutManager
+import com.google.android.flexbox.JustifyContent
+import com.yizhuan.erban.base.BaseViewBindingFragment
+import com.yizhuan.erban.databinding.FragmentMyTagBinding
+import com.yizhuan.erban.ui.user.adapter.UserLabelAdapter
+import com.yizhuan.erban.ui.user.event.LabelEvent
+import com.yizhuan.erban.ui.user.event.UserLabelEvent
+import com.yizhuan.xchat_android_core.user.bean.UserLabelItemInfo
+import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
+
+/**
+ * author: wushaocheng
+ * time: 2022/2/16
+ * desc: 我的标签
+ */
+class LabelFragment : BaseViewBindingFragment() {
+
+ companion object {
+ const val USER_TAG = "user_tag"
+ }
+
+ private var labelList: List? = null
+
+ private val mAdapter by lazy { UserLabelAdapter() }
+
+ override fun init() {
+ EventBus.getDefault().register(this)
+
+ labelList = arguments?.getSerializable(USER_TAG) as? ArrayList?
+ val flexBoxLayoutManager = FlexboxLayoutManager(context)
+ flexBoxLayoutManager.flexDirection = FlexDirection.ROW//主轴为水平方向,起点在左端
+ flexBoxLayoutManager.flexWrap = FlexWrap.WRAP//按正常方向换行
+ flexBoxLayoutManager.justifyContent = JustifyContent.FLEX_START//交叉轴的起点对齐
+ binding.mRecyclerView.layoutManager = flexBoxLayoutManager
+
+ binding.mRecyclerView.adapter = mAdapter
+ mAdapter.setNewData(labelList)
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ fun onLabelEvent(event: LabelEvent) {
+ val list = mAdapter.data.map { it.label }
+ if(list.contains(event.label)){
+ val pos = list.indexOf(event.label)
+ val bean = mAdapter.data[pos]
+ bean.picked = false
+ mAdapter.notifyItemChanged(pos)
+ }
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ EventBus.getDefault().unregister(this)
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/fragment/MyTagFragment.kt b/app/src/main/java/com/yizhuan/erban/ui/user/fragment/MyTagFragment.kt
deleted file mode 100644
index 9ff4ee291..000000000
--- a/app/src/main/java/com/yizhuan/erban/ui/user/fragment/MyTagFragment.kt
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.yizhuan.erban.ui.user.fragment
-
-import com.yizhuan.erban.base.BaseViewBindingFragment
-import com.yizhuan.erban.databinding.FragmentUserinfoDynamicBinding
-
-/**
- * author: wushaocheng
- * time: 2022/2/16
- * desc: 我的标签
- */
-class MyTagFragment : BaseViewBindingFragment() {
-
- override fun init() {
-
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/viewmodel/UserInfoViewModel.kt b/app/src/main/java/com/yizhuan/erban/ui/user/viewmodel/UserInfoViewModel.kt
index 33a317ae0..33324108b 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/user/viewmodel/UserInfoViewModel.kt
+++ b/app/src/main/java/com/yizhuan/erban/ui/user/viewmodel/UserInfoViewModel.kt
@@ -31,7 +31,6 @@ class UserInfoViewModel : ViewModel() {
private val _hallData = MutableLiveData()
val hallData: LiveData = _hallData
-
private val disposable: CompositeDisposable by lazy {
CompositeDisposable()
}
diff --git a/app/src/main/res/drawable-xhdpi/ic_tag_close_my.webp b/app/src/main/res/drawable-xhdpi/ic_tag_close_my.webp
new file mode 100644
index 0000000000000000000000000000000000000000..d03037ec1d9e44f6ca67b3e6de8fbc077b22e299
GIT binary patch
literal 738
zcmWIYbaT7K#J~{l>J$(bU=hK^z`$St#Ij)I>FgYEf)U7NU_1dLS%6Zxc_l?b?oJ93
zkx>dDF&IcpE-rwvvCu$MzFlJgn{`fOr5g=P69m3WC
zv6CQd8xXs^q@V<-CIG}P3JG!svQvO;jdUb-5)wPPpa`VC2dKs-H>VV27YKk{%#)fI
z8Vsa4fLMm1m?4P4oxus=|NKP^3>IG*7?>v@#FAz*Fl=vSV34?l5K~#ez`)m$qafxmJu*g4H?XUG3@gis8C1+@FEIp@Qb0y${+a#m*
z^$-4bR}}Ja-7+hh^!w=i>(09lE|{ot^x)0pv^sHlhE28Quez@`FM6}cqx|WSgS$5e
z)Tx@(pE&P&v|d-_bNY|}e5?&WcupD!I567n=vDEY_-W?MWA*<0Y2{nOm4B^2k$YQh
zgP-ip`9LS&12^V`S+*QayuLkoPgrMk%s##=@^#<&6|W>!rQ+TT
r-Vg13^TOClccRSMIoCYDt_!}FSaPMH>gDZkyD}|o-~a!{$G`vp9<{M2
literal 0
HcmV?d00001
diff --git a/app/src/main/res/drawable/bg_ffffff_18.xml b/app/src/main/res/drawable/bg_ffffff_18.xml
new file mode 100644
index 000000000..0c53d92cd
--- /dev/null
+++ b/app/src/main/res/drawable/bg_ffffff_18.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_user_label.xml b/app/src/main/res/drawable/bg_user_label.xml
new file mode 100644
index 000000000..7afa61382
--- /dev/null
+++ b/app/src/main/res/drawable/bg_user_label.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_user_label_select.xml b/app/src/main/res/drawable/bg_user_label_select.xml
new file mode 100644
index 000000000..55d4f1b15
--- /dev/null
+++ b/app/src/main/res/drawable/bg_user_label_select.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_edit_user_tag.xml b/app/src/main/res/layout/activity_edit_user_tag.xml
index 2737b28ff..23ba425b8 100644
--- a/app/src/main/res/layout/activity_edit_user_tag.xml
+++ b/app/src/main/res/layout/activity_edit_user_tag.xml
@@ -36,6 +36,7 @@
app:layout_constraintTop_toBottomOf="@+id/title_bar" />
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_user_label.xml b/app/src/main/res/layout/item_user_label.xml
new file mode 100644
index 000000000..ddd5e056d
--- /dev/null
+++ b/app/src/main/res/layout/item_user_label.xml
@@ -0,0 +1,17 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index aceba9eb4..998271ebc 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -646,5 +646,6 @@
#ECE4FF
#D8D8D8
#F3F5F9
+ #1F1B4F
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 847e10dd1..f8ce54a76 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -5072,5 +5072,6 @@
設置個人標簽將更受歡迎~
已關閉該用戶的金幣兌換權限~
已開啟該用戶的金幣兌換權限~
+ 最多只能添加20個標簽哦~
\ No newline at end of file
diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/user/IUserModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/user/IUserModel.java
index cb3af22be..32a1e7420 100644
--- a/core/src/main/java/com/yizhuan/xchat_android_core/user/IUserModel.java
+++ b/core/src/main/java/com/yizhuan/xchat_android_core/user/IUserModel.java
@@ -237,4 +237,9 @@ public interface IUserModel extends IModel {
*/
Single getUserLabelInfo();
+ /**
+ * 保存标签
+ */
+ Single saveLabel(String label);
+
}
diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/user/UserModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/user/UserModel.java
index b110335af..793e4e282 100644
--- a/core/src/main/java/com/yizhuan/xchat_android_core/user/UserModel.java
+++ b/core/src/main/java/com/yizhuan/xchat_android_core/user/UserModel.java
@@ -309,11 +309,10 @@ public final class UserModel extends BaseModel implements IUserModel {
return api.getUserInfoDetail(String.valueOf(uid))
.compose(RxHelper.handleSchedulers())
.flatMap(userDetailInfo -> {
- UserDetailInfo userInfo = userDetailInfo;
- if (null == userInfo) {
+ if (null == userDetailInfo) {
return Single.error(new Exception(ResUtil.getString(R.string.xchat_android_core_user_usermodel_06)));
}
- return Single.just(userInfo);
+ return Single.just(userDetailInfo);
});
}
@@ -828,6 +827,13 @@ public final class UserModel extends BaseModel implements IUserModel {
.compose(RxHelper.handleSchedulers());
}
+ @Override
+ public Single saveLabel(String label) {
+ return api.saveLabel(label)
+ .compose(RxHelper.handleBeanData())
+ .compose(RxHelper.handleSchedulers());
+ }
+
private interface Api {
/**
* 获取某个用户的用户信息
@@ -1080,11 +1086,15 @@ public final class UserModel extends BaseModel implements IUserModel {
/**
* 编辑标签
- *
- * @return -
*/
@GET("/label/edit")
Single> getUserLabelInfo();
+ /**
+ * 保存标签
+ */
+ @POST("/label/save")
+ Single> saveLabel(@Query("labels") String labels);
+
}
}
diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserLabelInfo.kt b/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserLabelInfo.kt
index 409369896..e6c46ad8a 100644
--- a/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserLabelInfo.kt
+++ b/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserLabelInfo.kt
@@ -5,8 +5,9 @@ import java.io.Serializable
@Data
data class UserLabelInfo(
- val config: List ?= null,
- val meLabels: List ?= null
+ val groups: List? = null,
+ val labels: List? = null,
+ val meLabels: List? = null
) : Serializable
diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserLabelItemInfo.kt b/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserLabelItemInfo.kt
index f20818854..cfae8ee70 100644
--- a/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserLabelItemInfo.kt
+++ b/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserLabelItemInfo.kt
@@ -5,8 +5,9 @@ import java.io.Serializable
@Data
data class UserLabelItemInfo(
+ val group: String = "",
val label: String = "",
- val picked: Boolean = false
+ var picked: Boolean = false
) : Serializable