Ver código fonte

feat: bugfix

DoggyZhang 3 meses atrás
pai
commit
4e201d59d1
42 arquivos alterados com 103 adições e 252 exclusões
  1. 1 1
      app/src/main/java/com/adealink/weparty/aab/IService.kt
  2. 2 2
      app/src/main/java/com/adealink/weparty/commonui/dialogfragment/BaseDialogFragment.kt
  3. 3 3
      app/src/main/java/com/adealink/weparty/module/account/AccountModule.kt
  4. 3 3
      app/src/main/java/com/adealink/weparty/module/activity/ActivityModule.kt
  5. 3 3
      app/src/main/java/com/adealink/weparty/module/im/IMModule.kt
  6. 3 3
      app/src/main/java/com/adealink/weparty/module/order/OrderModule.kt
  7. 3 3
      app/src/main/java/com/adealink/weparty/module/playmate/PlaymateModule.kt
  8. 3 4
      app/src/main/java/com/adealink/weparty/module/profile/ProfileModule.kt
  9. 3 0
      app/src/main/java/com/adealink/weparty/module/profile/data/ProfileData.kt
  10. 3 3
      app/src/main/java/com/adealink/weparty/module/setting/SettingModule.kt
  11. 3 3
      app/src/main/java/com/adealink/weparty/module/share/ShareModule.kt
  12. 3 3
      app/src/main/java/com/adealink/weparty/module/wallet/WalletModule.kt
  13. 3 3
      app/src/main/java/com/adealink/weparty/module/webview/WebModule.kt
  14. 1 1
      module/account/src/main/java/com/adealink/weparty/account/AccountServiceImpl.kt
  15. 1 0
      module/account/src/main/java/com/adealink/weparty/account/login/BaseLoginActivity.kt
  16. 2 4
      module/account/src/main/java/com/adealink/weparty/account/login/LoginActivity.kt
  17. 9 1
      module/account/src/main/java/com/adealink/weparty/account/login/LoginDialog.kt
  18. 0 103
      module/account/src/main/java/com/adealink/weparty/account/login/component/LoginWayComp.kt
  19. 1 3
      module/account/src/main/java/com/adealink/weparty/account/register/RegisterProfileActivity.kt
  20. 2 2
      module/account/src/main/res/layout/fragment_register_select_category.xml
  21. 0 70
      module/account/src/main/res/layout/layout_login_way.xml
  22. 2 0
      module/account/src/main/res/values-in/strings.xml
  23. 2 0
      module/account/src/main/res/values-zh/strings.xml
  24. 2 2
      module/account/src/main/res/values/strings.xml
  25. 1 1
      module/activity/src/main/java/com/adealink/weparty/activity/ActivityServiceImpl.kt
  26. 1 1
      module/im/src/main/java/com/adealink/weparty/im/IMServiceImpl.kt
  27. 1 1
      module/order/src/main/java/com/adealink/weparty/order/OrderServiceImpl.kt
  28. 1 1
      module/playmate/src/main/java/com/adealink/weparty/playmate/PlaymateServiceImpl.kt
  29. 6 1
      module/playmate/src/main/java/com/adealink/weparty/playmate/detail/comp/PlaymateDetailBottomComp.kt
  30. 2 1
      module/playmate/src/main/res/layout/item_playmate_home_list.xml
  31. 1 1
      module/profile/src/main/java/com/adealink/weparty/profile/ProfileServiceImpl.kt
  32. 1 1
      module/profile/src/main/java/com/adealink/weparty/profile/UserProfileActivity.kt
  33. 2 8
      module/profile/src/main/java/com/adealink/weparty/profile/comp/ProfileHeaderComp.kt
  34. 5 2
      module/profile/src/main/java/com/adealink/weparty/profile/comp/ProfileToolBarViewComp.kt
  35. 1 0
      module/profile/src/main/res/layout/layout_user_profile_header.xml
  36. 10 6
      module/profile/src/main/res/layout/layout_user_profile_topbar.xml
  37. 1 1
      module/setting/src/main/java/com/adealink/weparty/setting/SettingServiceImpl.kt
  38. 1 1
      module/share/src/main/java/com/adealink/weparty/share/ShareServiceImpl.kt
  39. 1 1
      module/wallet/src/main/java/com/adealink/weparty/wallet/WalletServiceImpl.kt
  40. 8 0
      module/wallet/src/main/java/com/adealink/weparty/wallet/recharge/adapter/RechargeItemViewBinder.kt
  41. 2 1
      module/wallet/src/main/java/com/adealink/weparty/wallet/recharge/data/WalletData.kt
  42. 0 4
      module/wallet/src/main/java/com/adealink/weparty/wallet/recharge/dialog/RechargeDialog.kt

+ 1 - 1
app/src/main/java/com/adealink/weparty/aab/IService.kt

