5 Commits 20da0f6d7c ... 499dcc09bc

Author SHA1 Message Date
  Administrator 499dcc09bc Merge branch 'master' of http://git.wmzhubo.com/guadoutech/PartTimeJob_CN_Android 2 years ago
  Administrator 720ec933c2 1.My Rewards主界面搭建 2 years ago
  Administrator 0c966f7b89 1.Rewards详情界面搭建 2 years ago
  Administrator 025f8f84bc Merge branch 'master' of http://git.wmzhubo.com/guadoutech/PartTimeJob_CN_Android 2 years ago
  Administrator d4f4a7349c 1.Rewards每日签到界面搭建 2 years ago
100 changed files with 2425 additions and 87 deletions
  1. 3 1
      cpt_main/src/main/java/com/hongyegroup/cpt_main/ui/HomeFragment.kt
  2. 6 6
      cpt_main/src/main/java/com/hongyegroup/cpt_main/ui/ProfileFragment.kt
  3. 590 46
      cpt_main/src/main/res/layout/fragment_profile.xml
  4. 37 33
      cpt_parttime/src/main/res/layout/activity_settings.xml
  5. 3 0
      cpt_rewards/build.gradle
  6. 15 1
      cpt_rewards/src/main/AndroidManifest.xml
  7. 4 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/adapter/RewardsCategoryAdapter.kt
  8. 13 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/mvvm/MyRewardsActiveViewModel.kt
  9. 13 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/mvvm/MyRewardsExpiredViewModel.kt
  10. 13 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/mvvm/MyRewardsUsedViewModel.kt
  11. 13 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/mvvm/RewardsListViewModel.kt
  12. 13 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/mvvm/RewardsSearchViewModel.kt
  13. 30 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/mvvm/RewardsViewModel.kt
  14. 4 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/router/RewardsComponentServiceImpl.kt
  15. 128 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/MyRewardsActivity.kt
  16. 147 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/RewardsActivity.kt
  17. 70 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/RewardsConfirmActivity.kt
  18. 656 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/RewardsDailyLoginActivity.java
  19. 108 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/RewardsDetailActivity.kt
  20. 56 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/RewardsListActivity.kt
  21. 46 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/RewardsPaymentSuccessActivity.kt
  22. 56 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/RewardsSearchActivity.kt
  23. 57 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/fragment/MyRewardsActiveFragment.kt
  24. 52 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/fragment/MyRewardsExpiredFragment.kt
  25. 53 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/fragment/MyRewardsUsedFragment.kt
  26. 93 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/utils/NumAnim.java
  27. 24 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/utils/PointFormatUtils.java
  28. 122 0
      cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/widget/PointsPaymentDialog.java
  29. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_daily_login_default_pictrue.webp
  30. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_daily_login_hlep.webp
  31. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_daily_login_open_teasurechest.webp
  32. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_daily_login_red_choose.webp
  33. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_daily_login_teasurechest.webp
  34. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_daily_login_unchoice.webp
  35. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_my_rewards_icon.webp
  36. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_address.webp
  37. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_instruction.webp
  38. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_jia.webp
  39. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_jian.webp
  40. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_package.webp
  41. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_qr_code.webp
  42. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_redeem_at.webp
  43. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_redeem_from.webp
  44. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_redeemable_on.webp
  45. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_redemption_notice.webp
  46. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_reservation.webp
  47. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_reviews.webp
  48. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_share.webp
  49. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_transaction.webp
  50. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_verification_code.webp
  51. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_address.webp
  52. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_arrow_bottom.webp
  53. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_arrow_top.webp
  54. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_expired_icon.webp
  55. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_hot.webp
  56. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_icon_f_and_b.webp
  57. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_main_top_bg.webp
  58. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_non_refundable.webp
  59. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_payment_success_paid_icon.webp
  60. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_payment_success_top_bg.webp
  61. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_recommend_all_icon.webp
  62. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_recommend_popularity_icon.webp
  63. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_redeemed_at.webp
  64. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_right_arrow.webp
  65. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_search_bg.webp
  66. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_star.webp
  67. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_used_icon.webp
  68. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/login_top_bg.webp
  69. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/rewards_bronze.webp
  70. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/rewards_diamond.webp
  71. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/rewards_gold.webp
  72. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/rewards_icon_go_main.webp
  73. BIN
      cpt_rewards/src/main/res/drawable-xhdpi/rewards_silver.webp
  74. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_daily_login_default_pictrue.webp
  75. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_daily_login_hlep.webp
  76. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_daily_login_open_teasurechest.webp
  77. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_daily_login_red_choose.webp
  78. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_daily_login_teasurechest.webp
  79. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_daily_login_unchoice.webp
  80. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_my_rewards_icon.webp
  81. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_address.webp
  82. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_instruction.webp
  83. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_jia.webp
  84. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_jian.webp
  85. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_package.webp
  86. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_qr_code.webp
  87. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_redeem_at.webp
  88. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_redeem_from.webp
  89. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_redeemable_on.webp
  90. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_redemption_notice.webp
  91. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_reservation.webp
  92. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_reviews.webp
  93. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_share.webp
  94. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_transaction.webp
  95. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_verification_code.webp
  96. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_rewards_address.webp
  97. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_rewards_arrow_bottom.webp
  98. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_rewards_arrow_top.webp
  99. BIN
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_rewards_expired_icon.webp
  100. 0 0
      cpt_rewards/src/main/res/drawable-xxhdpi/iv_rewards_hot.webp

+ 3 - 1
cpt_main/src/main/java/com/hongyegroup/cpt_main/ui/HomeFragment.kt

@@ -142,7 +142,9 @@ class HomeFragment : YYBaseVDBLoadingFragment<HomeViewModel, FragmentHomeBinding
         }
 
         fun gotoRewardsPage() {
-            toast("去奖励页面")
+
+            YYRouterService.rewardsComponentServer?.startRewardsDailyPage()
+
         }
 
         //切换到NewsFeed-Tab

+ 6 - 6
cpt_main/src/main/java/com/hongyegroup/cpt_main/ui/ProfileFragment.kt

@@ -28,11 +28,16 @@ class ProfileFragment : YYBaseVDBFragment<ProfileViewModel, FragmentProfileBindi
 
     override fun init(savedInstanceState: Bundle?) {
 
-        initRV()
+        initView()
         initData()
         initListener()
     }
 
