瀏覽代碼

feat: UI验收问题

XiaodongLin 11 月之前
父節點
當前提交
2c75f5f5df

+ 7 - 1
app/src/main/java/com/adealink/weparty/module/userlist/binder/UserInfoItemViewBinder.kt

@@ -6,6 +6,7 @@ import android.view.ViewGroup
 import androidx.lifecycle.LifecycleOwner
 import androidx.lifecycle.LifecycleOwner
 import com.adealink.frame.router.Router
 import com.adealink.frame.router.Router
 import com.adealink.frame.util.onClick
 import com.adealink.frame.util.onClick
+import com.adealink.weparty.commonui.ext.gone
 import com.adealink.weparty.commonui.ext.hide
 import com.adealink.weparty.commonui.ext.hide
 import com.adealink.weparty.commonui.ext.show
 import com.adealink.weparty.commonui.ext.show
 import com.adealink.weparty.commonui.recycleview.adapter.BindingViewHolder
 import com.adealink.weparty.commonui.recycleview.adapter.BindingViewHolder
@@ -44,7 +45,12 @@ class UserInfoItemViewBinder(val lifecycleOwner: LifecycleOwner) :
             userCertificationView.setCertificationStatus(item.userInfo.commonConfigInfo)
             userCertificationView.setCertificationStatus(item.userInfo.commonConfigInfo)
 
 
             userCountryView.setUserInfo(item.userInfo)
             userCountryView.setUserInfo(item.userInfo)
-            tvIntroduction.text = item.userInfo.profile
+            if (item.userInfo.profile?.isNotEmpty() == true) {
+                tvIntroduction.show()
+                tvIntroduction.text = item.userInfo.profile
+            } else {
+                tvIntroduction.gone()
+            }
 
 
             sayHiView.setData(toUid = item.userInfo.uid, sayHiState = item.sayHiState) {
             sayHiView.setData(toUid = item.userInfo.uid, sayHiState = item.sayHiState) {
                 item.sayHiState = SayHiState.Chat
                 item.sayHiState = SayHiState.Chat

+ 41 - 0
module/operation/src/main/java/com/adealink/weparty/operation/newuser/NewUserGreetingCardFragment.kt

@@ -1,6 +1,8 @@
 package com.adealink.weparty.operation.newuser
 package com.adealink.weparty.operation.newuser
 
 
+import android.animation.ValueAnimator
 import android.os.Bundle
 import android.os.Bundle
+import android.view.animation.LinearInterpolator
 import androidx.constraintlayout.widget.ConstraintLayout
 import androidx.constraintlayout.widget.ConstraintLayout
 import com.adealink.frame.base.Rlt
 import com.adealink.frame.base.Rlt
 import com.adealink.frame.base.fastLazy
 import com.adealink.frame.base.fastLazy
@@ -92,6 +94,7 @@ class NewUserGreetingCardFragment : BaseFragment(R.layout.fragment_new_user_gree
             sayHiState = userInfoItemData?.sayHiState ?: SayHiState.None,
             sayHiState = userInfoItemData?.sayHiState ?: SayHiState.None,
             listener = {
             listener = {
                 userInfoItemData?.sayHiState = SayHiState.Chat
                 userInfoItemData?.sayHiState = SayHiState.Chat
+                animator.cancel()
             },
             },
             reportClickChat = {
             reportClickChat = {
                 NewUserStatEvent(NewUserStatEvent.Btn.CHAT).apply {}.send()
                 NewUserStatEvent(NewUserStatEvent.Btn.CHAT).apply {}.send()
@@ -143,4 +146,42 @@ class NewUserGreetingCardFragment : BaseFragment(R.layout.fragment_new_user_gree
         }
         }
     }
     }
 
 
+    override fun onResume() {
+        super.onResume()
+        if (userInfoItemData?.sayHiState!=SayHiState.Chat){
+           animator.start()
+        }
+
+    }
+
+    private val animator by fastLazy {
+//        0-750ms 缩放从1-1.08;
+//        750-1500ms 缩放从1.08-1
+        ValueAnimator.ofFloat(0f, 1f).apply {
+            duration = 1500L
+            repeatCount = ValueAnimator.INFINITE
+            repeatMode = ValueAnimator.RESTART
+            interpolator = LinearInterpolator()
+
+            addUpdateListener { valueAnimator ->
+                val fraction = valueAnimator.animatedFraction
+                val scale = if (fraction <= 0.5f) {
+                    // 0 - 0.5(0-750ms):scale 1 → 1.08
+                    1f + (0.08f * (fraction / 0.5f))
+                } else {
+                    // 0.5 - 1(750-1500ms):scale 1.08 → 1
+                    1.08f - (0.08f * ((fraction - 0.5f) / 0.5f))
+                }
+
+                binding.btnSayHi.scaleX = scale
+                binding.btnSayHi.scaleY = scale
+            }
+        }
+    }
+
+    override fun onPause() {
+        super.onPause()
+        animator.cancel()
+    }
+
 }
 }

