diff --git a/app/src/main/java/com/mango/moshen/home/fragment/MeFragment.kt b/app/src/main/java/com/mango/moshen/home/fragment/MeFragment.kt index 52270cd0d..75f7006f3 100644 --- a/app/src/main/java/com/mango/moshen/home/fragment/MeFragment.kt +++ b/app/src/main/java/com/mango/moshen/home/fragment/MeFragment.kt @@ -40,7 +40,7 @@ import com.mango.moshen.ui.utils.ImageLoadUtils import com.mango.moshen.ui.utils.load import com.mango.moshen.ui.widget.OnPageSelectedListener import com.mango.moshen.vip.VipMainActivity -import com.mango.moshen.vip.VipViewModel +import com.mango.moshen.vip.VipMainViewModel import com.mango.core.auth.AuthModel import com.mango.core.home.event.VisitorUnreadCountEvent import com.mango.core.level.UserLevelVo @@ -86,7 +86,7 @@ class MeFragment : BaseFragment(), View.OnClickListener { private lateinit var mBinding: FragmentMeBinding private val meViewModel: MeViewModel by viewModels() private val homeViewModel: HomeViewModel by activityViewModels() - private val vipViewModel: VipViewModel by viewModels() + private val vipViewModel: VipMainViewModel by viewModels() private var newUserDisposable: Disposable? = null private var centerIndex = 0 private var gameIndex = 0 diff --git a/app/src/main/java/com/mango/moshen/ui/user/UserInfoActivity.java b/app/src/main/java/com/mango/moshen/ui/user/UserInfoActivity.java index 8efe8c5f6..e27b5430b 100644 --- a/app/src/main/java/com/mango/moshen/ui/user/UserInfoActivity.java +++ b/app/src/main/java/com/mango/moshen/ui/user/UserInfoActivity.java @@ -134,7 +134,7 @@ public class UserInfoActivity extends BaseBindingActivity() { } } - private val viewModel: VipViewModel by viewModels() + private val viewModel: VipMainViewModel by viewModels() private var disposable: Disposable? = null @SuppressLint("SetTextI18n") diff --git a/app/src/main/java/com/mango/moshen/vip/VipHelper.java b/app/src/main/java/com/mango/moshen/vip/VipHelper.java index 7f96834d3..b088b1345 100644 --- a/app/src/main/java/com/mango/moshen/vip/VipHelper.java +++ b/app/src/main/java/com/mango/moshen/vip/VipHelper.java @@ -51,4 +51,10 @@ public class VipHelper { public static boolean notKick(UserInfo userInfo) { return userInfo != null && userInfo.getUserVipInfoVO() != null && userInfo.getUserVipInfoVO().getPreventKick(); } + + public static boolean isHideLookUser() { + UserInfo userInfo = UserModel.get().getCacheLoginUserInfo(); + if (userInfo == null) return false; + return userInfo.getUserVipInfoVO() != null && userInfo.getUserVipInfoVO().getLookHomepageHide(); + } } diff --git a/app/src/main/java/com/mango/moshen/vip/VipMainActivity.kt b/app/src/main/java/com/mango/moshen/vip/VipMainActivity.kt index 241e8c267..798808946 100644 --- a/app/src/main/java/com/mango/moshen/vip/VipMainActivity.kt +++ b/app/src/main/java/com/mango/moshen/vip/VipMainActivity.kt @@ -67,7 +67,7 @@ class VipMainActivity : BaseViewBindingActivity(), private val authAdapter = VipAuthAdapter() private lateinit var rvDelegate: RVDelegate - private val vipViewModel: VipViewModel by viewModels() + private val vipViewModel: VipMainViewModel by viewModels() @SuppressLint("SetTextI18n") override fun init() { @@ -155,10 +155,16 @@ class VipMainActivity : BaseViewBindingActivity(), keepParams.horizontalBias = it.levelKeepScore.toFloat() / it.levelUpScore binding.ivKeepIndicator.layoutParams = keepParams - if (it.ownAuthTypes?.contains(13) == true && mTitleBar.actionCount == 1) { + val isShowEnterHide = it.ownAuthTypes?.contains(13) == true + val isShowLookHide = it.ownAuthTypes?.contains(16) == true + if ((isShowEnterHide || isShowLookHide) && mTitleBar.actionCount == 1) { mTitleBar.addAction(object : TitleBar.ImageAction(R.drawable.ic_vip_setting) { override fun performAction(view: View) { - VipSettingActivity.start(this@VipMainActivity) + VipSettingActivity.start( + this@VipMainActivity, + isShowEnterHide, + isShowLookHide + ) } }, 0) } diff --git a/app/src/main/java/com/mango/moshen/vip/VipViewModel.kt b/app/src/main/java/com/mango/moshen/vip/VipMainViewModel.kt similarity index 88% rename from app/src/main/java/com/mango/moshen/vip/VipViewModel.kt rename to app/src/main/java/com/mango/moshen/vip/VipMainViewModel.kt index bccd4308e..5aaa4203e 100644 --- a/app/src/main/java/com/mango/moshen/vip/VipViewModel.kt +++ b/app/src/main/java/com/mango/moshen/vip/VipMainViewModel.kt @@ -12,7 +12,7 @@ import com.mango.core.vip.VipBroadcastInfo import com.mango.core.vip.VipInfo import com.mango.core.vip.VipModel -class VipViewModel : BaseViewModel() { +class VipMainViewModel : BaseViewModel() { private val _authInfosLiveData = MutableLiveData>() @@ -39,9 +39,6 @@ class VipViewModel : BaseViewModel() { private val _vipBroadcastInfoLiveData = MutableLiveData>() val vipBroadcastInfoLiveData: LiveData> = _vipBroadcastInfoLiveData - private val _enterHideLiveData = MutableLiveData() - val enterHideLiveData: LiveData = _enterHideLiveData - private val _chargeBeanLiveData = MutableLiveData() val chargeBeanLiveData: LiveData = _chargeBeanLiveData @@ -124,22 +121,6 @@ class VipViewModel : BaseViewModel() { ) } - fun changeInvisibleInRoom(open: Boolean) { - safeLaunch( - true, - onError = { - it.message.toast() - _enterHideLiveData.value = !open - }, - block = { - VipModel.changeInvisibleInRoom(open) - _enterHideLiveData.value = open - UserModel.get().cacheLoginUserInfo?.userVipInfoVO?.enterHide = open - "设置成功".toast() - } - ) - } - fun onItemSelect(position: Int) { _currVipInfoLiveData.value = vipInfosLiveData.value?.getOrNull(position) _pageLiveData.value = position diff --git a/app/src/main/java/com/mango/moshen/vip/VipSettingActivity.kt b/app/src/main/java/com/mango/moshen/vip/VipSettingActivity.kt index ec95d6f8d..e6701b44d 100644 --- a/app/src/main/java/com/mango/moshen/vip/VipSettingActivity.kt +++ b/app/src/main/java/com/mango/moshen/vip/VipSettingActivity.kt @@ -4,25 +4,31 @@ import android.annotation.SuppressLint import android.content.Context import android.content.Intent import androidx.activity.viewModels -import com.netease.nim.uikit.StatusBarUtil +import androidx.core.view.isVisible +import com.mango.core.user.UserModel import com.mango.moshen.R import com.mango.moshen.base.BaseViewBindingActivity import com.mango.moshen.databinding.ActivityVipSettingBinding -import com.mango.core.user.UserModel +import com.netease.nim.uikit.StatusBarUtil class VipSettingActivity : BaseViewBindingActivity() { companion object { @JvmStatic - fun start(context: Context) { + fun start(context: Context, isShowEnterHide: Boolean, isShowLookHide: Boolean) { val starter = Intent(context, VipSettingActivity::class.java) + starter.putExtra("isShowEnterHide", isShowEnterHide) + starter.putExtra("isShowLookHide", isShowLookHide) context.startActivity(starter) } } - private val vipViewModel: VipViewModel by viewModels() + private val vipViewModel: VipSettingViewModel by viewModels() + + private val isShowEnterHide by lazy { intent.getBooleanExtra("isShowEnterHide",false) } + private val isShowLookHide by lazy { intent.getBooleanExtra("isShowLookHide",false) } @SuppressLint("SetTextI18n") override fun init() { @@ -38,12 +44,22 @@ class VipSettingActivity : BaseViewBindingActivity() vipViewModel.enterHideLiveData.observe(this) { binding.switchHideGoRoom.isOn = it == true } - - binding.switchHideGoRoom.isOn = UserModel.get().cacheLoginUserInfo?.userVipInfoVO?.enterHide == true - + binding.switchHideGoRoom.isOn = + UserModel.get().cacheLoginUserInfo?.userVipInfoVO?.enterHide == true binding.switchHideGoRoom.setOnSwitchStateChangeListener { vipViewModel.changeInvisibleInRoom(it) } + binding.groupHideGoRoom.isVisible = isShowEnterHide + + vipViewModel.lookHideLiveData.observe(this) { + binding.switchHideLookUser.isOn = it == true + } + binding.switchHideLookUser.isOn = + UserModel.get().cacheLoginUserInfo?.userVipInfoVO?.lookHomepageHide == true + binding.switchHideLookUser.setOnSwitchStateChangeListener { + vipViewModel.changeInvisibleLookHomepage(it) + } + binding.groupHideLookUser.isVisible = isShowLookHide } diff --git a/app/src/main/java/com/mango/moshen/vip/VipSettingViewModel.kt b/app/src/main/java/com/mango/moshen/vip/VipSettingViewModel.kt new file mode 100644 index 000000000..5fe827b4e --- /dev/null +++ b/app/src/main/java/com/mango/moshen/vip/VipSettingViewModel.kt @@ -0,0 +1,51 @@ +package com.mango.moshen.vip + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import com.mango.core.user.UserModel +import com.mango.core.utils.toast +import com.mango.core.vip.VipModel +import com.mango.moshen.base.BaseViewModel + +class VipSettingViewModel : BaseViewModel() { + + private val _enterHideLiveData = MutableLiveData() + val enterHideLiveData: LiveData = _enterHideLiveData + + private val _lookHideLiveData = MutableLiveData() + val lookHideLiveData: LiveData = _lookHideLiveData + + + fun changeInvisibleInRoom(open: Boolean) { + safeLaunch( + true, + onError = { + it.message.toast() + _enterHideLiveData.value = !open + }, + block = { + VipModel.changeInvisibleInRoom(open) + _enterHideLiveData.value = open + UserModel.get().cacheLoginUserInfo?.userVipInfoVO?.enterHide = open + "设置成功".toast() + } + ) + } + + fun changeInvisibleLookHomepage(open: Boolean) { + safeLaunch( + true, + onError = { + it.message.toast() + _lookHideLiveData.value = !open + }, + block = { + VipModel.changeInvisibleLookHomepage(open) + _lookHideLiveData.value = open + UserModel.get().cacheLoginUserInfo?.userVipInfoVO?.lookHomepageHide = open + "设置成功".toast() + } + ) + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/mango/moshen/vip/VipUpgradeDialog.kt b/app/src/main/java/com/mango/moshen/vip/VipUpgradeDialog.kt index 2c82133a3..9245cd5f8 100644 --- a/app/src/main/java/com/mango/moshen/vip/VipUpgradeDialog.kt +++ b/app/src/main/java/com/mango/moshen/vip/VipUpgradeDialog.kt @@ -26,7 +26,7 @@ class VipUpgradeDialog : BaseDialog() { } } - private val vm: VipViewModel by activityViewModels() + private val vm: VipMainViewModel by activityViewModels() private val vipInfo by lazy { requireArguments().getSerializable("vipInfo") as VipInfo } diff --git a/app/src/module_labour_union/res/layout/activity_vip_setting.xml b/app/src/module_labour_union/res/layout/activity_vip_setting.xml index e03a1abc5..e5024d7ae 100644 --- a/app/src/module_labour_union/res/layout/activity_vip_setting.xml +++ b/app/src/module_labour_union/res/layout/activity_vip_setting.xml @@ -16,7 +16,6 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> - + + + + + + + + + \ No newline at end of file diff --git a/core/src/main/java/com/mango/core/vip/UserVipInfo.kt b/core/src/main/java/com/mango/core/vip/UserVipInfo.kt index 0382e16fc..591d02635 100644 --- a/core/src/main/java/com/mango/core/vip/UserVipInfo.kt +++ b/core/src/main/java/com/mango/core/vip/UserVipInfo.kt @@ -9,5 +9,6 @@ data class UserVipInfo( val friendNickColour: String = "", val preventKick: Boolean = false, var enterHide: Boolean = false, + var lookHomepageHide: Boolean = false, val enterRoomEffects: String = "" ) : Serializable diff --git a/core/src/main/java/com/mango/core/vip/VipModel.kt b/core/src/main/java/com/mango/core/vip/VipModel.kt index 928641803..73a589979 100644 --- a/core/src/main/java/com/mango/core/vip/VipModel.kt +++ b/core/src/main/java/com/mango/core/vip/VipModel.kt @@ -39,6 +39,11 @@ object VipModel : BaseModel() { api.changeInvisibleInRoom(open) } + suspend fun changeInvisibleLookHomepage(open: Boolean): String? = + launchRequest { + api.changeInvisibleLookHomepage(open) + } + suspend fun getVipRank(): VipRankInfo? = launchRequest { api.getVipRank() @@ -105,6 +110,14 @@ object VipModel : BaseModel() { @GET("/vip/changeInvisibleInRoom") suspend fun changeInvisibleInRoom(@Query("open") open: Boolean): ServiceResult + /** + * 开关隐身访问主页 + * + * @return + */ + @GET("/vip/changeInvisibleLookHomepage") + suspend fun changeInvisibleLookHomepage(@Query("open") open: Boolean): ServiceResult + /** * 获取贵族排行榜信息 *