+    private fun initView() {
+
+
+    }
+
     private fun initData() {
         showStateLoading()
         CommUtils.getHandler().postDelayed({
@@ -48,11 +53,6 @@ class ProfileFragment : YYBaseVDBFragment<ProfileViewModel, FragmentProfileBindi
 
     }
 
-
-    private fun initRV() {
-
-    }
-
     override fun scrollTopRefresh() {
 
     }

+ 590 - 46
cpt_main/src/main/res/layout/fragment_profile.xml

@@ -2,8 +2,8 @@
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:binding="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    tools:ignore="RtlHardcoded">
+    xmlns:tool="http://schemas.android.com/tool"
+    tool:ignore="RtlHardcoded">
 
     <data>
 
@@ -17,67 +17,611 @@
 
     </data>
 
-    <LinearLayout
+    <FrameLayout
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:background="@color/white"
-        android:orientation="vertical">
+        android:layout_height="match_parent">
 
-        <com.guadou.lib_baselib.view.titlebar.StatusbarGrayView
+        <LinearLayout
             android:layout_width="match_parent"
-            android:layout_height="wrap_content" />
+            android:layout_height="match_parent"
+            android:background="#FAFDFF"
+            android:orientation="vertical">
 
-        <FrameLayout
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/d_46dp">
 
-            <com.guadou.lib_baselib.font_text_view.TextViewMedium
-                android:layout_width="wrap_content"
+            <LinearLayout
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:text="个人状态页面"
-                android:textColor="@color/black"
-                android:textSize="@dimen/d_18sp" />
+                android:gravity="right"
+                android:orientation="vertical"
+               android:background="@drawable/shape_gradient_proifle_title_top">
 
-            <com.guadou.lib_baselib.font_text_view.TextViewMedium
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="right|center_vertical"
-                android:layout_marginRight="@dimen/d_15dp"
-                android:text="全部已读"
-                android:textColor="@color/profile_red"
-                android:textSize="@dimen/d_16sp" />
+                <com.guadou.lib_baselib.view.titlebar.StatusbarGrayView
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"/>
 
-        </FrameLayout>
+                <FrameLayout
+                    android:id="@+id/fl_title_right_box"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginRight="@dimen/d_10dp">
 
-        <View
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/d_0.7dp"
-            android:background="@color/divider_color_ee" />
+                    <ImageView
+                        android:id="@+id/iv_notify_icon"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center"
+                        android:padding="@dimen/d_9dp"
+                        android:src="@drawable/notification_white"
+                        android:visibility="visible" />
 
-        <com.scwang.smart.refresh.layout.SmartRefreshLayout
-            android:id="@+id/refresh_layout"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:focusable="true"
-            android:focusableInTouchMode="true"
-            app:srlEnablePreviewInEditMode="true"
-            app:srlPrimaryColor="@color/white">
+                    <TextView
+                        android:id="@+id/tv_badge_num"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="start"
+                        android:layout_marginTop="@dimen/d_5dp"
+                        android:background="@drawable/badge_red"
+                        android:maxLength="2"
+                        android:paddingLeft="@dimen/d_5dp"
+                        android:paddingTop="@dimen/d_2dp"
+                        android:paddingRight="@dimen/d_5dp"
+                        android:paddingBottom="@dimen/d_2dp"
+                        android:textColor="@color/white"
+                        android:textSize="8sp"
+                        android:visibility="visible"
+                        tool:text="99" />
 
-            <com.scwang.smart.refresh.header.ClassicsHeader
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content" />
+                </FrameLayout>
 
+            </LinearLayout>
 
-            <TextView
+            <com.scwang.smart.refresh.layout.SmartRefreshLayout
+                android:id="@+id/refresh_layout_profile"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
-                android:gravity="center"
-                android:text="我的页面" />
+                android:background="@color/white"
+                app:srlAccentColor="#03A3FE"
+                app:srlEnablePreviewInEditMode="false"
+                app:srlPrimaryColor="@color/app_blue">
+
+                <com.scwang.smart.refresh.header.ClassicsHeader
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    app:srlAccentColor="@color/white" />
+
+                <ScrollView
+                    android:id="@+id/profilr_scroll_root"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:overScrollMode="never"
+                    android:scrollbars="none">
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical">
+
+                        <!--    头部     -->
+                        <FrameLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content">
+
+                            <!--     弧形的渐变    -->
+                            <View
+                                android:layout_width="match_parent"
+                                android:layout_height="@dimen/d_150dp"
+                                android:background="@drawable/shape_gradient_proifle_title_bottom" />
+
+                            <LinearLayout
+                                android:id="@+id/frame_profile_banner"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:layout_marginLeft="@dimen/d_5dp"
+                                android:layout_marginTop="@dimen/d_40dp"
+                                android:layout_marginRight="@dimen/d_5dp"
+                                android:background="@drawable/profile_white_shadow_comm_bg"
+                                android:orientation="vertical">
+
+                                <androidx.constraintlayout.widget.ConstraintLayout
+                                    android:layout_width="match_parent"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    android:layout_marginTop="@dimen/d_40dp"
+                                    android:gravity="center"
+                                    android:orientation="horizontal">
+
+                                    <com.guadou.lib_baselib.font_text_view.TextViewBold
+                                        android:id="@+id/text_view_full_name"
+                                        android:layout_width="wrap_content"
+                                        android:layout_height="wrap_content"
+                                        android:layout_centerInParent="true"
+                                        android:gravity="center"
+                                        android:maxWidth="200dp"
+                                        android:text="-"
+                                        android:textColor="@color/profile_black_28394a"
+                                        android:textSize="24sp"
+                                        app:layout_constraintBottom_toBottomOf="parent"
+                                        app:layout_constraintLeft_toLeftOf="parent"
+                                        app:layout_constraintRight_toRightOf="parent"
+                                        app:layout_constraintTop_toTopOf="parent" />
+
+                                    <ImageView
+                                        android:id="@+id/button_edit_profile"
+                                        android:layout_width="wrap_content"
+                                        android:layout_height="wrap_content"
+                                        android:layout_marginLeft="@dimen/d_13dp"
+                                        android:layout_marginTop="@dimen/d_4dp"
+                                        android:layout_toRightOf="@id/text_view_full_name"
+                                        android:src="@drawable/iv_profile_edit"
+                                        app:layout_constraintBottom_toBottomOf="@id/text_view_full_name"
+                                        app:layout_constraintLeft_toRightOf="@id/text_view_full_name"
+                                        app:layout_constraintTop_toTopOf="@id/text_view_full_name" />
+
+                                </androidx.constraintlayout.widget.ConstraintLayout>
+
+                                <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                                    android:id="@+id/text_view_email_address"
+                                    android:layout_width="match_parent"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    android:layout_marginLeft="@dimen/d_15dp"
+                                    android:layout_marginRight="@dimen/d_15dp"
+                                    android:gravity="center"
+                                    android:text="-"
+                                    android:textColor="#8098B2"
+                                    android:textSize="13.8dp" />
+
+                                <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                                    android:id="@+id/text_view_joined_date"
+                                    android:layout_width="match_parent"
+                                    android:layout_height="wrap_content"
+                                    android:layout_gravity="center_horizontal"
+                                    android:layout_marginLeft="@dimen/d_15dp"
+                                    android:layout_marginRight="@dimen/d_15dp"
+                                    android:gravity="center"
+                                    android:text="-"
+                                    android:textColor="#8098B2"
+                                    android:textSize="13.8dp" />
+
+                                <RelativeLayout
+                                    android:layout_width="match_parent"
+                                    android:layout_height="wrap_content"
+                                    android:layout_marginTop="@dimen/d_9dp">
+
+                                    <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                                        android:id="@+id/text_view_profile_points"
+                                        android:layout_width="105dp"
+                                        android:layout_height="25dp"
+                                        android:layout_centerHorizontal="true"
+                                        android:background="@drawable/shape_5round_main_blue"
+                                        android:gravity="center"
+                                        android:text="- Credits"
+                                        android:textColor="@color/white"
+                                        android:textSize="13.5dp" />
+
+                                    <ImageView
+                                        android:id="@+id/button_help_points"
+                                        android:layout_width="wrap_content"
+                                        android:layout_height="wrap_content"
+                                        android:layout_centerVertical="true"
+                                        android:layout_gravity="center_vertical"
+                                        android:layout_marginLeft="@dimen/d_9dp"
+                                        android:layout_toRightOf="@id/text_view_profile_points"
+                                        android:contentDescription="@string/null_data"
+                                        android:src="@drawable/help_blue" />
+
+                                </RelativeLayout>
+
+
+                                <androidx.constraintlayout.widget.ConstraintLayout
+                                    android:layout_width="match_parent"
+                                    android:layout_height="wrap_content"
+                                    android:layout_marginTop="@dimen/d_10dp"
+                                    android:orientation="horizontal"
+                                    android:paddingLeft="@dimen/d_15dp"
+                                    android:paddingRight="@dimen/d_15dp"
+                                    android:paddingBottom="@dimen/d_23dp">
+
+                                    <!--pending jobs-->
+                                    <LinearLayout
+                                        android:id="@+id/ll_padding_job"
+                                        android:layout_width="wrap_content"
+                                        android:layout_height="match_parent"
+                                        android:layout_weight="1.2"
+                                        android:gravity="center"
+                                        android:orientation="vertical"
+                                        android:padding="@dimen/d_5dp"
+                                        app:layout_constraintBottom_toBottomOf="parent"
+                                        app:layout_constraintLeft_toLeftOf="parent"
+                                        app:layout_constraintTop_toTopOf="parent">
+
+                                        <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                            android:id="@+id/text_view_pending_jobs_count"
+                                            android:layout_width="wrap_content"
+                                            android:layout_height="wrap_content"
+                                            android:text="@string/null_data"
+                                            android:textColor="@color/profile_black_28394a"
+                                            android:textSize="@dimen/d_17sp"
+                                            tool:ignore="TooDeepLayout"
+                                            tool:text="789" />
+
+                                        <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                                            android:layout_width="wrap_content"
+                                            android:layout_height="wrap_content"
+                                            android:layout_marginTop="@dimen/d_3dp"
+                                            android:text="朋友圈发布"
+                                            android:textColor="#8098B2"
+                                            android:textSize="13.8dp" />
+
+                                    </LinearLayout>
+
+
+                                    <!--completed jobs-->
+                                    <LinearLayout
+                                        android:id="@+id/ll_completed_job"
+                                        android:layout_width="wrap_content"
+                                        android:layout_height="match_parent"
+                                        android:layout_weight="1"
+                                        android:gravity="center"
+                                        android:orientation="vertical"
+                                        android:padding="@dimen/d_5dp"
+                                        app:layout_constraintBottom_toBottomOf="parent"
+                                        app:layout_constraintLeft_toRightOf="@id/ll_padding_job"
+                                        app:layout_constraintRight_toLeftOf="@id/ll_rewards_box"
+                                        app:layout_constraintTop_toTopOf="parent">
+
+                                        <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                            android:id="@+id/text_view_completed_jobs_count"
+                                            android:layout_width="wrap_content"
+                                            android:layout_height="wrap_content"
+                                            android:text="@string/null_data"
+                                            android:textColor="@color/profile_black_28394a"
+                                            android:textSize="@dimen/d_17sp"
+                                            tool:text="789" />
+
+                                        <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                                            android:layout_width="wrap_content"
+                                            android:layout_height="wrap_content"
+                                            android:layout_marginTop="@dimen/d_3dp"
+                                            android:text="已关注"
+                                            android:textColor="#8098B2"
+                                            android:textSize="13.8dp" />
+
+                                    </LinearLayout>
+
+
+                                    <!--Rewards-->
+                                    <androidx.constraintlayout.widget.ConstraintLayout
+                                        android:id="@+id/ll_rewards_box"
+                                        android:layout_width="wrap_content"
+                                        android:layout_height="match_parent"
+                                        android:layout_weight="1"
+                                        android:gravity="center"
+                                        android:padding="@dimen/d_5dp"
+                                        app:layout_constraintBottom_toBottomOf="parent"
+                                        app:layout_constraintRight_toRightOf="parent"
+                                        app:layout_constraintTop_toTopOf="parent">
+
+                                        <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                            android:id="@+id/text_view_money_earned"
+                                            android:layout_width="wrap_content"
+                                            android:layout_height="wrap_content"
+                                            android:text="@string/null_data"
+                                            android:textColor="@color/profile_black_28394a"
+                                            android:textSize="@dimen/d_17sp"
+                                            app:layout_constraintBottom_toTopOf="@id/tv_text_rewards"
+                                            app:layout_constraintLeft_toLeftOf="parent"
+                                            app:layout_constraintRight_toRightOf="parent"
+                                            app:layout_constraintTop_toTopOf="parent"
+                                            tool:text="789" />
+
+                                        <com.guadou.lib_baselib.font_text_view.TextViewRegular
+                                            android:id="@+id/tv_text_rewards"
+                                            android:layout_width="wrap_content"
+                                            android:layout_height="wrap_content"
+                                            android:layout_centerHorizontal="true"
+                                            android:layout_marginTop="@dimen/d_3dp"
+                                            android:text="粉丝"
+                                            android:textColor="#8098B2"
+                                            android:textSize="13.8dp"
+                                            app:layout_constraintBottom_toBottomOf="parent"
+                                            app:layout_constraintLeft_toLeftOf="parent"
+                                            app:layout_constraintRight_toRightOf="parent"
+                                            app:layout_constraintTop_toBottomOf="@id/text_view_money_earned" />
+
+                                    </androidx.constraintlayout.widget.ConstraintLayout>
+
+                                </androidx.constraintlayout.widget.ConstraintLayout>
+
+                            </LinearLayout>
+
+
+                            <com.guadou.lib_baselib.view.CircleImageView
+                                android:id="@+id/image_view_profile_photo"
+                                android:layout_width="@dimen/d_70dp"
+                                android:layout_height="@dimen/d_70dp"
+                                android:layout_gravity="center_horizontal"
+                                android:layout_marginTop="@dimen/d_5dp"
+                                android:scaleType="centerCrop"
+                                android:src="@drawable/im_default_head"
+                                app:civ_border_color="@color/white"
+                                app:civ_border_overlay="true"
+                                app:civ_border_width="@dimen/d_1dp" />
+
+
+                        </FrameLayout>
+
+
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="match_parent"
+                            android:layout_marginLeft="@dimen/d_5dp"
+                            android:layout_marginRight="@dimen/d_5dp"
+                            android:background="@drawable/profile_white_shadow_comm_bg"
+                            android:orientation="vertical"
+                            android:paddingBottom="@dimen/d_20dp">
+
+
+                            <com.guadou.lib_baselib.font_text_view.TextViewBold
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_marginLeft="@dimen/d_22dp"
+                                android:layout_marginTop="@dimen/d_22dp"
+                                android:layout_marginBottom="@dimen/d_12dp"
+                                android:gravity="center"
+                                android:text="我的服务"
+                                android:textColor="@color/profile_black_28394a"
+                                android:textSize="@dimen/d_18dp" />
+
+
+                            <!--  邀请好友   -->
+                            <RelativeLayout
+                                android:id="@+id/ll_me_invite_and_earn"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/transparent_bg_selector"
+                                android:clickable="true"
+                                android:orientation="horizontal"
+                                android:paddingLeft="@dimen/d_25dp"
+                                android:paddingTop="@dimen/d_15dp"
+                                android:paddingRight="@dimen/d_25dp"
+                                android:paddingBottom="@dimen/d_15dp"
+                                android:visibility="visible">
+
+                                <ImageView
+                                    android:id="@+id/iv_me_gift"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:src="@drawable/iv_me_invite_friends" />
+
+                                <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                    android:id="@+id/tv_invite_text"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_marginStart="@dimen/d_15dp"
+                                    android:layout_marginLeft="@dimen/d_15dp"
+                                    android:layout_toRightOf="@id/iv_me_gift"
+                                    android:text="邀请朋友赚奖励"
+                                    android:textColor="@color/black"
+                                    android:textSize="@dimen/d_14sp" />
+
+                                <TextView
+                                    android:id="@+id/tv_me_invite_new"
+                                    android:layout_width="33dp"
+                                    android:layout_height="wrap_content"
+                                    android:layout_marginLeft="@dimen/d_10dp"
+                                    android:layout_toRightOf="@id/tv_invite_text"
+                                    android:background="@drawable/iv_me_pet_farming_bg"
+                                    android:gravity="center"
+                                    android:paddingBottom="1.2dp"
+                                    android:text="新"
+                                    android:textColor="@color/white"
+                                    android:textSize="@dimen/d_9sp"
+                                    android:visibility="gone"
+                                    tool:visibility="visible" />
+
+                                <ImageView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_alignParentRight="true"
+                                    android:layout_centerVertical="true"
+                                    android:src="@drawable/back_more_black" />
+
+                            </RelativeLayout>
+
+
+                            <!--Promotions (隐藏了)-->
+                            <!--                        <RelativeLayout-->
+                            <!--                            android:id="@+id/rl_me_promotion"-->
+                            <!--                            android:layout_width="match_parent"-->
+                            <!--                            android:layout_height="wrap_content"-->
+                            <!--                            android:background="@drawable/transparent_bg_selector"-->
+                            <!--                            android:clickable="true"-->
+                            <!--                            android:orientation="horizontal"-->
+                            <!--                            android:paddingLeft="@dimen/d_25dp"-->
+                            <!--                            android:paddingTop="@dimen/d_15dp"-->
+                            <!--                            android:paddingRight="@dimen/d_25dp"-->
+                            <!--                            android:paddingBottom="@dimen/d_15dp"-->
+                            <!--                            android:visibility="gone">-->
+
+                            <!--                            <ImageView-->
+                            <!--                                android:id="@+id/iv_me_promotion"-->
+                            <!--                                android:layout_width="@dimen/d_20dp"-->
+                            <!--                                android:layout_height="@dimen/d_20dp"-->
+                            <!--                                android:contentDescription="@string/customer_support"-->
+                            <!--                                android:src="@drawable/iv_me_promotions" />-->
+
+                            <!--                            <com.guadou.componentservice.font_text_view.TextViewRegular-->
+                            <!--                                android:layout_width="wrap_content"-->
+                            <!--                                android:layout_height="wrap_content"-->
+                            <!--                                android:layout_marginStart="@dimen/d_15dp"-->
+                            <!--                                android:layout_marginLeft="@dimen/d_15dp"-->
+                            <!--                                android:layout_toRightOf="@id/iv_me_promotion"-->
+                            <!--                                android:text="@string/my_promotions"-->
+                            <!--                                android:textColor="@color/black"-->
+                            <!--                                android:textSize="@dimen/me_text_size" />-->
+
+                            <!--                            <ImageView-->
+                            <!--                                android:id="@+id/iv_promotion_back"-->
+                            <!--                                android:layout_width="wrap_content"-->
+                            <!--                                android:layout_height="wrap_content"-->
+                            <!--                                android:layout_alignParentRight="true"-->
+                            <!--                                android:layout_centerVertical="true"-->
+                            <!--                                android:src="@drawable/iv_back" />-->
+
+                            <!--                        </RelativeLayout>-->
+
+
+                            <!--Operation Executive Evaluation 评分隐藏-->
+                            <!--                        <RelativeLayout-->
+                            <!--                            android:id="@+id/rl_me_evaluation"-->
+                            <!--                            android:layout_width="match_parent"-->
+                            <!--                            android:layout_height="wrap_content"-->
+                            <!--                            android:background="@drawable/transparent_bg_selector"-->
+                            <!--                            android:clickable="true"-->
+                            <!--                            android:orientation="horizontal"-->
+                            <!--                            android:paddingLeft="@dimen/d_25dp"-->
+                            <!--                            android:paddingTop="@dimen/d_15dp"-->
+                            <!--                            android:paddingRight="@dimen/d_25dp"-->
+                            <!--                            android:paddingBottom="@dimen/d_15dp"-->
+                            <!--                            android:visibility="gone">-->
+
+                            <!--                            <ImageView-->
+                            <!--                                android:id="@+id/iv_me_evaluation"-->
+                            <!--                                android:layout_width="@dimen/d_20dp"-->
+                            <!--                                android:layout_height="@dimen/d_20dp"-->
+                            <!--                                android:contentDescription="@string/customer_support"-->
+                            <!--                                android:src="@drawable/iv_me_evaluation" />-->
+
+                            <!--                            <com.guadou.componentservice.font_text_view.TextViewRegular-->
+                            <!--                                android:layout_width="wrap_content"-->
+                            <!--                                android:layout_height="wrap_content"-->
+                            <!--                                android:layout_marginStart="@dimen/d_15dp"-->
+                            <!--                                android:layout_marginLeft="@dimen/d_15dp"-->
+                            <!--                                android:layout_toRightOf="@+id/iv_me_evaluation"-->
+                            <!--                                android:text="@string/operation_executive_evaluation"-->
+                            <!--                                android:textColor="@color/black"-->
+                            <!--                                android:textSize="@dimen/me_text_size" />-->
+
+                            <!--                            <ImageView-->
+                            <!--                                android:id="@+id/iv_me_evaluation_back"-->
+                            <!--                                android:layout_width="wrap_content"-->
+                            <!--                                android:layout_height="wrap_content"-->
+                            <!--                                android:layout_alignParentRight="true"-->
+                            <!--                                android:layout_centerVertical="true"-->
+                            <!--                                android:src="@drawable/iv_back" />-->
+
+
+                            <!--                        </RelativeLayout>-->
+
+
+                            <!-- Help Center  -->
+                            <RelativeLayout
+                                android:id="@+id/button_customer_support"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/transparent_bg_selector"
+                                android:clickable="true"
+                                android:orientation="horizontal"
+                                android:paddingLeft="@dimen/d_25dp"
+                                android:paddingTop="@dimen/d_15dp"
+                                android:paddingRight="@dimen/d_25dp"
+                                android:paddingBottom="@dimen/d_15dp">
+
+                                <ImageView
+                                    android:id="@+id/iv_customer_support_black"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:src="@drawable/iv_me_help_center" />
+
+                                <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_marginStart="@dimen/d_15dp"
+                                    android:layout_marginLeft="@dimen/d_15dp"
+                                    android:layout_toRightOf="@id/iv_customer_support_black"
+                                    android:text="帮助中心"
+                                    android:textColor="@color/profile_black_28394a"
+                                    android:textSize="@dimen/d_14sp" />
+
+                                <ImageView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_alignParentRight="true"
+                                    android:layout_centerVertical="true"
+                                    android:src="@drawable/back_more_black" />
+
+                            </RelativeLayout>
+
+
+                            <!-- Setting  -->
+                            <RelativeLayout
+                                android:id="@+id/button_setting"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/transparent_bg_selector"
+                                android:clickable="true"
+                                android:orientation="horizontal"
+                                android:paddingLeft="@dimen/d_25dp"
+                                android:paddingTop="@dimen/d_15dp"
+                                android:paddingRight="@dimen/d_25dp"
+                                android:paddingBottom="@dimen/d_15dp">
+
+                                <ImageView
+                                    android:id="@+id/iv_setting_black"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:src="@drawable/iv_me_app_setting" />
+
+                                <com.guadou.lib_baselib.font_text_view.TextViewMedium
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_marginStart="@dimen/d_15dp"
+                                    android:layout_marginLeft="@dimen/d_15dp"
+                                    android:layout_toRightOf="@id/iv_setting_black"
+                                    android:text="设置"
+                                    android:textColor="@color/profile_black_28394a"
+                                    android:textSize="@dimen/d_14sp" />
+
+                                <ImageView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_alignParentRight="true"
+                                    android:layout_centerVertical="true"
+                                    android:src="@drawable/back_more_black" />
+
+                            </RelativeLayout>
+
+                        </LinearLayout>
+
+                    </LinearLayout>
+
+                </ScrollView>
+
+            </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+
+        </LinearLayout>
+
+
+        <View
+            android:id="@+id/view_progress_bg"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="@color/progress_background"
+            android:clickable="true"
+            android:visibility="gone" />
 
-        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+        <ProgressBar
+            android:id="@+id/progress_bar"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:indeterminate="true"
+            android:indeterminateTint="@color/colorAccent"
+            android:indeterminateTintMode="src_atop"
+            android:visibility="gone" />
 
-    </LinearLayout>
+    </FrameLayout>
 
 
 </layout>

+ 37 - 33
cpt_parttime/src/main/res/layout/activity_settings.xml

@@ -28,6 +28,7 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_margin="@dimen/d_15dp"
+            android:visibility="gone"
             android:orientation="horizontal">
 
             <com.guadou.lib_baselib.font_text_view.TextViewMedium
@@ -54,22 +55,23 @@
         <View
             android:layout_width="match_parent"
             android:layout_height="@dimen/d_1dp"
+            android:visibility="gone"
             android:background="@color/page_bg" />
 
-        <!--FAQ-->
+        <!--重置密码-->
         <LinearLayout
-            android:id="@+id/ll_setting_faq"
+            android:id="@+id/ll_setting_reset_psd"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:orientation="horizontal"
-            android:padding="@dimen/d_15dp"
-            android:visibility="visible">
+            binding:clicks="@{click.resetPassword}"
+            android:padding="@dimen/d_15dp">
 
             <TextView
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
-                android:text="常用问题"
+                android:text="重置密码"
                 android:textColor="@color/black"
                 android:textSize="@dimen/d_14sp" />
 
@@ -81,25 +83,25 @@
                 android:src="@drawable/iv_back" />
 
         </LinearLayout>
-
         <View
             android:layout_width="match_parent"
             android:layout_height="@dimen/d_1dp"
             android:background="@color/page_bg" />
 
-        <!--Privacy Policy-->
+        <!--FAQ-->
         <LinearLayout
-            android:id="@+id/ll_setting_privacy_policy"
+            android:id="@+id/ll_setting_faq"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:orientation="horizontal"
-            android:padding="@dimen/d_15dp">
+            android:padding="@dimen/d_15dp"
+            android:visibility="visible">
 
             <TextView
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
-                android:text="隐私条款"
+                android:text="常用问题"
                 android:textColor="@color/black"
                 android:textSize="@dimen/d_14sp" />
 
@@ -115,9 +117,12 @@
         <View
             android:layout_width="match_parent"
             android:layout_height="@dimen/d_1dp"
+            android:visibility="visible"
             android:background="@color/page_bg" />
 
+        <!--账户注销-->
         <LinearLayout
+            android:id="@+id/ll_clear_cache"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:orientation="horizontal"
@@ -127,26 +132,17 @@
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
-                android:text="版本号"
+                android:text="账户注销"
                 android:textColor="@color/black"
                 android:textSize="@dimen/d_14sp" />
 
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginRight="@dimen/d_2dp"
-                android:text="V"
-                android:textColor="@color/profile_red"
-                android:textSize="@dimen/d_14sp" />
-
-            <TextView
-                android:id="@+id/text_view_version_no"
+            <ImageView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginEnd="@dimen/d_10dp"
                 android:layout_marginRight="@dimen/d_10dp"
-                android:textColor="@color/profile_red"
-                android:textSize="@dimen/d_14sp" />
+                android:src="@drawable/iv_back" />
+
 
         </LinearLayout>
 
@@ -156,20 +152,19 @@
             android:background="@color/page_bg" />
 
 
-        <!--重置密码-->
+        <!--Privacy Policy-->
         <LinearLayout
-            android:id="@+id/ll_setting_reset_psd"
+            android:id="@+id/ll_setting_privacy_policy"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:orientation="horizontal"
-            binding:clicks="@{click.resetPassword}"
             android:padding="@dimen/d_15dp">
 
             <TextView
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
-                android:text="重置密码"
+                android:text="隐私条款"
                 android:textColor="@color/black"
                 android:textSize="@dimen/d_14sp" />
 
@@ -181,13 +176,13 @@
                 android:src="@drawable/iv_back" />
 
         </LinearLayout>
+
         <View
             android:layout_width="match_parent"
             android:layout_height="@dimen/d_1dp"
             android:background="@color/page_bg" />
 
         <LinearLayout
-            android:id="@+id/ll_clear_cache"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:orientation="horizontal"
@@ -197,26 +192,35 @@
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
-                android:text="帮助中心"
+                android:text="版本号"
                 android:textColor="@color/black"
                 android:textSize="@dimen/d_14sp" />
 
-            <ImageView
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginRight="@dimen/d_2dp"
+                android:text="V"
+                android:textColor="@color/profile_red"
+                android:textSize="@dimen/d_14sp" />
+
+            <TextView
+                android:id="@+id/text_view_version_no"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginEnd="@dimen/d_10dp"
                 android:layout_marginRight="@dimen/d_10dp"
-                android:src="@drawable/iv_back" />
-
+                android:textColor="@color/profile_red"
+                android:textSize="@dimen/d_14sp" />
 
         </LinearLayout>
 
-
         <View
             android:layout_width="match_parent"
             android:layout_height="@dimen/d_1dp"
             android:background="@color/page_bg" />
 
+
         <TextView
             android:id="@+id/button_logout"
             android:layout_width="match_parent"

+ 3 - 0
cpt_rewards/build.gradle

@@ -2,4 +2,7 @@ apply from: "../module_default_config.gradle"
 
 dependencies {
 
+    //九宫格控件
+    implementation project(':cs_ninegrid')
+
 }

+ 15 - 1
cpt_rewards/src/main/AndroidManifest.xml

@@ -1,10 +1,24 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.hongyegroup.cpt_profile">
+    package="com.hongyegroup.cpt_rewards">
 
     <application android:allowBackup="true">
 
+        <activity android:name=".ui.RewardsDailyLoginActivity"/>
 
+        <activity android:name=".ui.RewardsActivity"/>
+
+        <activity android:name=".ui.RewardsListActivity"/>
+
+        <activity android:name=".ui.RewardsSearchActivity"/>
+
+        <activity android:name=".ui.RewardsDetailActivity"/>
+
+        <activity android:name=".ui.RewardsConfirmActivity"/>
+
+        <activity android:name=".ui.RewardsPaymentSuccessActivity"/>
+
+        <activity android:name=".ui.MyRewardsActivity"/>
 
     </application>
 

+ 4 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/adapter/RewardsCategoryAdapter.kt

@@ -0,0 +1,4 @@
+package com.hongyegroup.cpt_rewards.adapter
+
+class RewardsCategoryAdapter {
+}

+ 13 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/mvvm/MyRewardsActiveViewModel.kt

@@ -0,0 +1,13 @@
+package com.hongyegroup.cpt_rewards.mvvm
+
+import com.guadou.cs_cptservices.binding.BaseDataBindingAdapter
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.hongyegroup.cpt_rewards.BR
+import com.hongyegroup.cpt_rewards.R
+
+class MyRewardsActiveViewModel : BaseViewModel() {
+
+    var mActiveRewardsData = ArrayList<String>()
+    val mActiveAdapter by lazy { BaseDataBindingAdapter(R.layout.item_rewards_active, BR.item, mActiveRewardsData) }
+
+}

+ 13 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/mvvm/MyRewardsExpiredViewModel.kt

@@ -0,0 +1,13 @@
+package com.hongyegroup.cpt_rewards.mvvm
+
+import com.guadou.cs_cptservices.binding.BaseDataBindingAdapter
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.hongyegroup.cpt_rewards.BR
+import com.hongyegroup.cpt_rewards.R
+
+class MyRewardsExpiredViewModel : BaseViewModel() {
+
+    var mExpiredRewardsData = ArrayList<String>()
+    val mExpiredAdapter by lazy { BaseDataBindingAdapter(R.layout.item_rewards_expired, BR.item, mExpiredRewardsData) }
+
+}

+ 13 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/mvvm/MyRewardsUsedViewModel.kt

@@ -0,0 +1,13 @@
+package com.hongyegroup.cpt_rewards.mvvm
+
+import com.guadou.cs_cptservices.binding.BaseDataBindingAdapter
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.hongyegroup.cpt_rewards.BR
+import com.hongyegroup.cpt_rewards.R
+
+class MyRewardsUsedViewModel : BaseViewModel() {
+
+    var mUsedRewardsData = ArrayList<String>()
+    val mUsedAdapter by lazy { BaseDataBindingAdapter(R.layout.item_rewards_used, BR.item, mUsedRewardsData) }
+
+}

+ 13 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/mvvm/RewardsListViewModel.kt

@@ -0,0 +1,13 @@
+package com.hongyegroup.cpt_rewards.mvvm
+
+import com.guadou.cs_cptservices.binding.BaseDataBindingAdapter
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.hongyegroup.cpt_rewards.BR
+import com.hongyegroup.cpt_rewards.R
+
+class RewardsListViewModel : BaseViewModel() {
+
+    var mRewardsListData = ArrayList<String>()
+    val mRewardsListAdapter by lazy { BaseDataBindingAdapter(R.layout.item_rewards_best_offer, BR.item, mRewardsListData) }
+
+}

+ 13 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/mvvm/RewardsSearchViewModel.kt

@@ -0,0 +1,13 @@
+package com.hongyegroup.cpt_rewards.mvvm
+
+import com.guadou.cs_cptservices.binding.BaseDataBindingAdapter
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.hongyegroup.cpt_rewards.BR
+import com.hongyegroup.cpt_rewards.R
+
+class RewardsSearchViewModel : BaseViewModel() {
+
+    var mRewardsData = ArrayList<String>()
+    val mRewardsAdapter by lazy { BaseDataBindingAdapter(R.layout.item_rewards_best_offer, BR.item, mRewardsData) }
+
+}

+ 30 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/mvvm/RewardsViewModel.kt

@@ -0,0 +1,30 @@
+package com.hongyegroup.cpt_rewards.mvvm
+
+import com.guadou.cs_cptservices.binding.BaseDataBindingAdapter
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.hongyegroup.cpt_rewards.BR
+import com.hongyegroup.cpt_rewards.R
+
+class RewardsViewModel:BaseViewModel() {
+
+    //分类
+    var mCategoryDatas=ArrayList<String>()
+    val mCategoryAdapter by lazy { BaseDataBindingAdapter(R.layout.item_rewards_category,BR.item,mCategoryDatas) }
+
+    //推荐
+    var mRecommendDatas=ArrayList<String>()
+    val mRecommendAdapter by lazy { BaseDataBindingAdapter(R.layout.item_rewards_recomend,BR.item,mRecommendDatas) }
+
+    //Hottest
+    var mHottestDatas=ArrayList<String>()
+    val mHottestAdapter by lazy { BaseDataBindingAdapter(R.layout.item_rewards_recomend,BR.item,mHottestDatas) }
+
+    //Food & Beverage
+    var mFoodBeverageDatas=ArrayList<String>()
+    val mFoodBeverageAdapter by lazy { BaseDataBindingAdapter(R.layout.item_rewards_recomend,BR.item,mFoodBeverageDatas) }
+
+    //Best Offers
+    var mBestOfferDatas=ArrayList<String>()
+    val mBestOfferAdapter by lazy { BaseDataBindingAdapter(R.layout.item_rewards_best_offer,BR.item,mBestOfferDatas) }
+
+}

+ 4 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/router/RewardsComponentServiceImpl.kt

@@ -4,6 +4,7 @@ import android.content.Context
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.guadou.cs_router.ARouterPath
 import com.guadou.cs_router.rewards.IRewardsComponentServer
+import com.hongyegroup.cpt_rewards.ui.RewardsDailyLoginActivity
 
 @Route(path = ARouterPath.PATH_SERVICE_REWARDS, name = "Rewards模块路由服务")
 class RewardsComponentServiceImpl : IRewardsComponentServer {
@@ -12,6 +13,9 @@ class RewardsComponentServiceImpl : IRewardsComponentServer {
     }
 
     override fun startRewardsDailyPage() {
+
+        RewardsDailyLoginActivity.startInstance()
+
     }
 
     override fun init(context: Context?) {

+ 128 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/MyRewardsActivity.kt

@@ -0,0 +1,128 @@
+package com.hongyegroup.cpt_rewards.ui
+
+import android.content.Intent
+import android.os.Bundle
+import android.widget.TextView
+import androidx.fragment.app.Fragment
+import androidx.viewpager.widget.ViewPager
+import com.guadou.cs_cptservices.adapter.ViewPagerFragmentAdapter
+import com.guadou.lib_baselib.base.activity.BaseVDBActivity
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.utils.CommUtils
+import com.hongyegroup.cpt_rewards.BR
+import com.hongyegroup.cpt_rewards.R
+import com.hongyegroup.cpt_rewards.databinding.ActivityMyRewardsBinding
+import com.hongyegroup.cpt_rewards.ui.fragment.MyRewardsActiveFragment
+import com.hongyegroup.cpt_rewards.ui.fragment.MyRewardsExpiredFragment
+import com.hongyegroup.cpt_rewards.ui.fragment.MyRewardsUsedFragment
+
+class MyRewardsActivity : BaseVDBActivity<BaseViewModel, ActivityMyRewardsBinding>() {
+
+    val mClickProxy by lazy { ClickProxy() }
+
+    var mTableList = ArrayList<TextView>()
+    var mFragments = ArrayList<Fragment>()
+    val mViewPagerAdapter by lazy { ViewPagerFragmentAdapter(supportFragmentManager, mFragments) }
+
+    companion object {
+
+        fun startInstance() {
+            val context = CommUtils.getContext()
+            val intent = Intent(context, MyRewardsActivity::class.java)
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+            context.startActivity(intent)
+        }
+
+    }
+
+    override fun init(savedInstanceState: Bundle?) {
+
+        initView()
+        initListener()
+
+    }
+
+    override fun getDataBindingConfig(): DataBindingConfig {
+
+        return DataBindingConfig(R.layout.activity_my_rewards)
+            .addBindingParams(BR.click, mClickProxy)
+
+    }
+
+    private fun initListener() {
+
+        //ViewPager滑动监听
+        mBinding.viewPagerMyRewards.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+            override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
+
+            }
+
+            override fun onPageSelected(position: Int) {
+
+                setIndicator(position)
+
+            }
+
+            override fun onPageScrollStateChanged(state: Int) {
+
+            }
+        })
+
+    }
+
+    private fun initView() {
+
+        mTableList.add(mBinding.tvTabActive)
+        mTableList.add(mBinding.tvTabExpired)
+        mTableList.add(mBinding.tvTabUsed)
+
+        mFragments.add(MyRewardsActiveFragment())
+        mFragments.add(MyRewardsExpiredFragment())
+        mFragments.add(MyRewardsUsedFragment())
+
+        mBinding.viewPagerMyRewards.adapter = mViewPagerAdapter
+        mBinding.viewPagerMyRewards.offscreenPageLimit = 2
+
+    }
+
+    //设置View Pager Table
+    private fun setIndicator(position: Int) {
+
+        for (index in mTableList.indices) {
+
+            val tableTv = mTableList[index]
+
+            if (index == position) {
+
+                tableTv.setTextColor(CommUtils.getColor(R.color.white))
+                tableTv.setBackgroundResource(R.drawable.shape_round_blue)
+
+            } else {
+
+                tableTv.setTextColor(CommUtils.getColor(R.color.black))
+                tableTv.setBackgroundResource(R.drawable.shape_round_white)
+
+            }
+        }
+    }
+
+    override fun startObserve() {
+
+    }
+
+    /**
+     * DataBinding事件处理
+     */
+    inner class ClickProxy {
+
+        //切换ViewPager
+        fun changeViewPager(position: Int){
+
+            mBinding.viewPagerMyRewards.setCurrentItem(position)
+
+        }
+
+    }
+
+}

+ 147 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/RewardsActivity.kt

@@ -0,0 +1,147 @@
+package com.hongyegroup.cpt_rewards.ui
+
+import android.content.Intent
+import android.os.Bundle
+import com.guadou.lib_baselib.base.activity.BaseVDBActivity
+import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.ext.horizontal
+import com.guadou.lib_baselib.ext.vertical
+import com.guadou.lib_baselib.utils.CommUtils
+import com.hongyegroup.cpt_rewards.BR
+import com.hongyegroup.cpt_rewards.R
+import com.hongyegroup.cpt_rewards.databinding.ActivityRewardsBinding
+import com.hongyegroup.cpt_rewards.mvvm.RewardsViewModel
+
+class RewardsActivity : BaseVDBActivity<RewardsViewModel, ActivityRewardsBinding>() {
+
+    val mClickProxy by lazy { ClickProxy() }
+
+    companion object {
+
+        fun startInstance() {
+            val context = CommUtils.getContext()
+            val intent = Intent(context, RewardsActivity::class.java)
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+            context.startActivity(intent)
+        }
+
+    }
+
+    override fun init(savedInstanceState: Bundle?) {
+
+        initView()
+        initListener()
+
+    }
+
+    private fun initListener() {
+
+        mViewModel.mRecommendAdapter.setOnItemClickListener{ adapter, view, position ->
+
+            mClickProxy.gotoRewardsDetail()
+
+        }
+
+
+    }
+
+    private fun initView() {
+
+        //分类
+        for (index in 0..8) {
+
+            mViewModel.mCategoryDatas.add("")
+
+        }
+        mBinding.recyclerViewPromotionRewardsCategory.horizontal().adapter = mViewModel.mCategoryAdapter
+        mViewModel.mCategoryAdapter.notifyDataSetChanged()
+
+        //Recommend
+        for (index in 0..8) {
+
+            mViewModel.mRecommendDatas.add("")
+
+        }
+
+        mBinding.recyclerViewPromotionRewardsRecommend.horizontal().adapter = mViewModel.mRecommendAdapter
+        mViewModel.mRecommendAdapter.notifyDataSetChanged()
+
+        //Hottest
+        for (index in 0..8) {
+
+            mViewModel.mHottestDatas.add("")
+
+        }
+
+        mBinding.recyclerViewPromotionRewardsHottest.horizontal().adapter = mViewModel.mHottestAdapter
+        mViewModel.mHottestAdapter.notifyDataSetChanged()
+
+        //Food & Beverage
+        for (index in 0..8) {
+
+            mViewModel.mFoodBeverageDatas.add("")
+
+        }
+
+        mBinding.recyclerViewPromotionRewardsFood.horizontal().adapter = mViewModel.mFoodBeverageAdapter
+        mViewModel.mFoodBeverageAdapter.notifyDataSetChanged()
+
+        //Best Offer
+        for (index in 0..8) {
+
+            mViewModel.mBestOfferDatas.add("")
+
+        }
+
+        mBinding.recyclerViewPromotionRewardsOffers.vertical().adapter = mViewModel.mBestOfferAdapter
+        mViewModel.mBestOfferAdapter.notifyDataSetChanged()
+
+
+    }
+
+    override fun getDataBindingConfig(): DataBindingConfig {
+
+        return DataBindingConfig(R.layout.activity_rewards, BR.viewModel, mViewModel)
+            .addBindingParams(BR.click,mClickProxy)
+
+    }
+
+    override fun startObserve() {
+
+    }
+
+    /**
+     * DataBinding事件处理
+     */
+    inner class ClickProxy {
+
+        //跳转到搜索界面
+        fun gotoSearchActivity(){
+
+            RewardsSearchActivity.startInstance()
+
+        }
+
+        //查看Rewards列表
+        fun gotoRewardsList(){
+
+            RewardsListActivity.startInstance()
+
+        }
+
+        //跳转到Rewards详情
+        fun gotoRewardsDetail(){
+
+            RewardsDetailActivity.startInstance()
+
+        }
+
+        //跳转到My Rewards界面
+        fun gotoMyRewardsActivity(){
+
+            MyRewardsActivity.startInstance()
+
+        }
+
+    }
+}

+ 70 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/RewardsConfirmActivity.kt

@@ -0,0 +1,70 @@
+package com.hongyegroup.cpt_rewards.ui
+
+import android.content.Intent
+import android.os.Bundle
+import androidx.databinding.ViewDataBinding
+import com.guadou.lib_baselib.base.activity.BaseVDBActivity
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.engine.toastSuccess
+import com.guadou.lib_baselib.utils.CommUtils
+import com.hongyegroup.cpt_rewards.BR
+import com.hongyegroup.cpt_rewards.R
+import com.hongyegroup.cpt_rewards.databinding.ActivityRewardsConfirmBinding
+import com.hongyegroup.cpt_rewards.widget.PointsPaymentDialog
+
+class RewardsConfirmActivity : BaseVDBActivity<BaseViewModel, ActivityRewardsConfirmBinding>() {
+
+    val mClickProxy by lazy { ClickProxy() }
+
+    companion object {
+
+        fun startInstance() {
+            val context = CommUtils.getContext()
+            val intent = Intent(context, RewardsConfirmActivity::class.java)
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+            context.startActivity(intent)
+        }
+
+    }
+
+    override fun init(savedInstanceState: Bundle?) {
+
+    }
+
+    override fun getDataBindingConfig(): DataBindingConfig {
+
+        return DataBindingConfig(R.layout.activity_rewards_confirm)
+            .addBindingParams(BR.click, mClickProxy)
+
+    }
+
+    override fun startObserve() {
+
+    }
+
+    /**
+     * DataBinding事件处理
+     */
+    inner class ClickProxy {
+
+        //显示Rewards支付确认弹框
+        fun showRewardsConfirmDialog() {
+
+
+//            start(PromotionRewardsPaymentSuccessFragment.newInstance(null));
+//            val total: Int = mPresenter.mCount * mPresenter.mDetailData.point.toInt()
+
+            val pointsPaymentDialog = PointsPaymentDialog(100)
+
+            pointsPaymentDialog.setOnClickPointsPaymentDialogListener(PointsPaymentDialog.OnClickPointsPaymentListener {
+
+                RewardsPaymentSuccessActivity.startInstance()
+
+            })
+            pointsPaymentDialog.show(supportFragmentManager, "point_payment_dialog")
+
+        }
+
+    }
+}

+ 656 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/RewardsDailyLoginActivity.java

@@ -0,0 +1,656 @@
+package com.hongyegroup.cpt_rewards.ui;
+
+import android.animation.Animator;
+import android.animation.ValueAnimator;
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Path;
+import android.graphics.PathMeasure;
+import android.os.Bundle;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewStub;
+import android.view.animation.LinearInterpolator;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.guadou.cs_cptservices.YYConstants;
+import com.guadou.cs_cptservices.commonBean.LevelPoints;
+import com.guadou.lib_baselib.base.activity.BaseVMActivity;
+import com.guadou.lib_baselib.base.vm.BaseViewModel;
+import com.guadou.lib_baselib.engine.ToastExtKt;
+import com.guadou.lib_baselib.ext.DateTimeExtKt;
+import com.guadou.lib_baselib.font_text_view.TextViewLight;
+import com.guadou.lib_baselib.utils.CommUtils;
+import com.guadou.lib_baselib.utils.DateAndTimeUtil;
+import com.guadou.lib_baselib.utils.SPUtils;
+import com.guadou.lib_baselib.view.titlebar.EasyTitleBar;
+import com.hongyegroup.cpt_rewards.R;
+import com.hongyegroup.cpt_rewards.utils.NumAnim;
+import com.hongyegroup.cpt_rewards.utils.PointFormatUtils;
+import com.scwang.smart.refresh.layout.SmartRefreshLayout;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+
+import androidx.annotation.Nullable;
+
+public class RewardsDailyLoginActivity extends BaseVMActivity<BaseViewModel> implements View.OnClickListener {
+
+    private TextView mHistoryTv;
+    private EasyTitleBar mEasyTitle;
+    private TextView mCheckInTv;
+    private RelativeLayout mRootRl;
+    private TextView mContinuousDayTv;
+    private TextView mNewsFeedPostTv;
+    private TextView mPromotionApplyTv;
+
+    private TextView mPointsTv;
+    private TextView mData1Tv;
+    private TextView mData2Tv;
+    private TextView mData3Tv;
+    private TextView mData4Tv;
+    private TextView mData5Tv;
+    private TextView mData6Tv;
+    private TextView mData7Tv;
+    private ImageView mChoose1Iv;
+    private ImageView mChoose2Iv;
+    private ImageView mChoose3Iv;
+    private ImageView mChoose4Iv;
+    private ImageView mChoose5Iv;
+    private ImageView mChoose6Iv;
+    private ImageView mChoose7Iv;
+    private TextView mPoints1Tv;
+    private TextView mPoints2Tv;
+    private TextView mPoints3Tv;
+    private TextView mPoints4Tv;
+    private TextView mPoints5Tv;
+    private TextView mPoints6Tv;
+    private TextView mPoints7Tv;
+    private ImageView mTeasurechest1Iv;
+    private ImageView mTeasurechest2Iv;
+    private ImageView mTeasurechest3Iv;
+    private ImageView mTeasurechest4Iv;
+    private ImageView mTeasurechest5Iv;
+    private ImageView mTeasurechest6Iv;
+    private ImageView mTeasurechest7Iv;
+
+    //昨天是否签到
+    private boolean isCheckInYesterday;
+    //签到当天有宝箱,是否打开
+    private boolean isBoxOpened = false;
+    private LevelPoints mLevelPoints;
+    //今天所在的位置
+    private int mCurrentDayPosition;
+    //当前是第几天
+    private int mCurrentDay = 0;
+    //总积分数
+    private int mPoint = 0;
+    //当前7天的连续签到天数
+    private List<Integer> mDays = new ArrayList<>();
+    //日期的数组
+    private TextView[] mDateTvs = new TextView[7];
+    //点卡图标的数组
+    private ImageView[] mChoosesIvs = new ImageView[7];
+    private ImageView[] mTeasurechesIvs = new ImageView[7];
+    //签到加的积分
+    private TextView[] mPointTvs = new TextView[7];
+    // 贝塞尔曲线中间过程点坐标
+    private float[] mCurrentPosition = new float[2];
+    // 路径测量
+    private PathMeasure mPathMeasure;
+    private ViewStub mViewstub_sign;
+    //    private View mRootView;
+    private View mView_placeholder;
+    private LinearLayout mLlHistory3itemRoot;
+    private SmartRefreshLayout mRefreshLayout;
+    private View mTvGotoRewards;
+    private TextViewLight mTvDailyBrowseNews;
+    private TextViewLight mTvDailyGiveLike;
+    private TextViewLight mTvDailyPostVideo;
+    private TextViewLight mTvDailyGetLikes;
+    private boolean isFirstEnter = true;
+    private boolean isInflateView = true;//每日签到布局只加载一次
+
+    public static void startInstance() {
+
+        Context context = CommUtils.getContext();
+        Intent intent = new Intent(context, RewardsDailyLoginActivity.class);
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        context.startActivity(intent);
+
+    }
+
+    @Override
+    public void init(@Nullable Bundle savedInstanceState) {
+
+        initView();
+        initListener();
+
+    }
+
+    private void initListener() {
+
+        mCheckInTv.setOnClickListener(this);
+        mTvGotoRewards.setOnClickListener(this);
+        mEasyTitle.addRightImg(R.drawable.help_blue, new EasyTitleBar.MenuBuilder.OnMenuClickListener() {
+            @Override
+            public void OnMenuEvent() {
+
+                ToastExtKt.toast(this, "Rules");
+
+            }
+        });
+
+    }
+
+    private void initView() {
+
+//        mLevelPoints = (LevelPoints) getArguments().getSerializable("level_points");
+//        isCheckInYesterday = getArguments().getBoolean("is_check_in_yesterday");
+
+        /**
+         * total : 0
+         * level : 1
+         * level_alias : Bronze
+         * "daily_check_in": false,
+         * "promotion_apply": false,
+         * "news_feed_post": false
+         * continuous_days : 0
+         */
+        mLevelPoints = new LevelPoints();
+        mLevelPoints.points = 200;
+        mLevelPoints.level = "1";
+        mLevelPoints.daily_check_in = false;
+        mLevelPoints.continuous_days = 3;
+
+        isCheckInYesterday = true;
+
+//        if (mLevelPoints.daily_check_in) {
+//            mCurrentDay = mLevelPoints.continuous_days;
+//        } else {
+//            mCurrentDay = mLevelPoints.continuous_days + 1;
+//        }
+
+        mTvGotoRewards = findViewById(R.id.tv_goto_rewards);
+        mRefreshLayout = findViewById(R.id.refresh_layout);
+        mViewstub_sign = findViewById(R.id.viewstub_sign);
+        mView_placeholder = findViewById(R.id.view_placeholder);
+        mEasyTitle = findViewById(R.id.easy_title);
+        mHistoryTv = findViewById(R.id.tv_daily_login_history);
+        mPointsTv = findViewById(R.id.tv_daily_login_points);
+        mCheckInTv = findViewById(R.id.tv_daily_login_check_in);
+        mRootRl = findViewById(R.id.rl_daily_login_root);
+        mLlHistory3itemRoot = findViewById(R.id.ll_history_3item_root);
+
+        mLlHistory3itemRoot.removeAllViews();
+
+        View inflate = CommUtils.inflate(R.layout.item_points_history);
+
+        mLlHistory3itemRoot.addView(inflate);
+//        mLlHistory3itemRoot.addView(inflate);
+//        mLlHistory3itemRoot.addView(inflate);
+
+        //设置其他的数据
+//        setupDailyStatus();
+
+    }
+
+    //其他的按钮状态设置
+    @SuppressLint("SetTextI18n")
+    private void setupDailyStatus() {
+        if (mLevelPoints != null) {
+
+            if (mLevelPoints.news_feed_post) {
+                mNewsFeedPostTv.setEnabled(false);
+                mNewsFeedPostTv.setBackgroundColor(CommUtils.getColor(R.color.gray));
+            }
+
+            if (mLevelPoints.promotion_apply) {
+                mPromotionApplyTv.setEnabled(false);
+                mPromotionApplyTv.setBackgroundColor(CommUtils.getColor(R.color.gray));
+            }
+
+            if (mLevelPoints.browse_news_feed) {
+                mTvDailyBrowseNews.setEnabled(false);
+                mTvDailyBrowseNews.setBackgroundColor(CommUtils.getColor(R.color.gray));
+            }
+
+            if (mLevelPoints.give_likes >= 10) {
+                mTvDailyGiveLike.setEnabled(false);
+                mTvDailyGiveLike.setBackgroundColor(CommUtils.getColor(R.color.gray));
+            } else {
+                mTvDailyGiveLike.setEnabled(true);
+                mTvDailyGiveLike.setBackgroundColor(CommUtils.getColor(R.color.profile_red));
+            }
+            mTvDailyGiveLike.setText(mLevelPoints.give_likes + " / 10");
+
+
+            if (mLevelPoints.post_video) {
+                mTvDailyPostVideo.setEnabled(false);
+                mTvDailyPostVideo.setBackgroundColor(CommUtils.getColor(R.color.gray));
+            }
+
+            if (mLevelPoints.get_likes >= 50) {
+                mTvDailyGetLikes.setEnabled(false);
+                mTvDailyGetLikes.setBackgroundColor(CommUtils.getColor(R.color.gray));
+            } else {
+                mTvDailyGetLikes.setEnabled(true);
+                mTvDailyGetLikes.setBackgroundColor(CommUtils.getColor(R.color.profile_red));
+            }
+            mTvDailyGetLikes.setText(mLevelPoints.get_likes + " / 50");
+
+        }
+    }
+
+    @Override
+    public int getLayoutIdRes() {
+        return R.layout.activity_rewards_daily_login;
+    }
+
+    @Override
+    public void onEnterAnimationComplete() {
+        super.onEnterAnimationComplete();
+
+        //每日签到界面只填充一次
+        if (isInflateView) {
+
+            isInflateView = false;
+
+            //展示顶部point和动画
+//        mPoint = SPUtils.getInstance(CommUtils.getContext()).getInt(YYConstants.CACHE_REWARDS_POINTS, 0);
+            mPoint = 200;
+            NumAnim.startAnim(mPointsTv, mPoint);
+
+            //加载布局
+            mView_placeholder.setVisibility(View.GONE);
+            mViewstub_sign.inflate();
+
+            mContinuousDayTv = findViewById(R.id.tv_daily_login_continuous_day);
+            mData1Tv = findViewById(R.id.tv_date1);
+            mData2Tv = findViewById(R.id.tv_date2);
+            mData3Tv = findViewById(R.id.tv_date3);
+            mData4Tv = findViewById(R.id.tv_date4);
+            mData5Tv = findViewById(R.id.tv_date5);
+            mData6Tv = findViewById(R.id.tv_date6);
+            mData7Tv = findViewById(R.id.tv_date7);
+
+            mDateTvs[0] = mData1Tv;
+            mDateTvs[1] = mData2Tv;
+            mDateTvs[2] = mData3Tv;
+            mDateTvs[3] = mData4Tv;
+            mDateTvs[4] = mData5Tv;
+            mDateTvs[5] = mData6Tv;
+            mDateTvs[6] = mData7Tv;
+
+            mChoose1Iv = findViewById(R.id.iv_daily_choose1);
+            mChoose2Iv = findViewById(R.id.iv_daily_choose2);
+            mChoose3Iv = findViewById(R.id.iv_daily_choose3);
+            mChoose4Iv = findViewById(R.id.iv_daily_choose4);
+            mChoose5Iv = findViewById(R.id.iv_daily_choose5);
+            mChoose6Iv = findViewById(R.id.iv_daily_choose6);
+            mChoose7Iv = findViewById(R.id.iv_daily_choose7);
+
+            mChoosesIvs[0] = mChoose1Iv;
+            mChoosesIvs[1] = mChoose2Iv;
+            mChoosesIvs[2] = mChoose3Iv;
+            mChoosesIvs[3] = mChoose4Iv;
+            mChoosesIvs[4] = mChoose5Iv;
+            mChoosesIvs[5] = mChoose6Iv;
+            mChoosesIvs[6] = mChoose7Iv;
+
+            mPoints1Tv = findViewById(R.id.tv_points1);
+            mPoints2Tv = findViewById(R.id.tv_points2);
+            mPoints3Tv = findViewById(R.id.tv_points3);
+            mPoints4Tv = findViewById(R.id.tv_points4);
+            mPoints5Tv = findViewById(R.id.tv_points5);
+            mPoints6Tv = findViewById(R.id.tv_points6);
+            mPoints7Tv = findViewById(R.id.tv_points7);
+
+            mPointTvs[0] = mPoints1Tv;
+            mPointTvs[1] = mPoints2Tv;
+            mPointTvs[2] = mPoints3Tv;
+            mPointTvs[3] = mPoints4Tv;
+            mPointTvs[4] = mPoints5Tv;
+            mPointTvs[5] = mPoints6Tv;
+            mPointTvs[6] = mPoints7Tv;
+
+            mTeasurechest1Iv = findViewById(R.id.iv_teasurechest1);
+            mTeasurechest2Iv = findViewById(R.id.iv_teasurechest2);
+            mTeasurechest3Iv = findViewById(R.id.iv_teasurechest3);
+            mTeasurechest4Iv = findViewById(R.id.iv_teasurechest4);
+            mTeasurechest5Iv = findViewById(R.id.iv_teasurechest5);
+            mTeasurechest6Iv = findViewById(R.id.iv_teasurechest6);
+            mTeasurechest7Iv = findViewById(R.id.iv_teasurechest7);
+
+            mTeasurechesIvs[0] = mTeasurechest1Iv;
+            mTeasurechesIvs[1] = mTeasurechest2Iv;
+            mTeasurechesIvs[2] = mTeasurechest3Iv;
+            mTeasurechesIvs[3] = mTeasurechest4Iv;
+            mTeasurechesIvs[4] = mTeasurechest5Iv;
+            mTeasurechesIvs[5] = mTeasurechest6Iv;
+            mTeasurechesIvs[6] = mTeasurechest7Iv;
+
+            //初始化签到控件的展示
+//        initCheckInView();
+//        mContinuousDayTv.setText(String.valueOf(mLevelPoints.continuous_days));
+
+
+            if (isCheckInYesterday) {
+
+                //昨天有签到
+                mContinuousDayTv.setText(String.valueOf(mLevelPoints.continuous_days));
+
+                if (mLevelPoints.daily_check_in) {
+                    mCurrentDay = mLevelPoints.continuous_days;
+                } else {
+                    mCurrentDay = mLevelPoints.continuous_days + 1;
+                }
+
+            } else {
+
+                //昨天没有签到
+                mCurrentDay = 1;
+                if (mLevelPoints.daily_check_in) {
+                    mContinuousDayTv.setText(String.valueOf(mLevelPoints.continuous_days));
+                } else {
+                    mContinuousDayTv.setText("0");
+                }
+
+            }
+
+            initCheckInView();
+
+            //如果今天签到了,并且有宝箱,则打开宝箱
+            if (mLevelPoints.daily_check_in) {
+
+                mCheckInTv.setEnabled(false);
+                mCheckInTv.setBackgroundColor(CommUtils.getColor(R.color.gray));
+
+                Integer day = mDays.get(mCurrentDayPosition);
+
+                if (day == 7 || day == 14 || day == 30) {
+
+                    mTeasurechesIvs[mCurrentDayPosition].setImageResource(R.drawable.iv_daily_login_open_teasurechest);
+                } else {
+
+                    mPointTvs[mCurrentDayPosition].setVisibility(View.GONE);
+                    mChoosesIvs[mCurrentDayPosition].setVisibility(View.VISIBLE);
+                }
+            }
+
+        }
+
+    }
+
+    //签到的控件展示
+    @SuppressLint("SetTextI18n")
+    private void initCheckInView() {
+
+        mCurrentDayPosition = mCurrentDay % 7;
+        if (mCurrentDayPosition == 0) {
+
+            mCurrentDayPosition = 6;
+        } else {
+
+            mCurrentDayPosition = mCurrentDayPosition - 1;
+        }
+
+        //以30天为周期,当前是第几天
+        int currentDay = mCurrentDay % 30;
+
+        for (int i = 0; i < mDateTvs.length; i++) {
+
+            //确定日期
+            Calendar calendar = Calendar.getInstance();
+            calendar.add(Calendar.DAY_OF_MONTH, i - mCurrentDayPosition);
+
+            if (i == mCurrentDayPosition) {
+
+                mDateTvs[i].setText("今天");
+            } else {
+
+                mDateTvs[i].setText(DateAndTimeUtil.stampToDate21(String.valueOf(calendar.getTime().getTime())));
+
+            }
+
+
+            //计算当前7天是哪几天
+            if (currentDay + i - mCurrentDayPosition > 0) {
+
+                mDays.add(currentDay + i - mCurrentDayPosition);
+            } else {
+
+                mDays.add(30 + currentDay + i - mCurrentDayPosition);
+
+            }
+
+            if (i < mCurrentDayPosition) {
+
+                mChoosesIvs[i].setVisibility(View.VISIBLE);
+                mPointTvs[i].setVisibility(View.GONE);
+
+            }
+
+        }
+
+        if (mDays.contains(7)) {
+
+            int index = mDays.indexOf(7);
+            boolean isOpen = index < mCurrentDayPosition;
+            setTeasureches(index, isOpen);
+            return;
+
+        }
+
+        if (mDays.contains(14)) {
+
+            int index = mDays.indexOf(14);
+            boolean isOpen = index < mCurrentDayPosition;
+            setTeasureches(index, isOpen);
+            return;
+
+        }
+
+        if (mDays.contains(30)) {
+
+            int index = mDays.indexOf(30);
+            boolean isOpen = index < mCurrentDayPosition;
+            setTeasureches(index, isOpen);
+            return;
+
+        }
+
+    }
+
+    //设置宝箱
+    private void setTeasureches(int position, boolean isOpen) {
+
+        mTeasurechesIvs[position].setVisibility(View.VISIBLE);
+        mChoosesIvs[position].setVisibility(View.INVISIBLE);
+        mPointTvs[position].setVisibility(View.INVISIBLE);
+
+        if (isOpen) {
+
+            mTeasurechesIvs[position].setImageResource(R.drawable.iv_daily_login_open_teasurechest);
+
+        } else {
+
+            mTeasurechesIvs[position].setImageResource(R.drawable.iv_daily_login_teasurechest);
+        }
+
+    }
+
+    @Override
+    public void startObserve() {
+
+    }
+
+    @Override
+    public void onClick(View view) {
+
+        int viewId = view.getId();
+        if (viewId == R.id.tv_daily_login_check_in) {
+
+            //积分+2移动动画
+            mPointTvs[mCurrentDayPosition].setText("+2");
+            addPointsToTotal(mPointTvs[mCurrentDayPosition]);
+
+        } else if (viewId == R.id.tv_goto_rewards) {
+
+            RewardsActivity.Companion.startInstance();
+
+        }
+
+    }
+
+    //增加积分的动画
+    private void addPointsToTotal(TextView pointsTv) {
+
+        // 创造出执行动画的主题goodsImg(这个图片就是执行动画的图片,从开始位置出发,经过一个抛物线(贝塞尔曲线),移动到购物车里)
+        TextView pointTv = new TextView(mActivity);
+//        goods.setImageDrawable(goodsImg.getDrawable());
+        pointTv.setBackgroundResource(R.drawable.iv_daily_login_unchoice);
+        pointTv.setText(pointsTv.getText().toString().trim());
+
+        pointTv.setTextColor(CommUtils.getColor(R.color.white));
+        pointTv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 8);
+        pointTv.setGravity(Gravity.CENTER);
+
+        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(CommUtils.dip2px(20), CommUtils.dip2px(20));
+//        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(100, 100);
+//        mShoppingCartRly.addView(goods, params);
+        mRootRl.addView(pointTv, params);
+
+        // 得到父布局的起始点坐标(用于辅助计算动画开始/结束时的点的坐标)
+        int[] parentLocation = new int[2];
+//        mShoppingCartRly.getLocationInWindow(parentLocation);
+        mRootRl.getLocationInWindow(parentLocation);
+
+        // 得到商品图片的坐标(用于计算动画开始的坐标)
+        int startLoc[] = new int[2];
+        pointsTv.getLocationInWindow(startLoc);
+
+        // 得到购物车图片的坐标(用于计算动画结束后的坐标)
+        int endLoc[] = new int[2];
+//        mShoppingCartIv.getLocationInWindow(endLoc);
+        mPointsTv.getLocationInWindow(endLoc);
+
+        // 开始掉落的商品的起始点:商品起始点-父布局起始点+该商品图片的一半
+        float startX = startLoc[0] - parentLocation[0] + pointsTv.getWidth() / 2;
+        float startY = startLoc[1] - parentLocation[1] + pointsTv.getHeight() / 2;
+
+        // 商品掉落后的终点坐标:购物车起始点-父布局起始点+购物车图片的1/5
+//        float toX = endLoc[0] - parentLocation[0] + mShoppingCartIv.getWidth() / 5;
+        float toX = endLoc[0] - parentLocation[0] + mPointsTv.getWidth() / 5;
+        float toY = endLoc[1] - parentLocation[1];
+
+        // 开始绘制贝塞尔曲线
+        Path path = new Path();
+        // 移动到起始点(贝塞尔曲线的起点)
+        path.moveTo(startX, startY);
+        // 使用二阶贝塞尔曲线:注意第一个起始坐标越大,贝塞尔曲线的横向距离就会越大,一般按照下面的式子取即可
+//        path.quadTo((startX + toX) / 2, startY, toX, toY);
+        path.quadTo(startX, (startY + toY) / 2, toX, toY);
+        // mPathMeasure用来计算贝塞尔曲线的曲线长度和贝塞尔曲线中间插值的坐标,如果是true,path会形成一个闭环
+        mPathMeasure = new PathMeasure(path, false);
+
+        // 属性动画实现(从0到贝塞尔曲线的长度之间进行插值计算,获取中间过程的距离值)
+        ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, mPathMeasure.getLength());
+        valueAnimator.setDuration(500);
+
+        // 匀速线性插值器
+        valueAnimator.setInterpolator(new LinearInterpolator());
+        valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+            @Override
+            public void onAnimationUpdate(ValueAnimator animation) {
+                // 当插值计算进行时,获取中间的每个值,
+                // 这里这个值是中间过程中的曲线长度(下面根据这个值来得出中间点的坐标值)
+                float value = (Float) animation.getAnimatedValue();
+                // 获取当前点坐标封装到mCurrentPosition
+                // boolean getPosTan(float distance, float[] pos, float[] tan) :
+                // 传入一个距离distance(0<=distance<=getLength()),然后会计算当前距离的坐标点和切线,pos会自动填充上坐标,这个方法很重要。
+                // mCurrentPosition此时就是中间距离点的坐标值
+                mPathMeasure.getPosTan(value, mCurrentPosition, null);
+                // 移动的商品图片(动画图片)的坐标设置为该中间点的坐标
+                pointTv.setTranslationX(mCurrentPosition[0]);
+                pointTv.setTranslationY(mCurrentPosition[1]);
+            }
+        });
+
+        // 开始执行动画
+        valueAnimator.start();
+
+        // 动画结束后的处理
+        valueAnimator.addListener(new Animator.AnimatorListener() {
+            @Override
+            public void onAnimationStart(Animator animation) {
+
+            }
+
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                // 购物车商品数量加1
+//                goodsCount ++;
+//                isShowCartGoodsCount();
+//                mShoppingCartCountTv.setText(String.valueOf(goodsCount));
+                // 把执行动画的商品图片从父布局中移除
+//                mShoppingCartRly.removeView(goods);
+                mRootRl.removeView(pointTv);
+
+                mPoint = mPoint + Integer.valueOf(pointsTv.getText().toString());
+
+                mPointsTv.setText(PointFormatUtils.formatPoints(String.valueOf(mPoint)));
+
+                if (mDays.get(mCurrentDayPosition) == 7 && !isBoxOpened) {
+
+                    isBoxOpened = true;
+                    //设置宝箱金额
+                    mPointTvs[mCurrentDayPosition].setText("+10");
+                    //添加开启宝箱的第二次动画
+                    addPointsToTotal(mPointTvs[mCurrentDayPosition]);
+                    //打卡宝箱
+                    mTeasurechesIvs[mCurrentDayPosition].setImageResource(R.drawable.iv_daily_login_open_teasurechest);
+
+                } else if (mDays.get(mCurrentDayPosition) == 14 && !isBoxOpened) {
+
+                    isBoxOpened = true;
+                    mPointTvs[mCurrentDayPosition].setText("+20");
+                    addPointsToTotal(mPointTvs[mCurrentDayPosition]);
+                    mTeasurechesIvs[mCurrentDayPosition].setImageResource(R.drawable.iv_daily_login_open_teasurechest);
+
+                } else if (mDays.get(mCurrentDayPosition) == 30 && !isBoxOpened) {
+
+                    isBoxOpened = true;
+                    mPointTvs[mCurrentDayPosition].setText("+50");
+                    addPointsToTotal(mPointTvs[mCurrentDayPosition]);
+                    mTeasurechesIvs[mCurrentDayPosition].setImageResource(R.drawable.iv_daily_login_open_teasurechest);
+
+                } else {
+
+                    if (!isBoxOpened) {
+
+                        mPointTvs[mCurrentDayPosition].setVisibility(View.GONE);
+                        mChoosesIvs[mCurrentDayPosition].setVisibility(View.VISIBLE);
+                    }
+
+                }
+
+            }
+
+            @Override
+            public void onAnimationCancel(Animator animation) {
+            }
+
+            @Override
+            public void onAnimationRepeat(Animator animation) {
+            }
+        });
+    }
+
+}