+ 1 - 1
module/operation/src/main/java/com/adealink/weparty/operation/newuser/NewUserGreetingDialog.kt

@@ -77,7 +77,7 @@ class NewUserGreetingDialog : BaseDialogFragment(R.layout.dialog_new_user_greeti
         window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
         window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
         val attr = window.attributes
         val attr = window.attributes
         attr.gravity = Gravity.CENTER
         attr.gravity = Gravity.CENTER
-        attr.dimAmount = 0.5f
+        attr.dimAmount = 0.8f
         window.attributes = attr
         window.attributes = attr
     }
     }
 
 

+ 1 - 6
module/operation/src/main/java/com/adealink/weparty/operation/newuser/NewUserLotteryDialog.kt

@@ -67,7 +67,7 @@ class NewUserLotteryDialog : BaseDialogFragment(R.layout.dialog_new_user_lottery
         window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
         window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
         val attr = window.attributes
         val attr = window.attributes
         attr.gravity = Gravity.CENTER
         attr.gravity = Gravity.CENTER
-        attr.dimAmount = 0.5f
+        attr.dimAmount = 0.8f
         window.attributes = attr
         window.attributes = attr
     }
     }
 
 
@@ -264,11 +264,6 @@ class NewUserLotteryDialog : BaseDialogFragment(R.layout.dialog_new_user_lottery
 
 
         binding.tvRewardTips.text =
         binding.tvRewardTips.text =
             getCompatString(R.string.operation_new_user_lottery_tips, 3, res.todaySignInCnt)
             getCompatString(R.string.operation_new_user_lottery_tips, 3, res.todaySignInCnt)
-        binding.newUserLotteryResultLayout.bgLotteryResult.setUrl(
-            ossService.getUrlByPath("/activity/new_user/new_user_lottery_result_bg.mp4"),
-            animType = EffectAnimType.MP4,
-            extraConfig = AnimExtraConfig(loop = INFINITE_LOOP)
-        )
         binding.newUserLotteryResultLayout.apply {
         binding.newUserLotteryResultLayout.apply {
             tvRewardNum.text = rewardData?.rewardNum.toString()
             tvRewardNum.text = rewardData?.rewardNum.toString()
             when (rewardData?.rewardResourceType) {
             when (rewardData?.rewardResourceType) {

+ 23 - 1
module/operation/src/main/java/com/adealink/weparty/operation/newuser/NewUserRewardDialog.kt

@@ -1,11 +1,15 @@
 package com.adealink.weparty.operation.newuser
 package com.adealink.weparty.operation.newuser
 
 
+import android.animation.ObjectAnimator
+import android.animation.ValueAnimator
 import android.graphics.Color
 import android.graphics.Color
 import android.graphics.drawable.ColorDrawable
 import android.graphics.drawable.ColorDrawable
 import android.os.Bundle
 import android.os.Bundle
 import android.view.Gravity
 import android.view.Gravity
+import android.view.View
 import android.view.Window
 import android.view.Window
 import android.view.WindowManager
 import android.view.WindowManager
+import android.view.animation.LinearInterpolator
 import com.adealink.frame.aab.util.getCompatString
 import com.adealink.frame.aab.util.getCompatString
 import com.adealink.frame.effect.data.INFINITE_LOOP
 import com.adealink.frame.effect.data.INFINITE_LOOP
 import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.frame.mvvm.view.viewBinding
@@ -14,6 +18,7 @@ import com.adealink.frame.router.Router
 import com.adealink.frame.router.annotation.BindExtra
 import com.adealink.frame.router.annotation.BindExtra
 import com.adealink.frame.router.annotation.RouterUri
 import com.adealink.frame.router.annotation.RouterUri
 import com.adealink.frame.statistics.CommonEventValue
 import com.adealink.frame.statistics.CommonEventValue
+import com.adealink.frame.util.DisplayUtil
 import com.adealink.frame.util.onClick
 import com.adealink.frame.util.onClick
 import com.adealink.weparty.commonui.dialogchain.BaseDialogData
 import com.adealink.weparty.commonui.dialogchain.BaseDialogData
 import com.adealink.weparty.commonui.dialogfragment.BaseDialogFragment
 import com.adealink.weparty.commonui.dialogfragment.BaseDialogFragment
@@ -48,7 +53,7 @@ class NewUserRewardDialog : BaseDialogFragment(R.layout.dialog_new_user_coins_re
         window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
         window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
         val attr = window.attributes
         val attr = window.attributes
         attr.gravity = Gravity.CENTER
         attr.gravity = Gravity.CENTER
-        attr.dimAmount = 0.5f
+        attr.dimAmount = 0.8f
         window.attributes = attr
         window.attributes = attr
     }
     }
 
 
@@ -84,6 +89,23 @@ class NewUserRewardDialog : BaseDialogFragment(R.layout.dialog_new_user_coins_re
         binding.btnGoChat.onClick {
         binding.btnGoChat.onClick {
             dismiss()
             dismiss()
         }
         }
+
+        binding.root.alpha = 0f
+        binding.root.translationX= DisplayUtil.getScreenWidth().toFloat()
+        binding.root.animate()
+            .alpha(1f)
+            .translationX(0f)
+            .setDuration(250)
+            .start()
+
+
+        ObjectAnimator.ofFloat(binding.ivBgLight, View.ROTATION, 0f, 360f).apply {
+            duration = 6000L
+            repeatCount = ValueAnimator.INFINITE
+            repeatMode = ValueAnimator.RESTART
+            interpolator = LinearInterpolator() // 保证匀速旋转
+            start()
+        }
     }
     }
 
 
 }
 }

二進制
module/operation/src/main/res/drawable-xhdpi/bg_new_user_reward_light.webp


+ 9 - 0
module/operation/src/main/res/layout/dialog_new_user_coins_reward.xml

@@ -26,6 +26,15 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
         app:layout_constraintTop_toTopOf="parent" />
 
 
+    <androidx.appcompat.widget.AppCompatImageView
+        android:id="@+id/iv_bg_light"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:src="@drawable/bg_new_user_reward_light"
+        app:layout_constraintBottom_toBottomOf="@+id/svga_reward"
+        app:layout_constraintEnd_toEndOf="@+id/svga_reward"
+        app:layout_constraintStart_toStartOf="@+id/svga_reward"
+        app:layout_constraintTop_toTopOf="@+id/svga_reward" />
 
 
     <com.adealink.weparty.effect.WeAnimView
     <com.adealink.weparty.effect.WeAnimView
         android:id="@+id/svga_reward"
         android:id="@+id/svga_reward"

+ 0 - 8
module/operation/src/main/res/layout/layout_new_user_lottery_result.xml

@@ -6,14 +6,6 @@
     android:layout_height="wrap_content"
     android:layout_height="wrap_content"
     tools:background="@color/color_80000000">
     tools:background="@color/color_80000000">
 
 
-    <com.adealink.weparty.effect.WeAnimView
-        android:id="@+id/bg_lottery_result"
-        android:layout_width="325dp"
-        android:layout_height="325dp"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-
     <androidx.appcompat.widget.AppCompatImageView
     <androidx.appcompat.widget.AppCompatImageView
         android:id="@+id/iv_congratulation"
         android:id="@+id/iv_congratulation"
         android:layout_width="wrap_content"
         android:layout_width="wrap_content"