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; + }