+ 108 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/RewardsDetailActivity.kt

@@ -0,0 +1,108 @@
+package com.hongyegroup.cpt_rewards.ui
+
+import android.content.Intent
+import android.os.Bundle
+import androidx.databinding.ViewDataBinding
+import com.guadou.lib_baselib.base.activity.BaseVDBActivity
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.utils.CommUtils
+import com.guadou.lib_baselib.view.MyScrollView
+import com.hongyegroup.cpt_rewards.BR
+import com.hongyegroup.cpt_rewards.R
+import com.hongyegroup.cpt_rewards.databinding.ActivityRewardsDetailBinding
+
+class RewardsDetailActivity : BaseVDBActivity<BaseViewModel, ActivityRewardsDetailBinding>() {
+
+    var mHeight = 0f
+    val mClickProxy by lazy { ClickProxy() }
+
+    companion object {
+        fun startInstance() {
+            val context = CommUtils.getContext()
+            val intent = Intent(context, RewardsDetailActivity::class.java)
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+            context.startActivity(intent)
+        }
+    }
+
+    override fun init(savedInstanceState: Bundle?) {
+
+        initView()
+        initListener()
+
+    }
+
+
+    override fun getDataBindingConfig(): DataBindingConfig {
+
+        return DataBindingConfig(R.layout.activity_rewards_detail)
+            .addBindingParams(BR.click, mClickProxy)
+
+    }
+
+    private fun initView() {
+
+        CommUtils.getHandler().postDelayed(Runnable {
+
+            mHeight = mBinding.clPromotionRewardsDetails.height.toFloat()
+
+        }, 100)
+
+    }
+
+    private fun initListener() {
+
+        mBinding.scrollViewPromotionRewardsDetail.setOnScrollListener(MyScrollView.OnScrollListener {
+
+            if (it >= 0 && it <= mHeight) {
+                var percent = 0f
+                if (mHeight != 0f) {
+                    percent = it / mHeight
+                }
+                mBinding.llPromotionRewardsDetailTitle.setBackgroundColor(evaluate(percent, CommUtils.getColor(R.color.transparent), CommUtils.getColor(R.color.white)))
+
+            } else {
+                mBinding.llPromotionRewardsDetailTitle.setBackgroundColor(CommUtils.getColor(R.color.white))
+            }
+
+
+        })
+
+    }
+
+    /**
+     * 根据百分比和起始颜色和结束颜色 计算当前的RGBA颜色
+     */
+    fun evaluate(fraction: Float, startValue: Int, endValue: Int): Int {
+        val startA = startValue shr 24 and 0xff
+        val startR = startValue shr 16 and 0xff
+        val startG = startValue shr 8 and 0xff
+        val startB = startValue and 0xff
+        val endA = endValue shr 24 and 0xff
+        val endR = endValue shr 16 and 0xff
+        val endG = endValue shr 8 and 0xff
+        val endB = endValue and 0xff
+        return startA + (fraction * (endA - startA)).toInt() shl 24 or
+                (startR + (fraction * (endR - startR)).toInt() shl 16) or
+                (startG + (fraction * (endG - startG)).toInt() shl 8) or
+                startB + (fraction * (endB - startB)).toInt()
+    }
+
+
+    override fun startObserve() {
+
+    }
+
+    inner class ClickProxy {
+
+        //跳转到兑换确认界面
+        fun gotoRewardsConfirmActivity() {
+
+            RewardsConfirmActivity.startInstance()
+
+        }
+
+    }
+
+}