@@ -3,5 +3,5 @@ package com.adealink.weparty.aab
 import com.adealink.frame.aab.IService
 
 interface IService<T : IService<T>> : IService<T> {
-    fun logout()
+    fun onLogout()
 }

+ 2 - 2
app/src/main/java/com/adealink/weparty/commonui/dialogfragment/BaseDialogFragment.kt

@@ -152,12 +152,12 @@ open class BaseDialogFragment(@LayoutRes open val layoutId: Int) : DialogFragmen
         }
     }
 
-    fun showLoading() {
+    open fun showLoading() {
         initLoadingDialog()
         loadingDialog?.show()
     }
 
-    fun dismissLoading() {
+    open fun dismissLoading() {
         loadingDialog?.dismiss()
     }
 

+ 3 - 3
app/src/main/java/com/adealink/weparty/module/account/AccountModule.kt

@@ -100,7 +100,7 @@ object AccountModule : BaseDynamicModule<IAccountService>(IAccountService::class
 
             }
 
-            override fun logout() {
+            override fun onLogout() {
             }
 
         }
@@ -118,7 +118,7 @@ object AccountModule : BaseDynamicModule<IAccountService>(IAccountService::class
         getService().refreshToken()
     }
 
-    override fun logout() {
-        getService().logout()
+    override fun onLogout() {
+        getService().onLogout()
     }
 }

+ 3 - 3
app/src/main/java/com/adealink/weparty/module/activity/ActivityModule.kt

@@ -19,13 +19,13 @@ object ActivityModule : BaseDynamicModule<IActivityService>(IActivityService::cl
                 return null
             }
 
-            override fun logout() {
+            override fun onLogout() {
 
             }
         }
     }
 
-    override fun logout() {
-        getService().logout()
+    override fun onLogout() {
+        getService().onLogout()
     }
 }

+ 3 - 3
app/src/main/java/com/adealink/weparty/module/im/IMModule.kt

@@ -31,7 +31,7 @@ object IMModule : BaseDynamicModule<IIMService>(IIMService::class), IIMService {
             override fun appOnCreateSubTask(application: Application) {
             }
 
-            override fun logout() {
+            override fun onLogout() {
             }
 
             override fun isLogin(): Boolean {
@@ -59,8 +59,8 @@ object IMModule : BaseDynamicModule<IIMService>(IIMService::class), IIMService {
         getService().appOnCreateSubTask(application)
     }
 
-    override fun logout() {
-        getService().logout()
+    override fun onLogout() {
+        getService().onLogout()
     }
 
     override fun isLogin(): Boolean {

+ 3 - 3
app/src/main/java/com/adealink/weparty/module/order/OrderModule.kt

@@ -24,7 +24,7 @@ object OrderModule : BaseDynamicModule<IOrderService>(IOrderService::class),
                 return null
             }
 
-            override fun logout() {
+            override fun onLogout() {
             }
 
             override fun getOrderViewModel(owner: ViewModelStoreOwner): IOrderViewModel? {
@@ -37,8 +37,8 @@ object OrderModule : BaseDynamicModule<IOrderService>(IOrderService::class),
         }
     }
 
-    override fun logout() {
-        getService().logout()
+    override fun onLogout() {
+        getService().onLogout()
     }
 
     override fun getOrderViewModel(owner: ViewModelStoreOwner): IOrderViewModel? {

+ 3 - 3
app/src/main/java/com/adealink/weparty/module/playmate/PlaymateModule.kt

@@ -30,7 +30,7 @@ object PlaymateModule : BaseDynamicModule<IPlaymateService>(IPlaymateService::cl
                 return null
             }
 
-            override fun logout() {
+            override fun onLogout() {
             }
         }
     }
@@ -43,7 +43,7 @@ object PlaymateModule : BaseDynamicModule<IPlaymateService>(IPlaymateService::cl
         return getService().getPlaymateDetailViewModel(owner)
     }
 
-    override fun logout() {
-        getService().logout()
+    override fun onLogout() {
+        getService().onLogout()
     }
 }

+ 3 - 4
app/src/main/java/com/adealink/weparty/module/profile/ProfileModule.kt

@@ -3,7 +3,6 @@ package com.adealink.weparty.module.profile
 import androidx.lifecycle.ViewModelStoreOwner
 import com.adealink.frame.aab.BaseDynamicModule
 import com.adealink.frame.aab.constant.AABModuleNotInitError
-import com.adealink.frame.base.IError
 import com.adealink.frame.base.Rlt
 import com.adealink.weparty.R
 import com.adealink.weparty.module.profile.data.UserConfigType
@@ -95,7 +94,7 @@ object ProfileModule : BaseDynamicModule<IProfileService>(IProfileService::class
                 return null
             }
 
-            override fun logout() {
+            override fun onLogout() {
 
             }
 
@@ -171,8 +170,8 @@ object ProfileModule : BaseDynamicModule<IProfileService>(IProfileService::class
         return getService().getBlackViewModel(owner)
     }
 
-    override fun logout() {
-        getService().logout()
+    override fun onLogout() {
+        getService().onLogout()
     }
 
     override fun updateCacheUserInfo(userInfo: UserInfo) {

+ 3 - 0
app/src/main/java/com/adealink/weparty/module/profile/data/ProfileData.kt

@@ -83,6 +83,9 @@ data class UserInfo(
     @SerializedName("skills") val skills: List<UserPlaymateSkill>? = null, //技能商品简易信息
     @GsonNullable
     @SerializedName("rated") val rated: Boolean? = null, //今天是否已打分
+    @GsonNullable
+    @SerializedName("fansCount") val fansCount: Int? = null, //粉丝数
+
 
 ) : Parcelable {
 

+ 3 - 3
app/src/main/java/com/adealink/weparty/module/setting/SettingModule.kt

@@ -23,7 +23,7 @@ object SettingModule : BaseDynamicModule<ISettingService>(ISettingService::class
             override fun showLanguageSettingDialog(fragmentManager: FragmentManager) {
             }
 
-            override fun logout() {
+            override fun onLogout() {
 
             }
         }
@@ -33,7 +33,7 @@ object SettingModule : BaseDynamicModule<ISettingService>(ISettingService::class
         getService().showLanguageSettingDialog(fragmentManager)
     }
 
-    override fun logout() {
-        getService().logout()
+    override fun onLogout() {
+        getService().onLogout()
     }
 }

+ 3 - 3
app/src/main/java/com/adealink/weparty/module/share/ShareModule.kt

@@ -19,13 +19,13 @@ object ShareModule : BaseDynamicModule<IShareService>(IShareService::class),
                 return null
             }
 
-            override fun logout() {
+            override fun onLogout() {
 
             }
         }
     }
 
-    override fun logout() {
-        getService().logout()
+    override fun onLogout() {
+        getService().onLogout()
     }
 }

+ 3 - 3
app/src/main/java/com/adealink/weparty/module/wallet/WalletModule.kt

@@ -24,7 +24,7 @@ object WalletModule : BaseDynamicModule<IWalletService>(IWalletService::class),
                 return null
             }
 
-            override fun logout() {
+            override fun onLogout() {
 
             }
 
@@ -81,7 +81,7 @@ object WalletModule : BaseDynamicModule<IWalletService>(IWalletService::class),
         getService().showRechargeDialog(fm, currency)
     }
 
-    override fun logout() {
-        getService().logout()
+    override fun onLogout() {
+        getService().onLogout()
     }
 }

+ 3 - 3
app/src/main/java/com/adealink/weparty/module/webview/WebModule.kt

@@ -34,14 +34,14 @@ object WebModule : BaseDynamicModule<IWebService>(IWebService::class), IWebServi
                 return null
             }
 
-            override fun logout() {
+            override fun onLogout() {
             }
 
         }
     }
 
-    override fun logout() {
-        getService().logout()
+    override fun onLogout() {
+        getService().onLogout()
     }
 
 }

+ 1 - 1
module/account/src/main/java/com/adealink/weparty/account/AccountServiceImpl.kt

@@ -65,7 +65,7 @@ class AccountServiceImpl : IAccountService {
         return this
     }
 
-    override fun logout() {
+    override fun onLogout() {
 
     }
 }

+ 1 - 0
module/account/src/main/java/com/adealink/weparty/account/login/BaseLoginActivity.kt

@@ -21,6 +21,7 @@ abstract class BaseLoginActivity : BaseActivity() {
     fun handleLoginSuccess(result: LoginResult, authType: ThirdType?) {
         Log.i(TAG_ACCOUNT_LOGIN, "handleLoginSuccess: $result, authType: $authType")
         BaseStatEvent.setUserId(AccountModule.uid.safeToLong())
+        dismissLoading()
         when {
             needGoRegister(result.userInfo) -> {
                 //需要注册,跳转注册页

+ 2 - 4
module/account/src/main/java/com/adealink/weparty/account/login/LoginActivity.kt

@@ -14,6 +14,7 @@ import com.adealink.weparty.R
 import com.adealink.weparty.account.login.data.ThirdType
 import com.adealink.weparty.account.login.viewmodel.LoginViewModel
 import com.adealink.weparty.account.viewModel.AccountViewModelFactory
+import com.adealink.weparty.commonui.toast.util.showToast
 import com.adealink.weparty.commonui.widget.CommonDialog
 import com.adealink.weparty.module.account.Account
 import com.adealink.weparty.module.account.AccountModule
@@ -101,10 +102,7 @@ class LoginActivity : BaseLoginActivity() {
             }
 
             UserKickReason.REASON_LOCAL_KICK_TOKEN_EXPIRE.value -> {
-                CommonDialog.Builder()
-                    .message(getCompatString(com.adealink.weparty.account.R.string.account_token_expire))
-                    .setShowDefaultCancel(false)
-                    .build().show(supportFragmentManager)
+                showToast(getCompatString(com.adealink.weparty.account.R.string.account_token_expire))
             }
 
             else -> {

+ 9 - 1
module/account/src/main/java/com/adealink/weparty/account/login/LoginDialog.kt

@@ -149,7 +149,7 @@ class LoginDialog : BaseDialogFragment(R.layout.dialog_login) {
             dismissLoading()
         }
         loginViewModel.loginLD.observe(viewLifecycleOwner) { rlt ->
-            (activity as? BaseActivity)?.dismissLoading()
+            dismissLoading()
             val authType = rlt.authType
             when (val result = rlt.result) {
                 is Rlt.Success -> {
@@ -179,6 +179,14 @@ class LoginDialog : BaseDialogFragment(R.layout.dialog_login) {
         }
     }
 
+    override fun showLoading() {
+        (activity as? BaseActivity)?.showLoading()
+    }
+
+    override fun dismissLoading() {
+        (activity as? BaseActivity)?.dismissLoading()
+    }
+
     private fun initUserAgreement() {
         binding.userAgreementTv.movementMethod = LinkMovementMethod.getInstance()
         val serviceTerms = getCompatString(R.string.account_service_terms)

+ 0 - 103
module/account/src/main/java/com/adealink/weparty/account/login/component/LoginWayComp.kt

@@ -1,103 +0,0 @@
-package com.adealink.weparty.account.login.component
-
-import androidx.lifecycle.LifecycleOwner
-import com.adealink.frame.base.Rlt
-import com.adealink.frame.mvvm.view.ViewComponent
-import com.adealink.frame.mvvm.viewmodel.activityViewModels
-import com.adealink.frame.router.Router
-import com.adealink.frame.util.onClick
-import com.adealink.weparty.account.constant.AccountLoginAuthCancelError
-import com.adealink.weparty.account.constant.showLoginFailedTip
-import com.adealink.weparty.account.databinding.LayoutLoginWayBinding
-import com.adealink.weparty.account.login.BaseLoginActivity
-import com.adealink.weparty.account.login.data.ThirdType
-import com.adealink.weparty.account.login.viewmodel.LoginViewModel
-import com.adealink.weparty.account.viewModel.AccountViewModelFactory
-import com.adealink.weparty.commonui.BaseActivity
-import com.adealink.weparty.module.account.Account
-
-
-class LoginWayComp(
-    lifecycleOwner: LifecycleOwner,
-    val binding: LayoutLoginWayBinding,
-    private val loginWays: Set<ThirdType>,
-) : ViewComponent(lifecycleOwner) {
-
-    private val loginViewModel by activityViewModels<LoginViewModel> { AccountViewModelFactory() }
-//    private val smsCountrySelectViewModel by viewModels<SmsCountrySelectViewModel>()
-
-
-    override fun onCreate() {
-        super.onCreate()
-        initViews()
-        observeViewModel()
-
-//        smsCountrySelectViewModel.getAllCountryList()
-    }
-
-    private fun initViews() {
-        binding.phoneLogin.onClick {
-            Router.build(requireActivity(), Account.Phone.INPUT)
-                .start()
-        }
-
-        binding.ivLoginEmail.onClick(wait = 1000) {
-            Router.build(requireActivity(), Account.Email.PATH_LOGIN)
-                .start()
-        }
-
-    }
-
-    private fun login(authType: ThirdType) {
-        activity?.let {
-            (it as? BaseActivity)?.showLoading()
-            loginViewModel.startAuthLogin(authType, it)
-        }
-    }
-
-    private fun observeViewModel() {
-//        smsCountrySelectViewModel.countryListLD.observe(this) {
-//            if (it.isEmpty()) {
-//                binding.phoneLogin.gone()
-//                return@observe
-//            }
-//
-//            val simCountryCode = getSimCountryCode() ?: ""
-//            if (simCountryCode.isEmpty()) {
-//                binding.phoneLogin.show()
-//                return@observe
-//            }
-//
-//            if (smsCountrySelectViewModel.containsCountry(simCountryCode) || simCountryCode == "CN") {
-//                binding.phoneLogin.show()
-//                return@observe
-//            }
-//
-//            binding.phoneLogin.gone()
-//        }
-
-        loginViewModel.loginLD.observe(viewLifecycleOwner) { rlt ->
-            (activity as? BaseActivity)?.dismissLoading()
-            val authType = rlt.authType
-            when (val result = rlt.result) {
-                is Rlt.Success -> {
-                    (activity as? BaseLoginActivity)?.handleLoginSuccess(
-                        result.data,
-                        authType,
-                    )
-                }
-
-                is Rlt.Failed -> {
-                    when (result.error) {
-                        //取消授权
-                        is AccountLoginAuthCancelError -> {
-                            return@observe
-                        }
-                    }
-                    showLoginFailedTip(result)
-                }
-            }
-        }
-    }
-
-}

+ 1 - 3
module/account/src/main/java/com/adealink/weparty/account/register/RegisterProfileActivity.kt

@@ -1,7 +1,6 @@
 package com.adealink.weparty.account.register
 
 import androidx.activity.viewModels
-import androidx.fragment.app.activityViewModels
 import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.frame.router.Router
 import com.adealink.frame.router.annotation.BindExtra
@@ -17,7 +16,6 @@ import com.adealink.weparty.account.viewModel.AccountViewModelFactory
 import com.adealink.weparty.commonui.BaseActivity
 import com.adealink.weparty.module.account.Account
 import com.adealink.weparty.module.account.AccountModule
-import kotlin.getValue
 
 @RouterUri(path = [Account.Register.PATH], desc = "注册页面")
 class RegisterProfileActivity : BaseActivity() {
@@ -93,7 +91,7 @@ class RegisterProfileActivity : BaseActivity() {
         }
         super.onBackPressed()
         //回到登录页
-        AccountModule.logout()
+        AccountModule.logout(true)
     }
 
     companion object {

+ 2 - 2
module/account/src/main/res/layout/fragment_register_select_category.xml

@@ -47,7 +47,7 @@
         android:ellipsize="end"
         android:gravity="start"
         android:includeFontPadding="false"
-        android:text="@string/account_register_select_gender"
+        android:text="@string/account_register_select_category"
         android:textColor="@color/color_FF1D2129"
         android:textSize="24sp"
         app:layout_constrainedWidth="true"
@@ -63,7 +63,7 @@
         android:ellipsize="end"
         android:gravity="start"
         android:includeFontPadding="false"
-        android:text="@string/account_register_select_gender_tips"
+        android:text="@string/account_register_select_category_tips"
         android:textColor="@color/color_FF4E5969"
         android:textSize="14sp"
         app:layout_constrainedWidth="true"

+ 0 - 70
module/account/src/main/res/layout/layout_login_way.xml

@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content">
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:id="@+id/layout_or"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent">
-
-        <View
-            android:id="@+id/start_line"
-            android:layout_width="90dp"
-            android:layout_height="0.5dp"
-            android:background="@color/color_66FFFFFF"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/or"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="10dp"
-            android:text="@string/common_or"
-            android:textColor="@color/color_CCFFFFFF"
-            android:textSize="12sp"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintStart_toEndOf="@+id/start_line"
-            app:layout_constraintTop_toTopOf="parent" />
-
-        <View
-            android:id="@+id/end_line"
-            android:layout_width="90dp"
-            android:layout_height="0.5dp"
-            android:layout_marginStart="10dp"
-            android:background="@color/color_66FFFFFF"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintStart_toEndOf="@+id/or"
-            app:layout_constraintTop_toTopOf="parent" />
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-
-    <androidx.appcompat.widget.AppCompatImageView
-        android:id="@+id/phone_login"
-        android:layout_width="40dp"
-        android:layout_height="40dp"
-        android:layout_marginTop="12dp"
-        android:src="@drawable/account_phone_ic"
-        app:layout_constraintEnd_toStartOf="@+id/iv_login_email"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/layout_or" />
-
-    <androidx.appcompat.widget.AppCompatImageView
-        android:id="@+id/iv_login_email"
-        android:layout_width="40dp"
-        android:layout_height="40dp"
-        android:layout_marginTop="8dp"
-        android:src="@drawable/account_login_email"
-        android:visibility="gone"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toEndOf="@+id/phone_login"
-        app:layout_constraintTop_toBottomOf="@+id/layout_or" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 2 - 0
module/account/src/main/res/values-in/strings.xml

@@ -33,6 +33,8 @@
     <string name="account_copy_device_id_fail">Gagal mendapatkan ID perangkat</string>
     <string name="account_register_select_gender">Pilih jenis kelamin</string>
     <string name="account_register_select_gender_tips">Pendaftaran tidak dapat diubah setelah pendaftaran.</string>
+    <string name="account_register_select_category">Pilih konten yang Anda sukai</string>
+    <string name="account_register_select_category_tips">Kami akan merekomendasikannya kepada Anda di halaman beranda.</string>
     <string name="account_register_next">Langkah Selanjutnya</string>
     <string name="account_register_nice">Bagus</string>
     <string name="account_register_complete_userinfo">Lanjutkan memperkaya gambar Anda</string>

+ 2 - 0
module/account/src/main/res/values-zh/strings.xml

@@ -32,6 +32,8 @@
     <string name="account_copy_device_id_fail">获取设备 ID 失败</string>
     <string name="account_register_select_gender">选择性别</string>
     <string name="account_register_select_gender_tips">注册后无法修改。</string>
+    <string name="account_register_select_category">选择你喜欢的内容</string>
+    <string name="account_register_select_category_tips">将在首页为你推荐</string>
     <string name="account_register_next">下一步</string>
     <string name="account_register_nice">精美</string>
     <string name="account_register_complete_userinfo">继续完善您的形象</string>

+ 2 - 2
module/account/src/main/res/values/strings.xml

@@ -33,8 +33,8 @@
    <string name="account_copy_device_id_fail">Failed to obtain device ID</string>
    <string name="account_register_select_gender">Select gender</string>
    <string name="account_register_select_gender_tips">Registration cannot be modified after registration.</string>
-   <string name="account_register_select_category">Select gender</string>
-   <string name="account_register_select_category_tips">Select gender</string>
+   <string name="account_register_select_category">Choose the content you like</string>
+   <string name="account_register_select_category_tips">We will recommend it to you on the homepage.</string>
    <string name="account_register_next">Next Step</string>
    <string name="account_register_nice">Nice</string>
    <string name="account_register_complete_userinfo">Continue to enrich your image</string>

+ 1 - 1
module/activity/src/main/java/com/adealink/weparty/activity/ActivityServiceImpl.kt

@@ -17,7 +17,7 @@ class ActivityServiceImpl : IActivityService {
         return this
     }
 
-    override fun logout() {
+    override fun onLogout() {
 
     }
 

+ 1 - 1
module/im/src/main/java/com/adealink/weparty/im/IMServiceImpl.kt

@@ -53,7 +53,7 @@ class IMServiceImpl : IIMService {
         return this
     }
 
-    override fun logout() {
+    override fun onLogout() {
 
     }
 

+ 1 - 1
module/order/src/main/java/com/adealink/weparty/order/OrderServiceImpl.kt

@@ -21,7 +21,7 @@ class OrderServiceImpl : IOrderService {
         App.instance.networkService.getHttpService(OrderHttpService::class.java)
     }
 
-    override fun logout() {
+    override fun onLogout() {
 
     }
 

+ 1 - 1
module/playmate/src/main/java/com/adealink/weparty/playmate/PlaymateServiceImpl.kt

@@ -31,7 +31,7 @@ class PlaymateServiceImpl : IPlaymateService {
         return ViewModelProvider(owner)[PlaymateDetailViewModel::class.java]
     }
 
-    override fun logout() {
+    override fun onLogout() {
 
     }
 

+ 6 - 1
module/playmate/src/main/java/com/adealink/weparty/playmate/detail/comp/PlaymateDetailBottomComp.kt

@@ -48,12 +48,17 @@ class PlaymateDetailBottomComp(
 
     private fun observeViewModel() {
         detailViewModel.detailLD.observe(viewLifecycleOwner) {
+            if (it?.uid == ProfileModule.getMyUid()) {
+                binding.root.gone()
+                return@observe
+            }
+            binding.root.show()
             updateBottom(it)
         }
     }
 
     private fun updateBottom(data: PlaymateDetailData?) {
-        if (data == null || data.uid == ProfileModule.getMyUid()) {
+        if (data == null) {
             binding.vPrice.gone()
         } else {
             binding.vPrice.show()

+ 2 - 1
module/playmate/src/main/res/layout/item_playmate_home_list.xml

@@ -4,7 +4,8 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:background="@drawable/playmate_list_item_bg">
+    android:background="@drawable/playmate_list_item_bg"
+    android:paddingBottom="10dp">
 
     <com.adealink.weparty.commonui.ripple.RippleView
         android:id="@+id/v_online"

+ 1 - 1
module/profile/src/main/java/com/adealink/weparty/profile/ProfileServiceImpl.kt

@@ -95,7 +95,7 @@ class ProfileServiceImpl : IProfileService {
         return ViewModelProvider(owner, ProfileViewModelFactory())[BlackViewModel::class.java]
     }
 
-    override fun logout() {
+    override fun onLogout() {
         profileManager.clear()
     }
 

+ 1 - 1
module/profile/src/main/java/com/adealink/weparty/profile/UserProfileActivity.kt

@@ -90,7 +90,7 @@ class UserProfileActivity : BaseActivity() {
             followViewModel.isFollow(userUid)
             blackViewModel.isBlack(userUid)
         }
-        followViewModel.getFansCount()
+        profileViewModel.pullUserInfoBy(userUid, true)
     }
 
     internal inner class ProfilePageAdapter : BaseActivityTabFragmentStateAdapter(this) {

+ 2 - 8
module/profile/src/main/java/com/adealink/weparty/profile/comp/ProfileHeaderComp.kt

@@ -3,7 +3,6 @@ package com.adealink.weparty.profile.comp
 import android.annotation.SuppressLint
 import androidx.lifecycle.LifecycleOwner
 import com.adealink.frame.aab.util.getCompatString
-import com.adealink.frame.mvvm.viewmodel.activityViewModels
 import com.adealink.frame.util.copyToClipBoard
 import com.adealink.frame.util.onClick
 import com.adealink.weparty.commonui.ext.gone
@@ -11,8 +10,6 @@ import com.adealink.weparty.commonui.ext.show
 import com.adealink.weparty.commonui.toast.util.showToast
 import com.adealink.weparty.module.profile.data.UserInfo
 import com.adealink.weparty.profile.databinding.LayoutUserProfileHeaderBinding
-import com.adealink.weparty.profile.relation.viewmodel.FollowViewModel
-import com.adealink.weparty.profile.viewmodel.ProfileViewModelFactory
 import com.adealink.weparty.util.formatStar
 import com.adealink.weparty.R as APP_R
 
@@ -22,8 +19,6 @@ class ProfileHeaderComp(
     private val binding: LayoutUserProfileHeaderBinding,
 ) : BaseProfileViewComp(lifecycleOwner, userUid) {
 
-    private val followViewModel by activityViewModels<FollowViewModel> { ProfileViewModelFactory() }
-
     override fun initView() {
         binding.tvUserId.onClick {
             copyUserId()
@@ -37,9 +32,6 @@ class ProfileHeaderComp(
         profileViewModel.userInfoLD.observe(viewLifecycleOwner) {
             updateUI(it)
         }
-        followViewModel.fansCountLD.observe(viewLifecycleOwner) {
-            binding.tvFans.text = getCompatString(APP_R.string.common_fans_num, it.toString())
-        }
     }
 
     @SuppressLint("SetTextI18n")
@@ -49,6 +41,8 @@ class ProfileHeaderComp(
         binding.vGender.setGender(userInfo?.gender)
         binding.vGender.setAge(userInfo?.age)
         binding.tvUserId.text = "ID ${userInfo?.uid}"
+        binding.tvFans.text =
+            getCompatString(APP_R.string.common_fans_num, userInfo?.fansCount ?: "")
         if (userInfo?.voiceBar.isNullOrEmpty() || !userInfo.isPlaymate()) {
             binding.vSound.gone()
         } else {

+ 5 - 2
module/profile/src/main/java/com/adealink/weparty/profile/comp/ProfileToolBarViewComp.kt

@@ -196,7 +196,6 @@ class ProfileToolBarViewComp(
         }
 
         if (isSelf) {
-            binding.topBar.btnShare.show()
             binding.topBar.btnShare.onClick {
                 goShare()
             }
@@ -206,7 +205,6 @@ class ProfileToolBarViewComp(
                 goEdit()
             }
         } else {
-            binding.topBar.btnShare.gone()
             binding.topBar.btnMore.show()
             binding.topBar.btnMore.onClick {
                 clickMore()
@@ -220,6 +218,11 @@ class ProfileToolBarViewComp(
         profileViewModel.userInfoLD.observe(viewLifecycleOwner) { userInfo ->
             binding.topBar.ivAvatar.setImageUrl(userInfo?.avatar)
             binding.topBar.tvUserName.text = userInfo?.nickName
+            if (isSelf && userInfo?.isPlaymate() == true) {
+                binding.topBar.btnShare.show()
+            } else {
+                binding.topBar.btnShare.gone()
+            }
         }
     }
 

+ 1 - 0
module/profile/src/main/res/layout/layout_user_profile_header.xml

@@ -68,6 +68,7 @@
             android:id="@+id/v_gender"
             style="@style/CommonGenderView"
             android:layout_marginEnd="24dp"
+            android:layout_marginStart="4dp"
             app:layout_constraintBottom_toBottomOf="@id/tv_name"
             app:layout_constraintEnd_toStartOf="@id/v_barrier_end"
             app:layout_constraintStart_toEndOf="@id/tv_name"

+ 10 - 6
module/profile/src/main/res/layout/layout_user_profile_topbar.xml

@@ -54,25 +54,27 @@
         android:layout_width="32dp"
         android:layout_height="32dp"
         android:padding="4dp"
-        tools:background="@drawable/profile_top_bar_button_bg"
+        android:visibility="gone"
         app:layout_constraintBottom_toBottomOf="@id/btn_edit"
         app:layout_constraintEnd_toStartOf="@id/btn_more"
         app:layout_constraintStart_toEndOf="@id/tv_user_name"
         app:layout_constraintTop_toTopOf="@id/btn_edit"
-        app:srcCompat="@drawable/profile_share_ic" />
+        app:srcCompat="@drawable/profile_share_ic"
+        tools:background="@drawable/profile_top_bar_button_bg"
+        tools:visibility="visible" />
 
     <androidx.appcompat.widget.AppCompatImageView
         android:id="@+id/btn_more"
         android:layout_width="32dp"
         android:layout_height="32dp"
-        android:padding="4dp"
-        tools:background="@drawable/profile_top_bar_button_bg"
         android:layout_marginStart="12dp"
+        android:padding="4dp"
         app:layout_constraintBottom_toBottomOf="@id/btn_edit"
         app:layout_constraintEnd_toStartOf="@id/btn_edit"
         app:layout_constraintStart_toEndOf="@id/btn_share"
         app:layout_constraintTop_toTopOf="@id/btn_edit"
-        app:srcCompat="@drawable/profile_more_ic" />
+        app:srcCompat="@drawable/profile_more_ic"
+        tools:background="@drawable/profile_top_bar_button_bg" />
 
     <androidx.constraintlayout.widget.ConstraintLayout
         android:id="@+id/btn_edit"
@@ -82,10 +84,12 @@
         android:background="@drawable/profile_edit_button_bg"
         android:minWidth="55dp"
         android:paddingHorizontal="6dp"
+        android:visibility="gone"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toEndOf="@id/btn_more"
-        app:layout_constraintTop_toTopOf="parent">
+        app:layout_constraintTop_toTopOf="parent"
+        tools:visibility="visible">
 
         <androidx.appcompat.widget.AppCompatImageView
             android:id="@+id/iv_edit"

+ 1 - 1
module/setting/src/main/java/com/adealink/weparty/setting/SettingServiceImpl.kt

@@ -17,7 +17,7 @@ class SettingServiceImpl : ISettingService {
         return this
     }
 
-    override fun logout() {
+    override fun onLogout() {
 
     }
 

+ 1 - 1
module/share/src/main/java/com/adealink/weparty/share/ShareServiceImpl.kt

@@ -17,7 +17,7 @@ class ShareServiceImpl : IShareService {
         return this
     }
 
-    override fun logout() {
+    override fun onLogout() {
 
     }
 

+ 1 - 1
module/wallet/src/main/java/com/adealink/weparty/wallet/WalletServiceImpl.kt

@@ -18,7 +18,7 @@ import com.adealink.weparty.wallet.viewmodel.WalletViewModelFactory
 @RegisterService(IWalletService::class)
 class WalletServiceImpl : IWalletService {
 
-    override fun logout() {
+    override fun onLogout() {
     }
 
 

+ 8 - 0
module/wallet/src/main/java/com/adealink/weparty/wallet/recharge/adapter/RechargeItemViewBinder.kt

@@ -10,6 +10,7 @@ import com.adealink.weparty.commonui.recycleview.adapter.multitype.ItemViewBinde
 import com.adealink.weparty.module.wallet.data.Currency
 import com.adealink.weparty.wallet.databinding.LayoutRechargeItemBinding
 import com.adealink.weparty.wallet.recharge.data.RechargeItemData
+import com.adealink.weparty.wallet.recharge.data.RechargeProduct.Companion.INVALID_PRODUCT
 import com.adealink.weparty.R as APP_R
 
 class RechargeItemViewBinder(
@@ -38,6 +39,13 @@ class RechargeItemViewBinder(
         holder.binding.root.onClick {
             onItemSelected.invoke(item)
         }
+        if (item.data == INVALID_PRODUCT) {
+            holder.binding.vBg.background = null
+            holder.binding.ivCurrency.setImageResource(0)
+            holder.binding.tvAmount.text = "--"
+            holder.binding.tvSpend.text = "--"
+            return
+        }
         when (currency) {
             Currency.BEAN -> {
                 holder.binding.ivCurrency.setImageResource(APP_R.drawable.common_wallet_bean_32_ic)

+ 2 - 1
module/wallet/src/main/java/com/adealink/weparty/wallet/recharge/data/WalletData.kt

@@ -20,8 +20,9 @@ data class RechargeProduct(
     @SerializedName("code") val productId: String, //用作查询Google充值档位(eg: com.jiehe.gami.3000)
 ) {
     companion object {
+        @JvmStatic
         val INVALID_PRODUCT = RechargeProduct(
-            "invalid",
+            "",
             0,
             0.0,
             "",

+ 0 - 4
module/wallet/src/main/java/com/adealink/weparty/wallet/recharge/dialog/RechargeDialog.kt

@@ -56,10 +56,6 @@ class RechargeDialog : BottomDialogFragment(R.layout.dialog_recharge) {
             selectRecharge(it)
         })
 
-        adapter.register(RechargeItemViewBinder(Currency.COIN) { it ->
-            selectRecharge(it)
-        })
-
         binding.rvRecharge.adapter = adapter
         binding.rvRecharge.layoutManager = GridLayoutManager(context, SPAN)
         binding.rvRecharge.addItemDecoration(