diff --git a/app/src/common/res/drawable/selector_user_info_label.xml b/app/src/common/res/drawable/selector_user_info_label.xml
new file mode 100644
index 000000000..534972be6
--- /dev/null
+++ b/app/src/common/res/drawable/selector_user_info_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 60f433969..16667006e 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
@@ -30,7 +30,6 @@ 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
@@ -50,13 +49,9 @@ class EditUserTagActivity : BaseViewBindingActivity(
private var userLabelInfo: UserLabelInfo? = null
companion object {
-
- private const val USER_LABEL = "user_label"
-
@JvmStatic
- fun start(context: Context, userLabelInfo: UserLabelInfo) {
+ fun start(context: Context) {
val starter = Intent(context, EditUserTagActivity::class.java)
- starter.putExtra(USER_LABEL, userLabelInfo)
context.startActivity(starter)
}
}
@@ -69,7 +64,7 @@ class EditUserTagActivity : BaseViewBindingActivity(
EventBus.getDefault().register(this)
initTitleBar(
- getString(R.string.my_tag),
+ getString(R.string.my_label),
object : TitleBar.TextAction(
getString(R.string.done),
ContextCompat.getColor(this, R.color.color_white)
@@ -88,6 +83,7 @@ class EditUserTagActivity : BaseViewBindingActivity(
override fun onSuccess(s: String) {
dialogManager.dismissDialog()
toast(getString(R.string.update_success))
+ finish()
}
override fun onError(e: Throwable) {
@@ -99,11 +95,33 @@ class EditUserTagActivity : BaseViewBindingActivity(
}
})
- userLabelInfo = intent.getSerializableExtra(USER_LABEL) as UserLabelInfo?
-
initTop()
- initTabTitle()
- initViewPager()
+ initData()
+ }
+
+ private fun initData() {
+ dialogManager.showProgressDialog(
+ this@EditUserTagActivity,
+ ResUtil.getString(R.string.ui_user_userinfomodifyactivity_02)
+ )
+ UserModel.get().userLabelInfo.subscribe(object : SingleObserver {
+ override fun onSubscribe(d: Disposable) {
+ mCompositeDisposable.add(d)
+ }
+
+ override fun onSuccess(data: UserLabelInfo) {
+ dialogManager.dismissDialog()
+ userLabelInfo = data
+ initTabTitle()
+ initViewPager()
+ }
+
+ override fun onError(e: Throwable) {
+ dialogManager.dismissDialog()
+ toast(e.message)
+ }
+
+ })
}
private fun initTop() {
@@ -119,11 +137,14 @@ class EditUserTagActivity : BaseViewBindingActivity(
mMyLabelAdapter.remove(position)
}
- userLabelInfo?.meLabels?.let {
+ val labelList = UserModel.get().cacheLoginUserInfo?.labels
+
+ labelList?.let {
if (it.isNotEmpty()) {
+ binding.group.visibility = View.GONE
mMyLabelAdapter.setNewData(it)
} else {
- binding.group.visibility = View.GONE
+ binding.group.visibility = View.VISIBLE
}
}
}
diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/activity/UserInfoActivity.java b/app/src/main/java/com/yizhuan/erban/ui/user/activity/UserInfoActivity.java
index d1d07f8eb..6f9ca3378 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/user/activity/UserInfoActivity.java
+++ b/app/src/main/java/com/yizhuan/erban/ui/user/activity/UserInfoActivity.java
@@ -1,7 +1,5 @@
package com.yizhuan.erban.ui.user.activity;
-import static com.yizhuan.erban.ui.user.activity.UserInfoActivity.IdentityState.OWN;
-
import android.annotation.SuppressLint;
import android.content.ClipData;
import android.content.ClipboardManager;
@@ -21,6 +19,8 @@ import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import androidx.viewpager.widget.ViewPager;
+import com.google.android.flexbox.AlignItems;
+import com.google.android.flexbox.FlexDirection;
import com.netease.nim.uikit.StatusBarUtil;
import com.netease.nim.uikit.impl.cache.NimUserInfoCache;
import com.netease.nimlib.sdk.RequestCallbackWrapper;
@@ -44,12 +44,13 @@ import com.yizhuan.erban.family.view.activity.FamilyMemberListActivity;
import com.yizhuan.erban.family.view.activity.FamilyMemberSearchActivity;
import com.yizhuan.erban.ui.im.avtivity.NimFriendModel;
import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity;
-import com.yizhuan.erban.ui.user.adapter.UserPhotoAdapter;
import com.yizhuan.erban.ui.user.adapter.SelfPhotoAdapter;
import com.yizhuan.erban.ui.user.adapter.UserInfoIndicatorAdapter;
+import com.yizhuan.erban.ui.user.adapter.UserInfoLabelAdapter;
import com.yizhuan.erban.ui.user.adapter.UserInfoPagerAdapter;
import com.yizhuan.erban.ui.user.adapter.UserInfoPhotoAdapter;
-import com.yizhuan.erban.ui.user.dialog.UserTagDialog;
+import com.yizhuan.erban.ui.user.adapter.UserPhotoAdapter;
+import com.yizhuan.erban.ui.user.dialog.UserLabelDialog;
import com.yizhuan.erban.ui.user.fragment.UserInfoGiftWallFragment;
import com.yizhuan.erban.ui.user.fragment.UserInfoInfoFragment;
import com.yizhuan.erban.ui.user.viewmodel.UserInfoViewModel;
@@ -86,6 +87,7 @@ import com.yizhuan.xchat_android_core.user.event.LoginUserInfoUpdateEvent;
import com.yizhuan.xchat_android_core.utils.LogUtils;
import com.yizhuan.xchat_android_core.utils.Logger;
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
+import com.yizhuan.xchat_android_library.common.widget.LinesFlexBoxLayoutManager;
import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
@@ -98,6 +100,8 @@ import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
+import static com.yizhuan.erban.ui.user.activity.UserInfoActivity.IdentityState.OWN;
+
/**
* create by lvzebiao on 2018/8/31
*/
@@ -122,7 +126,6 @@ public class UserInfoActivity extends BaseBindingActivity fragmentList = new ArrayList<>(2);
fragmentList.add(new UserInfoInfoFragment());
fragmentList.add(new UserInfoGiftWallFragment());
- pagerAdapter = new UserInfoPagerAdapter(getSupportFragmentManager(), fragmentList);
+ UserInfoPagerAdapter pagerAdapter = new UserInfoPagerAdapter(getSupportFragmentManager(), fragmentList);
final List tagList = new ArrayList<>(2);
tagList.add(getString(R.string.me_data));
tagList.add(getString(R.string.me_gift_wall));
@@ -347,6 +350,8 @@ public class UserInfoActivity extends BaseBindingActivity {
try {
ClipboardManager cm = (ClipboardManager) UserInfoActivity.this.getSystemService(Context.CLIPBOARD_SERVICE);
@@ -361,6 +366,39 @@ public class UserInfoActivity extends BaseBindingActivity labels) {
+ if (labels.isEmpty()) {
+ if (AuthModel.get().getCurrentUid() != userInfo.getUid()) {
+ mBinding.groupLabel.setVisibility(View.GONE);
+ mBinding.tvEditLabel.setVisibility(View.GONE);
+ } else {
+ mBinding.groupLabel.setVisibility(View.GONE);
+ mBinding.tvEditLabel.setVisibility(View.VISIBLE);
+ mBinding.tvEditLabel.setOnClickListener(view -> {
+ EditUserTagActivity.start(this);
+ });
+ }
+ return;
+ } else {
+ mBinding.groupLabel.setVisibility(View.VISIBLE);
+ }
+ UserInfoLabelAdapter userInfoLabelAdapter = new UserInfoLabelAdapter();
+
+ LinesFlexBoxLayoutManager labelLayoutManager = new LinesFlexBoxLayoutManager(this);
+ labelLayoutManager.setFlexDirection(FlexDirection.ROW);
+ labelLayoutManager.setAlignItems(AlignItems.FLEX_START);
+ labelLayoutManager.setMaxLines(1);
+ mBinding.mLabelRecyclerView.setLayoutManager(labelLayoutManager);
+ mBinding.mLabelRecyclerView.setAdapter(userInfoLabelAdapter);
+
+ userInfoLabelAdapter.setNewData(labels);
+ }
+
/**
* 相册
*/
@@ -506,7 +544,7 @@ public class UserInfoActivity extends BaseBindingActivity {
+ R.id.layout_area -> {
dialogManager.showProgressDialog(
this@UserInfoModifyActivity,
ResUtil.getString(R.string.ui_user_userinfomodifyactivity_02)
)
- UserModel.get().userLabelInfo.subscribe(object : SingleObserver{
+ UserModel.get().areaInfo.subscribe(object : SingleObserver> {
override fun onSubscribe(d: Disposable) {
mCompositeDisposable.add(d)
}
- override fun onSuccess(userLabelInfo: UserLabelInfo) {
+ override fun onSuccess(areaList: List) {
dialogManager.dismissDialog()
- EditUserTagActivity.start(this@UserInfoModifyActivity, userLabelInfo)
+ UserAreaDialog.newInstance(areaList).show(this@UserInfoModifyActivity)
}
override fun onError(e: Throwable) {
@@ -290,6 +293,9 @@ class UserInfoModifyActivity : BaseViewBindingActivity {
+ EditUserTagActivity.start(this@UserInfoModifyActivity)
+ }
else -> {}
}
}
diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/adapter/UserInfoLabelAdapter.kt b/app/src/main/java/com/yizhuan/erban/ui/user/adapter/UserInfoLabelAdapter.kt
new file mode 100644
index 000000000..e1c50b0bf
--- /dev/null
+++ b/app/src/main/java/com/yizhuan/erban/ui/user/adapter/UserInfoLabelAdapter.kt
@@ -0,0 +1,22 @@
+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
+
+/**
+ * author: wushaocheng
+ * Created by wushaocheng on 2023/2/16.
+ * desc: 用户标签
+ */
+class UserInfoLabelAdapter :
+ BaseQuickAdapter(R.layout.item_user_info_label) {
+
+ override fun convert(helper: BaseViewHolder, item: String) {
+ val tvLabel = helper.getView(R.id.tv_user_tag)
+ tvLabel.isSelected = helper.layoutPosition <3
+ helper.setText(R.id.tv_user_tag, item)
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/adapter/UserLabelDialogAdapter.kt b/app/src/main/java/com/yizhuan/erban/ui/user/adapter/UserLabelDialogAdapter.kt
new file mode 100644
index 000000000..1ca62edee
--- /dev/null
+++ b/app/src/main/java/com/yizhuan/erban/ui/user/adapter/UserLabelDialogAdapter.kt
@@ -0,0 +1,23 @@
+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.xchat_android_core.user.bean.UserLabelItemInfo
+
+/**
+ * author: wushaocheng
+ * Created by wushaocheng on 2023/2/16.
+ * desc: 用户标签
+ */
+class UserLabelDialogAdapter :
+ BaseQuickAdapter(R.layout.item_user_tag) {
+
+ override fun convert(helper: BaseViewHolder, item: String) {
+ val tvLabel = helper.getView(R.id.tv_user_tag)
+ tvLabel.isSelected = helper.layoutPosition <3
+ helper.setText(R.id.tv_user_tag, item)
+ }
+
+}
\ 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
deleted file mode 100644
index 547cb19c7..000000000
--- a/app/src/main/java/com/yizhuan/erban/ui/user/adapter/UserTagAdapter.kt
+++ /dev/null
@@ -1,20 +0,0 @@
-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) {
-
- 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/dialog/UserAreaDialog.kt b/app/src/main/java/com/yizhuan/erban/ui/user/dialog/UserAreaDialog.kt
new file mode 100644
index 000000000..7be35562e
--- /dev/null
+++ b/app/src/main/java/com/yizhuan/erban/ui/user/dialog/UserAreaDialog.kt
@@ -0,0 +1,55 @@
+package com.yizhuan.erban.ui.user.dialog
+
+import android.os.Bundle
+import android.view.View
+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.R
+import com.yizhuan.erban.base.BaseDialog
+import com.yizhuan.erban.databinding.DialogUserTagBinding
+import com.yizhuan.erban.ui.user.activity.EditUserTagActivity
+import com.yizhuan.erban.ui.user.adapter.UserLabelDialogAdapter
+import com.yizhuan.xchat_android_core.auth.AuthModel
+import com.yizhuan.xchat_android_core.user.UserModel
+import java.io.Serializable
+
+/**
+ * 用户地区
+ * Created by wushaocheng on 2023/2/17.
+ */
+class UserAreaDialog :
+ BaseDialog() {
+
+ companion object {
+ const val KEY_AREA = "key_area"
+
+ @JvmStatic
+ fun newInstance(area: List): UserAreaDialog {
+ val userLabelDialog = UserAreaDialog()
+ val bundle = Bundle()
+ bundle.putSerializable(KEY_AREA, area as Serializable?)
+ userLabelDialog.arguments = bundle
+ return userLabelDialog
+ }
+ }
+
+ private val mTagAdapter by lazy { UserLabelDialogAdapter() }
+
+ override fun init() {
+ val areaList = arguments?.getSerializable(KEY_AREA) as List?
+
+ initListener()
+ }
+
+ private fun initListener() {
+ binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
+
+ binding.tvEdit.setOnClickListener {
+ dismissAllowingStateLoss()
+ context?.let { it1 -> EditUserTagActivity.start(it1) }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/dialog/UserLabelDialog.kt b/app/src/main/java/com/yizhuan/erban/ui/user/dialog/UserLabelDialog.kt
new file mode 100644
index 000000000..37defa274
--- /dev/null
+++ b/app/src/main/java/com/yizhuan/erban/ui/user/dialog/UserLabelDialog.kt
@@ -0,0 +1,76 @@
+package com.yizhuan.erban.ui.user.dialog
+
+import android.os.Bundle
+import android.view.View
+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.R
+import com.yizhuan.erban.base.BaseDialog
+import com.yizhuan.erban.databinding.DialogUserTagBinding
+import com.yizhuan.erban.ui.user.activity.EditUserTagActivity
+import com.yizhuan.erban.ui.user.adapter.UserLabelDialogAdapter
+import com.yizhuan.xchat_android_core.auth.AuthModel
+import com.yizhuan.xchat_android_core.user.UserModel
+import java.io.Serializable
+
+/**
+ * 用户标签
+ * Created by wushaocheng on 2023/2/16.
+ */
+class UserLabelDialog :
+ BaseDialog() {
+
+ companion object {
+ const val KEY_LABEL = "key_label"
+
+ @JvmStatic
+ fun newInstance(label: List): UserLabelDialog {
+ val userLabelDialog = UserLabelDialog()
+ val bundle = Bundle()
+ bundle.putSerializable(KEY_LABEL, label as Serializable?)
+ userLabelDialog.arguments = bundle
+ return userLabelDialog
+ }
+ }
+
+ private val mTagAdapter by lazy { UserLabelDialogAdapter() }
+
+ override fun init() {
+ initListener()
+ initAdapter()
+ initLabel()
+ }
+
+ private fun initListener() {
+ binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
+
+ binding.tvEdit.setOnClickListener {
+ dismissAllowingStateLoss()
+ context?.let { it1 -> EditUserTagActivity.start(it1) }
+ }
+ }
+
+ private fun initAdapter() {
+ val flexBoxLayoutManager = FlexboxLayoutManager(context)
+ flexBoxLayoutManager.flexDirection = FlexDirection.ROW//主轴为水平方向,起点在左端
+ flexBoxLayoutManager.flexWrap = FlexWrap.WRAP//按正常方向换行
+ flexBoxLayoutManager.justifyContent = JustifyContent.FLEX_START//交叉轴的起点对齐
+ binding.mRecyclerView.layoutManager = flexBoxLayoutManager
+ binding.mRecyclerView.adapter = mTagAdapter
+ }
+
+ private fun initLabel() {
+ if (AuthModel.get().currentUid != UserModel.get().cacheLoginUserInfo?.uid) {
+ binding.tvTitle.text = getString(R.string.other_label)
+ binding.tvEdit.visibility = View.GONE
+ } else {
+ binding.tvTitle.text = getString(R.string.my_label)
+ binding.tvEdit.visibility = View.VISIBLE
+ }
+ val labelList = arguments?.getSerializable(KEY_LABEL) as List?
+ mTagAdapter.setNewData(labelList)
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/dialog/UserTagDialog.kt b/app/src/main/java/com/yizhuan/erban/ui/user/dialog/UserTagDialog.kt
deleted file mode 100644
index 64561f48b..000000000
--- a/app/src/main/java/com/yizhuan/erban/ui/user/dialog/UserTagDialog.kt
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.yizhuan.erban.ui.user.dialog
-
-import com.hjq.toast.ToastUtils
-import com.yizhuan.erban.base.BaseDialog
-import com.yizhuan.erban.databinding.DialogUserTagBinding
-import com.yizhuan.erban.ui.user.activity.EditUserTagActivity
-import com.yizhuan.erban.ui.user.adapter.UserTagAdapter
-import com.yizhuan.xchat_android_core.user.UserModel
-import com.yizhuan.xchat_android_core.user.bean.UserLabelInfo
-import io.reactivex.SingleObserver
-import io.reactivex.disposables.Disposable
-
-/**
- * 用户标签
- * Created by wushaocheng on 2023/2/16.
- */
-class UserTagDialog :
- BaseDialog() {
-
- companion object {
- @JvmStatic
- fun newInstance(): UserTagDialog {
- return UserTagDialog()
- }
- }
-
- private val mTagAdapter by lazy { UserTagAdapter() }
-
- override fun init() {
-
- initAdapter()
-
- initListener()
-
- }
-
- private fun initAdapter() {
- binding.mRecyclerView.adapter = mTagAdapter
- }
-
- private fun initListener() {
- binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
-
- binding.tvEdit.setOnClickListener {
- UserModel.get().userLabelInfo.subscribe(object : SingleObserver {
- override fun onSubscribe(d: Disposable) {
-
- }
-
- override fun onSuccess(userLabelInfo: UserLabelInfo) {
- context?.let { it1 -> EditUserTagActivity.start(it1, userLabelInfo) }
- dismissAllowingStateLoss()
- }
-
- override fun onError(e: Throwable) {
- ToastUtils.show(e.message)
- }
-
- })
- }
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/user/fragment/UserInfoInfoFragment.kt b/app/src/main/java/com/yizhuan/erban/ui/user/fragment/UserInfoInfoFragment.kt
index 616212300..293ed0991 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/user/fragment/UserInfoInfoFragment.kt
+++ b/app/src/main/java/com/yizhuan/erban/ui/user/fragment/UserInfoInfoFragment.kt
@@ -69,6 +69,7 @@ class UserInfoInfoFragment : BaseViewBindingFragment Unit)? = null
+ private var mLineCount = 0
+ private var mLineFirstPosition = 0
+
+ override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) {
+ super.getItemOffsets(outRect, view, parent, state)
+ val currentPosition = parent.getChildAdapterPosition(view)
+ outRect.left = horSpacing / 2
+ outRect.right = horSpacing / 2
+ outRect.top = verSpacing
+
+
+ if (mOnLineListener != null) {
+ (parent.layoutManager as? FlexboxLayoutManager)?.let {
+ if (mLineCount != it.flexLines.size) {
+ mLineCount = it.flexLines.size
+ mLineFirstPosition = currentPosition
+ }
+ mOnLineListener?.invoke(mLineCount, currentPosition, mLineFirstPosition)
+ }
+ }
+ }
+
+ fun setOnLineListener(body: (Int, Int, Int) -> Unit) {
+ this.mOnLineListener = body
+ }
+}
diff --git a/app/src/main/res/color/color_selector_user_info_label.xml b/app/src/main/res/color/color_selector_user_info_label.xml
new file mode 100644
index 000000000..eae4e472e
--- /dev/null
+++ b/app/src/main/res/color/color_selector_user_info_label.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/color/color_selector_user_label.xml b/app/src/main/res/color/color_selector_user_label.xml
new file mode 100644
index 000000000..2c24b9fd3
--- /dev/null
+++ b/app/src/main/res/color/color_selector_user_label.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable-xhdpi/ic_user_info_label_edit.webp b/app/src/main/res/drawable-xhdpi/ic_user_info_label_edit.webp
new file mode 100644
index 000000000..e85d2042c
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_user_info_label_edit.webp differ
diff --git a/app/src/main/res/drawable/bg_user_info_label.xml b/app/src/main/res/drawable/bg_user_info_label.xml
new file mode 100644
index 000000000..60dd3b6db
--- /dev/null
+++ b/app/src/main/res/drawable/bg_user_info_label.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_user_info_label_select.xml b/app/src/main/res/drawable/bg_user_info_label_select.xml
new file mode 100644
index 000000000..8533ec002
--- /dev/null
+++ b/app/src/main/res/drawable/bg_user_info_label_select.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_user_info.xml b/app/src/main/res/layout/activity_user_info.xml
index e616538ee..a4fa5fa48 100644
--- a/app/src/main/res/layout/activity_user_info.xml
+++ b/app/src/main/res/layout/activity_user_info.xml
@@ -386,15 +386,14 @@
+ app:layout_constraintEnd_toStartOf="@+id/ivTagArrow" />
+ app:constraint_referenced_ids="mLabelRecyclerView,ivTagArrow"/>
+
+
diff --git a/app/src/main/res/layout/dialog_user_tag.xml b/app/src/main/res/layout/dialog_user_tag.xml
index 034971d45..a3f0bce72 100644
--- a/app/src/main/res/layout/dialog_user_tag.xml
+++ b/app/src/main/res/layout/dialog_user_tag.xml
@@ -32,11 +32,11 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
- tools:text="TA的标签"/>
+ tools:text="@string/other_label"/>
+
\ 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
index ddd5e056d..c7c5d7120 100644
--- a/app/src/main/res/layout/item_user_label.xml
+++ b/app/src/main/res/layout/item_user_label.xml
@@ -11,7 +11,7 @@
android:paddingTop="@dimen/dp_8"
android:paddingEnd="@dimen/dp_16"
android:paddingBottom="@dimen/dp_8"
- android:textColor="@color/color_1F1B4F"
+ android:textColor="@color/color_selector_user_label"
android:textSize="@dimen/sp_13"
android:background="@drawable/selector_user_label"
tools:text="上班族" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_user_tag.xml b/app/src/main/res/layout/item_user_tag.xml
index d9fe0cc3b..fe911e447 100644
--- a/app/src/main/res/layout/item_user_tag.xml
+++ b/app/src/main/res/layout/item_user_tag.xml
@@ -1,16 +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 998271ebc..5ff52086c 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -647,5 +647,8 @@
#D8D8D8
#F3F5F9
#1F1B4F
+ #3AD5F8
+ #00C4EA
+ #E1FAFF
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f8ce54a76..248f5ed0b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -5068,10 +5068,12 @@
的金幣兌換權限嗎?
編輯標簽
編輯你的標簽,可以大大提高你的人氣~
- 我的標簽
+ 我的標簽
設置個人標簽將更受歡迎~
已關閉該用戶的金幣兌換權限~
已開啟該用戶的金幣兌換權限~
最多只能添加20個標簽哦~
+ 設置你的個人標簽
+ TA的标签
\ 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 32a1e7420..8fd292935 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
@@ -242,4 +242,9 @@ public interface IUserModel extends IModel {
*/
Single saveLabel(String label);
+ /**
+ * 获取地区列表
+ */
+ Single> getAreaInfo();
+
}
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 793e4e282..6a76efb50 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
@@ -830,6 +830,13 @@ public final class UserModel extends BaseModel implements IUserModel {
@Override
public Single saveLabel(String label) {
return api.saveLabel(label)
+ .compose(RxHelper.handleStringData())
+ .compose(RxHelper.handleSchedulers());
+ }
+
+ @Override
+ public Single> getAreaInfo() {
+ return api.getAreaInfo()
.compose(RxHelper.handleBeanData())
.compose(RxHelper.handleSchedulers());
}
@@ -1096,5 +1103,11 @@ public final class UserModel extends BaseModel implements IUserModel {
@POST("/label/save")
Single> saveLabel(@Query("labels") String labels);
+ /**
+ * 获取地区列表
+ */
+ @GET("/region/config")
+ Single>> getAreaInfo();
+
}
}
diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserDetailInfo.java b/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserDetailInfo.java
index e4c1cd611..dab61529a 100644
--- a/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserDetailInfo.java
+++ b/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserDetailInfo.java
@@ -70,6 +70,15 @@ public class UserDetailInfo implements Serializable {
private List privatePhoto;
private String nameplatePic;
private String nameplateWord;
+ private String region;
+
+ public String getRegion() {
+ return region;
+ }
+
+ public void setRegion(String region) {
+ this.region = region;
+ }
public long getRoomUid() {
return roomUid;
diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserInfo.java b/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserInfo.java
index cf5e2c739..b528c11b2 100644
--- a/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserInfo.java
+++ b/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserInfo.java
@@ -106,6 +106,8 @@ public class UserInfo implements Serializable {
//1普通账号,2官方账号,3机器账号 ,4公会账号
private int defUser;
//地区
+ @Getter
+ @Setter
private String region;
//个人简介
private String userDesc;
@@ -302,6 +304,12 @@ public class UserInfo implements Serializable {
@Setter
private boolean hasPermitRoom;
+ /**
+ * 标签
+ */
+ @Getter
+ private List labels;
+
public UserInfo() {
}
@@ -519,14 +527,6 @@ public class UserInfo implements Serializable {
this.defUser = defUser;
}
- public String getRegion() {
- return region;
- }
-
- public void setRegion(String region) {
- this.region = region;
- }
-
public String getUserDesc() {
return userDesc;
}
diff --git a/core/src/model_labour_union/java/com/yizhuan/xchat_android_core/module_hall/hall/bean/ClanInfo.java b/core/src/model_labour_union/java/com/yizhuan/xchat_android_core/module_hall/hall/bean/ClanInfo.java
index cf2343ed7..1b27b1065 100644
--- a/core/src/model_labour_union/java/com/yizhuan/xchat_android_core/module_hall/hall/bean/ClanInfo.java
+++ b/core/src/model_labour_union/java/com/yizhuan/xchat_android_core/module_hall/hall/bean/ClanInfo.java
@@ -16,5 +16,4 @@ public class ClanInfo {
private boolean userIsElder;
private long hallId;
private String levelIcon;
-
}
diff --git a/core/src/model_labour_union/java/com/yizhuan/xchat_android_core/module_hall/hall/bean/HallInfo.java b/core/src/model_labour_union/java/com/yizhuan/xchat_android_core/module_hall/hall/bean/HallInfo.java
index 127683794..a5418b1e6 100644
--- a/core/src/model_labour_union/java/com/yizhuan/xchat_android_core/module_hall/hall/bean/HallInfo.java
+++ b/core/src/model_labour_union/java/com/yizhuan/xchat_android_core/module_hall/hall/bean/HallInfo.java
@@ -41,4 +41,5 @@ public class HallInfo {
* 厅主昵称
*/
private String ownerNick;
+
}