+ 56 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/RewardsListActivity.kt

@@ -0,0 +1,56 @@
+package com.hongyegroup.cpt_rewards.ui
+
+import android.content.Intent
+import android.os.Bundle
+import com.guadou.lib_baselib.base.activity.BaseVDBActivity
+import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.ext.vertical
+import com.guadou.lib_baselib.utils.CommUtils
+import com.hongyegroup.cpt_rewards.BR
+import com.hongyegroup.cpt_rewards.R
+import com.hongyegroup.cpt_rewards.databinding.ActivityRewardsListBinding
+import com.hongyegroup.cpt_rewards.databinding.ActivityRewardsListBindingImpl
+import com.hongyegroup.cpt_rewards.mvvm.RewardsListViewModel
+
+class RewardsListActivity:BaseVDBActivity<RewardsListViewModel, ActivityRewardsListBinding>() {
+
+    companion object {
+
+        fun startInstance() {
+            val context = CommUtils.getContext()
+            val intent = Intent(context, RewardsListActivity::class.java)
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+            context.startActivity(intent)
+        }
+
+    }
+
+    override fun init(savedInstanceState: Bundle?) {
+
+        initView()
+
+    }
+
+    private fun initView() {
+
+        for (index in 0..9){
+
+            mViewModel.mRewardsListData.add("")
+
+        }
+
+        mBinding.recyclerViewRewardsList.vertical().adapter=mViewModel.mRewardsListAdapter
+        mViewModel.mRewardsListAdapter.notifyDataSetChanged()
+
+    }
+
+    override fun getDataBindingConfig(): DataBindingConfig {
+
+        return DataBindingConfig(R.layout.activity_rewards_list,BR.viewModel,mViewModel)
+
+    }
+
+    override fun startObserve() {
+
+    }
+}

