diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 98d33b73f..5fb6dc390 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -964,7 +964,7 @@ android:exported="false" android:screenOrientation="portrait" /> diff --git a/app/src/main/java/com/yizhuan/erban/UIHelper.java b/app/src/main/java/com/yizhuan/erban/UIHelper.java index 75aef7b0a..71ee28f52 100644 --- a/app/src/main/java/com/yizhuan/erban/UIHelper.java +++ b/app/src/main/java/com/yizhuan/erban/UIHelper.java @@ -13,6 +13,7 @@ import com.yizhuan.erban.audio.SoundSignatureActivity; import com.yizhuan.erban.ui.login.AddUserInfoActivity; import com.yizhuan.erban.ui.login.ModifyInfoActivity; import com.yizhuan.erban.ui.setting.SettingActivity; +import com.yizhuan.erban.ui.user.activity.EditUserLabelActivity; import com.yizhuan.erban.ui.user.activity.UserInfoActivity; import com.yizhuan.erban.ui.user.activity.UserInfoModifyActivity; import com.yizhuan.erban.ui.user.activity.UserModifyPhotosActivity; @@ -146,6 +147,11 @@ public class UIHelper { "/peko/modules/monster/index.html?monsterId=" + monsterId); } + public static void showLabelInfoAct(Activity mActivity, int requestCode) { + Intent intent = new Intent(mActivity, EditUserLabelActivity.class); + mActivity.startActivityForResult(intent, requestCode); + } + /** * 跳转到举报页 * 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/EditUserLabelActivity.kt similarity index 86% rename from app/src/main/java/com/yizhuan/erban/ui/user/activity/EditUserTagActivity.kt rename to app/src/main/java/com/yizhuan/erban/ui/user/activity/EditUserLabelActivity.kt index 16667006e..7d4b71eeb 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/EditUserLabelActivity.kt @@ -18,7 +18,7 @@ import com.netease.nim.uikit.common.util.sys.ScreenUtil import com.yizhuan.erban.R import com.yizhuan.erban.base.BaseViewBindingActivity import com.yizhuan.erban.base.TitleBar -import com.yizhuan.erban.databinding.ActivityEditUserTagBinding +import com.yizhuan.erban.databinding.ActivityEditUserLabelBinding import com.yizhuan.erban.ui.user.adapter.CommonWrapIndicatorAdapter import com.yizhuan.erban.ui.user.adapter.MyUserLabelAdapter import com.yizhuan.erban.ui.user.event.LabelEvent @@ -43,15 +43,17 @@ import java.io.Serializable * time: 2022/2/16 * desc: 编辑用户标签 */ -class EditUserTagActivity : BaseViewBindingActivity(), +class EditUserLabelActivity : BaseViewBindingActivity(), CommonWrapIndicatorAdapter.OnItemSelectListener { private var userLabelInfo: UserLabelInfo? = null companion object { + const val KEY_LABEL = "key_label" + @JvmStatic fun start(context: Context) { - val starter = Intent(context, EditUserTagActivity::class.java) + val starter = Intent(context, EditUserLabelActivity::class.java) context.startActivity(starter) } } @@ -72,7 +74,7 @@ class EditUserTagActivity : BaseViewBindingActivity( override fun performAction(view: View) { val list = mMyLabelAdapter.data.joinToString(",") dialogManager.showProgressDialog( - this@EditUserTagActivity, + this@EditUserLabelActivity, ResUtil.getString(R.string.ui_user_userinfomodifyactivity_02) ) UserModel.get().saveLabel(list).subscribe(object : SingleObserver { @@ -82,7 +84,12 @@ class EditUserTagActivity : BaseViewBindingActivity( override fun onSuccess(s: String) { dialogManager.dismissDialog() + val usersBean = UserModel.get().cacheLoginUserInfo + usersBean?.labels = mMyLabelAdapter.data toast(getString(R.string.update_success)) + val intent = Intent() + intent.putExtra(KEY_LABEL, list) + setResult(RESULT_OK, intent) finish() } @@ -101,7 +108,7 @@ class EditUserTagActivity : BaseViewBindingActivity( private fun initData() { dialogManager.showProgressDialog( - this@EditUserTagActivity, + this@EditUserLabelActivity, ResUtil.getString(R.string.ui_user_userinfomodifyactivity_02) ) UserModel.get().userLabelInfo.subscribe(object : SingleObserver { @@ -112,6 +119,14 @@ class EditUserTagActivity : BaseViewBindingActivity( override fun onSuccess(data: UserLabelInfo) { dialogManager.dismissDialog() userLabelInfo = data + userLabelInfo?.meLabels?.let { + if (it.isNotEmpty()) { + binding.group.visibility = View.GONE + mMyLabelAdapter.setNewData(it) + } else { + binding.group.visibility = View.VISIBLE + } + } initTabTitle() initViewPager() } @@ -200,10 +215,16 @@ class EditUserTagActivity : BaseViewBindingActivity( if (data.contains(event.label)) { val pos = data.indexOf(event.label) mMyLabelAdapter.remove(pos) + if (mMyLabelAdapter.data.size == 0) { + binding.group.visibility = View.VISIBLE + } } else { if (data.size == 20) { toast(getString(R.string.max_to_add_label)) } else { + if (mMyLabelAdapter.data.size == 0) { + binding.group.visibility = View.GONE + } mMyLabelAdapter.addData(event.label) } } 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 6f9ca3378..5b363bc7c 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,5 +1,7 @@ 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; @@ -100,8 +102,6 @@ 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 */ @@ -373,19 +373,20 @@ public class UserInfoActivity extends BaseBindingActivity labels) { if (labels.isEmpty()) { - if (AuthModel.get().getCurrentUid() != userInfo.getUid()) { + if (AuthModel.get().getCurrentUid() != userId) { 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); + EditUserLabelActivity.start(this); }); } return; } else { mBinding.groupLabel.setVisibility(View.VISIBLE); + mBinding.tvEditLabel.setVisibility(View.GONE); } UserInfoLabelAdapter userInfoLabelAdapter = new UserInfoLabelAdapter(); @@ -544,7 +545,7 @@ public class UserInfoActivity extends BaseBindingActivity 0) { + binding.tvTag.visibility = View.INVISIBLE + binding.mLabelRecyclerView.visibility = View.VISIBLE + val userInfoLabelAdapter = UserInfoLabelAdapter() + + val labelLayoutManager = LinesFlexBoxLayoutManager(this) + labelLayoutManager.flexDirection = FlexDirection.ROW + labelLayoutManager.alignItems = AlignItems.FLEX_START + labelLayoutManager.setMaxLines(1) + binding.mLabelRecyclerView.layoutManager = labelLayoutManager + binding.mLabelRecyclerView.adapter = userInfoLabelAdapter + + userInfoLabelAdapter.setNewData(labelList) + } else { + binding.tvTag.visibility = View.VISIBLE + binding.mLabelRecyclerView.visibility = View.GONE + } } override fun onDateSet(datePickerDialog: DatePickerDialog, year: Int, month: Int, day: Int) { @@ -208,7 +230,16 @@ class UserInfoModifyActivity : BaseViewBindingActivity) { dialogManager.dismissDialog() UserAreaDialog.newInstance(areaList) - .apply { setAction { - reportArea(it) - } }.show(this@UserInfoModifyActivity) + .apply { + setAction { + reportArea(it) + } + }.show(this@UserInfoModifyActivity) } override fun onError(e: Throwable) { @@ -297,7 +330,7 @@ class UserInfoModifyActivity : BaseViewBindingActivity { - EditUserTagActivity.start(this@UserInfoModifyActivity) + UIHelper.showLabelInfoAct(this, Method.LABEL) } else -> {} } @@ -436,6 +469,29 @@ class UserInfoModifyActivity : BaseViewBindingActivity { + data?.let { + val label = it.getStringExtra(EditUserLabelActivity.KEY_LABEL) + val labelList = label?.split(",") + if ((labelList?.size ?: 0) > 0) { + binding.tvTag.visibility = View.INVISIBLE + binding.mLabelRecyclerView.visibility = View.VISIBLE + val userInfoLabelAdapter = UserInfoLabelAdapter() + + val labelLayoutManager = LinesFlexBoxLayoutManager(this) + labelLayoutManager.flexDirection = FlexDirection.ROW + labelLayoutManager.alignItems = AlignItems.FLEX_START + labelLayoutManager.setMaxLines(1) + binding.mLabelRecyclerView.layoutManager = labelLayoutManager + binding.mLabelRecyclerView.adapter = userInfoLabelAdapter + + userInfoLabelAdapter.setNewData(labelList) + } else { + binding.tvTag.visibility = View.VISIBLE + binding.mLabelRecyclerView.visibility = View.GONE + } + } + } Method.AUDIO -> {// 刷新声音资源 data?.let { // 获取数据并刷新显示 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 index 37defa274..0cd71256c 100644 --- 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 @@ -9,10 +9,9 @@ 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.activity.EditUserLabelActivity 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 /** @@ -23,12 +22,15 @@ class UserLabelDialog : BaseDialog() { companion object { + + const val KEY_USER_ID = "key_user_id" const val KEY_LABEL = "key_label" @JvmStatic - fun newInstance(label: List): UserLabelDialog { + fun newInstance(label: MutableList, userId: Long): UserLabelDialog { val userLabelDialog = UserLabelDialog() val bundle = Bundle() + bundle.putLong(KEY_USER_ID, userId) bundle.putSerializable(KEY_LABEL, label as Serializable?) userLabelDialog.arguments = bundle return userLabelDialog @@ -48,7 +50,7 @@ class UserLabelDialog : binding.tvEdit.setOnClickListener { dismissAllowingStateLoss() - context?.let { it1 -> EditUserTagActivity.start(it1) } + context?.let { it1 -> EditUserLabelActivity.start(it1) } } } @@ -62,7 +64,8 @@ class UserLabelDialog : } private fun initLabel() { - if (AuthModel.get().currentUid != UserModel.get().cacheLoginUserInfo?.uid) { + val userId = arguments?.getLong(KEY_USER_ID) ?: 0L + if (AuthModel.get().currentUid != userId) { binding.tvTitle.text = getString(R.string.other_label) binding.tvEdit.visibility = View.GONE } else { diff --git a/app/src/main/res/layout/activity_edit_user_tag.xml b/app/src/main/res/layout/activity_edit_user_label.xml similarity index 98% rename from app/src/main/res/layout/activity_edit_user_tag.xml rename to app/src/main/res/layout/activity_edit_user_label.xml index 23ba425b8..1b4aafa4f 100644 --- a/app/src/main/res/layout/activity_edit_user_tag.xml +++ b/app/src/main/res/layout/activity_edit_user_label.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/color_white" - tools:context=".ui.user.activity.EditUserTagActivity"> + tools:context=".ui.user.activity.EditUserLabelActivity"> - + android:textSize="14sp" + app:layout_constraintStart_toStartOf="parent"/> + android:text="@string/setting_personal_tags_will_be_more_popular" + app:layout_constraintEnd_toStartOf="@+id/iv_label_arrow"/> + + + android:src="@drawable/arrow_right" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toBottomOf="parent"/> - + labels; public UserInfo() {