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