+ 46 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/RewardsPaymentSuccessActivity.kt

@@ -0,0 +1,46 @@
+package com.hongyegroup.cpt_rewards.ui
+
+import android.content.Intent
+import android.os.Bundle
+import com.guadou.lib_baselib.base.activity.BaseVDBActivity
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.utils.CommUtils
+import com.hongyegroup.cpt_rewards.R
+import com.hongyegroup.cpt_rewards.databinding.ActivityRewardsPaymentSuccessBinding
+
+class RewardsPaymentSuccessActivity : BaseVDBActivity<BaseViewModel, ActivityRewardsPaymentSuccessBinding>() {
+
+    val mClickProxy by lazy { ClickProxy() }
+
+    companion object {
+
+        fun startInstance() {
+            val context = CommUtils.getContext()
+            val intent = Intent(context, RewardsPaymentSuccessActivity::class.java)
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+            context.startActivity(intent)
+        }
+
+    }
+
+    override fun init(savedInstanceState: Bundle?) {
+
+    }
+
+    override fun getDataBindingConfig(): DataBindingConfig {
+
+        return DataBindingConfig(R.layout.activity_rewards_payment_success)
+
+    }
+
+    override fun startObserve() {
+
+    }
+
+    /**
+     * DataBinding事件处理
+     */
+    inner class ClickProxy {}
+
+}

+ 56 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/RewardsSearchActivity.kt

@@ -0,0 +1,56 @@
+package com.hongyegroup.cpt_rewards.ui
+
+import android.content.Intent
+import android.os.Bundle
+import androidx.databinding.ViewDataBinding
+import com.guadou.lib_baselib.base.activity.BaseVDBActivity
+import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.ext.vertical
+import com.guadou.lib_baselib.utils.CommUtils
+import com.hongyegroup.cpt_rewards.BR
+import com.hongyegroup.cpt_rewards.R
+import com.hongyegroup.cpt_rewards.databinding.ActivityRewardsSearchBinding
+import com.hongyegroup.cpt_rewards.mvvm.RewardsSearchViewModel
+
+class RewardsSearchActivity : BaseVDBActivity<RewardsSearchViewModel, ActivityRewardsSearchBinding>() {
+
+    companion object {
+
+        fun startInstance() {
+            val context = CommUtils.getContext()
+            val intent = Intent(context, RewardsSearchActivity::class.java)
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+            context.startActivity(intent)
+        }
+
+    }
+
+    override fun init(savedInstanceState: Bundle?) {
+
+        initView()
+
+    }
+
+    private fun initView() {
+
+        for (index in 0..8){
+
+            mViewModel.mRewardsData.add("")
+
+        }
+
+        mBinding.recyclerViewRewardsSearch.vertical().adapter=mViewModel.mRewardsAdapter
+        mViewModel.mRewardsAdapter.notifyDataSetChanged()
+
+    }
+
+    override fun getDataBindingConfig(): DataBindingConfig {
+
+        return DataBindingConfig(R.layout.activity_rewards_search, BR.viewModel, mViewModel)
+
+    }
+
+    override fun startObserve() {
+
+    }
+}

+ 57 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/fragment/MyRewardsActiveFragment.kt

@@ -0,0 +1,57 @@
+package com.hongyegroup.cpt_rewards.ui.fragment
+
+import android.os.Bundle
+import android.view.View
+import androidx.databinding.ViewDataBinding
+import com.guadou.lib_baselib.base.fragment.BaseVDBLazyLoadingFragment
+import com.guadou.lib_baselib.base.vm.BaseViewModel
+import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.ext.vertical
+import com.guadou.lib_baselib.utils.CommUtils
+import com.hongyegroup.cpt_rewards.R
+import com.hongyegroup.cpt_rewards.databinding.FragmentMyRewardsActiveBinding
+import com.hongyegroup.cpt_rewards.mvvm.MyRewardsActiveViewModel
+
+class MyRewardsActiveFragment : BaseVDBLazyLoadingFragment<MyRewardsActiveViewModel, FragmentMyRewardsActiveBinding>() {
+
+
+    override fun getDataBindingConfig(): DataBindingConfig {
+
+        return DataBindingConfig(R.layout.fragment_my_rewards_active)
+
+    }
+
+    override fun startObserve() {
+
+    }
+
+    override fun init(savedInstanceState: Bundle?) {
+
+
+    }
+
+    override fun initViews(view: View) {
+        super.initViews(view)
+
+        for (index in 0..9){
+
+            mViewModel.mActiveRewardsData.add("")
+
+        }
+
+        mBinding.recyclerViewMyRewardsActive.vertical().adapter=mViewModel.mActiveAdapter
+        mViewModel.mActiveAdapter.notifyDataSetChanged()
+
+
+    }
+
+    override fun onLazyInitData() {
+
+        CommUtils.getHandler().postDelayed(Runnable {
+
+            showStateSuccess()
+
+        }, 200)
+
+    }
+}

+ 52 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/fragment/MyRewardsExpiredFragment.kt

@@ -0,0 +1,52 @@
+package com.hongyegroup.cpt_rewards.ui.fragment
+
+import android.os.Bundle
+import android.view.View
+import com.guadou.lib_baselib.base.fragment.BaseVDBLazyLoadingFragment
+import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.ext.vertical
+import com.guadou.lib_baselib.utils.CommUtils
+import com.hongyegroup.cpt_rewards.R
+import com.hongyegroup.cpt_rewards.databinding.FragmentMyRewardsActiveBinding
+import com.hongyegroup.cpt_rewards.mvvm.MyRewardsExpiredViewModel
+
+class MyRewardsExpiredFragment:BaseVDBLazyLoadingFragment<MyRewardsExpiredViewModel,FragmentMyRewardsActiveBinding>() {
+
+    override fun getDataBindingConfig(): DataBindingConfig {
+
+        return DataBindingConfig(R.layout.fragment_my_rewards_active)
+
+    }
+
+    override fun startObserve() {
+
+    }
+
+    override fun init(savedInstanceState: Bundle?) {
+
+    }
+
+    override fun initViews(view: View) {
+        super.initViews(view)
+
+        for (index in 0..8){
+
+            mViewModel.mExpiredRewardsData.add("")
+
+        }
+
+        mBinding.recyclerViewMyRewardsActive.vertical().adapter=mViewModel.mExpiredAdapter
+        mViewModel.mExpiredAdapter.notifyDataSetChanged()
+
+    }
+
+    override fun onLazyInitData() {
+
+        CommUtils.getHandler().postDelayed(Runnable {
+
+            showStateSuccess()
+
+        }, 200)
+
+    }
+}

+ 53 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/ui/fragment/MyRewardsUsedFragment.kt

@@ -0,0 +1,53 @@
+package com.hongyegroup.cpt_rewards.ui.fragment
+
+import android.os.Bundle
+import android.view.View
+import com.guadou.lib_baselib.base.fragment.BaseVDBLazyLoadingFragment
+import com.guadou.lib_baselib.bean.DataBindingConfig
+import com.guadou.lib_baselib.ext.vertical
+import com.guadou.lib_baselib.utils.CommUtils
+import com.hongyegroup.cpt_rewards.R
+import com.hongyegroup.cpt_rewards.databinding.FragmentMyRewardsActiveBinding
+import com.hongyegroup.cpt_rewards.mvvm.MyRewardsExpiredViewModel
+import com.hongyegroup.cpt_rewards.mvvm.MyRewardsUsedViewModel
+
+class MyRewardsUsedFragment:BaseVDBLazyLoadingFragment<MyRewardsUsedViewModel,FragmentMyRewardsActiveBinding>() {
+
+    override fun getDataBindingConfig(): DataBindingConfig {
+
+        return DataBindingConfig(R.layout.fragment_my_rewards_active)
+
+    }
+
+    override fun startObserve() {
+
+    }
+
+    override fun init(savedInstanceState: Bundle?) {
+
+    }
+
+    override fun initViews(view: View) {
+        super.initViews(view)
+
+        for (index in 0..8){
+
+            mViewModel.mUsedRewardsData.add("")
+
+        }
+
+        mBinding.recyclerViewMyRewardsActive.vertical().adapter=mViewModel.mUsedAdapter
+        mViewModel.mUsedAdapter.notifyDataSetChanged()
+
+    }
+
+    override fun onLazyInitData() {
+
+        CommUtils.getHandler().postDelayed(Runnable {
+
+            showStateSuccess()
+
+        }, 200)
+
+    }
+}

+ 93 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/utils/NumAnim.java

@@ -0,0 +1,93 @@
+package com.hongyegroup.cpt_rewards.utils;
+
+import android.widget.TextView;
+
+import java.text.DecimalFormat;
+import java.util.LinkedList;
+import java.util.Random;
+
+public class NumAnim {
+
+    //每秒刷新多少次
+    private static final int COUNTPERS = 10;
+
+    public static void startAnim(TextView textV, float num) {
+        startAnim(textV, num, 500);
+    }
+
+    public static void startAnim(TextView textV, float num, long time) {
+        if (num == 0) {
+            textV.setText(NumberFormat(num, 0));
+            return;
+        }
+
+        Float[] nums = splitnum(num, (int) ((time / 1000f) * COUNTPERS));
+
+        Counter counter = new Counter(textV, nums, time);
+
+        textV.removeCallbacks(counter);
+        textV.post(counter);
+    }
+
+    private static Float[] splitnum(float num, int count) {
+        Random random = new Random();
+        float numtemp = num;
+        float sum = 0;
+        LinkedList<Float> nums = new LinkedList<Float>();
+        nums.add(0f);
+        while (true) {
+            float nextFloat = NumberFormatFloat(
+                    (random.nextFloat() * num * 2f) / (float) count,
+                    0);
+            System.out.println("next:" + nextFloat);
+            if (numtemp - nextFloat >= 0) {
+                sum = NumberFormatFloat(sum + nextFloat, 0);
+                nums.add(sum);
+                numtemp -= nextFloat;
+            } else {
+                nums.add(num);
+                return nums.toArray(new Float[0]);
+            }
+        }
+    }
+
+    static class Counter implements Runnable {
+
+        private final TextView view;
+        private Float[] nums;
+        private long pertime;
+
+        private int i = 0;
+
+        Counter(TextView view, Float[] nums, long time) {
+            this.view = view;
+            this.nums = nums;
+            this.pertime = time / nums.length;
+        }
+
+        @Override
+        public void run() {
+            if (i > nums.length - 1) {
+                view.removeCallbacks(Counter.this);
+                return;
+            }
+            view.setText(NumberFormat(nums[i++], 0));
+            view.removeCallbacks(Counter.this);
+            view.postDelayed(Counter.this, pertime);
+        }
+    }
+
+    public static String NumberFormat(float f, int m) {
+
+        return new DecimalFormat("###,###,###,###").format(f);
+//        return String.format("%."+m+"f",f);
+    }
+
+    public static float NumberFormatFloat(float f, int m) {
+        String strfloat = NumberFormat(f, m);
+//        return Float.parseFloat(strfloat);
+        return f;
+    }
+
+
+}

+ 24 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/utils/PointFormatUtils.java

@@ -0,0 +1,24 @@
+package com.hongyegroup.cpt_rewards.utils;
+
+
+import com.guadou.lib_baselib.utils.CheckUtil;
+
+import java.text.DecimalFormat;
+
+public class PointFormatUtils {
+
+    /**
+     * 格式化point
+     */
+    public static String formatPoints(String value) {
+
+        if (CheckUtil.checkNumberPoint(value)) {
+            DecimalFormat df = new DecimalFormat("###,###,###.##");
+            value = df.format(Double.parseDouble(value));
+        }
+
+        return value;
+    }
+
+
+}

+ 122 - 0
cpt_rewards/src/main/java/com/hongyegroup/cpt_rewards/widget/PointsPaymentDialog.java

@@ -0,0 +1,122 @@
+package com.hongyegroup.cpt_rewards.widget;
+
+import android.annotation.SuppressLint;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.os.Bundle;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.style.ForegroundColorSpan;
+import android.text.style.RelativeSizeSpan;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.guadou.lib_baselib.utils.CommUtils;
+import com.hongyegroup.cpt_rewards.R;
+
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.DialogFragment;
+
+public class PointsPaymentDialog extends DialogFragment {
+
+    private ImageView mDeleteIv;
+    private TextView mPayNowTv;
+    private int mTotalPoint;
+
+    private OnClickPointsPaymentListener mListener;
+
+    public PointsPaymentDialog(int totalPoint) {
+
+        mTotalPoint = totalPoint;
+
+    }
+
+    @Nullable
+    @Override
+    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+
+        getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
+        Objects.requireNonNull(getDialog().getWindow()).setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
+
+        View inflateView = inflater.inflate(R.layout.dialog_points_payment, null);
+
+        return inflateView;
+    }
+
+    @Override
+    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+
+        mDeleteIv = view.findViewById(R.id.iv_dialog_points_payment_delete);
+        mPayNowTv = view.findViewById(R.id.iv_dialog_points_payment_pay_now);
+        TextView mDesTv = view.findViewById(R.id.tv_dialog_points_payment_des);
+
+        String pointStr = String.valueOf(mTotalPoint);
+
+        String splitStr="确定要花";
+        String desStr = "确定要花" + pointStr + "积分兑换商品吗?";
+        SpannableString spannableString = new SpannableString(desStr);
+        spannableString.setSpan(new RelativeSizeSpan(1.2f), splitStr.length(), splitStr.length() + pointStr.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
+        spannableString.setSpan(new ForegroundColorSpan(CommUtils.getColor(R.color.profile_red)), splitStr.length(), splitStr.length() + pointStr.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
+        mDesTv.setText(spannableString);
+
+        initListener();
+
+    }
+
+    @SuppressLint("CheckResult")
+    private void initListener() {
+
+        //点击Delete
+
+        mDeleteIv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+
+                dismiss();
+
+            }
+        });
+
+        //点击Pay Now
+        mPayNowTv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+
+                if (mListener != null) {
+
+                    mListener.OnClickPayNowListener();
+
+                }
+
+                dismiss();
+
+            }
+        });
+
+    }
+
+    public void setOnClickPointsPaymentDialogListener(OnClickPointsPaymentListener listener) {
+
+        if (listener != null) {
+
+            mListener = listener;
+        }
+
+    }
+
+    public interface OnClickPointsPaymentListener {
+
+        void OnClickPayNowListener();
+
+    }
+
+}

BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_daily_login_default_pictrue.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_daily_login_hlep.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_daily_login_open_teasurechest.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_daily_login_red_choose.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_daily_login_teasurechest.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_daily_login_unchoice.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_my_rewards_icon.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_address.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_instruction.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_jia.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_jian.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_package.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_qr_code.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_redeem_at.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_redeem_from.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_redeemable_on.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_redemption_notice.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_reservation.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_reviews.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_share.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_transaction.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_promotion_rewards_verification_code.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_address.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_arrow_bottom.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_arrow_top.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_expired_icon.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_hot.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_icon_f_and_b.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_main_top_bg.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_non_refundable.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_payment_success_paid_icon.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_payment_success_top_bg.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_recommend_all_icon.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_recommend_popularity_icon.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_redeemed_at.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_right_arrow.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_search_bg.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_star.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/iv_rewards_used_icon.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/login_top_bg.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/rewards_bronze.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/rewards_diamond.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/rewards_gold.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/rewards_icon_go_main.webp


BIN
cpt_rewards/src/main/res/drawable-xhdpi/rewards_silver.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_daily_login_default_pictrue.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_daily_login_hlep.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_daily_login_open_teasurechest.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_daily_login_red_choose.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_daily_login_teasurechest.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_daily_login_unchoice.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_my_rewards_icon.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_address.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_instruction.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_jia.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_jian.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_package.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_qr_code.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_redeem_at.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_redeem_from.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_redeemable_on.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_redemption_notice.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_reservation.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_reviews.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_share.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_transaction.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_promotion_rewards_verification_code.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_rewards_address.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_rewards_arrow_bottom.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_rewards_arrow_top.webp


BIN
cpt_rewards/src/main/res/drawable-xxhdpi/iv_rewards_expired_icon.webp


+ 0 - 0
cpt_rewards/src/main/res/drawable-xxhdpi/iv_rewards_hot.webp


Some files were not shown because too many files changed in this diff