Selaa lähdekoodia

移除会所宝箱守护功能,屏蔽部分头条

DoggyZhang 1 vuosi sitten
vanhempi
sitoutus
3a1b779701
100 muutettua tiedostoa jossa 35 lisäystä ja 5339 poistoa
  1. 0 1
      app/build.gradle
  2. 0 102
      app/src/main/java/com/adealink/weparty/module/guardtreasure/GuardTreasureModule.kt
  3. 0 27
      app/src/main/java/com/adealink/weparty/module/guardtreasure/IGuardTreasureService.kt
  4. 0 73
      app/src/main/java/com/adealink/weparty/module/guardtreasure/Router.kt
  5. 0 5
      app/src/main/java/com/adealink/weparty/module/guardtreasure/data/Constants.kt
  6. 0 32
      app/src/main/java/com/adealink/weparty/module/guardtreasure/data/GuardStatusData.kt
  7. 0 170
      app/src/main/java/com/adealink/weparty/module/guardtreasure/data/GuardTreasureData.kt
  8. 0 13
      app/src/main/java/com/adealink/weparty/module/guardtreasure/data/TreasureRewardData.kt
  9. 0 69
      app/src/main/java/com/adealink/weparty/module/guardtreasure/util/GuardTreasureUIUtil.kt
  10. 0 25
      app/src/main/java/com/adealink/weparty/module/guardtreasure/viewmodel/IGuardTreasureViewModel.kt
  11. 2 5
      app/src/main/java/com/adealink/weparty/module/operation/roomactivity/data/RoomActivityData.kt
  12. 0 47
      app/src/main/java/com/adealink/weparty/module/room/chat/data/Message.kt
  13. 20 21
      app/src/main/java/com/adealink/weparty/module/room/data/RoomNotifyData.kt
  14. 0 2
      app/src/main/java/com/adealink/weparty/module/room/sdk/data/RoomType.kt
  15. 10 14
      app/src/main/java/com/adealink/weparty/ui/home/BaseHomeFragment.kt
  16. 3 4
      module/game/src/main/java/com/adealink/weparty/game/GameServiceImpl.kt
  17. 0 1
      module/guardtreasure/.gitignore
  18. 0 48
      module/guardtreasure/build.gradle
  19. 0 18
      module/guardtreasure/src/main/AndroidManifest.xml
  20. 0 135
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/EnterClubRoomDialog.kt
  21. 0 149
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/GuardTreasureDialog.kt
  22. 0 168
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/GuardTreasureGetRewardsDialog.kt
  23. 0 127
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/GuardTreasureHistoryIntroDialog.kt
  24. 0 267
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/GuardTreasureInviteDialog.kt
  25. 0 186
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/GuardTreasurePreviewDialog.kt
  26. 0 79
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/GuardTreasureServiceImpl.kt
  27. 0 45
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/MyTreasureFragment.kt
  28. 0 342
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/TodayTreasureFragment.kt
  29. 0 88
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/TreasureHistoryFragment.kt
  30. 0 29
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/TreasureIntroFragment.kt
  31. 0 49
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/adapter/TreasureGetRewardItemViewBinder.kt
  32. 0 129
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/adapter/TreasureHistoryItemViewBinder.kt
  33. 0 55
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/adapter/TreasureRewardItemViewBinder.kt
  34. 0 56
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/adapter/TreasureRewardTopItemViewBinder.kt
  35. 0 18
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/datasource/local/GuardTreasureLocalService.kt
  36. 0 48
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/datasource/remote/GuardTreasureHttpService.kt
  37. 0 271
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/manager/GuardTreasureManager.kt
  38. 0 25
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/manager/IGuardTreasureManager.kt
  39. 0 8
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/manager/IInviteMemberManager.kt
  40. 0 27
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/manager/InviteMemberManager.kt
  41. 0 23
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/viewmodel/GuardTreasureDialogViewModel.kt
  42. 0 26
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/viewmodel/GuardTreasureEffectViewModel.kt
  43. 0 90
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/viewmodel/GuardTreasureHistoryViewModel.kt
  44. 0 190
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/viewmodel/GuardTreasureViewModel.kt
  45. 0 84
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/viewmodel/TodayGuardTreasureViewModel.kt
  46. 0 42
      module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/widget/RewardSpacingItemDecoration.kt
  47. 0 11
      module/guardtreasure/src/main/res/anim/item_enter_from_left.xml
  48. 0 7
      module/guardtreasure/src/main/res/anim/treasure_get_reward_item_anim.xml
  49. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_avatar_frame_ic.png
  50. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_bg.webp
  51. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_check_normal_ic.png
  52. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_check_selected_ic.png
  53. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_confirm_long_btn.png
  54. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_confirm_short_btn.png
  55. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_countdown_ic.png
  56. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_enter_club_bg.9.png
  57. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_guard_fail_bg.png
  58. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_guard_fail_for_rob_ic.png
  59. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_guard_success_bg.png
  60. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_history_ic.png
  61. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_history_intro_bg.png
  62. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_history_intro_tab_bg.png
  63. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_history_intro_tab_select_bg.png
  64. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_intro_ic.png
  65. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_invite_bg.png
  66. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_refresh_ic.png
  67. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_reward_bg.9.png
  68. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_tab_bg.png
  69. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_tab_left_unselected.png
  70. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_tab_right_unselected.png
  71. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_tab_selected.png
  72. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/guarding_go_btn.9.png
  73. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/treasure_reward_bg.png
  74. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/treasure_reward_bingo_bg.png
  75. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/treasure_reward_mark_ic.9.png
  76. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/treasure_reward_mark_rtl_ic.9.png
  77. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/treasure_reward_top_bingo_bg.png
  78. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/treasure_reward_top_mark_ic.9.png
  79. BIN
      module/guardtreasure/src/main/res/drawable-xhdpi/treasure_reward_top_mark_rtl_ic.9.png
  80. 0 6
      module/guardtreasure/src/main/res/drawable/guard_treasure_invite_refuse_bg.xml
  81. 0 6
      module/guardtreasure/src/main/res/drawable/guarding_bg.xml
  82. 0 13
      module/guardtreasure/src/main/res/drawable/guarding_treasure_invite_bottom_bg.xml
  83. 0 11
      module/guardtreasure/src/main/res/drawable/guarding_treasure_invite_under_bg.xml
  84. 0 13
      module/guardtreasure/src/main/res/drawable/guarding_treasure_preview_under_bg.xml
  85. 0 8
      module/guardtreasure/src/main/res/drawable/guarding_treasure_reward_item_bottom_bg.xml
  86. 0 6
      module/guardtreasure/src/main/res/drawable/guarding_treasure_status_bg.xml
  87. 0 23
      module/guardtreasure/src/main/res/layout/dialog_enter_clubroom.xml
  88. 0 68
      module/guardtreasure/src/main/res/layout/dialog_guard_treasure.xml
  89. 0 82
      module/guardtreasure/src/main/res/layout/dialog_guard_treasure_get_rewards.xml
  90. 0 337
      module/guardtreasure/src/main/res/layout/dialog_guard_treasure_invite.xml
  91. 0 193
      module/guardtreasure/src/main/res/layout/dialog_guard_treasure_preview.xml
  92. 0 62
      module/guardtreasure/src/main/res/layout/dialog_history_intro.xml
  93. 0 109
      module/guardtreasure/src/main/res/layout/fragment_my_treasure.xml
  94. 0 435
      module/guardtreasure/src/main/res/layout/fragment_today_treasure.xml
  95. 0 19
      module/guardtreasure/src/main/res/layout/fragment_treasure_history.xml
  96. 0 11
      module/guardtreasure/src/main/res/layout/fragment_treasure_intro.xml
  97. 0 81
      module/guardtreasure/src/main/res/layout/layout_treasure_get_reward_item.xml
  98. 0 237
      module/guardtreasure/src/main/res/layout/layout_treasure_history_item.xml
  99. 0 85
      module/guardtreasure/src/main/res/layout/layout_treasure_reward_item.xml
  100. 0 83
      module/guardtreasure/src/main/res/layout/layout_treasure_reward_top_item.xml

+ 0 - 1
app/build.gradle

@@ -221,7 +221,6 @@ android {
                        ':module:roomtask',
                        ':module:userprotect',
                        ':module:medal',
-                       ':module:guardtreasure',
                        ':module:bettingpk',
                        ':module:micgrab',
                        ':module:moment',

+ 0 - 102
app/src/main/java/com/adealink/weparty/module/guardtreasure/GuardTreasureModule.kt

@@ -1,102 +0,0 @@
-package com.adealink.weparty.module.guardtreasure
-
-import androidx.fragment.app.FragmentManager
-import androidx.lifecycle.ViewModelStoreOwner
-import com.adealink.frame.aab.BaseDynamicModule
-import com.adealink.weparty.R
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureData
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureLevelConfig
-import com.adealink.weparty.module.guardtreasure.viewmodel.IGuardTreasureViewModel
-
-object GuardTreasureModule : BaseDynamicModule<IGuardTreasureService>(IGuardTreasureService::class), IGuardTreasureService {
-    override val moduleNameResId: Int
-        get() = R.string.module_guard_treasure
-
-    override val featureName: String
-        get() = "guardtreasure"
-
-    override fun emptyService(): IGuardTreasureService {
-        return object : IGuardTreasureService {
-            override fun init() {}
-
-            override suspend fun loadConfig(fromCache: Boolean): Boolean {
-                return false
-            }
-            override fun getLevelConfig(level: Int): GuardTreasureLevelConfig? {
-                return null
-            }
-
-            override fun isSupportGuardTreasure(): Boolean {
-                return false
-            }
-
-            override fun getBannerPicUrl(): String? {
-                return null
-            }
-
-            override fun getGuardTreasureViewModel(owner: ViewModelStoreOwner): IGuardTreasureViewModel? {
-                return null
-            }
-
-            override fun showInviteRemind(): Boolean {
-                return false
-            }
-
-            override fun showGuardTreasurePreviewDialog(fm: FragmentManager, guardTreasure: GuardTreasureData) {}
-            override fun showGuardTreasureGetRewardsDialog(fm: FragmentManager, guardTreasure: GuardTreasureData) {}
-            override fun getLastInviteTime(uid: Long): Long {
-                return 0L
-            }
-
-            override fun updateInviteTime(uid: Long, time: Long) {}
-
-            override fun getService(): IGuardTreasureService? {
-                return null
-            }
-        }
-    }
-
-    override fun init() {
-        return getService().init()
-    }
-
-    override suspend fun loadConfig(fromCache: Boolean): Boolean {
-        return getService().loadConfig(fromCache)
-    }
-
-    override fun getLevelConfig(level: Int): GuardTreasureLevelConfig? {
-        return getService().getLevelConfig(level)
-    }
-
-    override fun isSupportGuardTreasure(): Boolean {
-        return getService().isSupportGuardTreasure()
-    }
-
-    override fun getBannerPicUrl(): String? {
-        return getService().getBannerPicUrl()
-    }
-
-    override fun getGuardTreasureViewModel(owner: ViewModelStoreOwner): IGuardTreasureViewModel? {
-        return getService().getGuardTreasureViewModel(owner)
-    }
-
-    override fun showInviteRemind(): Boolean {
-        return getService().showInviteRemind()
-    }
-
-    override fun showGuardTreasurePreviewDialog(fm: FragmentManager, guardTreasure: GuardTreasureData) {
-        return getService().showGuardTreasurePreviewDialog(fm, guardTreasure)
-    }
-
-    override fun showGuardTreasureGetRewardsDialog(fm: FragmentManager, guardTreasure: GuardTreasureData) {
-        return getService().showGuardTreasureGetRewardsDialog(fm, guardTreasure)
-    }
-
-    override fun getLastInviteTime(uid: Long): Long {
-        return getService().getLastInviteTime(uid)
-    }
-
-    override fun updateInviteTime(uid: Long, time: Long) {
-        getService().updateInviteTime(uid, time)
-    }
-}

+ 0 - 27
app/src/main/java/com/adealink/weparty/module/guardtreasure/IGuardTreasureService.kt

@@ -1,27 +0,0 @@
-package com.adealink.weparty.module.guardtreasure
-
-import androidx.fragment.app.FragmentManager
-import androidx.lifecycle.ViewModelStoreOwner
-import com.adealink.frame.aab.IService
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureData
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureLevelConfig
-import com.adealink.weparty.module.guardtreasure.viewmodel.IGuardTreasureViewModel
-
-interface IGuardTreasureService : IService<IGuardTreasureService> {
-
-    fun init()
-    suspend fun loadConfig(fromCache: Boolean = true): Boolean
-
-    fun getLevelConfig(level: Int): GuardTreasureLevelConfig?
-    fun isSupportGuardTreasure(): Boolean
-    fun getBannerPicUrl(): String?
-    fun getGuardTreasureViewModel(owner: ViewModelStoreOwner): IGuardTreasureViewModel?
-    fun showInviteRemind(): Boolean
-
-    fun showGuardTreasurePreviewDialog(fm: FragmentManager, guardTreasure: GuardTreasureData)
-
-    fun showGuardTreasureGetRewardsDialog(fm: FragmentManager, guardTreasure: GuardTreasureData)
-
-    fun getLastInviteTime(uid: Long): Long
-    fun updateInviteTime(uid: Long, time: Long)
-}

+ 0 - 73
app/src/main/java/com/adealink/weparty/module/guardtreasure/Router.kt

@@ -1,73 +0,0 @@
-package com.adealink.weparty.module.guardtreasure
-
-interface GuardTreasure {
-
-    //今日宝箱+宝箱库
-    interface GuardTreasure {
-        companion object {
-            const val PATH = "/guardTreasure"
-            const val TAG = "GuardTreasureDialog"
-
-            const val TAB_TODAY_TREASURE = 0
-            const val TAB_MY_TREASURE = 1
-        }
-    }
-
-    interface Preview {
-        companion object {
-            const val PATH = "/guardTreasurePreview"
-
-            const val EXTRA_GUARD_TREASURE = "extra_guard_treasure" //要守护的宝箱信息
-        }
-    }
-
-    //宝箱历史+玩法说明
-    interface HistoryIntro {
-        companion object {
-            const val PATH = "/guardTreasureHistoryIntro"
-            const val TAG = "guardTreasureHistoryIntro"
-
-            const val EXTRA_TAB = "extra_tab"
-            const val TAB_HISTORY = 0
-            const val TAB_INTRO = 1
-        }
-    }
-
-    interface InviteMember {
-        companion object {
-            const val PATH = "/guardTreasureInviteMember"
-            const val TAG = "guardTreasureInviteMember"
-
-            const val EXTRA_GUARD_TREASURE = "extra_guard_treasure" //要守护的宝箱信息
-        }
-    }
-
-    interface Invite {
-        companion object {
-            const val PATH = "/guardTreasureInvite"
-            const val TAG = "guardTreasureInvite"
-
-            const val EXTRA_GUARD_TREASURE = "extra_guard_treasure" //要守护的宝箱信息
-            const val EXTRA_CLUB_ROOM_ID = "extra_club_room_id" //会所所在ID
-
-            const val EXTRA_INVITER_UID = "extra_inviter_uid" //邀请者
-            const val EXTRA_INVITEE_UID = "extra_invitee_uid" //受邀者
-            const val EXTRA_IS_INVITER = "extra_is_inviter" //是否邀请者
-        }
-    }
-
-    interface GetReward {
-        companion object {
-            const val PATH = "/guardTreasureGetReward"
-
-            const val EXTRA_GUARD_TREASURE = "extra_guard_treasure" //要守护的宝箱信息
-        }
-    }
-
-    interface EnterClubRoomDialog {
-        companion object {
-            const val PATH = "/enterClubRoomDialog"
-            const val EXTRA_CLUB_ROOM_ID = "extra_club_room_id"
-        }
-    }
-}

+ 0 - 5
app/src/main/java/com/adealink/weparty/module/guardtreasure/data/Constants.kt

@@ -1,5 +0,0 @@
-package com.adealink.weparty.module.guardtreasure.data
-
-const val TREASURE_TYPE_BRONZE = 1 //青铜宝箱
-const val TREASURE_TYPE_SLIVER = 2 //白银宝箱
-const val TREASURE_TYPE_GOLD = 3 //黄金宝箱

+ 0 - 32
app/src/main/java/com/adealink/weparty/module/guardtreasure/data/GuardStatusData.kt

@@ -1,32 +0,0 @@
-package com.adealink.weparty.module.guardtreasure.data
-
-sealed class GuardStatusData
-
-//攻击准备
-data class AttackPrepareData(
-    val damageUid: Long, //谁要造成的伤害
-    val damageTime: Long, //什么时候开始造成伤害(单位:秒)
-) : GuardStatusData() {
-    fun getPrepareTimeLeft(): Long {
-        return System.currentTimeMillis() / 1000 - damageTime
-    }
-}
-
-//攻击并造成伤害
-data class AttackDamageData(
-    val damageUid: Long, //谁造成的伤害
-    val damage: Long, //造成的伤害值
-    val defense: Long, //剩余防御值
-) : GuardStatusData()
-
-//增加防御值
-data class AddDefenseData(
-    val addUid: Long, //谁增加的防御值
-    val addDefense: Long, //增加的防御值
-    val defense: Long, //剩余防御值
-) : GuardStatusData()
-
-//保护期间有人离开房间
-data class PartnerLeaveData(
-    val leaveUid: Long, //谁离开了
-) : GuardStatusData()

+ 0 - 170
app/src/main/java/com/adealink/weparty/module/guardtreasure/data/GuardTreasureData.kt

@@ -1,170 +0,0 @@
-package com.adealink.weparty.module.guardtreasure.data
-
-import android.os.Parcelable
-import com.adealink.frame.locale.language.data.MultiLanguageString
-import com.adealink.weparty.module.operation.activity.RewardDetailData
-import com.google.gson.annotations.JsonAdapter
-import com.google.gson.annotations.SerializedName
-import com.google.gson.internal.bind.ExtReflectiveTypeAdapterFactory
-import kotlinx.parcelize.IgnoredOnParcel
-import kotlinx.parcelize.Parcelize
-
-
-@JsonAdapter(ExtReflectiveTypeAdapterFactory::class)
-data class GuardTreasureConfig(
-    @SerializedName("version") val version: Long, //版本限制(低于此版本的不开放该功能)
-    @SerializedName("levelLimit") val levelLimit: Long, //用户等级限制(低于此等级的不开放该功能)
-    @SerializedName("show") val show: Boolean, //入口功能限制
-    @SerializedName("levelConfig") val levelConfig: List<GuardTreasureLevelConfig>,
-    @SerializedName("bannerConfig") val bannerConfig: MultiLanguageString
-)
-
-@JsonAdapter(ExtReflectiveTypeAdapterFactory::class)
-data class GuardTreasureLevelConfig(
-    @SerializedName("level") val level: Int, //宝箱等级
-    @SerializedName("name") val name: MultiLanguageString, //宝箱名称, {"en":"青铜宝箱","ar":"青铜宝箱","zh":"青铜宝箱"}
-    @SerializedName("closeUrl") val closeUrl: String, //宝箱一般图
-    @SerializedName("openUrl") val openUrl: String, //宝箱开箱图
-    @SerializedName("dynamicUrl") val dynamicUrl: String, //宝箱开箱动效
-) {
-    var dynamicLocalPath: String? = null
-    fun getName(languageCode: String?): String {
-        return name.getString(languageCode)
-    }
-
-    fun getPicUrlBy(status: GuardTreasureStatus): String {
-        return when (status) {
-            GuardTreasureStatus.GUARD_FAIL -> closeUrl
-            GuardTreasureStatus.UN_START -> closeUrl
-            GuardTreasureStatus.GUARDING -> closeUrl
-            GuardTreasureStatus.GUARD_SUCCESS -> openUrl
-            GuardTreasureStatus.ROB -> closeUrl
-            GuardTreasureStatus.ROB_SUCCESS -> closeUrl
-        }
-    }
-}
-
-@JsonAdapter(ExtReflectiveTypeAdapterFactory::class)
-data class GuardTreasureInviteRequest(
-    @SerializedName("id") val boxId: Long, //宝箱ID
-    @SerializedName("otherUid") val inviteUid: Long //邀请人UID
-)
-
-@JsonAdapter(ExtReflectiveTypeAdapterFactory::class)
-data class GuardTreasureInviteResponseRequest(
-    @SerializedName("id") val boxId: Long, //宝箱ID
-    @SerializedName("otherUid") val inviteUid: Long, //邀请人UID
-    @SerializedName("status") val status: Int //邀请状态,1同意邀请,2拒绝邀请
-) {
-    companion object {
-        const val ACCEPT_INVITE = 1
-        const val REFUSE_INVITE = 2
-    }
-}
-
-@JsonAdapter(ExtReflectiveTypeAdapterFactory::class)
-@Parcelize
-data class GuardTreasureData(
-    @SerializedName("roomId") val roomId: Long, //宝箱所在会所id
-    @SerializedName("id") val id: Long, //宝箱ID
-    @SerializedName("level") val level: Int, //宝箱等级
-    @SerializedName("status") val status: Int, //0未开启,1守护中,2开启成功,3已被抢,4抢夺成功
-    @SerializedName("rewards") val rewards: List<RewardDetailData>, //奖励信息
-
-    /**
-     * snatch:0, otherUid表示抢夺用户
-     * snatch:1, otherUid表示被抢用户
-     */
-    @SerializedName("snatch") val snatch: Int, //0是自己的宝箱,1是抢夺的
-    @SerializedName("otherUid") val otherUid: Long, //抢夺用户或被抢用户uid
-
-    @SerializedName("uid") val uid: Long, //宝箱归属者uid
-    @SerializedName("partnerUid") val partnerUid: Long, //伙伴uid
-
-    @SerializedName("refreshTime") val refreshTime: Long, //宝箱剩余刷新时长(秒),实时计算得出(用于刷新宝箱状态,每天的宝箱都不一样)
-    @SerializedName("guardTime") var guardTime: Long, //宝箱剩余守护时长(秒), 实时计算得出
-    @SerializedName("roomCloseTime") var roomCloseTime: Long, //会所关闭倒计时(秒), 实时计算得出(宝箱守护成功/宝箱被抢后)
-) : Parcelable {
-
-    @IgnoredOnParcel
-    var receiveTime: Long = 0 //接收数据的时间
-
-    @IgnoredOnParcel
-    var ownerUserInfo: com.adealink.weparty.module.profile.data.UserInfo? = null
-    fun getStatus(): GuardTreasureStatus {
-        return GuardTreasureStatus.getStatusBy(status)
-            ?: GuardTreasureStatus.UN_START
-    }
-}
-
-enum class GuardTreasureStatus(val status: Int) {
-    GUARD_FAIL(-1), //守护失败
-    UN_START(0), //未开始
-    GUARDING(1), //守护中
-    GUARD_SUCCESS(2), //开启成功
-    ROB(3), //已被抢
-    ROB_SUCCESS(4); //抢夺成功
-
-    companion object {
-        @JvmStatic
-        fun getStatusBy(status: Int): GuardTreasureStatus? {
-            return values().firstOrNull { it.status == status }
-        }
-    }
-}
-
-/**
- * 宝箱守护邀请通知
- */
-@JsonAdapter(ExtReflectiveTypeAdapterFactory::class)
-data class GuardInviteNotify(
-    @SerializedName("id") val boxId: Long, //宝箱ID
-    @SerializedName("roomId") val roomId: Long, //会所ID
-    @SerializedName("userInfo") val userInfo: com.adealink.weparty.module.profile.data.UserInfo, //宝箱ID
-)
-
-/**
- * 宝箱守护确认邀请通知
- */
-@JsonAdapter(ExtReflectiveTypeAdapterFactory::class)
-data class GuardInviteConfirmNotify(
-    @SerializedName("id") val boxId: Long, //宝箱ID
-    @SerializedName("roomId") val roomId: Long, //会所ID
-    @SerializedName("uid") val uid: Long, //会所owner
-    @SerializedName("partnerUid") val partnerUid: Long, //会所owner
-)
-
-/**
- * 宝箱守护成功通知
- */
-@JsonAdapter(ExtReflectiveTypeAdapterFactory::class)
-data class GuardSuccessNotify(
-    @SerializedName("id") val boxId: Long, //宝箱ID
-    @SerializedName("rewardIds") val rewardIds: List<Long>, //奖励ID
-)
-
-@JsonAdapter(ExtReflectiveTypeAdapterFactory::class)
-data class GuardTreasureHistoryData(
-    @SerializedName("records") val records: List<GuardTreasureHistoryItem>
-)
-
-@JsonAdapter(ExtReflectiveTypeAdapterFactory::class)
-data class GuardTreasureHistoryItem(
-    @SerializedName("id") val id: Long, //
-    @SerializedName("boxId") val boxId: Long, //宝箱ID
-    @SerializedName("status") val status: Int, //
-    @SerializedName("createTime") val createTime: Long,
-    @SerializedName("level") val level: Int,
-    @SerializedName("uid") val uid: Long,
-    @SerializedName("otherUid") val otherUid: Long,
-    @SerializedName("rewards") val rewards: List<RewardDetailData>,
-) {
-    var boxName: String? = null
-    var uidUserInfo: com.adealink.weparty.module.profile.data.UserInfo? = null
-    var otherUidUserInfo: com.adealink.weparty.module.profile.data.UserInfo? = null
-}
-
-@JsonAdapter(ExtReflectiveTypeAdapterFactory::class)
-data class OpenBoxData(
-    @SerializedName("rewardIds") val rewardIds: List<Long>, //奖励ID
-)

+ 0 - 13
app/src/main/java/com/adealink/weparty/module/guardtreasure/data/TreasureRewardData.kt

@@ -1,13 +0,0 @@
-package com.adealink.weparty.module.guardtreasure.data
-
-import com.adealink.weparty.module.operation.activity.RewardDetailData
-
-sealed class TreasureRewardItemData
-
-data class TreasureRewardNormalItemData(
-    val reward: RewardDetailData
-) : TreasureRewardItemData()
-
-data class TreasureRewardTopItemData(
-    val reward: RewardDetailData
-) : TreasureRewardItemData()

+ 0 - 69
app/src/main/java/com/adealink/weparty/module/guardtreasure/util/GuardTreasureUIUtil.kt

@@ -1,69 +0,0 @@
-package com.adealink.weparty.module.guardtreasure.util
-
-import com.adealink.frame.aab.util.getCompatString
-import com.adealink.frame.base.Rlt
-import com.adealink.weparty.commonui.toast.util.showFailedToast
-import com.adealink.weparty.commonui.toast.util.showToast
-import com.adealink.frame.network.data.Res
-import com.adealink.weparty.R
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureStatus
-import com.adealink.weparty.module.guardtreasure.data.TREASURE_TYPE_BRONZE
-import com.adealink.weparty.module.guardtreasure.data.TREASURE_TYPE_GOLD
-import com.adealink.weparty.module.guardtreasure.data.TREASURE_TYPE_SLIVER
-
-fun getTreasureLevelBg(level: Int): Int {
-    return when (level) {
-        TREASURE_TYPE_BRONZE -> {
-            R.drawable.guarding_treasure_bronze_bg
-        }
-        TREASURE_TYPE_SLIVER -> {
-            R.drawable.guarding_treasure_silver_bg
-        }
-        TREASURE_TYPE_GOLD -> {
-            R.drawable.guarding_treasure_gold_bg
-        }
-        else -> {
-            //默认最高级宝箱
-            R.drawable.guarding_treasure_gold_bg
-        }
-    }
-}
-
-fun getGuardTreasureStatusStr(status: GuardTreasureStatus, alreadyOpenBox: Boolean = true): String {
-    return when (status) {
-        GuardTreasureStatus.GUARD_FAIL -> getCompatString(R.string.guard_treasure_status_guard_fail)
-        GuardTreasureStatus.UN_START -> getCompatString(R.string.guard_treasure_status_un_start)
-        GuardTreasureStatus.GUARDING -> getCompatString(R.string.guard_treasure_status_guarding)
-        GuardTreasureStatus.GUARD_SUCCESS -> if (alreadyOpenBox) {
-            getCompatString(R.string.guard_treasure_status_guard_success)
-        } else {
-            getCompatString(R.string.guard_treasure_status_guard_success_can_open)
-        }
-        GuardTreasureStatus.ROB -> getCompatString(R.string.guard_treasure_status_rob)
-        GuardTreasureStatus.ROB_SUCCESS -> getCompatString(R.string.guard_treasure_status_rob_success)
-    }
-}
-
-fun handleSendInviteResult(result: Rlt<Res<Any>>) {
-    if (result is Rlt.Success) {
-        showToast(R.string.guard_treasure_invite_success)
-    } else {
-        showFailedToast(result)
-    }
-}
-
-fun handleRefuseInviteResult(result: Rlt<Res<Any>>) {
-    if (result is Rlt.Success) {
-        showToast(R.string.common_success)
-    } else {
-        showFailedToast(result)
-    }
-}
-
-fun handleAcceptInviteResult(result: Rlt<Res<Any>>) {
-    if (result is Rlt.Success) {
-        showToast(R.string.common_success)
-    } else {
-        showFailedToast(result)
-    }
-}

+ 0 - 25
app/src/main/java/com/adealink/weparty/module/guardtreasure/viewmodel/IGuardTreasureViewModel.kt

@@ -1,25 +0,0 @@
-package com.adealink.weparty.module.guardtreasure.viewmodel
-
-import androidx.lifecycle.LiveData
-import com.adealink.frame.base.Rlt
-import com.adealink.frame.mvvm.livedata.ExtLiveData
-import com.adealink.frame.network.data.Res
-import com.adealink.weparty.module.guardtreasure.data.GuardSuccessNotify
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureConfig
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureData
-import com.adealink.weparty.module.guardtreasure.data.OpenBoxData
-
-interface IGuardTreasureViewModel {
-
-    val guardTreasureConfigLD: LiveData<GuardTreasureConfig>
-
-    val guardTreasureInClubLD: LiveData<GuardTreasureData?>
-
-    val guardSuccessNotifyLD: ExtLiveData<GuardSuccessNotify>
-    fun loadGuardTreasureInClub()
-
-    val sendInviteResultLD :ExtLiveData<Pair<Long, Boolean>>
-    fun sendInvite(boxId: Long, inviteUid: Long): LiveData<Rlt<Res<Any>>>
-
-    fun openGuardTreasure(boxId: Long): LiveData<Rlt<Res<OpenBoxData>>>
-}

+ 2 - 5
app/src/main/java/com/adealink/weparty/module/operation/roomactivity/data/RoomActivityData.kt

@@ -7,9 +7,10 @@ import com.google.gson.annotations.JsonAdapter
 import com.google.gson.annotations.Must
 import com.google.gson.annotations.SerializedName
 import com.google.gson.internal.bind.ExtReflectiveTypeAdapterFactory
-import java.util.*
+import java.util.Calendar
 import java.util.Calendar.HOUR_OF_DAY
 import java.util.Calendar.MINUTE
+import java.util.TimeZone
 
 /**
  * Created by sunxiaodong on 2021/8/6.
@@ -34,10 +35,6 @@ data class WorldCupBannerInfo(
     val rankInfo: WorldCupRoomRankInfo? = null, //助威排行信息
 ) : RoomBannerInfo
 
-data class GuardTreasureBannerInfo(
-    @SerializedName("imgUrl") val imgUrl: String,
-) : RoomBannerInfo
-
 data class TimeRange(
     @SerializedName("fromTime")
     val fromTime: Long,

+ 0 - 47
app/src/main/java/com/adealink/weparty/module/room/chat/data/Message.kt

@@ -15,7 +15,6 @@ import com.adealink.weparty.module.gift.data.LuckyGiftLotteryNotify
 import com.adealink.weparty.module.gift.data.PackageGrabRecord
 import com.adealink.weparty.module.gift.data.TreasureGiftSendNotify
 import com.adealink.weparty.module.gift.data.TreasurePackageInfo
-import com.adealink.weparty.module.guardtreasure.data.GuardStatusData
 import com.adealink.weparty.module.operation.activity.RewardDetailData
 import com.adealink.weparty.module.party.data.PartyActivityStatusInfo
 import com.adealink.weparty.module.profile.ProfileModule
@@ -51,8 +50,6 @@ enum class MessageType(val type: String, val clazz: Class<*>?) {
     NEW_USER_GIFT("new_user_gift", NewUserGiftMsgContent::class.java),
     REWARD("reward", RewardMsgContent::class.java),
     LUCKY_GIFT_REWARD("lucky_gift_reward", LuckyGiftRewardMsgContent::class.java),
-    GUARD_TREASURE_STATUS("guard_treasure_status", GuardTreasureStatusMsgContent::class.java),
-    GUARD_TREASURE_REWARD("guard_treasure_get_reward", GuardTreasureRewardMsgContent::class.java),
     EMOTION("emotion", EmotionMsgContent::class.java),
     GRAB_GIFT_TREASURE("grab_gift_treasure", GrabGiftTreasureMsgContent::class.java),
     GIFT_TREASURE_SHOW("gift_treasure_show", GiftTreasureShowMsgContent::class.java),
@@ -617,50 +614,6 @@ data class LuckyGiftRewardMsgContent(@SerializedName("notify") val notify: Lucky
 
 }
 
-data class GuardTreasureStatusMsgContent(val status: GuardStatusData) :
-    DataBindingSpanContent(MessageType.GUARD_TREASURE_STATUS) {
-
-    override fun isValid(): Boolean = true
-
-    override fun areItemsTheSame(newItem: Content): Boolean {
-        return newItem is GuardTreasureStatusMsgContent
-    }
-
-    override fun areContentsTheSame(newContent: Content?): Boolean {
-        val other = (newContent as? GuardTreasureStatusMsgContent) ?: return false
-        return this.status == other.status
-    }
-
-    override fun toString(): String {
-        return "GuardTreasureStatusMsgContent ${super.toString()}"
-    }
-
-}
-
-data class GuardTreasureRewardMsgContent(
-    @SerializedName("uid") val uid: Long,
-    @SerializedName("userName") val userName: String,
-    @SerializedName("boxLevel") val boxLevel: Int,
-    @SerializedName("boxName") val boxName: String,
-    @SerializedName("rewardList") val rewardList: List<RewardDetailData>?,
-) : DataBindingSpanContent(MessageType.GUARD_TREASURE_REWARD) {
-    override fun isValid(): Boolean = true
-
-    override fun areItemsTheSame(newItem: Content): Boolean {
-        return newItem is GuardTreasureRewardMsgContent
-    }
-
-    override fun areContentsTheSame(newContent: Content?): Boolean {
-        val other = (newContent as? GuardTreasureRewardMsgContent) ?: return false
-        return this.uid == other.uid && this.boxLevel == other.boxLevel && this.boxName == other.boxName && this.rewardList?.size == other.rewardList?.size
-    }
-
-    override fun toString(): String {
-        return "GuardTreasureGetRewardMsgContent ${super.toString()}"
-    }
-
-}
-
 data class QuickMsgContent(
     @SerializedName("quickText") val quickText: QuickText,
 ) : Content(MessageType.QUICK_MESSAGE) {

+ 20 - 21
app/src/main/java/com/adealink/weparty/module/room/data/RoomNotifyData.kt

@@ -45,27 +45,26 @@ enum class RoomNotifyType(val uri: String) {
     SendBackPack("GOODS_SEND_NOTIFY"),
     LuckyFruit("GREEDYO_REWARD_NOTIFY"),
     SendRedPacket("NEW_REDPACKET"),
-    InviteReward("INVITE_REWARD_NOTIFY"),
+//    InviteReward("INVITE_REWARD_NOTIFY"),
     GiftWish("RAMADAN_GIFT_SEND_NOTIFY"),
     SuperGift("SUPER_GIFT_REWARD_NOTIFY"),
     Slot("SLOT_REWARD_NOTIFY"),
     SlotPro("NEW_SLOT_PRO_REWARD_NOTIFY"),
     NEW_SLOT_REWARD_NOTIFY("NEW_SLOT_REWARD_NOTIFY"),
     RTC_CHANGED_NOTIFY("RTC_CHANGED_NOTIFY"),
-    FAMILY_TOP_ROOM("FAMILY_TOP_ROOM"),
-    FLAG_RAISING("FLAG_RAISING"),
-    WORLD_CUP_POINTS_REACH_THRESHOLD("WORLDCUP_POINTS_REACH_THRESHOLD"),
+//    FAMILY_TOP_ROOM("FAMILY_TOP_ROOM"),
+//    FLAG_RAISING("FLAG_RAISING"),
+//    WORLD_CUP_POINTS_REACH_THRESHOLD("WORLDCUP_POINTS_REACH_THRESHOLD"),
     COMMON_GLOBAL_ROOM_BROADCAST_NOTIFY("COMMON_GLOBAL_NOTIFY"),
-    GUARD_TREASURE_SUCCESS_NOTIFY("ROOM_BOX_GLOBAL_NOTIFY"),
     DAILY_RECHARGE_REWARD_NOTIFY("URI_USER_DAILY_CHARGE_REWARD_NOTIFY"),
-    LEVEL_UP_NOTIFY("URI_LEVEL_UP_OTHER_NOTIFY"),
-    BETTING_PK_NOTIFY("SUPER_PK_GLOBAL_NOTIFY"),
-    TEEN_PATTI_REWARD_NOTIFY("TEEN_PATTI_REWARD_NOTIFY"),
+//    LEVEL_UP_NOTIFY("URI_LEVEL_UP_OTHER_NOTIFY"),
+//    BETTING_PK_NOTIFY("SUPER_PK_GLOBAL_NOTIFY"),
+//    TEEN_PATTI_REWARD_NOTIFY("TEEN_PATTI_REWARD_NOTIFY"),
     GREEDY_PRO_NOTIFY("NEW_GREEDYO_REWARD_NOTIFY"),
     ADMIN_LOTTERY_ACTIVITY_REWARD_NOTIFY("URI_USER_ADMIN_LOTTERY_ACTIVITY_REWARD_NOTIFY"),
     NEW_GREEDY_PRO_REWARD_NOTIFY("NEW_GREEDYO_PRO_REWARD_NOTIFY"),
     GREEDY_BOX_NOTIFY("GREEDY_BOX_REWARD_NOTIFY"),
-    SVIP_GLOBAL_NOTIFY("URI_SVIP_GLOBAL_NOTIFY");   // SVIP 升级全服通知
+//    SVIP_GLOBAL_NOTIFY("URI_SVIP_GLOBAL_NOTIFY");   // SVIP 升级全服通知
 }
 
 @JsonAdapter(ExtReflectiveTypeAdapterFactory::class)
@@ -80,26 +79,26 @@ data class GlobalRoomBroadcastNotify(
     val lotteryRewardNotify: LotteryRewardNotify? = null,
     @SerializedName("roomRedPacketQueueNotify")
     val roomRedPacketQueueNotify: RoomRedPacketQueueNotify? = null,
-    @SerializedName("inviteRewardNotify")
-    val inviteRewardNotify: InviteRewardNotify? = null,
+//    @SerializedName("inviteRewardNotify")
+//    val inviteRewardNotify: InviteRewardNotify? = null,
     @SerializedName("ramadanGiftSendNotify")
     val giftWishNotify: GiftWishNotify? = null,
     @SerializedName("superGiftRewardNotify")
     val superGiftRewardNotify: SuperGiftRewardNotify? = null,
     @SerializedName("rtcChangedNotify")
     val rtcChangedNotify: RtcChangedNotify? = null,
-    @SerializedName("familyTopRoomNotify")
-    val topFamilyRoomNotify: TopFamilyRoomNotify? = null,
-    @SerializedName("flagRaisingNotify")
-    val flagRaisingNotify: FlagRaisingNotify? = null,
-    @SerializedName("wordCupPointsReachThresholdNotify")
-    val wordCupPointsReachThresholdNotify: WordCupPointsReachThresholdNotify? = null,
-    @SerializedName("userReportedNotify")
-    val userReportedNotify: UserBeReportNotify? = null,
+//    @SerializedName("familyTopRoomNotify")
+//    val topFamilyRoomNotify: TopFamilyRoomNotify? = null,
+//    @SerializedName("flagRaisingNotify")
+//    val flagRaisingNotify: FlagRaisingNotify? = null,
+//    @SerializedName("wordCupPointsReachThresholdNotify")
+//    val wordCupPointsReachThresholdNotify: WordCupPointsReachThresholdNotify? = null,
+//    @SerializedName("userReportedNotify")
+//    val userReportedNotify: UserBeReportNotify? = null,
     @SerializedName("commonGlobalRoomBroadcastNotify")
     val commonGlobalRoomBroadcastNotify: CommonGlobalRoomBroadcastNotify? = null,
-    @SerializedName("roomBoxGlobalNotify")
-    val guardTreasureSuccessNotify: GuardTreasureSuccessBroadcastNotify? = null,
+//    @SerializedName("roomBoxGlobalNotify")
+//    val guardTreasureSuccessNotify: GuardTreasureSuccessBroadcastNotify? = null,
     @SerializedName("levelUpOtherNotify")
     val levelUpOtherNotify: LevelUpOtherNotify? = null,
     @SerializedName("superPkInfo")

+ 0 - 2
app/src/main/java/com/adealink/weparty/module/room/sdk/data/RoomType.kt

@@ -7,7 +7,6 @@ import com.adealink.weparty.module.room.data.RoomMicMode
  */
 enum class RoomType(val type: Int) {
     CHAT(0), //普通聊天房
-    CLUB(49152), //会所
     MIC_GRAB(2); //抢唱房
 
     companion object {
@@ -18,7 +17,6 @@ enum class RoomType(val type: Int) {
                 RoomMicMode.ROOM_MIC_NORMAL -> CHAT
                 RoomMicMode.ROOM_MIC_VIDEO_ROOM -> CHAT
                 RoomMicMode.ROOM_MIC_MIC_GRAB_ROOM -> MIC_GRAB
-                RoomMicMode.ROOM_MIC_CLUB_ROOM -> CLUB
                 else -> {
                     default
                 }

+ 10 - 14
app/src/main/java/com/adealink/weparty/ui/home/BaseHomeFragment.kt

@@ -9,15 +9,20 @@ import androidx.lifecycle.Observer
 import androidx.recyclerview.widget.RecyclerView
 import androidx.viewpager2.widget.ViewPager2
 import com.adealink.frame.base.fastLazy
-import com.adealink.weparty.commonui.BaseFragment
-import com.adealink.weparty.commonui.dialogfragment.BaseDialogFragment
-import com.adealink.weparty.commonui.toast.util.showToast
 import com.adealink.frame.log.Log
 import com.adealink.frame.router.Router
 import com.adealink.frame.util.removeUiCallbacks
 import com.adealink.frame.util.runOnUiThread
 import com.adealink.weparty.App
 import com.adealink.weparty.R
+import com.adealink.weparty.commonui.BaseFragment
+import com.adealink.weparty.commonui.dialogfragment.BaseDialogFragment
+import com.adealink.weparty.commonui.toast.util.showToast
+import com.adealink.weparty.config.globalConfigManager
+import com.adealink.weparty.databinding.LayoutMainTabNormalBinding
+import com.adealink.weparty.location.constant.TAG_LOCATION_REPORT
+import com.adealink.weparty.location.viewmodel.LocationViewModel
+import com.adealink.weparty.log.manager.logManager
 import com.adealink.weparty.module.account.AccountModule
 import com.adealink.weparty.module.anchor.AnchorModule
 import com.adealink.weparty.module.anchor.data.AnchorMessage
@@ -25,35 +30,27 @@ import com.adealink.weparty.module.anchor.data.AnchorMessageReplyCode
 import com.adealink.weparty.module.anchor.data.AnchorMessageType
 import com.adealink.weparty.module.anchor.data.FromScene
 import com.adealink.weparty.module.backpack.BackpackModule
-import com.adealink.weparty.module.call.CallModule
-import com.adealink.weparty.config.globalConfigManager
 import com.adealink.weparty.module.couple.CoupleModule
-import com.adealink.weparty.databinding.LayoutMainTabNormalBinding
 import com.adealink.weparty.module.emotion.EmotionModule
 import com.adealink.weparty.module.family.FamilyModule
 import com.adealink.weparty.module.game.GameModule
 import com.adealink.weparty.module.gift.GiftModule
-import com.adealink.weparty.module.guardtreasure.GuardTreasureModule
 import com.adealink.weparty.module.level.LevelModule
 import com.adealink.weparty.module.level.data.TAG_LEVEL
-import com.adealink.weparty.location.constant.TAG_LOCATION_REPORT
-import com.adealink.weparty.location.viewmodel.LocationViewModel
-import com.adealink.weparty.log.manager.logManager
 import com.adealink.weparty.module.medal.Medal
 import com.adealink.weparty.module.medal.MedalModule
 import com.adealink.weparty.module.medal.data.MedalData
 import com.adealink.weparty.module.message.MessageModule
-import com.adealink.weparty.module.operation.OperationModule
 import com.adealink.weparty.module.operation.Operation
+import com.adealink.weparty.module.operation.OperationModule
 import com.adealink.weparty.module.profile.ProfileModule
 import com.adealink.weparty.module.room.RoomModule
 import com.adealink.weparty.module.skin.SkinModule
+import com.adealink.weparty.module.wallet.WalletModule
 import com.adealink.weparty.ui.home.util.HomeUIUtil
 import com.adealink.weparty.ui.tab.HOME_TABS
 import com.adealink.weparty.ui.tab.ITabManager
 import com.adealink.weparty.ui.tab.Tab
-import com.adealink.weparty.module.wallet.WalletModule
-import com.adealink.weparty.module.webview.WebModule
 import com.adealink.weparty.widget.skin.SkinResourceStatus
 import com.google.android.material.tabs.TabLayout
 import com.google.android.material.tabs.TabLayoutMediator
@@ -194,7 +191,6 @@ abstract class BaseHomeFragment : BaseFragment, ITabManager {
         GiftModule.getGifts(true)
         EmotionModule.getEmotionPackages(true)
         MedalModule.init()
-        GuardTreasureModule.init()
         OperationModule.init()
         SkinModule.getCurrentSkin(true)
         familyInfoViewModel?.getApplyJoinFamilyUnHandleNum()

+ 3 - 4
module/game/src/main/java/com/adealink/weparty/game/GameServiceImpl.kt

@@ -7,6 +7,7 @@ import com.adealink.frame.spi.RegisterService
 import com.adealink.frame.util.PackageUtil
 import com.adealink.weparty.App
 import com.adealink.weparty.channel.getChannel
+import com.adealink.weparty.cocosgame.data.Game
 import com.adealink.weparty.commonui.widget.floatview.data.IBaseFloatData
 import com.adealink.weparty.commonui.widget.floatview.view.BaseFloatView
 import com.adealink.weparty.game.datasource.remote.GameHttpService
@@ -17,13 +18,11 @@ import com.adealink.weparty.game.redpacket.manager.redPacketManager
 import com.adealink.weparty.game.redpacket.viewmodel.RedPacketViewModel
 import com.adealink.weparty.game.rocket.floatview.RocketHeadlineFloatData
 import com.adealink.weparty.game.rocket.floatview.RocketHeadlineFloatView
-import com.adealink.weparty.game.rocket.manager.rocketManager
 import com.adealink.weparty.game.rocket.viewmodel.RocketViewModel
 import com.adealink.weparty.game.roulette.manager.rouletteManager
 import com.adealink.weparty.game.roulette.viewmodel.RouletteViewModel
 import com.adealink.weparty.game.viewmodel.GameViewModel
 import com.adealink.weparty.game.viewmodel.GameViewModelFactory
-import com.adealink.weparty.cocosgame.data.Game
 import com.adealink.weparty.module.game.IGameService
 import com.adealink.weparty.module.game.data.CommonActivityRewardInfoReq
 import com.adealink.weparty.module.game.data.GameActivityRewardInfo
@@ -148,7 +147,7 @@ class GameServiceImpl : IGameService {
     }
 
     override fun initRocket() {
-        rocketManager.init()
+        //rocketManager.init()
     }
 
     override fun getRocketHeadlineFloatView(data: IBaseFloatData): BaseFloatView? {
@@ -157,7 +156,7 @@ class GameServiceImpl : IGameService {
 
 
     override fun logout() {
-        rocketManager.onLogout()
+        //rocketManager.onLogout()
     }
 
     override suspend fun getGameBetCoinsConfig(game: Game, gameType: Int?): Map<Int, Map<Int, List<Int>>> {

+ 0 - 1
module/guardtreasure/.gitignore

@@ -1 +0,0 @@
-/build

+ 0 - 48
module/guardtreasure/build.gradle

@@ -1,48 +0,0 @@
-plugins {
-    id 'com.android.dynamic-feature'
-    id 'org.jetbrains.kotlin.android'
-    id 'org.jetbrains.kotlin.kapt'
-    id 'kotlin-parcelize'
-}
-android {
-    namespace 'com.adealink.weparty.guardtreasure'
-    compileSdk libs.versions.compileSdk.get().toInteger()
-
-    defaultConfig {
-        minSdk libs.versions.minSdk.get().toInteger()
-
-        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
-    }
-
-
-
-    buildTypes {
-        release {
-            debuggable false
-        }
-    }
-
-    compileOptions {
-        sourceCompatibility JavaVersion.VERSION_17
-        targetCompatibility JavaVersion.VERSION_17
-    }
-
-    kotlinOptions {
-        jvmTarget = JavaVersion.VERSION_17.majorVersion
-    }
-
-    viewBinding {
-        enabled = true
-    }
-}
-
-dependencies {
-    implementation project(":app")
-    //frame
-    kapt libs.frame.router.compiler
-
-    //test
-    testImplementation libs.junit
-    androidTestImplementation libs.androidx.junit
-    androidTestImplementation libs.androidx.espresso.core
-}

+ 0 - 18
module/guardtreasure/src/main/AndroidManifest.xml

@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:dist="http://schemas.android.com/apk/distribution">
-
-    <dist:module
-        dist:instant="false"
-        dist:title="@string/module_guard_treasure">
-        <dist:fusing dist:include="true" />
-        <dist:delivery>
-            <dist:install-time>
-                <dist:removable dist:value="true"/>
-            </dist:install-time>
-        </dist:delivery>
-    </dist:module>
-
-    <application>
-    </application>
-</manifest>

+ 0 - 135
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/EnterClubRoomDialog.kt

@@ -1,135 +0,0 @@
-package com.adealink.weparty.guardtreasure
-
-import android.graphics.Color
-import android.graphics.drawable.ColorDrawable
-import android.os.Bundle
-import android.text.SpannableStringBuilder
-import android.text.Spanned
-import android.text.style.ForegroundColorSpan
-import android.view.Gravity
-import android.view.WindowManager
-import com.adealink.frame.aab.util.getCompatColor
-import com.adealink.frame.aab.util.getCompatString
-import com.adealink.frame.ext.isViewBindingValid
-import com.adealink.frame.ext.safeSetSpan
-import com.adealink.frame.mvvm.view.viewBinding
-import com.adealink.frame.router.Router
-import com.adealink.frame.router.annotation.BindExtra
-import com.adealink.frame.router.annotation.RouterUri
-import com.adealink.frame.util.removeUiCallbacks
-import com.adealink.frame.util.runOnUiThread
-import com.adealink.weparty.commonui.dialogfragment.BaseDialogFragment
-import com.adealink.weparty.guardtreasure.databinding.DialogEnterClubroomBinding
-import com.adealink.weparty.module.guardtreasure.GuardTreasure
-import com.adealink.weparty.module.room.Room
-import com.adealink.weparty.room.data.EnterRoomInfo
-import com.adealink.weparty.room.data.JoinRoomFrom
-import java.lang.Long.max
-import java.util.Locale
-import com.adealink.weparty.R as APP_R
-
-@RouterUri(path = [GuardTreasure.EnterClubRoomDialog.PATH], desc = "进入ClubRoom准备弹窗")
-class EnterClubRoomDialog : BaseDialogFragment(R.layout.dialog_enter_clubroom) {
-
-    companion object {
-        private const val ENTER_CLUB_DELAY = 3L
-    }
-
-    @BindExtra(name = GuardTreasure.EnterClubRoomDialog.EXTRA_CLUB_ROOM_ID, desc = "ClubRoomId", must = true)
-    var clubRoomId: Long = 0
-
-    private var startDelayTime = 0L
-
-    private val binding by viewBinding(DialogEnterClubroomBinding::bind)
-
-    private val delayTimerRunnable = Runnable {
-        updateDelayTime()
-        startDelayTimer()
-    }
-
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-        Router.bind(this)
-        setStyle(STYLE_NO_TITLE, APP_R.style.FullScreenDialogTheme)
-    }
-
-    override fun onStart() {
-        super.onStart()
-        resetDialogAttributes()
-    }
-
-    override fun initViews() {
-        super.initViews()
-        startDelayTime = 0
-        updateDelayTime()
-        startDelayTimer()
-        runOnUiThread(
-            {
-                gotoGuardingRoom()
-                dismiss()
-            }, ENTER_CLUB_DELAY * 1000
-        )
-    }
-
-    private fun startDelayTimer() {
-        runOnUiThread(delayTimerRunnable, 1000)
-    }
-
-    private fun stopDelayTimer() {
-        removeUiCallbacks(delayTimerRunnable)
-    }
-
-    private fun updateDelayTime() {
-        if (!isViewBindingValid()) {
-            return
-        }
-        val timeLeftSeconds = max(0, ENTER_CLUB_DELAY - startDelayTime)
-        startDelayTime++
-
-        val timeLeftStr = String.format(Locale.ENGLISH, "%02d", timeLeftSeconds)
-        val text = getCompatString(R.string.guard_treasure_join_room_tips, timeLeftStr)
-        val ssb = SpannableStringBuilder(text).apply {
-            val index = text.indexOf(timeLeftStr)
-            if (index >= 0) {
-                safeSetSpan(
-                    ForegroundColorSpan(getCompatColor(com.adealink.weparty.R.color.color_FFFFDB4A)),
-                    index,
-                    index + timeLeftStr.length,
-                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
-                )
-            }
-        }
-        binding.tvTitle.text = ssb
-    }
-
-    private fun gotoGuardingRoom() {
-        if (clubRoomId == 0L) {
-            return
-        }
-        val act = activity ?: return
-        Router.build(act, Room.Room.PATH).apply {
-            putExtra(
-                Room.Room.EXTRA_ENTER_ROOM_INFO, EnterRoomInfo(clubRoomId, JoinRoomFrom.GUARD_TREASURE_DIALOG.from)
-            )
-            start()
-        }
-    }
-
-    override fun onStop() {
-        super.onStop()
-        stopDelayTimer()
-    }
-
-    private fun resetDialogAttributes() {
-        val dialog = dialog ?: return
-        val window = dialog.window ?: return
-        val layoutParams = window.attributes
-        layoutParams.gravity = Gravity.BOTTOM
-        layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT
-        layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT
-        layoutParams.dimAmount = 0.7f
-        window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
-        window.attributes = layoutParams
-        dialog.setCanceledOnTouchOutside(false)
-    }
-}

+ 0 - 149
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/GuardTreasureDialog.kt

@@ -1,149 +0,0 @@
-package com.adealink.weparty.guardtreasure
-
-import android.graphics.Color
-import android.graphics.drawable.ColorDrawable
-import android.os.Bundle
-import android.view.Gravity
-import android.view.WindowManager
-import androidx.fragment.app.viewModels
-import com.adealink.frame.aab.util.getCompatString
-import com.adealink.frame.ext.ellipsizeIfMoreThan
-import com.adealink.frame.mvvm.view.viewBinding
-import com.adealink.frame.router.Router
-import com.adealink.frame.router.annotation.RouterUri
-import com.adealink.frame.util.DisplayUtil
-import com.adealink.weparty.commonui.BaseFragment
-import com.adealink.weparty.commonui.dialogfragment.BaseDialogFragment
-import com.adealink.weparty.commonui.ext.hide
-import com.adealink.weparty.commonui.ext.show
-import com.adealink.weparty.guardtreasure.databinding.DialogGuardTreasureBinding
-import com.adealink.weparty.guardtreasure.viewmodel.CurrentGuardInfo
-import com.adealink.weparty.guardtreasure.viewmodel.GuardTreasureDialogViewModel
-import com.adealink.weparty.guardtreasure.viewmodel.GuardTreasureViewModel
-import com.adealink.weparty.module.guardtreasure.GuardTreasure
-import com.adealink.weparty.module.room.Room
-import com.adealink.weparty.room.data.EnterRoomInfo
-import com.adealink.weparty.room.data.JoinRoomFrom
-import com.adealink.weparty.R as APP_R
-
-@RouterUri(path = [GuardTreasure.GuardTreasure.PATH], desc = "宝箱守护+宝箱库")
-class GuardTreasureDialog : BaseDialogFragment(R.layout.dialog_guard_treasure) {
-
-    private val binding by viewBinding(DialogGuardTreasureBinding::bind)
-    private val dialogViewModel by viewModels<GuardTreasureDialogViewModel>()
-    private val guardTreasureViewModel by viewModels<GuardTreasureViewModel>()
-
-    private var currentTab = GuardTreasure.GuardTreasure.TAB_TODAY_TREASURE
-
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-        setStyle(STYLE_NO_TITLE, APP_R.style.BottomDialog)
-    }
-
-    override fun onStart() {
-        super.onStart()
-        resetDialogAttributes()
-    }
-
-    override fun initViews() {
-        super.initViews()
-        binding.tvGo.setOnClickListener {
-            gotoGuardingRoom()
-        }
-        switchTo(currentTab)
-    }
-
-    override fun loadData() {
-        super.loadData()
-        guardTreasureViewModel.loadCurrentGuardingInfo()
-    }
-
-    override fun observeViewModel() {
-        super.observeViewModel()
-        dialogViewModel.switchTabLD.observe(viewLifecycleOwner) {
-            switchTo(it)
-        }
-        dialogViewModel.closeDialogLD.observe(viewLifecycleOwner) {
-            dismiss()
-        }
-        guardTreasureViewModel.currentGuardingLD.observe(viewLifecycleOwner) {
-            updateCurrentGuardInfo(it)
-        }
-    }
-
-    private fun switchTo(tab: Int) {
-        currentTab = tab
-        childFragmentManager.beginTransaction()
-            .replace(R.id.fl_content, getFragmentByTab(tab), getFragmentTagByTab(tab))
-            .commitNowAllowingStateLoss()
-    }
-
-    private fun getFragmentByTab(tab: Int): BaseFragment {
-        return when (tab) {
-            GuardTreasure.GuardTreasure.TAB_MY_TREASURE -> {
-                MyTreasureFragment()
-            }
-            else -> {
-                //默认"今日宝箱"
-                TodayTreasureFragment()
-            }
-        }
-    }
-
-    private fun getFragmentTagByTab(tab: Int): String {
-        return when (tab) {
-            GuardTreasure.GuardTreasure.TAB_MY_TREASURE -> {
-                MyTreasureFragment.TAG
-            }
-            else -> {
-                TodayTreasureFragment.TAG
-            }
-        }
-    }
-
-    private fun updateCurrentGuardInfo(data: CurrentGuardInfo?) {
-        if (data == null) {
-            binding.clGuarding.hide()
-            return
-        }
-        binding.clGuarding.show()
-        binding.tvGuardingTitle.text = getCompatString(R.string.guarding_title, data.ownerName.ellipsizeIfMoreThan(10))
-    }
-
-    private fun gotoGuardingRoom() {
-        val act = activity ?: return
-        val guardInfo = guardTreasureViewModel.getCurrentGuardInfo() ?: return
-        if (guardInfo.roomId == 0L) {
-            return
-        }
-        Router.build(act, Room.Room.PATH).apply {
-            putExtra(
-                Room.Room.EXTRA_ENTER_ROOM_INFO,
-                EnterRoomInfo(guardInfo.roomId, JoinRoomFrom.GUARD_TREASURE_DIALOG.from)
-            )
-            start()
-        }
-        dismiss()
-    }
-
-    private fun resetDialogAttributes() {
-        val dialog = dialog ?: return
-        val window = dialog.window ?: return
-        val layoutParams = window.attributes
-        layoutParams.gravity = Gravity.BOTTOM
-        layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT
-
-        //计算出期望高度
-        val expectHeight = (DisplayUtil.getScreenWidth() / 375f * 650f).toInt()
-        val maxHeight = DisplayUtil.getScreenHeight() - DisplayUtil.getStatusBarHeight(window)
-        if (expectHeight > maxHeight) {
-            layoutParams.height = maxHeight
-        } else {
-            layoutParams.height = expectHeight
-        }
-        layoutParams.dimAmount = 0.7f
-        window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
-        window.attributes = layoutParams
-        dialog.setCanceledOnTouchOutside(true)
-    }
-}

+ 0 - 168
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/GuardTreasureGetRewardsDialog.kt

@@ -1,168 +0,0 @@
-package com.adealink.weparty.guardtreasure
-
-import android.graphics.Color
-import android.graphics.drawable.ColorDrawable
-import android.os.Bundle
-import android.view.Gravity
-import android.view.WindowManager
-import android.view.animation.AnimationUtils
-import androidx.fragment.app.viewModels
-import androidx.recyclerview.widget.GridLayoutManager
-import androidx.recyclerview.widget.RecyclerView
-import com.adealink.frame.base.fastLazy
-import com.adealink.weparty.commonui.dialogfragment.BaseDialogFragment
-import com.adealink.weparty.commonui.ext.dp
-import com.adealink.weparty.commonui.ext.gone
-import com.adealink.weparty.commonui.ext.hide
-import com.adealink.weparty.commonui.ext.show
-import com.adealink.weparty.commonui.recycleview.adapter.multitype.MultiTypeAdapter
-import com.adealink.weparty.commonui.recycleview.itemdecoration.GridSpacingItemDecoration
-import com.adealink.frame.ext.isViewBindingValid
-import com.adealink.frame.mvvm.view.viewBinding
-import com.adealink.frame.router.Router
-import com.adealink.frame.router.annotation.BindExtra
-import com.adealink.frame.router.annotation.RouterUri
-import com.adealink.frame.util.DisplayUtil
-import com.adealink.frame.util.runOnUiThread
-import com.adealink.weparty.guardtreasure.adapter.TreasureGetRewardItemViewBinder
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureData
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureLevelConfig
-import com.adealink.weparty.module.guardtreasure.data.TreasureRewardNormalItemData
-import com.adealink.weparty.guardtreasure.databinding.DialogGuardTreasureGetRewardsBinding
-import com.adealink.weparty.guardtreasure.manager.guardTreasureManager
-import com.adealink.weparty.guardtreasure.viewmodel.GuardTreasureEffectViewModel
-import com.adealink.weparty.module.guardtreasure.GuardTreasure
-import com.tencent.qgame.animplayer.AnimConfig
-import com.tencent.qgame.animplayer.inter.IAnimListener
-import com.tencent.qgame.animplayer.util.ScaleType
-import java.io.File
-import java.lang.Integer.max
-import com.adealink.weparty.R as APP_R
-
-@RouterUri(path = [GuardTreasure.GetReward.PATH], desc = "守护宝箱获得奖励开奖弹窗")
-class GuardTreasureGetRewardsDialog : BaseDialogFragment(R.layout.dialog_guard_treasure_get_rewards) {
-
-    companion object {
-        private const val MAX_SPAN_COUNT = 4
-    }
-
-    @BindExtra(name = GuardTreasure.Invite.EXTRA_GUARD_TREASURE, desc = "要守护的宝箱信息")
-    var guardTreasure: GuardTreasureData? = null
-
-    private val binding by viewBinding(DialogGuardTreasureGetRewardsBinding::bind)
-    private val effectViewModel by viewModels<GuardTreasureEffectViewModel>()
-    private val rewardAdapter by fastLazy { MultiTypeAdapter() }
-
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-        Router.bind(this)
-        setStyle(STYLE_NO_TITLE, APP_R.style.BottomDialog)
-    }
-
-    override fun onStart() {
-        super.onStart()
-        resetDialogAttributes()
-    }
-
-    override fun initViews() {
-        super.initViews()
-        binding.root.setOnClickListener { dismiss() }
-        binding.ivTreasure.setOnClickListener { //Ntd.
-        }
-        binding.tvTitle.setOnClickListener { //Ntd.
-        }
-
-        val parentWidth = DisplayUtil.getScreenWidth() - 32.dp()
-        rewardAdapter.register(TreasureGetRewardItemViewBinder(parentWidth))
-        binding.rvRewards.adapter = rewardAdapter
-
-        val rewardCount = max(guardTreasure?.rewards?.filter { it.isWinning() }?.size ?: 1, 1)
-        val span = if (rewardCount < MAX_SPAN_COUNT) {
-            rewardCount
-        } else {
-            MAX_SPAN_COUNT
-        }
-        binding.rvRewards.layoutManager = GridLayoutManager(context, span, RecyclerView.VERTICAL, false)
-        binding.rvRewards.addItemDecoration(
-            GridSpacingItemDecoration(span, 8.dp(), 8.dp(), false)
-        )
-        binding.rvRewards.layoutAnimation = AnimationUtils.loadLayoutAnimation(this.context, R.anim.treasure_get_reward_item_anim)
-    }
-
-    override fun loadData() {
-        super.loadData()
-        val config = guardTreasure?.let {
-            guardTreasureManager.getGuardTreasureConfigBy(it.level)
-        }
-        if (config != null) {
-            effectViewModel.checkGetRewardEffect(config.dynamicUrl).observe(viewLifecycleOwner) {
-                if (it == null) {
-                    return@observe
-                }
-                config.dynamicLocalPath = it.localPath
-                playGetRewardEffect(config)
-            }
-        } else {
-            playGetRewardEffect(null)
-        }
-    }
-
-    private fun playGetRewardEffect(config: GuardTreasureLevelConfig?) {
-        val effectLocalPath = config?.dynamicLocalPath
-        if (effectLocalPath.isNullOrEmpty()) {
-            showRewards(config?.openUrl)
-            return
-        }
-        binding.ivTreasure.hide()
-        binding.svgaTreasure.gone()
-        binding.flVapTreasure.show()
-        binding.tvTitle.gone()
-        binding.vapTreasure.setMute(true)
-        binding.vapTreasure.setScaleType(ScaleType.FIT_CENTER)
-        binding.vapTreasure.setAnimListener(object : IAnimListener {
-            override fun onVideoStart() {}
-
-            override fun onVideoRender(frameIndex: Int, config: AnimConfig?) {}
-
-            override fun onVideoComplete() {}
-
-            override fun onVideoDestroy() {
-                runOnUiThread {
-                    if (isViewBindingValid()) {
-                        showRewards(config.openUrl)
-                    }
-                }
-            }
-
-            override fun onFailed(errorType: Int, errorMsg: String?) {}
-        })
-        binding.vapTreasure.startPlay(File(effectLocalPath))
-    }
-
-
-    private fun showRewards(openBoxUrl: String?) {
-        binding.ivTreasure.show()
-        binding.svgaTreasure.show()
-        binding.flVapTreasure.gone()
-        binding.tvTitle.show()
-        binding.ivTreasure.setImageUrl(openBoxUrl)
-        rewardAdapter.items = guardTreasure?.rewards?.filter { it.isWinning() }?.map { TreasureRewardNormalItemData(it) }
-            ?: emptyList()
-        rewardAdapter.notifyDataSetChanged()
-    }
-
-    private fun resetDialogAttributes() {
-        val dialog = dialog ?: return
-        val window = dialog.window ?: return
-        val layoutParams = window.attributes
-        layoutParams.gravity = Gravity.CENTER
-        //计算出期望宽度
-        layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT
-        layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT
-        layoutParams.dimAmount = 0.7f
-        window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
-        window.attributes = layoutParams
-        dialog.setCanceledOnTouchOutside(false)
-    }
-
-}

+ 0 - 127
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/GuardTreasureHistoryIntroDialog.kt

@@ -1,127 +0,0 @@
-package com.adealink.weparty.guardtreasure
-
-import android.graphics.Color
-import android.graphics.drawable.ColorDrawable
-import android.os.Bundle
-import android.text.TextUtils
-import android.view.Gravity
-import android.view.WindowManager
-import com.adealink.frame.aab.util.getCompatString
-import com.adealink.frame.base.fastLazy
-import com.adealink.frame.mvvm.view.viewBinding
-import com.adealink.frame.router.annotation.RouterUri
-import com.adealink.frame.util.DisplayUtil
-import com.adealink.weparty.commonui.dialogfragment.BaseDialogFragment
-import com.adealink.weparty.commonui.viewpager.Tab
-import com.adealink.weparty.commonui.viewpager.TabsPagerAdapter
-import com.adealink.weparty.guardtreasure.databinding.DialogHistoryIntroBinding
-import com.adealink.weparty.guardtreasure.databinding.TabTreasureHistoryIntroBinding
-import com.adealink.weparty.module.guardtreasure.GuardTreasure
-import com.google.android.material.tabs.TabLayout
-import com.google.android.material.tabs.TabLayoutMediator
-import com.adealink.weparty.R as APP_R
-
-@RouterUri(path = [GuardTreasure.HistoryIntro.PATH], desc = "宝箱历史+玩法说明")
-class GuardTreasureHistoryIntroDialog : BaseDialogFragment(R.layout.dialog_history_intro) {
-
-    companion object {
-        private val TABS = arrayOf(
-            GuardTreasure.HistoryIntro.TAB_HISTORY,
-            GuardTreasure.HistoryIntro.TAB_INTRO
-        )
-    }
-
-    private val binding by viewBinding(DialogHistoryIntroBinding::bind)
-    private val adapter by fastLazy {
-        TabsPagerAdapter(this,
-            listOf(
-                Tab(R.string.guard_treasure_history) { TreasureHistoryFragment() },
-                Tab(R.string.guard_treasure_intro) { TreasureIntroFragment() }
-            )
-        )
-    }
-    private var currentTab = GuardTreasure.HistoryIntro.TAB_HISTORY
-
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-        setStyle(STYLE_NO_TITLE, APP_R.style.BottomDialog)
-        currentTab = arguments?.getInt(GuardTreasure.HistoryIntro.EXTRA_TAB, GuardTreasure.HistoryIntro.TAB_HISTORY)
-            ?: GuardTreasure.HistoryIntro.TAB_HISTORY
-    }
-
-    override fun onStart() {
-        super.onStart()
-        resetDialogAttributes()
-    }
-
-    override fun initViews() {
-        super.initViews()
-        binding.ivClose.setOnClickListener {
-            dismiss()
-        }
-        binding.vpContent.adapter = adapter
-        TabLayoutMediator(
-            binding.tab,
-            binding.vpContent,
-            true,
-            false
-        ) { tab, position ->
-            tab.setCustomView(R.layout.tab_treasure_history_intro)
-            updateTabView(tab, currentTab == TABS.getOrNull(position), adapter.getTab(position).titleResId)
-        }.attach()
-        binding.tab.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
-            override fun onTabSelected(tab: TabLayout.Tab?) {
-                tab ?: return
-                currentTab = TABS.getOrNull(tab.position) ?: return
-                updateTabView(tab, true, adapter.getTab(tab.position).titleResId)
-            }
-
-            override fun onTabUnselected(tab: TabLayout.Tab?) {
-                tab ?: return
-                updateTabView(tab, false, adapter.getTab(tab.position).titleResId)
-            }
-
-            override fun onTabReselected(tab: TabLayout.Tab?) {
-            }
-        })
-        val index = TABS.indexOf(currentTab)
-        if (index >= 0) {
-            binding.vpContent.currentItem = index
-        }
-    }
-
-    private fun updateTabView(tab: TabLayout.Tab?, isSelected: Boolean, titleResId: Int) {
-        tab?.customView?.let {
-            val customViewBinding = TabTreasureHistoryIntroBinding.bind(it)
-            customViewBinding.tabTitle.text = getCompatString(titleResId)
-            if (isSelected) {
-                customViewBinding.tabTitle.setMarqueeEnable(true, TextUtils.TruncateAt.END)
-                customViewBinding.tabTitle.setBackgroundResource(R.drawable.guard_treasure_history_intro_tab_select_bg)
-            } else {
-                customViewBinding.tabTitle.setMarqueeEnable(false, TextUtils.TruncateAt.END)
-                customViewBinding.tabTitle.background = null
-            }
-        }
-    }
-
-    private fun resetDialogAttributes() {
-        val dialog = dialog ?: return
-        val window = dialog.window ?: return
-        val layoutParams = window.attributes
-        layoutParams.gravity = Gravity.BOTTOM
-        layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT
-
-        //计算出期望高度
-        val expectHeight = (DisplayUtil.getScreenWidth() / 375f * 630f).toInt()
-        val maxHeight = DisplayUtil.getScreenHeight() - DisplayUtil.getStatusBarHeight(window)
-        if (expectHeight > maxHeight) {
-            layoutParams.height = maxHeight
-        } else {
-            layoutParams.height = expectHeight
-        }
-        layoutParams.dimAmount = 0.7f
-        window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
-        window.attributes = layoutParams
-        dialog.setCanceledOnTouchOutside(true)
-    }
-}

+ 0 - 267
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/GuardTreasureInviteDialog.kt

@@ -1,267 +0,0 @@
-package com.adealink.weparty.guardtreasure
-
-import android.graphics.Color
-import android.graphics.drawable.ColorDrawable
-import android.os.Bundle
-import android.view.Gravity
-import androidx.fragment.app.activityViewModels
-import androidx.recyclerview.widget.GridLayoutManager
-import androidx.recyclerview.widget.RecyclerView
-import com.adealink.frame.aab.util.getCompatString
-import com.adealink.frame.base.Rlt
-import com.adealink.frame.base.fastLazy
-import com.adealink.frame.ext.ellipsizeIfMoreThan
-import com.adealink.frame.mvvm.view.viewBinding
-import com.adealink.frame.router.Router
-import com.adealink.frame.router.annotation.BindExtra
-import com.adealink.frame.router.annotation.RouterUri
-import com.adealink.frame.util.DisplayUtil
-import com.adealink.frame.util.timeToShortHMS
-import com.adealink.weparty.commonui.dialogfragment.BaseDialogFragment
-import com.adealink.weparty.commonui.ext.dp
-import com.adealink.weparty.commonui.ext.gone
-import com.adealink.weparty.commonui.ext.show
-import com.adealink.weparty.commonui.recycleview.adapter.multitype.MultiTypeAdapter
-import com.adealink.weparty.guardtreasure.adapter.TreasureRewardItemViewBinder
-import com.adealink.weparty.guardtreasure.adapter.TreasureRewardTopItemViewBinder
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureData
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureStatus
-import com.adealink.weparty.module.guardtreasure.data.TreasureRewardNormalItemData
-import com.adealink.weparty.module.guardtreasure.data.TreasureRewardTopItemData
-import com.adealink.weparty.guardtreasure.databinding.DialogGuardTreasureInviteBinding
-import com.adealink.weparty.guardtreasure.datasource.local.GuardTreasureLocalService
-import com.adealink.weparty.guardtreasure.manager.guardTreasureManager
-import com.adealink.weparty.module.guardtreasure.util.handleAcceptInviteResult
-import com.adealink.weparty.module.guardtreasure.util.handleRefuseInviteResult
-import com.adealink.weparty.module.guardtreasure.util.handleSendInviteResult
-import com.adealink.weparty.guardtreasure.viewmodel.GuardTreasureViewModel
-import com.adealink.weparty.guardtreasure.widget.RewardSpacingItemDecoration
-import com.adealink.weparty.module.guardtreasure.GuardTreasure
-import com.adealink.weparty.module.guardtreasure.GuardTreasureModule
-import com.adealink.weparty.module.profile.ProfileModule
-import com.adealink.weparty.R as APP_R
-
-@RouterUri(path = [GuardTreasure.Invite.PATH], desc = "守护宝箱邀请")
-class GuardTreasureInviteDialog : BaseDialogFragment(R.layout.dialog_guard_treasure_invite) {
-
-    @BindExtra(name = GuardTreasure.Invite.EXTRA_CLUB_ROOM_ID, desc = "会所所在ID")
-    var clubRoomId: Long = 0
-
-    @BindExtra(name = GuardTreasure.Invite.EXTRA_GUARD_TREASURE, desc = "要守护的宝箱信息")
-    var guardTreasure: GuardTreasureData? = null
-
-    @BindExtra(name = GuardTreasure.Invite.EXTRA_INVITER_UID, desc = "邀请者", must = true)
-    var inviterUid: Long = 0
-
-    @BindExtra(name = GuardTreasure.Invite.EXTRA_INVITEE_UID, desc = "受邀者", must = true)
-    var inviteeUid: Long = 0
-
-    @BindExtra(name = GuardTreasure.Invite.EXTRA_IS_INVITER, desc = "是否邀请者", must = true)
-    var isInviter: Boolean? = true
-
-    private val binding by viewBinding(DialogGuardTreasureInviteBinding::bind)
-    private val dialogWidth = (DisplayUtil.getScreenWidth() * 0.9).toInt()
-
-    private val profileViewModel by fastLazy { ProfileModule.getProfileViewModel(this) }
-    private val guardTreasureViewModel by activityViewModels<GuardTreasureViewModel>()
-    private val rewardAdapter by fastLazy { MultiTypeAdapter() }
-
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-        Router.bind(this)
-        setStyle(STYLE_NO_TITLE, APP_R.style.FullScreenDialogTheme)
-    }
-
-    override fun onStart() {
-        super.onStart()
-        resetDialogAttributes()
-    }
-
-    override fun initViews() {
-        super.initViews()
-        binding.ivClose.setOnClickListener {
-            dismiss()
-        }
-        //标题
-        if (isInviter == true) {
-            binding.avatarInviter.gone()
-            profileViewModel?.getUidUserInfo(inviteeUid)?.observe(viewLifecycleOwner) {
-                val name = (it as? Rlt.Success)?.data?.name ?: ""
-                binding.tvTitle.text = getCompatString(
-                    R.string.guard_treasure_invite_someone, name.ellipsizeIfMoreThan(10)
-                )
-            }
-            binding.tvTips.text = getCompatString(R.string.guard_treasure_inviter_tips)
-        } else {
-            binding.avatarInviter.show()
-            profileViewModel?.getUidUserInfo(inviterUid)?.observe(viewLifecycleOwner) {
-                val inviterUserInfo = (it as? Rlt.Success)?.data
-                binding.avatarInviter.setImageUrl(inviterUserInfo?.url)
-                val name = inviterUserInfo?.name ?: ""
-                binding.tvTitle.text = getCompatString(
-                    R.string.guard_treasure_be_invited_by_someone, name.ellipsizeIfMoreThan(10)
-                )
-            }
-            binding.tvTips.text = getCompatString(R.string.guard_treasure_invitee_tips)
-        }
-
-        rewardAdapter.register(TreasureRewardTopItemViewBinder(dialogWidth))
-        rewardAdapter.register(TreasureRewardItemViewBinder(dialogWidth))
-        binding.rvRewards.adapter = rewardAdapter
-        binding.rvRewards.layoutManager = GridLayoutManager(
-            context,
-            TodayTreasureFragment.SPAN_COUNT,
-            RecyclerView.HORIZONTAL,
-            false
-        ).apply {
-            spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
-                override fun getSpanSize(position: Int): Int {
-                    val data = rewardAdapter.items.getOrNull(position)
-                    if (data is TreasureRewardTopItemData) {
-                        return TodayTreasureFragment.SPAN_COUNT
-                    }
-                    return 1
-                }
-            }
-        }
-        binding.rvRewards.addItemDecoration(
-            RewardSpacingItemDecoration(TodayTreasureFragment.SPAN_COUNT, 4.dp(), 4.dp())
-        )
-
-        if (isInviter == true) {
-            binding.tvInviteConfirm.show()
-            binding.tvInviteRefuse.gone()
-            binding.tvInviteAccept.gone()
-            binding.tvInviteConfirm.setOnClickListener {
-                sendInvite()
-            }
-        } else {
-            binding.tvInviteConfirm.gone()
-            binding.tvInviteRefuse.show()
-            binding.tvInviteAccept.show()
-            binding.tvInviteRefuse.setOnClickListener {
-                refuseInvite()
-            }
-            binding.tvInviteAccept.setOnClickListener {
-                acceptInvite()
-            }
-        }
-
-        if (isInviter == true) {
-            if (GuardTreasureLocalService.showInviteRemind) {
-                binding.clRemind.show()
-                binding.clRemind.setOnClickListener {
-                    clickNotRemind()
-                }
-            } else {
-                binding.clRemind.gone()
-            }
-        } else {
-            binding.clRemind.gone()
-        }
-    }
-
-    override fun loadData() {
-        super.loadData()
-        val data = guardTreasure
-        if (data != null) {
-            updateUIBy(data)
-        } else {
-            guardTreasureViewModel.loadTreasureInfoBy(clubRoomId, showRewards = true, inClub = false).observe(viewLifecycleOwner) {
-                guardTreasure = it
-                updateUIBy(it)
-            }
-        }
-    }
-
-    private fun updateUIBy(data: GuardTreasureData?) {
-        val config = data?.let {
-            guardTreasureManager.getGuardTreasureConfigBy(it.level)
-        }
-        val status = data?.getStatus() ?: GuardTreasureStatus.UN_START
-        binding.ivTreasure.setImageUrl(config?.getPicUrlBy(status))
-        data?.let {
-            binding.tvGuardTime.show()
-            binding.tvGuardTime.text = getCompatString(
-                R.string.guard_treasure_guard_time,
-                timeToShortHMS(it.guardTime * 1000)
-            )
-        } ?: let {
-            binding.tvGuardTime.gone()
-        }
-        val rewardItems = data?.rewards?.mapIndexed { index, guardTreasureRewardData ->
-            if (index == 0) {
-                TreasureRewardTopItemData(guardTreasureRewardData)
-            } else {
-                TreasureRewardNormalItemData(guardTreasureRewardData)
-            }
-        }
-        rewardAdapter.items = rewardItems ?: emptyList()
-        rewardAdapter.notifyDataSetChanged()
-    }
-
-    private fun sendInvite() {
-        val guardTreasure = guardTreasure ?: return
-        guardTreasureViewModel.sendInvite(guardTreasure.id, inviteeUid).observe(viewLifecycleOwner) {
-            handleSendInviteResult(it)
-            if (it is Rlt.Success) {
-                GuardTreasureModule.updateInviteTime(inviteeUid, System.currentTimeMillis())
-                dismiss()
-            }
-        }
-    }
-
-    private fun refuseInvite() {
-        val guardTreasure = guardTreasure ?: return
-        guardTreasureViewModel.refuseInvite(guardTreasure.id, inviterUid).observe(viewLifecycleOwner) {
-            handleRefuseInviteResult(it)
-            dismiss()
-        }
-    }
-
-    private fun acceptInvite() {
-        val guardTreasure = guardTreasure ?: return
-        guardTreasureViewModel.acceptInvite(guardTreasure.id, inviterUid).observe(viewLifecycleOwner) {
-            handleAcceptInviteResult(it)
-            if (it is Rlt.Success) {
-                dismiss()
-            }
-        }
-    }
-
-    private fun clickNotRemind() {
-        val nextRemind = !GuardTreasureLocalService.showInviteRemind
-        GuardTreasureLocalService.showInviteRemind = nextRemind
-        if (nextRemind) {
-            binding.ivRemind.setImageResource(R.drawable.guard_treasure_check_normal_ic)
-        } else {
-            binding.ivRemind.setImageResource(R.drawable.guard_treasure_check_selected_ic)
-        }
-    }
-
-    private fun resetDialogAttributes() {
-        val dialog = dialog ?: return
-        val window = dialog.window ?: return
-        val layoutParams = window.attributes
-        layoutParams.gravity = Gravity.CENTER
-        //计算出期望宽度
-        layoutParams.width = dialogWidth
-        //计算出期望高度
-        val expectHeight = (dialogWidth / 335f * 545f).toInt()
-        val maxHeight = DisplayUtil.getScreenHeight() - DisplayUtil.getStatusBarHeight(window)
-        if (expectHeight > maxHeight) {
-            layoutParams.height = maxHeight
-        } else {
-            layoutParams.height = expectHeight
-        }
-        layoutParams.dimAmount = 0.7f
-        window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
-        window.attributes = layoutParams
-        dialog.setCanceledOnTouchOutside(false)
-    }
-
-    companion object {
-        private const val TAG = "GuardTreasureInviteDialog"
-    }
-
-}

+ 0 - 186
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/GuardTreasurePreviewDialog.kt

@@ -1,186 +0,0 @@
-package com.adealink.weparty.guardtreasure
-
-import android.graphics.Color
-import android.graphics.drawable.ColorDrawable
-import android.os.Bundle
-import android.view.Gravity
-import android.view.WindowManager
-import androidx.recyclerview.widget.GridLayoutManager
-import androidx.recyclerview.widget.RecyclerView
-import com.adealink.frame.aab.util.getCompatString
-import com.adealink.frame.base.fastLazy
-import com.adealink.frame.locale.language.languageManager
-import com.adealink.frame.mvvm.view.viewBinding
-import com.adealink.frame.router.Router
-import com.adealink.frame.router.annotation.BindExtra
-import com.adealink.frame.router.annotation.RouterUri
-import com.adealink.frame.util.removeUiCallbacks
-import com.adealink.frame.util.runOnUiThread
-import com.adealink.frame.util.timeToShortHMS
-import com.adealink.weparty.commonui.dialogfragment.BaseDialogFragment
-import com.adealink.weparty.commonui.ext.dp
-import com.adealink.weparty.commonui.ext.gone
-import com.adealink.weparty.commonui.ext.show
-import com.adealink.weparty.commonui.recycleview.adapter.multitype.MultiTypeAdapter
-import com.adealink.weparty.guardtreasure.adapter.TreasureRewardItemViewBinder
-import com.adealink.weparty.guardtreasure.adapter.TreasureRewardTopItemViewBinder
-import com.adealink.weparty.guardtreasure.databinding.DialogGuardTreasurePreviewBinding
-import com.adealink.weparty.guardtreasure.manager.guardTreasureManager
-import com.adealink.weparty.guardtreasure.widget.RewardSpacingItemDecoration
-import com.adealink.weparty.module.guardtreasure.GuardTreasure
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureData
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureStatus
-import com.adealink.weparty.module.guardtreasure.data.TreasureRewardNormalItemData
-import com.adealink.weparty.module.guardtreasure.data.TreasureRewardTopItemData
-import java.lang.Long.max
-import com.adealink.weparty.R as APP_R
-
-@RouterUri(path = [GuardTreasure.Preview.PATH], desc = "宝箱守护状态及奖励预览")
-class GuardTreasurePreviewDialog : BaseDialogFragment(R.layout.dialog_guard_treasure_preview) {
-
-    @BindExtra(name = GuardTreasure.Preview.EXTRA_GUARD_TREASURE, desc = "宝箱信息", must = true)
-    var guardTreasure: GuardTreasureData? = null
-
-    private val binding by viewBinding(DialogGuardTreasurePreviewBinding::bind)
-    private val rewardAdapter by fastLazy { MultiTypeAdapter() }
-    private val refreshTimerRunnable = Runnable {
-        updateRefreshTime()
-        startRefreshTimer()
-    }
-
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-        Router.bind(this)
-        setStyle(STYLE_NO_TITLE, APP_R.style.BottomDialog)
-    }
-
-    override fun onStart() {
-        super.onStart()
-        resetDialogAttributes()
-        startRefreshTimer()
-    }
-
-    override fun onStop() {
-        super.onStop()
-        stopRefreshTimer()
-    }
-
-    override fun initViews() {
-        super.initViews()
-        binding.ivClose.setOnClickListener { dismiss() }
-        binding.ivHistory.setOnClickListener {
-            showTreasureHistory()
-        }
-        binding.ivIntro.setOnClickListener {
-            showTreasureIntro()
-        }
-
-        val config = guardTreasure?.let {
-            guardTreasureManager.getGuardTreasureConfigBy(it.level)
-        }
-        val status = guardTreasure?.getStatus() ?: GuardTreasureStatus.UN_START
-        binding.tvTitle.text = config?.getName(languageManager?.getLanguageCode())
-        binding.ivTreasure.setImageUrl(config?.getPicUrlBy(status))
-        guardTreasure?.let {
-            binding.tvGuardTime.show()
-            updateRefreshTime()
-        } ?: let {
-            binding.tvGuardTime.gone()
-        }
-
-        rewardAdapter.register(TreasureRewardTopItemViewBinder())
-        rewardAdapter.register(TreasureRewardItemViewBinder())
-        binding.rvRewards.adapter = rewardAdapter
-        binding.rvRewards.layoutManager = GridLayoutManager(
-            context,
-            TodayTreasureFragment.SPAN_COUNT,
-            RecyclerView.HORIZONTAL,
-            false
-        ).apply {
-            spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
-                override fun getSpanSize(position: Int): Int {
-                    val data = rewardAdapter.items.getOrNull(position)
-                    if (data is TreasureRewardTopItemData) {
-                        return TodayTreasureFragment.SPAN_COUNT
-                    }
-                    return 1
-                }
-            }
-        }
-        binding.rvRewards.addItemDecoration(
-            RewardSpacingItemDecoration(TodayTreasureFragment.SPAN_COUNT, 4.dp(), 4.dp())
-        )
-    }
-
-    override fun loadData() {
-        super.loadData()
-        setRewards()
-    }
-
-    private fun setRewards() {
-        val rewardItems = guardTreasure?.rewards?.mapIndexed { index, guardTreasureRewardData ->
-            if (index == 0) {
-                TreasureRewardTopItemData(guardTreasureRewardData)
-            } else {
-                TreasureRewardNormalItemData(guardTreasureRewardData)
-            }
-        }
-        rewardAdapter.items = rewardItems ?: emptyList()
-        rewardAdapter.notifyDataSetChanged()
-    }
-
-    private fun showTreasureHistory() {
-        val act = activity ?: return
-        Router.getRouterInstance<BaseDialogFragment>(GuardTreasure.HistoryIntro.PATH)?.apply {
-            this.arguments = Bundle().apply {
-                putInt(GuardTreasure.HistoryIntro.EXTRA_TAB, GuardTreasure.HistoryIntro.TAB_HISTORY)
-            }
-            show(act.supportFragmentManager, GuardTreasure.HistoryIntro.TAG)
-        }
-    }
-
-    private fun showTreasureIntro() {
-        val act = activity ?: return
-        Router.getRouterInstance<BaseDialogFragment>(GuardTreasure.HistoryIntro.PATH)?.apply {
-            this.arguments = Bundle().apply {
-                putInt(GuardTreasure.HistoryIntro.EXTRA_TAB, GuardTreasure.HistoryIntro.TAB_INTRO)
-            }
-            show(act.supportFragmentManager, GuardTreasure.HistoryIntro.TAG)
-        }
-    }
-
-    private fun startRefreshTimer() {
-        runOnUiThread(refreshTimerRunnable, 1000)
-    }
-
-    private fun stopRefreshTimer() {
-        removeUiCallbacks(refreshTimerRunnable)
-    }
-
-    private fun updateRefreshTime() {
-        val data = guardTreasure
-        val status = data?.getStatus() ?: GuardTreasureStatus.UN_START
-        if (data == null || status != GuardTreasureStatus.GUARDING) {
-            binding.tvGuardTime.gone()
-            return
-        }
-        val timePass = System.currentTimeMillis() - data.receiveTime
-        binding.tvGuardTime.text = getCompatString(
-            R.string.guard_treasure_guard_time_left,
-            timeToShortHMS(max(data.guardTime * 1000 - timePass, 0L))
-        )
-    }
-
-    private fun resetDialogAttributes() {
-        val dialog = dialog ?: return
-        val window = dialog.window ?: return
-        val layoutParams = window.attributes
-        layoutParams.gravity = Gravity.BOTTOM
-        layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT
-        layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT
-        layoutParams.dimAmount = 0.7f
-        window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
-        window.attributes = layoutParams
-        dialog.setCanceledOnTouchOutside(true)
-    }
-}

+ 0 - 79
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/GuardTreasureServiceImpl.kt

@@ -1,79 +0,0 @@
-package com.adealink.weparty.guardtreasure
-
-import android.os.Bundle
-import androidx.fragment.app.FragmentManager
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.ViewModelStoreOwner
-import com.adealink.weparty.commonui.dialogfragment.showDialogFragment
-import com.adealink.frame.spi.RegisterService
-import com.adealink.weparty.App
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureData
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureLevelConfig
-import com.adealink.weparty.guardtreasure.datasource.local.GuardTreasureLocalService
-import com.adealink.weparty.guardtreasure.datasource.remote.GuardTreasureHttpService
-import com.adealink.weparty.guardtreasure.manager.guardTreasureManager
-import com.adealink.weparty.guardtreasure.manager.inviteManager
-import com.adealink.weparty.guardtreasure.viewmodel.GuardTreasureViewModel
-import com.adealink.weparty.module.guardtreasure.GuardTreasure
-import com.adealink.weparty.module.guardtreasure.IGuardTreasureService
-import com.adealink.weparty.module.guardtreasure.viewmodel.IGuardTreasureViewModel
-
-@RegisterService(IGuardTreasureService::class)
-class GuardTreasureServiceImpl : IGuardTreasureService {
-
-    private val guardTreasureHttpService by lazy {
-        App.instance.networkService.getHttpService(GuardTreasureHttpService::class.java)
-    }
-
-    override fun init() {
-        guardTreasureManager.init()
-    }
-
-    override suspend fun loadConfig(fromCache: Boolean): Boolean {
-        return guardTreasureManager.loadGuardTreasureConfig(fromCache)
-    }
-
-    override fun getLevelConfig(level: Int): GuardTreasureLevelConfig? {
-        return guardTreasureManager.getGuardTreasureConfigBy(level)
-    }
-
-    override fun isSupportGuardTreasure(): Boolean {
-        return guardTreasureManager.isSupportGuardTreasure()
-    }
-
-    override fun getBannerPicUrl(): String? {
-        return guardTreasureManager.getBannerPicUrl()
-    }
-
-    override fun getGuardTreasureViewModel(owner: ViewModelStoreOwner): IGuardTreasureViewModel? {
-        return ViewModelProvider(owner)[GuardTreasureViewModel::class.java]
-    }
-
-    override fun showInviteRemind(): Boolean {
-        return GuardTreasureLocalService.showInviteRemind
-    }
-
-    override fun showGuardTreasurePreviewDialog(fm: FragmentManager, guardTreasure: GuardTreasureData) {
-        showDialogFragment<GuardTreasurePreviewDialog>(fm, Bundle().apply {
-            putParcelable(GuardTreasure.Preview.EXTRA_GUARD_TREASURE, guardTreasure)
-        })
-    }
-
-    override fun showGuardTreasureGetRewardsDialog(fm: FragmentManager, guardTreasure: GuardTreasureData) {
-        showDialogFragment<GuardTreasureGetRewardsDialog>(fm, Bundle().apply {
-            putParcelable(GuardTreasure.GetReward.EXTRA_GUARD_TREASURE, guardTreasure)
-        })
-    }
-
-    override fun getLastInviteTime(uid: Long): Long {
-        return inviteManager.getLastInviteTime(uid)
-    }
-
-    override fun updateInviteTime(uid: Long, time: Long) {
-        inviteManager.updateInviteTime(uid, time)
-    }
-
-    override fun getService(): IGuardTreasureService {
-        return this
-    }
-}

+ 0 - 45
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/MyTreasureFragment.kt

@@ -1,45 +0,0 @@
-package com.adealink.weparty.guardtreasure
-
-import android.text.TextUtils
-import androidx.fragment.app.viewModels
-import com.adealink.weparty.commonui.BaseFragment
-import com.adealink.frame.mvvm.view.viewBinding
-import com.adealink.frame.util.DisplayUtil
-import com.adealink.weparty.guardtreasure.databinding.FragmentMyTreasureBinding
-import com.adealink.weparty.guardtreasure.viewmodel.GuardTreasureDialogViewModel
-import com.adealink.weparty.module.guardtreasure.GuardTreasure
-
-class MyTreasureFragment : BaseFragment(R.layout.fragment_my_treasure) {
-
-    companion object {
-        const val TAG = "MyTreasureFragment"
-    }
-
-    private val binding by viewBinding(FragmentMyTreasureBinding::bind)
-    private val dialogViewModel by viewModels<GuardTreasureDialogViewModel>({ requireParentFragment() })
-
-    override fun initViews() {
-        super.initViews()
-        if (DisplayUtil.isRtlLayout()) {
-            binding.tabTodayTreasure.setBackgroundResource(R.drawable.guard_treasure_tab_right_unselected)
-        } else {
-            binding.tabTodayTreasure.setBackgroundResource(R.drawable.guard_treasure_tab_left_unselected)
-        }
-        binding.tabMyTreasure.setMarqueeEnable(true, TextUtils.TruncateAt.END)
-        binding.tabTodayTreasure.setOnClickListener {
-            dialogViewModel.switchTab(GuardTreasure.GuardTreasure.TAB_TODAY_TREASURE)
-        }
-        binding.ivClose.setOnClickListener {
-            dialogViewModel.closeDialog()
-        }
-
-    }
-
-    override fun observeViewModel() {
-        super.observeViewModel()
-    }
-
-    override fun loadData() {
-        super.loadData()
-    }
-}

+ 0 - 342
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/TodayTreasureFragment.kt

@@ -1,342 +0,0 @@
-package com.adealink.weparty.guardtreasure
-
-import android.os.Bundle
-import android.text.SpannableStringBuilder
-import android.text.Spanned
-import android.text.TextUtils
-import android.text.style.ForegroundColorSpan
-import androidx.fragment.app.viewModels
-import androidx.recyclerview.widget.GridLayoutManager
-import androidx.recyclerview.widget.RecyclerView
-import com.adealink.frame.aab.util.getCompatColor
-import com.adealink.frame.aab.util.getCompatString
-import com.adealink.frame.base.fastLazy
-import com.adealink.frame.ext.safeSetSpan
-import com.adealink.frame.locale.language.languageManager
-import com.adealink.frame.mvvm.view.viewBinding
-import com.adealink.frame.router.Router
-import com.adealink.frame.util.DisplayUtil
-import com.adealink.frame.util.removeUiCallbacks
-import com.adealink.frame.util.runOnUiThread
-import com.adealink.frame.util.timeToShortHMS
-import com.adealink.weparty.commonui.BaseFragment
-import com.adealink.weparty.commonui.dialogfragment.BaseDialogFragment
-import com.adealink.weparty.commonui.ext.dp
-import com.adealink.weparty.commonui.ext.gone
-import com.adealink.weparty.commonui.ext.hide
-import com.adealink.weparty.commonui.ext.show
-import com.adealink.weparty.commonui.recycleview.adapter.multitype.MultiTypeAdapter
-import com.adealink.weparty.commonui.toast.util.showToast
-import com.adealink.weparty.guardtreasure.adapter.TreasureRewardItemViewBinder
-import com.adealink.weparty.guardtreasure.adapter.TreasureRewardTopItemViewBinder
-import com.adealink.weparty.guardtreasure.databinding.FragmentTodayTreasureBinding
-import com.adealink.weparty.guardtreasure.manager.guardTreasureManager
-import com.adealink.weparty.guardtreasure.viewmodel.GuardTreasureDialogViewModel
-import com.adealink.weparty.guardtreasure.viewmodel.TodayGuardTreasureInfo
-import com.adealink.weparty.guardtreasure.viewmodel.TodayGuardTreasureViewModel
-import com.adealink.weparty.guardtreasure.widget.RewardSpacingItemDecoration
-import com.adealink.weparty.module.guardtreasure.GuardTreasure
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureLevelConfig
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureStatus
-import com.adealink.weparty.module.guardtreasure.data.TreasureRewardTopItemData
-import com.adealink.weparty.module.guardtreasure.util.getGuardTreasureStatusStr
-import java.lang.Long.max
-import com.adealink.weparty.R as APP_R
-
-class TodayTreasureFragment : BaseFragment(R.layout.fragment_today_treasure) {
-
-    companion object {
-        const val TAG = "TodayTreasureFragment"
-        const val SPAN_COUNT = 2
-
-        private const val REFRESH_INTERVAL = 1_500 //刷新时间间隔
-    }
-
-    private val binding by viewBinding(FragmentTodayTreasureBinding::bind)
-    private val dialogViewModel by viewModels<GuardTreasureDialogViewModel>({ requireParentFragment() })
-    private val todayGuardTreasureViewModel by viewModels<TodayGuardTreasureViewModel>({ requireParentFragment() })
-    private val rewardAdapter by fastLazy { MultiTypeAdapter() }
-    private val refreshTimerRunnable = Runnable {
-        updateRefreshTime()
-        startRefreshTimer()
-    }
-
-    private val reloadTodayTreasureRunnable = Runnable {
-        loadData()
-    }
-
-    override fun initViews() {
-        super.initViews()
-        if (DisplayUtil.isRtlLayout()) {
-            binding.tabMyTreasure.setBackgroundResource(R.drawable.guard_treasure_tab_left_unselected)
-        } else {
-            binding.tabMyTreasure.setBackgroundResource(R.drawable.guard_treasure_tab_right_unselected)
-        }
-        binding.tabTodayTreasure.setMarqueeEnable(true, TextUtils.TruncateAt.END)
-        binding.tabMyTreasure.setOnClickListener {
-            dialogViewModel.switchTab(GuardTreasure.GuardTreasure.TAB_MY_TREASURE)
-        }
-        binding.ivClose.setOnClickListener {
-            dialogViewModel.closeDialog()
-        }
-        binding.ivHistory.setOnClickListener {
-            showTreasureHistory()
-        }
-        binding.ivIntro.setOnClickListener {
-            showTreasureIntro()
-        }
-        binding.vRefreshClick.setOnClickListener {
-            clickRefreshTime()
-        }
-
-        rewardAdapter.register(TreasureRewardTopItemViewBinder())
-        rewardAdapter.register(TreasureRewardItemViewBinder())
-        binding.rvRewards.adapter = rewardAdapter
-        binding.rvRewards.layoutManager = GridLayoutManager(
-            context,
-            SPAN_COUNT,
-            RecyclerView.HORIZONTAL,
-            false
-        ).apply {
-            spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
-                override fun getSpanSize(position: Int): Int {
-                    val data = rewardAdapter.items.getOrNull(position)
-                    if (data is TreasureRewardTopItemData) {
-                        return SPAN_COUNT
-                    }
-                    return 1
-                }
-            }
-        }
-        binding.rvRewards.addItemDecoration(
-            RewardSpacingItemDecoration(SPAN_COUNT, 4.dp(), 4.dp())
-        )
-    }
-
-    override fun loadData() {
-        super.loadData()
-        todayGuardTreasureViewModel.loadTodayGuardTreasure()
-    }
-
-    override fun observeViewModel() {
-        super.observeViewModel()
-        todayGuardTreasureViewModel.todayGuardTreasureLD.observe(viewLifecycleOwner) {
-            updateTodayGuardTreasure(it)
-
-            //上一次守护失败了,自动刷新宝箱状态
-            it?.todayData?.let { data ->
-                val timePass = System.currentTimeMillis() - data.receiveTime
-                val guardTimeLeft = data.guardTime * 1000 - timePass
-                if (data.getStatus() == GuardTreasureStatus.GUARD_FAIL && guardTimeLeft > 0) {
-                    scheduleReloadTodayTreasure(guardTimeLeft + 2_000) //不要立即刷新,处理延时问题
-                }
-            }
-
-            rewardAdapter.items = it?.rewardItems ?: emptyList()
-            rewardAdapter.notifyDataSetChanged()
-        }
-    }
-
-    private fun updateTodayGuardTreasure(data: TodayGuardTreasureInfo?) {
-        val todayData = data?.todayData
-        val config = todayData?.level?.let { level ->
-            guardTreasureManager.getGuardTreasureConfigBy(level)
-        }
-        if (data == null || config == null) {
-            binding.tvTreasureStatus.gone()
-            binding.clOperate.hide()
-            binding.clTips.hide()
-            binding.btnInvite.hide()
-            return
-        }
-        val treasureStatus = todayData.getStatus()
-        updateTreasureStatus(treasureStatus, config)
-        binding.ivTreasure.setImageUrl(config.getPicUrlBy(treasureStatus))
-
-        binding.clOperate.show()
-        binding.tvCountDown.text = timeToShortHMS(todayData.guardTime * 1000)
-        scheduleRefreshTodayTreasure(todayData.guardTime * 1000 + 2000)
-        binding.tvRefreshTime.text = timeToShortHMS(todayData.refreshTime * 1000)
-
-        binding.clTips.show()
-        binding.tvTips.text = when (treasureStatus) {
-            GuardTreasureStatus.GUARD_FAIL -> getCompatString(R.string.guard_treasure_invite_reward_tips)
-            GuardTreasureStatus.UN_START -> getCompatString(R.string.guard_treasure_invite_reward_tips)
-            GuardTreasureStatus.GUARDING -> getCompatString(R.string.guard_treasure_guarding_reward_tips)
-            GuardTreasureStatus.GUARD_SUCCESS -> getCompatString(R.string.guard_treasure_guard_success_reward_tips)
-            GuardTreasureStatus.ROB -> getCompatString(R.string.guard_treasure_robbed_reward_tips)
-            GuardTreasureStatus.ROB_SUCCESS -> getCompatString(R.string.guard_treasure_invite_reward_tips)
-        }
-
-        binding.btnInvite.show()
-        if (data.currentGuardingInfo != null) {
-            //当前正在守护这个宝箱,无法邀请
-            binding.btnInvite.text = getCompatString(R.string.guard_treasure_club_is_busy)
-            binding.btnInvite.setBackgroundResource(APP_R.drawable.guard_treasure_invite_btn_disable_ic)
-            binding.btnInvite.setTextColor(getCompatColor(APP_R.color.color_FFF8ECDA))
-            binding.btnInvite.setOnClickListener {
-                showToast(R.string.toast_guard_treasure_club_is_busy)
-            }
-        } else {
-            binding.btnInvite.text = getCompatString(R.string.guard_treasure_invite_cp_friend)
-            binding.btnInvite.setOnClickListener {
-                showInviteDialog()
-            }
-            when (treasureStatus) {
-                GuardTreasureStatus.GUARD_FAIL,
-                GuardTreasureStatus.UN_START -> {
-                    //邀请好友
-                    binding.btnInvite.setBackgroundResource(APP_R.drawable.guard_treasure_invite_btn_enable_ic)
-                    binding.btnInvite.setTextColor(getCompatColor(APP_R.color.color_FFFFEEAB))
-                    binding.btnInvite.isEnabled = true
-                }
-                else -> {
-                    binding.btnInvite.setBackgroundResource(APP_R.drawable.guard_treasure_invite_btn_disable_ic)
-                    binding.btnInvite.setTextColor(getCompatColor(APP_R.color.color_FFF8ECDA))
-                    binding.btnInvite.isEnabled = false
-                }
-            }
-        }
-    }
-
-    private fun scheduleRefreshTodayTreasure(delay: Long) {
-        if (delay <= 0) {
-            //宝箱已经是最新的状态了,不需要同步
-            return
-        }
-        runOnUiThread({ loadData() }, delay)
-    }
-
-    private fun startRefreshTimer() {
-        runOnUiThread(refreshTimerRunnable, 1000)
-    }
-
-    private fun stopRefreshTimer() {
-        removeUiCallbacks(refreshTimerRunnable)
-    }
-
-    /**
-     * 更新宝箱相关的时间
-     */
-    private fun updateRefreshTime() {
-        val data = todayGuardTreasureViewModel.todayGuardTreasureLD.value?.todayData
-        if (data == null) {
-            binding.tvCountDown.gone()
-            binding.tvRefreshTime.gone()
-            return
-        }
-        val timePass = System.currentTimeMillis() - data.receiveTime
-        val status = data.getStatus()
-
-        binding.tvCountDown.show()
-        if (status == GuardTreasureStatus.GUARDING || status == GuardTreasureStatus.GUARD_FAIL) {
-            binding.tvCountDown.text = timeToShortHMS(max(data.guardTime * 1000 - timePass, 0L))
-        } else {
-            binding.tvCountDown.text = timeToShortHMS(data.guardTime * 1000)
-        }
-        binding.tvRefreshTime.show()
-        binding.tvRefreshTime.text = timeToShortHMS(max(data.refreshTime * 1000 - timePass, 0L))
-    }
-
-    private fun updateTreasureStatus(status: GuardTreasureStatus, config: GuardTreasureLevelConfig) {
-        binding.tvTreasureStatus.show()
-        val statusStr = getGuardTreasureStatusStr(status)
-        val statusText = getCompatString(
-            R.string.guarding_treasure_status,
-            config.getName(languageManager?.getLanguageCode()),
-            statusStr
-        )
-        val statusSsb = SpannableStringBuilder(statusText).apply {
-            val index = statusText.indexOf(statusStr)
-            if (index >= 0) {
-                safeSetSpan(
-                    ForegroundColorSpan(getTreasureStatusColor(status)),
-                    index,
-                    index + statusStr.length,
-                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
-                )
-            }
-        }
-        binding.tvTreasureStatus.text = statusSsb
-    }
-
-    private fun getTreasureStatusColor(status: GuardTreasureStatus): Int {
-        return when (status) {
-            GuardTreasureStatus.GUARD_FAIL -> getCompatColor(com.adealink.weparty.R.color.color_FFEF6E11)
-            GuardTreasureStatus.UN_START -> getCompatColor(com.adealink.weparty.R.color.color_FFFFEEAB)
-            GuardTreasureStatus.GUARDING -> getCompatColor(com.adealink.weparty.R.color.color_FF02DE90)
-            GuardTreasureStatus.GUARD_SUCCESS -> getCompatColor(com.adealink.weparty.R.color.color_FF02DE90)
-            GuardTreasureStatus.ROB -> getCompatColor(com.adealink.weparty.R.color.color_FFEF6E11)
-            GuardTreasureStatus.ROB_SUCCESS -> getCompatColor(com.adealink.weparty.R.color.color_FFEF6E11)
-        }
-    }
-
-    private fun showTreasureHistory() {
-        Router.getRouterInstance<BaseDialogFragment>(GuardTreasure.HistoryIntro.PATH)?.apply {
-            this.arguments = Bundle().apply {
-                putInt(GuardTreasure.HistoryIntro.EXTRA_TAB, GuardTreasure.HistoryIntro.TAB_HISTORY)
-            }
-            show(this@TodayTreasureFragment.childFragmentManager, GuardTreasure.HistoryIntro.TAG)
-        }
-    }
-
-    private fun showTreasureIntro() {
-        Router.getRouterInstance<BaseDialogFragment>(GuardTreasure.HistoryIntro.PATH)?.apply {
-            this.arguments = Bundle().apply {
-                putInt(GuardTreasure.HistoryIntro.EXTRA_TAB, GuardTreasure.HistoryIntro.TAB_INTRO)
-            }
-            show(this@TodayTreasureFragment.childFragmentManager, GuardTreasure.HistoryIntro.TAG)
-        }
-    }
-
-    //刷新限频
-    private var lastRefreshTime = 0L
-    private fun clickRefreshTime() {
-        if (System.currentTimeMillis() - lastRefreshTime < REFRESH_INTERVAL) {
-            return
-        }
-        lastRefreshTime = System.currentTimeMillis()
-        binding.ivRefreshTime.animate()
-            .rotationBy(360f)
-            .setDuration(600)
-            .start()
-        todayGuardTreasureViewModel.loadTodayGuardTreasure()
-    }
-
-    private fun showInviteDialog() {
-        val guardTreasure = todayGuardTreasureViewModel.getTodayGuardTreasure()?.todayData ?: return
-        val timePass = System.currentTimeMillis() - guardTreasure.receiveTime
-        val guardTimeLeft = guardTreasure.guardTime * 1000 - timePass
-        if (guardTreasure.getStatus() == GuardTreasureStatus.GUARD_FAIL && guardTimeLeft > 0) {
-            //守护失败且当前这一轮的守护时间未结束
-            showToast(R.string.toast_invite_fail_for_guard_fail_time)
-            return
-        }
-        Router.getRouterInstance<BaseDialogFragment>(GuardTreasure.InviteMember.PATH)?.apply {
-            this.arguments = Bundle().apply {
-                putParcelable(GuardTreasure.InviteMember.EXTRA_GUARD_TREASURE, guardTreasure)
-            }
-            show(this@TodayTreasureFragment.childFragmentManager, GuardTreasure.InviteMember.TAG)
-        }
-    }
-
-    private fun scheduleReloadTodayTreasure(delay: Long) {
-        removeUiCallbacks(reloadTodayTreasureRunnable)
-        runOnUiThread(reloadTodayTreasureRunnable, delay)
-    }
-
-    override fun onStart() {
-        super.onStart()
-        startRefreshTimer()
-    }
-
-    override fun onStop() {
-        super.onStop()
-        stopRefreshTimer()
-    }
-
-    override fun onDestroyView() {
-        super.onDestroyView()
-        removeUiCallbacks(reloadTodayTreasureRunnable)
-    }
-}

+ 0 - 88
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/TreasureHistoryFragment.kt

@@ -1,88 +0,0 @@
-package com.adealink.weparty.guardtreasure
-
-import androidx.fragment.app.viewModels
-import androidx.recyclerview.widget.GridLayoutManager
-import androidx.recyclerview.widget.RecyclerView
-import com.adealink.frame.base.fastLazy
-import com.adealink.weparty.commonui.BaseFragment
-import com.adealink.weparty.commonui.ext.dp
-import com.adealink.weparty.commonui.recycleview.adapter.MultiTypeListAdapter
-import com.adealink.weparty.commonui.recycleview.itemdecoration.GridSpacingItemDecoration
-import com.adealink.frame.mvvm.view.viewBinding
-import com.adealink.frame.router.Router
-import com.adealink.weparty.guardtreasure.adapter.HistoryItemClickListener
-import com.adealink.weparty.guardtreasure.adapter.TreasureHistoryItemViewBinder
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureHistoryItem
-import com.adealink.weparty.guardtreasure.databinding.FragmentTreasureHistoryBinding
-import com.adealink.weparty.guardtreasure.viewmodel.GuardTreasureHistoryViewModel
-import com.adealink.weparty.module.profile.Profile
-import com.scwang.smart.refresh.layout.api.RefreshLayout
-import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
-
-class TreasureHistoryFragment : BaseFragment(R.layout.fragment_treasure_history), HistoryItemClickListener {
-
-    companion object {
-        const val TAG = "TreasureHistoryFragment"
-        private const val SPAN_COUNT = 2
-    }
-
-    private val binding by viewBinding(FragmentTreasureHistoryBinding::bind)
-    private val adapter by fastLazy { MultiTypeListAdapter<GuardTreasureHistoryItem>() }
-    private val viewModel by viewModels<GuardTreasureHistoryViewModel>({ requireParentFragment() })
-
-    override fun initViews() {
-        super.initViews()
-        adapter.register(TreasureHistoryItemViewBinder(this))
-
-        binding.rvTreasures.adapter = adapter
-        binding.rvTreasures.apply {
-            layoutManager = GridLayoutManager(
-                context,
-                SPAN_COUNT,
-                RecyclerView.VERTICAL,
-                false
-            )
-            addItemDecoration(
-                GridSpacingItemDecoration(SPAN_COUNT, 0, 12.5f.dp(), false)
-            )
-        }
-
-        binding.refreshLayout.setEnableRefresh(true)
-        binding.refreshLayout.setEnableLoadMore(false)
-        binding.refreshLayout.setOnRefreshLoadMoreListener(object : OnRefreshLoadMoreListener {
-
-            override fun onRefresh(refreshLayout: RefreshLayout) {
-                viewModel.loadHistory()
-            }
-
-            override fun onLoadMore(refreshLayout: RefreshLayout) {
-                viewModel.loadMore()
-            }
-        })
-    }
-
-    override fun loadData() {
-        super.loadData()
-        viewModel.loadHistory()
-    }
-
-    override fun observeViewModel() {
-        super.observeViewModel()
-        viewModel.historyListLD.observe(viewLifecycleOwner) {
-            binding.refreshLayout.finishRefresh()
-            binding.refreshLayout.finishLoadMore()
-            binding.refreshLayout.setEnableLoadMore(viewModel.hasMore())
-            adapter.submitList(it)
-        }
-    }
-
-    override fun clickAvatar(uid: Long) {
-        if (uid == 0L) {
-            return
-        }
-        val act = activity ?: return
-        Router.build(act, Profile.UserProfile.PATH)
-            .putExtra(Profile.Common.EXTRA_UID, uid)
-            .start()
-    }
-}

+ 0 - 29
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/TreasureIntroFragment.kt

@@ -1,29 +0,0 @@
-package com.adealink.weparty.guardtreasure
-
-import com.adealink.weparty.commonui.BaseFragment
-import com.adealink.frame.mvvm.view.viewBinding
-import com.adealink.weparty.guardtreasure.databinding.FragmentTreasureIntroBinding
-import com.adealink.weparty.url.UrlConfig
-import com.adealink.weparty.module.webview.IWebViewFragment
-import com.adealink.weparty.module.webview.WebViewFragmentBuilder
-
-class TreasureIntroFragment : BaseFragment(R.layout.fragment_treasure_intro) {
-
-    companion object {
-        const val TAG = "TreasureIntroFragment"
-    }
-
-    private val binding by viewBinding(FragmentTreasureIntroBinding::bind)
-    private var webChannelView: IWebViewFragment? = null
-
-    override fun initViews() {
-        super.initViews()
-        webChannelView = WebViewFragmentBuilder().build()
-        webChannelView?.setTransparentBgWhenPageFinish()
-        webChannelView?.replaceAndShow(
-            childFragmentManager,
-            R.id.fl_web_channel,
-            UrlConfig.guardTreasureRule
-        )
-    }
-}

+ 0 - 49
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/adapter/TreasureGetRewardItemViewBinder.kt

@@ -1,49 +0,0 @@
-package com.adealink.weparty.guardtreasure.adapter
-
-import android.view.LayoutInflater
-import android.view.ViewGroup
-import androidx.core.view.updateLayoutParams
-import com.adealink.weparty.commonui.ext.hide
-import com.adealink.weparty.commonui.ext.show
-import com.adealink.weparty.commonui.recycleview.adapter.BindingViewHolder
-import com.adealink.weparty.commonui.recycleview.adapter.multitype.ItemViewBinder
-import com.adealink.frame.util.DisplayUtil
-import com.adealink.weparty.guardtreasure.R
-import com.adealink.weparty.module.guardtreasure.data.TreasureRewardNormalItemData
-import com.adealink.weparty.guardtreasure.databinding.LayoutTreasureGetRewardItemBinding
-import kotlin.Int
-import kotlin.apply
-
-class TreasureGetRewardItemViewBinder(private val parentWidth: Int = DisplayUtil.getScreenWidth()) :
-    ItemViewBinder<TreasureRewardNormalItemData, BindingViewHolder<LayoutTreasureGetRewardItemBinding>>() {
-    override fun onCreateViewHolder(inflater: LayoutInflater, parent: ViewGroup): BindingViewHolder<LayoutTreasureGetRewardItemBinding> {
-        val viewBinding = LayoutTreasureGetRewardItemBinding.inflate(inflater, parent, false)
-        return BindingViewHolder(viewBinding).apply {
-            initView(viewBinding)
-        }
-    }
-
-    private fun initView(viewBinding: LayoutTreasureGetRewardItemBinding) {
-        //普通奖励设置宽度(屏幕宽度的32%)
-        viewBinding.root.updateLayoutParams<ViewGroup.LayoutParams> {
-            width = (parentWidth * 0.23f).toInt()
-        }
-    }
-
-    override fun onBindViewHolder(holder: BindingViewHolder<LayoutTreasureGetRewardItemBinding>, item: TreasureRewardNormalItemData) {
-        val rewardInfo = item.reward
-        if (rewardInfo.isExpiredReward()) {
-            if (DisplayUtil.isRtlLayout()) {
-                holder.binding.tvDuration.setBackgroundResource(R.drawable.treasure_reward_mark_rtl_ic)
-            } else {
-                holder.binding.tvDuration.setBackgroundResource(R.drawable.treasure_reward_mark_ic)
-            }
-            holder.binding.tvDuration.show()
-            holder.binding.tvDuration.text = rewardInfo.getCountDesc()
-        } else {
-            holder.binding.tvDuration.hide()
-        }
-        holder.binding.ivReward.setImageUrl(rewardInfo.rewardResourceUrl)
-        holder.binding.tvNum.text = rewardInfo.getRewardName()
-    }
-}

+ 0 - 129
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/adapter/TreasureHistoryItemViewBinder.kt

@@ -1,129 +0,0 @@
-package com.adealink.weparty.guardtreasure.adapter
-
-import android.view.LayoutInflater
-import android.view.ViewGroup
-import androidx.constraintlayout.widget.ConstraintLayout
-import androidx.core.view.updateLayoutParams
-import com.adealink.frame.aab.util.getCompatColor
-import com.adealink.frame.aab.util.getCompatString
-import com.adealink.frame.util.timeToYMDHM
-import com.adealink.weparty.commonui.ext.gone
-import com.adealink.weparty.commonui.ext.setVerticalLinearGradient
-import com.adealink.weparty.commonui.ext.show
-import com.adealink.weparty.commonui.recycleview.adapter.BindingViewHolder
-import com.adealink.weparty.commonui.recycleview.adapter.multitype.ItemViewBinder
-import com.adealink.weparty.guardtreasure.R
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureHistoryItem
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureStatus
-import com.adealink.weparty.guardtreasure.databinding.LayoutTreasureHistoryItemBinding
-import com.adealink.weparty.guardtreasure.manager.guardTreasureManager
-import com.adealink.weparty.module.guardtreasure.util.getTreasureLevelBg
-
-interface HistoryItemClickListener {
-    fun clickAvatar(uid: Long)
-}
-
-class TreasureHistoryItemViewBinder(val clickListener: HistoryItemClickListener) :
-    ItemViewBinder<GuardTreasureHistoryItem, BindingViewHolder<LayoutTreasureHistoryItemBinding>>() {
-    override fun onCreateViewHolder(inflater: LayoutInflater, parent: ViewGroup): BindingViewHolder<LayoutTreasureHistoryItemBinding> {
-        return BindingViewHolder(LayoutTreasureHistoryItemBinding.inflate(inflater, parent, false))
-    }
-
-    override fun onBindViewHolder(holder: BindingViewHolder<LayoutTreasureHistoryItemBinding>, item: GuardTreasureHistoryItem) {
-        if (item.boxName.isNullOrEmpty()) {
-            holder.binding.tvTreasureType.gone()
-        } else {
-            holder.binding.tvTreasureType.show()
-            holder.binding.tvTreasureType.setBackgroundResource(getTreasureLevelBg(item.level))
-            holder.binding.tvTreasureType.text = item.boxName
-        }
-        when (item.status) {
-            GuardTreasureStatus.GUARD_SUCCESS.status -> {
-                //守护成功
-                holder.binding.clContent.setBackgroundResource(R.drawable.guard_treasure_guard_success_bg)
-                holder.binding.clContent.updateLayoutParams<ConstraintLayout.LayoutParams> {
-                    dimensionRatio = "366:482"
-                }
-                holder.binding.guardResultTop.setGuidelinePercent(0.12f)
-                holder.binding.tvGuardResult.text = getCompatString(R.string.guard_success)
-                holder.binding.tvGuardResult.setVerticalLinearGradient(
-                    listOf(getCompatColor(com.adealink.weparty.R.color.color_FFFFF3C2), getCompatColor(com.adealink.weparty.R.color.color_FFFFCC00), getCompatColor(com.adealink.weparty.R.color.color_FFFFCC00)),
-                    listOf(0f, 0.5f, 1f)
-                )
-                holder.binding.ivTreasure.setImageUrl(guardTreasureManager.getGuardTreasureConfigBy(item.level)?.closeUrl)
-                holder.binding.ivRob.gone()
-                holder.binding.clReward.show()
-                val reward = item.rewards.firstOrNull()
-                if (reward?.isExpiredReward() == true) {
-                    //有过期的礼物
-                    holder.binding.ivReward.setImageUrl(reward.rewardResourceUrl)
-                    holder.binding.tvReward.text = reward.getCountDesc()
-                } else {
-                    holder.binding.ivReward.setActualImageResource(com.adealink.weparty.R.drawable.common_coin_32_ic)
-                    holder.binding.tvReward.text = reward?.getRewardName() ?: ""
-                }
-                holder.binding.clUser.show()
-                holder.binding.ivAvatar.show()
-                holder.binding.ivAvatar.setImageUrl(item.otherUidUserInfo?.url)
-                holder.binding.ivAvatar.setOnClickListener {
-                    clickListener.clickAvatar(item.otherUid)
-                }
-                holder.binding.tvName.text = item.otherUidUserInfo?.name
-                holder.binding.tvDesc.text = getCompatString(R.string.guard_treasure_record_guard_success_partner)
-                holder.binding.tvTime.text = timeToYMDHM(item.createTime)
-            }
-            GuardTreasureStatus.ROB.status -> {
-                //被抢
-                holder.binding.clContent.setBackgroundResource(R.drawable.guard_treasure_guard_fail_bg)
-                holder.binding.clContent.updateLayoutParams<ConstraintLayout.LayoutParams> {
-                    dimensionRatio = "366:411"
-                }
-                holder.binding.guardResultTop.setGuidelinePercent(0.15f)
-                holder.binding.tvGuardResult.text = getCompatString(R.string.guard_fail)
-                holder.binding.tvGuardResult.setVerticalLinearGradient(
-                    listOf(getCompatColor(com.adealink.weparty.R.color.color_FFFBBFA6), getCompatColor(com.adealink.weparty.R.color.color_FFEF6E11), getCompatColor(com.adealink.weparty.R.color.color_FFEF6E11)),
-                    listOf(0f, 0.5f, 1f)
-                )
-                holder.binding.ivTreasure.setImageUrl(guardTreasureManager.getGuardTreasureConfigBy(item.level)?.closeUrl)
-                holder.binding.ivRob.show()
-                holder.binding.clReward.gone()
-                holder.binding.clUser.show()
-                holder.binding.ivAvatar.show()
-                holder.binding.ivAvatar.setImageUrl(item.otherUidUserInfo?.url)
-                holder.binding.ivAvatar.setOnClickListener {
-                    clickListener.clickAvatar(item.otherUid)
-                }
-                holder.binding.tvName.text = item.otherUidUserInfo?.name
-                holder.binding.tvDesc.text = getCompatString(R.string.guard_treasure_record_guard_fail_robber)
-                holder.binding.tvTime.text = timeToYMDHM(item.createTime)
-            }
-            GuardTreasureStatus.ROB_SUCCESS.status -> {
-                //抢夺成功
-                holder.binding.clContent.setBackgroundResource(R.drawable.guard_treasure_guard_success_bg)
-                holder.binding.clContent.updateLayoutParams<ConstraintLayout.LayoutParams> {
-                    dimensionRatio = "366:482"
-                }
-                holder.binding.guardResultTop.setGuidelinePercent(0.12f)
-                holder.binding.tvGuardResult.text = getCompatString(R.string.rob_success)
-                holder.binding.tvGuardResult.setVerticalLinearGradient(
-                    listOf(getCompatColor(com.adealink.weparty.R.color.color_FFFFF3C2), getCompatColor(com.adealink.weparty.R.color.color_FFFFCC00), getCompatColor(com.adealink.weparty.R.color.color_FFFFCC00)),
-                    listOf(0f, 0.5f, 1f)
-                )
-                holder.binding.ivTreasure.setImageUrl(guardTreasureManager.getGuardTreasureConfigBy(item.level)?.closeUrl)
-                holder.binding.ivRob.gone()
-                holder.binding.clReward.gone()
-                holder.binding.clUser.show()
-                holder.binding.ivAvatar.gone()
-                holder.binding.tvName.text = getCompatString(
-                    R.string.guard_treasure_record_rob_success_club,
-                    item.otherUidUserInfo?.name ?: ""
-                )
-                holder.binding.tvDesc.text = getCompatString(R.string.guard_treasure_record_rob_success)
-                holder.binding.tvTime.text = timeToYMDHM(item.createTime)
-            }
-            else -> {
-                //未知状态
-            }
-        }
-    }
-}

+ 0 - 55
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/adapter/TreasureRewardItemViewBinder.kt

@@ -1,55 +0,0 @@
-package com.adealink.weparty.guardtreasure.adapter
-
-import android.view.LayoutInflater
-import android.view.ViewGroup
-import androidx.core.view.updateLayoutParams
-import com.adealink.weparty.commonui.ext.hide
-import com.adealink.weparty.commonui.ext.show
-import com.adealink.weparty.commonui.recycleview.adapter.BindingViewHolder
-import com.adealink.weparty.commonui.recycleview.adapter.multitype.ItemViewBinder
-import com.adealink.frame.util.DisplayUtil
-import com.adealink.weparty.guardtreasure.R
-import com.adealink.weparty.module.guardtreasure.data.TreasureRewardNormalItemData
-import com.adealink.weparty.guardtreasure.databinding.LayoutTreasureRewardItemBinding
-import com.adealink.weparty.R as APP_R
-
-class TreasureRewardItemViewBinder(private val parentWidth: Int = DisplayUtil.getScreenWidth()) :
-    ItemViewBinder<TreasureRewardNormalItemData, BindingViewHolder<LayoutTreasureRewardItemBinding>>() {
-    override fun onCreateViewHolder(inflater: LayoutInflater, parent: ViewGroup): BindingViewHolder<LayoutTreasureRewardItemBinding> {
-        val viewBinding = LayoutTreasureRewardItemBinding.inflate(inflater, parent, false)
-        return BindingViewHolder(viewBinding).apply {
-            initView(viewBinding)
-        }
-    }
-
-    private fun initView(viewBinding: LayoutTreasureRewardItemBinding) {
-        //普通奖励设置宽度(屏幕宽度的32%)
-        viewBinding.root.updateLayoutParams<ViewGroup.LayoutParams> {
-            width = (parentWidth * 0.19f).toInt()
-            height = width
-        }
-    }
-
-    override fun onBindViewHolder(holder: BindingViewHolder<LayoutTreasureRewardItemBinding>, item: TreasureRewardNormalItemData) {
-        val rewardInfo = item.reward
-        if (rewardInfo.isWinning()) {
-            holder.binding.root.setBackgroundResource(R.drawable.treasure_reward_bingo_bg)
-        } else {
-            holder.binding.root.setBackgroundResource(R.drawable.treasure_reward_bg)
-        }
-        if (rewardInfo.isExpiredReward()) {
-            if (DisplayUtil.isRtlLayout()) {
-                holder.binding.tvDuration.setBackgroundResource(R.drawable.treasure_reward_mark_rtl_ic)
-            } else {
-                holder.binding.tvDuration.setBackgroundResource(R.drawable.treasure_reward_mark_ic)
-            }
-            holder.binding.tvDuration.show()
-            holder.binding.tvDuration.text = rewardInfo.getCountDesc()
-        } else {
-            holder.binding.tvDuration.hide()
-        }
-        holder.binding.ivReward.setImageUrl(rewardInfo.rewardResourceUrl)
-        holder.binding.ivValue.setActualImageResource(APP_R.drawable.common_coin_16_ic)
-        holder.binding.tvNum.text = rewardInfo.getRewardName()
-    }
-}

+ 0 - 56
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/adapter/TreasureRewardTopItemViewBinder.kt

@@ -1,56 +0,0 @@
-package com.adealink.weparty.guardtreasure.adapter
-
-import android.view.LayoutInflater
-import android.view.ViewGroup
-import androidx.core.view.updateLayoutParams
-import com.adealink.weparty.commonui.ext.hide
-import com.adealink.weparty.commonui.ext.show
-import com.adealink.weparty.commonui.recycleview.adapter.BindingViewHolder
-import com.adealink.weparty.commonui.recycleview.adapter.multitype.ItemViewBinder
-import com.adealink.frame.util.DisplayUtil
-import com.adealink.weparty.guardtreasure.R
-import com.adealink.weparty.module.guardtreasure.data.TreasureRewardTopItemData
-import com.adealink.weparty.guardtreasure.databinding.LayoutTreasureRewardTopItemBinding
-import com.adealink.weparty.R as APP_R
-
-class TreasureRewardTopItemViewBinder(private val parentWidth: Int = DisplayUtil.getScreenWidth()) :
-    ItemViewBinder<TreasureRewardTopItemData, BindingViewHolder<LayoutTreasureRewardTopItemBinding>>() {
-
-    override fun onCreateViewHolder(inflater: LayoutInflater, parent: ViewGroup): BindingViewHolder<LayoutTreasureRewardTopItemBinding> {
-        val viewBinding = LayoutTreasureRewardTopItemBinding.inflate(inflater, parent, false)
-        return BindingViewHolder(viewBinding).apply {
-            initView(viewBinding)
-        }
-    }
-
-    private fun initView(viewBinding: LayoutTreasureRewardTopItemBinding) {
-        //最高奖励设置宽度(屏幕宽度的32%)
-        viewBinding.root.updateLayoutParams<ViewGroup.LayoutParams> {
-            width = (parentWidth * 0.32f).toInt()
-            height = (width / 238f * 296f).toInt()
-        }
-    }
-
-    override fun onBindViewHolder(holder: BindingViewHolder<LayoutTreasureRewardTopItemBinding>, item: TreasureRewardTopItemData) {
-        val rewardInfo = item.reward
-        if (rewardInfo.isWinning()) {
-            holder.binding.root.setBackgroundResource(R.drawable.treasure_reward_top_bingo_bg)
-        } else {
-            holder.binding.root.setBackgroundResource(R.drawable.treasure_reward_bg)
-        }
-        if (rewardInfo.isExpiredReward()) {
-            if (DisplayUtil.isRtlLayout()) {
-                holder.binding.tvDuration.setBackgroundResource(R.drawable.treasure_reward_top_mark_rtl_ic)
-            } else {
-                holder.binding.tvDuration.setBackgroundResource(R.drawable.treasure_reward_top_mark_ic)
-            }
-            holder.binding.tvDuration.show()
-            holder.binding.tvDuration.text = rewardInfo.getCountDesc()
-        } else {
-            holder.binding.tvDuration.hide()
-        }
-        holder.binding.ivReward.setImageUrl(rewardInfo.rewardResourceUrl)
-        holder.binding.ivValue.setActualImageResource(APP_R.drawable.common_coin_16_ic)
-        holder.binding.tvNum.text = rewardInfo.getRewardName()
-    }
-}

+ 0 - 18
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/datasource/local/GuardTreasureLocalService.kt

@@ -1,18 +0,0 @@
-package com.adealink.weparty.guardtreasure.datasource.local
-
-import android.content.Context
-import com.adealink.frame.storage.sp.TypeDelegationPrefs
-import com.adealink.frame.util.AppUtil
-import com.adealink.weparty.module.profile.ProfileModule
-
-object GuardTreasureLocalService : TypeDelegationPrefs(
-    prefs = {
-        AppUtil.appContext.getSharedPreferences("pref_guard_treasure", Context.MODE_PRIVATE)
-    },
-    userId = {
-        ProfileModule.getMyUid().toString()
-    }
-) {
-
-    var showInviteRemind: Boolean by PrefUserKey("key_show_invite_remind", true)
-}

+ 0 - 48
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/datasource/remote/GuardTreasureHttpService.kt

@@ -1,48 +0,0 @@
-package com.adealink.weparty.guardtreasure.datasource.remote
-
-import com.adealink.frame.base.Rlt
-import com.adealink.frame.network.data.Res
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureData
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureHistoryData
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureInviteRequest
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureInviteResponseRequest
-import com.adealink.weparty.module.guardtreasure.data.OpenBoxData
-import retrofit2.http.*
-
-/**
- * 宝箱守护接口
- */
-interface GuardTreasureHttpService {
-    @GET("activity/room_box/getMyGuardBoxInfo")
-    suspend fun getCurrentGuardingInfo(): Rlt<Res<GuardTreasureData>>
-
-    @GET("activity/room_box/getTodayRoomBoxInfo")
-    suspend fun getTodayBox(@Query("showRewards") showRewards: Boolean): Rlt<Res<GuardTreasureData>>
-
-
-    @GET("activity/room_box/getRoomBoxInfoByRoomId")
-    suspend fun getBoxByRoomId(
-        @Query("roomId") roomId: Long,
-        @Query("showRewards") showRewards: Boolean,
-        @Query("scene") scene: Int? = null //会所里需要传0
-    ): Rlt<Res<GuardTreasureData>>
-
-    /**
-     * 我的宝箱库
-     */
-    @GET("activity/room_box/getRoomBoxInfoList")
-    suspend fun getBoxList(@Query("showRewards") showRewards: Boolean): Rlt<Res<List<GuardTreasureData>>>
-
-    @POST("activity/room_box/inviteFriend")
-    suspend fun sendInvite(@Body req: GuardTreasureInviteRequest): Rlt<Res<Any>>
-
-    @POST("activity/room_box/confirmInvite")
-    suspend fun inviteResponse(@Body req: GuardTreasureInviteResponseRequest): Rlt<Res<Any>>
-
-    @POST("activity/room_box/openReward/{boxId}")
-    suspend fun openBox(@Path("boxId") boxId: Long): Rlt<Res<OpenBoxData>>
-
-    @GET("activity/room_box/getUserRoomBoxRecords")
-    suspend fun getGuardHistory(@Query("currentPage") currentPage: Int, @Query("pageSize") pageSize: Int): Rlt<Res<GuardTreasureHistoryData>>
-
-}

+ 0 - 271
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/manager/GuardTreasureManager.kt

@@ -1,271 +0,0 @@
-package com.adealink.weparty.guardtreasure.manager
-
-import android.os.Bundle
-import com.adealink.frame.base.Rlt
-import com.adealink.frame.coroutine.dispatcher.Dispatcher
-import com.adealink.frame.data.json.froJsonErrorNull
-import com.adealink.frame.download.task.Task
-import com.adealink.frame.frame.BaseFrame
-import com.adealink.frame.locale.language.languageManager
-import com.adealink.frame.log.Log
-import com.adealink.frame.network.ISocketNotify
-import com.adealink.frame.router.Router
-import com.adealink.frame.util.AppUtil
-import com.adealink.frame.util.PackageUtil
-import com.adealink.frame.util.isFileExists
-import com.adealink.frame.util.md5
-import com.adealink.weparty.App
-import com.adealink.weparty.commonui.BaseActivity
-import com.adealink.weparty.commonui.dialogfragment.BaseDialogFragment
-import com.adealink.weparty.commonui.dialogfragment.showDialogFragment
-import com.adealink.weparty.config.ConfigHttpService
-import com.adealink.weparty.config.GetGlobalConfigReq
-import com.adealink.weparty.config.GlobalConfigType
-import com.adealink.weparty.config.globalConfigManager
-import com.adealink.weparty.guardtreasure.EnterClubRoomDialog
-import com.adealink.weparty.guardtreasure.datasource.remote.GuardTreasureHttpService
-import com.adealink.weparty.module.guardtreasure.GuardTreasure
-import com.adealink.weparty.module.guardtreasure.data.GuardInviteConfirmNotify
-import com.adealink.weparty.module.guardtreasure.data.GuardInviteNotify
-import com.adealink.weparty.module.guardtreasure.data.GuardSuccessNotify
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureConfig
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureLevelConfig
-import com.adealink.weparty.module.profile.ProfileModule
-import com.adealink.weparty.module.room.RoomModule
-import com.adealink.weparty.module.room.sdk.data.RoomType
-import com.adealink.weparty.module.roomtask.viewmodel.VapcEffectViewModel
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.withContext
-
-val guardTreasureManager: IGuardTreasureManager by lazy { GuardTreasureManager() }
-
-class GuardTreasureManager : BaseFrame<IGuardTreasureManager.IListener>(), IGuardTreasureManager {
-
-    private var config: GuardTreasureConfig? = null
-    private var myUserInfo: com.adealink.weparty.module.profile.data.UserInfo? = null
-
-    private val guardTreasureHttpService by lazy {
-        App.instance.networkService.getHttpService(GuardTreasureHttpService::class.java)
-    }
-
-    private val configHttpService by lazy {
-        App.instance.networkService.getHttpService(ConfigHttpService::class.java)
-    }
-
-    /**
-     * 邀请通知
-     */
-    private val guardInviteNotify = object : ISocketNotify<GuardInviteNotify> {
-
-        override val uri: String = "URI_ROOM_BOX_INVITE"
-
-        override fun needHandle(data: GuardInviteNotify?): Boolean {
-            return data != null
-        }
-
-        override fun onNotify(data: GuardInviteNotify) {
-            handleInviteNotify(data)
-        }
-    }
-
-    /**
-     * 邀请确认通知
-     */
-    private val guardInviteConfirmNotify = object : ISocketNotify<GuardInviteConfirmNotify> {
-
-        override val uri: String = "URI_ROOM_BOX_CONFIRM_INVITE"
-
-        override fun needHandle(data: GuardInviteConfirmNotify?): Boolean {
-            return data != null && (data.uid == ProfileModule.getMyUid() || data.partnerUid == ProfileModule.getMyUid())
-        }
-
-        override fun onNotify(data: GuardInviteConfirmNotify) {
-            handleInviteConfirmNotify(data)
-        }
-    }
-
-    /**
-     * 守护成功通知
-     */
-    private val guardSuccessNotify = object : ISocketNotify<GuardSuccessNotify> {
-
-        override val uri: String = "URI_ROOM_BOX_GUARD_SUCCESS"
-
-        override fun needHandle(data: GuardSuccessNotify?): Boolean {
-            return data != null
-        }
-
-        override fun onNotify(data: GuardSuccessNotify) {
-            handleGuardSuccessNotify(data)
-        }
-    }
-
-    init {
-        App.instance.networkService.subscribeNotify(guardInviteNotify)
-        App.instance.networkService.subscribeNotify(guardInviteConfirmNotify)
-        App.instance.networkService.subscribeNotify(guardSuccessNotify)
-    }
-
-    override fun init() { //初始化宝箱守护单例
-    }
-
-    override suspend fun loadGuardTreasureConfig(fromCache: Boolean): Boolean {
-        if (fromCache && config != null && myUserInfo != null) {
-            return true
-        }
-
-        // 打开APP时会拉取一次全局配置
-        val guardTreasureGlobalConfig = globalConfigManager.getConfig(GlobalConfigType.GLOBAL_ROOM_GUARD_TREASURE)?.firstOrNull()
-        if (guardTreasureGlobalConfig != null) {
-            val newConfig = froJsonErrorNull(guardTreasureGlobalConfig, GuardTreasureConfig::class.java) ?: return false
-            updateConfigs(newConfig)
-            return true
-        }
-
-        val res = configHttpService.getGlobalConfig(GetGlobalConfigReq(configs = listOf(GlobalConfigType.GLOBAL_ROOM_GUARD_TREASURE.value)))
-        myUserInfo = (ProfileModule.getUserInfoByUid(ProfileModule.getMyUid(), false) as? Rlt.Success)?.data
-        if (res is Rlt.Success) {
-            val json = res.data.data?.configsMap?.get(GlobalConfigType.GLOBAL_ROOM_GUARD_TREASURE.value)?.firstOrNull()
-            if (json.isNullOrEmpty()) {
-                Log.d(TAG, "loadGuardTreasureConfig return, for config is null")
-                return false
-            }
-            val newConfig = froJsonErrorNull(json, GuardTreasureConfig::class.java) ?: return false
-            updateConfigs(newConfig)
-            return true
-        } else {
-            return false
-        }
-    }
-
-    private fun updateConfigs(newConfig: GuardTreasureConfig) {
-        config = newConfig
-        handleConfigUpdated(newConfig)
-        checkGuardTreasureResource()
-    }
-
-    private fun checkGuardTreasureResource() {
-        Log.d(TAG, "checkGuardTreasureResource")
-        launch {
-            val config = config ?: return@launch
-            val downloadList = mutableListOf<String>()
-            for (item in config.levelConfig) {
-                if (item.dynamicUrl.isNotEmpty()) {
-                    downloadList.add(item.dynamicUrl)
-                }
-            }
-            for (url in downloadList) {
-                val savePath = VapcEffectViewModel.getSavePath(url)
-                Log.d(TAG, "downloadNecessaryResource, path:$savePath")
-                if (isFileExists(savePath)) {
-                    Log.d(TAG, "downloadNecessaryResource return, file exists")
-                    continue
-                }
-                val taskId = url.md5()
-                val task = Task(taskId, url, savePath)
-                App.instance.downloadService.addTask(task)
-            }
-        }
-    }
-
-    override fun getBannerPicUrl(): String? {
-        val config = config ?: return null
-        return config.bannerConfig.getString(languageManager?.getLanguageCode())
-    }
-
-    override fun getGuardTreasureConfigBy(level: Int): GuardTreasureLevelConfig? {
-        val config = config ?: return null
-        return config.levelConfig.find { it.level == level }
-    }
-
-    override fun isSupportGuardTreasure(): Boolean {
-        val config = config ?: return false
-        if (!config.show) {
-            return false
-        }
-        val versionCode = PackageUtil.getVersionCode()
-        if (versionCode < config.version) {
-            return false
-        }
-        val myUserInfo = myUserInfo ?: ProfileModule.getMyUserInfo()
-        val userInfo = myUserInfo ?: return false
-        if (!userInfo.isNormalAccount()) {
-            return false
-        }
-        val userLevel = userInfo.level
-        if (userLevel < config.levelLimit) {
-            return false
-        }
-        return true
-    }
-
-    private fun handleConfigUpdated(newConfig: GuardTreasureConfig) {
-        dispatch {
-            it.onConfigUpdate(newConfig)
-        }
-    }
-
-    private fun handleInviteNotify(notify: GuardInviteNotify) {
-        Log.d(TAG, "handleInviteNotify, $notify")
-        launch {
-            loadGuardTreasureConfig(true)
-            withContext(Dispatcher.UI) {
-                showGuardInviteDialog(notify)
-            }
-        }
-    }
-
-    private fun showGuardInviteDialog(notify: GuardInviteNotify) {
-        if (RoomModule.getRoomType() == RoomType.CLUB) {
-            Log.d(TAG, "goClubRoom return, for already in club room.")
-            return
-        }
-        val act = (AppUtil.currentActivity as? BaseActivity) ?: return
-        if (notify.boxId == 0L || notify.roomId == 0L) {
-            Log.d(TAG, "showGuardInviteDialog return, for boxId / roomId is 0")
-            return
-        }
-        Router.getRouterInstance<BaseDialogFragment>(GuardTreasure.Invite.PATH)?.apply {
-            this.arguments = Bundle().apply {
-                putLong(GuardTreasure.Invite.EXTRA_CLUB_ROOM_ID, notify.roomId)
-                putLong(GuardTreasure.Invite.EXTRA_INVITER_UID, notify.userInfo.uid)
-                putLong(GuardTreasure.Invite.EXTRA_INVITEE_UID, ProfileModule.getMyUid())
-                putBoolean(GuardTreasure.Invite.EXTRA_IS_INVITER, false)
-            }
-            this.show(act.supportFragmentManager, GuardTreasure.Invite.TAG)
-        }
-    }
-
-    private fun handleInviteConfirmNotify(notify: GuardInviteConfirmNotify) {
-        Log.d(TAG, "handleInviteConfirmNotify, $notify")
-        launch {
-            loadGuardTreasureConfig(true)
-            withContext(Dispatcher.UI) {
-                goClubRoom(notify)
-            }
-        }
-    }
-
-    private fun goClubRoom(notify: GuardInviteConfirmNotify) {
-        if (RoomModule.getRoomType() == RoomType.CLUB) {
-            Log.d(TAG, "goClubRoom return, for already in club room.")
-            return
-        }
-        val act = (AppUtil.currentActivity as? BaseActivity) ?: return //关闭无关的弹窗
-        (act.supportFragmentManager.findFragmentByTag(GuardTreasure.GuardTreasure.TAG) as? BaseDialogFragment)?.dismiss()
-        showDialogFragment<EnterClubRoomDialog>(act.supportFragmentManager, Bundle().apply {
-            putLong(GuardTreasure.EnterClubRoomDialog.EXTRA_CLUB_ROOM_ID, notify.roomId)
-        })
-    }
-
-    private fun handleGuardSuccessNotify(notify: GuardSuccessNotify) {
-        Log.d(TAG, "handleGuardSuccessNotify, $notify")
-        dispatch {
-            it.onGuardSuccessNotify(notify)
-        }
-    }
-
-    companion object {
-        const val TAG = "GuardTreasureManager"
-    }
-}

+ 0 - 25
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/manager/IGuardTreasureManager.kt

@@ -1,25 +0,0 @@
-package com.adealink.weparty.guardtreasure.manager
-
-import com.adealink.frame.frame.IBaseFrame
-import com.adealink.frame.frame.IListener
-import com.adealink.weparty.module.guardtreasure.data.GuardSuccessNotify
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureConfig
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureLevelConfig
-
-interface IGuardTreasureManager : IBaseFrame<IGuardTreasureManager.IListener> {
-
-    fun init()
-    suspend fun loadGuardTreasureConfig(fromCache: Boolean = true): Boolean
-
-    fun getBannerPicUrl(): String?
-
-    fun getGuardTreasureConfigBy(level: Int): GuardTreasureLevelConfig?
-
-    fun isSupportGuardTreasure(): Boolean
-
-    interface IListener : com.adealink.frame.frame.IListener {
-        fun onConfigUpdate(config: GuardTreasureConfig) {}
-
-        fun onGuardSuccessNotify(notify: GuardSuccessNotify)
-    }
-}

+ 0 - 8
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/manager/IInviteMemberManager.kt

@@ -1,8 +0,0 @@
-package com.adealink.weparty.guardtreasure.manager
-
-interface IInviteMemberManager {
-
-    fun getLastInviteTime(uid: Long): Long
-
-    fun updateInviteTime(uid: Long, inviteTime: Long)
-}

+ 0 - 27
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/manager/InviteMemberManager.kt

@@ -1,27 +0,0 @@
-package com.adealink.weparty.guardtreasure.manager
-
-val inviteManager: IInviteMemberManager by lazy { InviteMemberManager() }
-
-class InviteMemberManager : IInviteMemberManager {
-
-    companion object {
-        const val TAG = "InviteMemberManager"
-
-        private const val INVITE_HISTORY_CACHE_SIZE = 50 //记录最近50个邀请记录
-    }
-
-    //缓存最近的邀请信息
-    private val inviteLimitMap = object : LinkedHashMap<Long, Long>() {
-        override fun removeEldestEntry(eldest: MutableMap.MutableEntry<Long, Long>?): Boolean {
-            return size > INVITE_HISTORY_CACHE_SIZE
-        }
-    }
-
-    override fun getLastInviteTime(uid: Long): Long {
-        return inviteLimitMap[uid] ?: 0L
-    }
-
-    override fun updateInviteTime(uid: Long, inviteTime: Long) {
-        inviteLimitMap[uid] = inviteTime
-    }
-}

+ 0 - 23
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/viewmodel/GuardTreasureDialogViewModel.kt

@@ -1,23 +0,0 @@
-package com.adealink.weparty.guardtreasure.viewmodel
-
-import com.adealink.frame.mvvm.livedata.ExtMutableLiveData
-import com.adealink.frame.mvvm.viewmodel.BaseViewModel
-
-class GuardTreasureDialogViewModel : BaseViewModel() {
-
-    val switchTabLD = ExtMutableLiveData<Int>()
-    val closeDialogLD = ExtMutableLiveData<Unit>()
-
-    fun switchTab(tab: Int) {
-        switchTabLD.send(tab)
-    }
-
-    fun closeDialog() {
-        closeDialogLD.send(Unit)
-    }
-
-    companion object {
-        private const val TAG = "GuardTreasureDialogViewModel"
-
-    }
-}

+ 0 - 26
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/viewmodel/GuardTreasureEffectViewModel.kt

@@ -1,26 +0,0 @@
-package com.adealink.weparty.guardtreasure.viewmodel
-
-import androidx.lifecycle.LiveData
-import com.adealink.frame.download.task.Task
-import com.adealink.frame.mvvm.livedata.OnceMutableLiveData
-import com.adealink.weparty.App
-import com.adealink.weparty.module.roomtask.viewmodel.VapcEffectInfo
-import com.adealink.weparty.module.roomtask.viewmodel.VapcEffectViewModel
-import kotlinx.coroutines.launch
-
-class GuardTreasureEffectViewModel : VapcEffectViewModel() {
-
-    fun checkGetRewardEffect(url: String): LiveData<VapcEffectInfo?> {
-        val liveData = OnceMutableLiveData<VapcEffectInfo?>()
-        viewModelScope.launch {
-            liveData.send(
-                downloadVideoEffect(url)
-            )
-        }
-        return liveData
-    }
-
-    override fun addDownloadTask(task: Task) {
-        App.instance.downloadService.addTask(task)
-    }
-}

+ 0 - 90
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/viewmodel/GuardTreasureHistoryViewModel.kt

@@ -1,90 +0,0 @@
-package com.adealink.weparty.guardtreasure.viewmodel
-
-import androidx.lifecycle.MutableLiveData
-import com.adealink.frame.base.Rlt
-import com.adealink.frame.base.fastLazy
-import com.adealink.frame.coroutine.dispatcher.Dispatcher
-import com.adealink.frame.locale.language.languageManager
-import com.adealink.frame.mvvm.viewmodel.BaseViewModel
-import com.adealink.weparty.App
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureHistoryItem
-import com.adealink.weparty.guardtreasure.datasource.remote.GuardTreasureHttpService
-import com.adealink.weparty.guardtreasure.manager.guardTreasureManager
-import com.adealink.weparty.module.profile.ProfileModule
-import com.adealink.weparty.module.profile.data.UserInfo
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.withContext
-
-class GuardTreasureHistoryViewModel : BaseViewModel() {
-
-    val historyListLD = MutableLiveData<List<GuardTreasureHistoryItem>>()
-    private var currentPage = 1
-    private var hasMore = true
-
-    private val historySet = mutableSetOf<Long>()//去重
-    private val historyList = mutableListOf<GuardTreasureHistoryItem>()
-
-    private val guardTreasureHttpService by fastLazy {
-        App.instance.networkService.getHttpService(GuardTreasureHttpService::class.java)
-    }
-
-    fun hasMore(): Boolean {
-        return hasMore
-    }
-
-    /**
-     * 宝箱守护历史
-     */
-    fun loadHistory() {
-        viewModelScope.launch {
-            currentPage = 1
-            hasMore = true
-            historySet.clear()
-            historyList.clear()
-            loadMore()
-        }
-    }
-
-    fun loadMore() {
-        viewModelScope.launch {
-            val res = guardTreasureHttpService.getGuardHistory(currentPage, PAGE_SIZE)
-            if (res is Rlt.Success) {
-                currentPage++
-                val records = res.data.data?.records ?: emptyList()
-                val newRecords = records.filter { !historySet.contains(it.id) }
-                if (newRecords.isEmpty()) {
-                    hasMore = false
-                }
-                //补充用户信息
-                val pullUserInfoList = mutableSetOf<Long>()
-                for (record in newRecords) {
-                    pullUserInfoList.add(record.uid)
-                    pullUserInfoList.add(record.otherUid)
-                }
-                val usersInfoRlt = ProfileModule.getUsersInfoByUid(pullUserInfoList)
-                if (usersInfoRlt is Rlt.Success) {
-                    wrapHistoryItem(newRecords, usersInfoRlt.data)
-                }
-                historySet.addAll(newRecords.map { it.id })
-                historyList.addAll(newRecords)
-                historyListLD.send(historyList)
-            }
-        }
-    }
-
-    private suspend fun wrapHistoryItem(newRecords: List<GuardTreasureHistoryItem>, userInfoMap: Map<Long, UserInfo>) {
-        return withContext(Dispatcher.WENEXT_THREAD_POOL) {
-            newRecords.onEach {
-                it.boxName = guardTreasureManager.getGuardTreasureConfigBy(it.level)?.getName(languageManager?.getLanguageCode())
-                it.uidUserInfo = userInfoMap[it.uid]
-                it.otherUidUserInfo = userInfoMap[it.otherUid]
-            }
-        }
-    }
-
-    companion object {
-        private const val TAG = "GuardTreasureHistoryViewModel"
-
-        private const val PAGE_SIZE = 20
-    }
-}

+ 0 - 190
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/viewmodel/GuardTreasureViewModel.kt

@@ -1,190 +0,0 @@
-package com.adealink.weparty.guardtreasure.viewmodel
-
-import androidx.lifecycle.LiveData
-import androidx.lifecycle.MutableLiveData
-import com.adealink.frame.base.Rlt
-import com.adealink.frame.log.Log
-import com.adealink.frame.mvvm.livedata.ExtLiveData
-import com.adealink.frame.mvvm.livedata.ExtMutableLiveData
-import com.adealink.frame.mvvm.livedata.OnceMutableLiveData
-import com.adealink.frame.mvvm.viewmodel.BaseViewModel
-import com.adealink.frame.network.data.Res
-import com.adealink.weparty.App
-import com.adealink.weparty.guardtreasure.datasource.remote.GuardTreasureHttpService
-import com.adealink.weparty.guardtreasure.manager.IGuardTreasureManager
-import com.adealink.weparty.guardtreasure.manager.guardTreasureManager
-import com.adealink.weparty.module.guardtreasure.GuardTreasureModule
-import com.adealink.weparty.module.guardtreasure.data.GuardSuccessNotify
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureConfig
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureData
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureInviteRequest
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureInviteResponseRequest
-import com.adealink.weparty.module.guardtreasure.data.OpenBoxData
-import com.adealink.weparty.module.guardtreasure.data.TreasureRewardItemData
-import com.adealink.weparty.module.guardtreasure.viewmodel.IGuardTreasureViewModel
-import com.adealink.weparty.module.profile.ProfileModule
-import com.adealink.weparty.module.room.RoomModule
-import kotlinx.coroutines.launch
-
-data class CurrentGuardInfo(
-    val roomId: Long,
-    val ownerUid: Long,
-    val ownerName: String
-)
-
-data class TreasureInfo(
-    val rewardList: List<TreasureRewardItemData>
-)
-
-class GuardTreasureViewModel : BaseViewModel(), IGuardTreasureViewModel, IGuardTreasureManager.IListener {
-    companion object {
-        private const val TAG = "GuardTreasureViewModel"
-    }
-
-    override val guardTreasureConfigLD: LiveData<GuardTreasureConfig> = MutableLiveData()
-    override val guardTreasureInClubLD: LiveData<GuardTreasureData?> = MutableLiveData()
-    override val guardSuccessNotifyLD: ExtLiveData<GuardSuccessNotify> = ExtMutableLiveData()
-
-    private var currentGuardingInfo: CurrentGuardInfo? = null
-    val currentGuardingLD = MutableLiveData<CurrentGuardInfo?>()
-
-    private val guardTreasureHttpService by lazy {
-        App.instance.networkService.getHttpService(GuardTreasureHttpService::class.java)
-    }
-
-    init {
-        guardTreasureManager.addListener(this)
-    }
-
-    override fun onCleared() {
-        super.onCleared()
-        guardTreasureManager.removeListener(this)
-    }
-
-    fun loadCurrentGuardingInfo() {
-        viewModelScope.launch {
-            val res = guardTreasureHttpService.getCurrentGuardingInfo()
-            if (res is Rlt.Success) {
-                val data = res.data.data
-                data?.receiveTime = System.currentTimeMillis()
-                val ownerUserInfo = (ProfileModule.getUserInfoByUid(data?.uid ?: 0) as? Rlt.Success)?.data
-                data?.ownerUserInfo = ownerUserInfo
-                if (data == null || data.roomId == 0L) {
-                    currentGuardingInfo = null
-                    currentGuardingLD.send(null)
-                    return@launch
-                }
-                currentGuardingInfo = CurrentGuardInfo(
-                    data.roomId, data.uid,
-                    ownerUserInfo?.name ?: ""
-                )
-                currentGuardingLD.send(currentGuardingInfo)
-            } else {
-                currentGuardingInfo = null
-                currentGuardingLD.send(null)
-            }
-        }
-    }
-
-    fun getCurrentGuardInfo(): CurrentGuardInfo? {
-        return currentGuardingInfo
-    }
-
-    fun loadTreasureInfoBy(roomId: Long, showRewards: Boolean = true, inClub: Boolean): LiveData<GuardTreasureData?> {
-        val liveData = OnceMutableLiveData<GuardTreasureData>()
-        viewModelScope.launch {
-            liveData.send(suspendLoadGuardTreasureBy(roomId, showRewards, inClub))
-        }
-        return liveData
-    }
-
-    private suspend fun suspendLoadGuardTreasureBy(roomId: Long, showRewards: Boolean = true, inClub: Boolean): GuardTreasureData? {
-        val success = GuardTreasureModule.loadConfig(true)
-        if (!success) {
-            return null
-        }
-        val rlt = guardTreasureHttpService.getBoxByRoomId(
-            roomId, showRewards, if (inClub) {
-                0
-            } else {
-                null
-            }
-        )
-        return if (rlt is Rlt.Success) {
-            return rlt.data.data?.also {
-                it.receiveTime = System.currentTimeMillis()
-            }
-        } else {
-            null
-        }
-    }
-
-    override fun loadGuardTreasureInClub() {
-        viewModelScope.launch {
-            val roomId = RoomModule.getJoinedRoomId()
-            if (roomId == null || roomId == 0L) {
-                guardTreasureInClubLD.send(null)
-                return@launch
-            }
-            guardTreasureInClubLD.send(suspendLoadGuardTreasureBy(roomId, showRewards = true, inClub = true))
-        }
-    }
-
-    override val sendInviteResultLD: ExtLiveData<Pair<Long, Boolean>> = ExtMutableLiveData()
-    override fun sendInvite(boxId: Long, inviteUid: Long): LiveData<Rlt<Res<Any>>> {
-        val sendResultLD = OnceMutableLiveData<Rlt<Res<Any>>>()
-        viewModelScope.launch {
-            Log.d(TAG, "sendInvite: boxId:$boxId, inviteUid:$inviteUid")
-            val res = guardTreasureHttpService.sendInvite(
-                GuardTreasureInviteRequest(boxId, inviteUid)
-            )
-            sendResultLD.send(res)
-            sendInviteResultLD.send(Pair(inviteUid, res is Rlt.Success))
-        }
-        return sendResultLD
-    }
-
-    override fun openGuardTreasure(boxId: Long): LiveData<Rlt<Res<OpenBoxData>>> {
-        val openResultLD = OnceMutableLiveData<Rlt<Res<OpenBoxData>>>()
-        viewModelScope.launch {
-            Log.d(TAG, "openGuardTreasure")
-            val res = guardTreasureHttpService.openBox(boxId)
-            openResultLD.send(res)
-        }
-        return openResultLD
-    }
-
-    fun refuseInvite(boxId: Long, inviteUid: Long): LiveData<Rlt<Res<Any>>> {
-        val refuseResultLD = OnceMutableLiveData<Rlt<Res<Any>>>()
-        viewModelScope.launch {
-            val res = guardTreasureHttpService.inviteResponse(
-                GuardTreasureInviteResponseRequest(
-                    boxId, inviteUid, GuardTreasureInviteResponseRequest.REFUSE_INVITE
-                )
-            )
-            refuseResultLD.send(res)
-        }
-        return refuseResultLD
-    }
-
-    fun acceptInvite(boxId: Long, inviteUid: Long): LiveData<Rlt<Res<Any>>> {
-        val acceptResultLD = OnceMutableLiveData<Rlt<Res<Any>>>()
-        viewModelScope.launch {
-            val res = guardTreasureHttpService.inviteResponse(
-                GuardTreasureInviteResponseRequest(
-                    boxId, inviteUid, GuardTreasureInviteResponseRequest.ACCEPT_INVITE
-                )
-            )
-            acceptResultLD.send(res)
-        }
-        return acceptResultLD
-    }
-
-    override fun onConfigUpdate(config: GuardTreasureConfig) {
-        guardTreasureConfigLD.send(config)
-    }
-
-    override fun onGuardSuccessNotify(notify: GuardSuccessNotify) {
-        guardSuccessNotifyLD.send(notify)
-    }
-}

+ 0 - 84
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/viewmodel/TodayGuardTreasureViewModel.kt

@@ -1,84 +0,0 @@
-package com.adealink.weparty.guardtreasure.viewmodel
-
-import androidx.lifecycle.MutableLiveData
-import com.adealink.frame.base.Rlt
-import com.adealink.frame.mvvm.viewmodel.BaseViewModel
-import com.adealink.weparty.App
-import com.adealink.weparty.module.guardtreasure.data.GuardTreasureData
-import com.adealink.weparty.module.guardtreasure.data.TreasureRewardItemData
-import com.adealink.weparty.module.guardtreasure.data.TreasureRewardNormalItemData
-import com.adealink.weparty.module.guardtreasure.data.TreasureRewardTopItemData
-import com.adealink.weparty.guardtreasure.datasource.remote.GuardTreasureHttpService
-import com.adealink.weparty.guardtreasure.manager.guardTreasureManager
-import com.adealink.weparty.module.profile.ProfileModule
-import kotlinx.coroutines.async
-import kotlinx.coroutines.launch
-
-data class TodayGuardTreasureInfo(
-    val todayData: GuardTreasureData?,
-    //宝箱奖励
-    val rewardItems: List<TreasureRewardItemData>?,
-    //当前的守护状态
-    val currentGuardingInfo: GuardTreasureData? = null
-)
-
-class TodayGuardTreasureViewModel : BaseViewModel() {
-
-    private var todayGuardTreasureInfo: TodayGuardTreasureInfo? = null
-    val todayGuardTreasureLD = MutableLiveData<TodayGuardTreasureInfo?>()
-
-    private val guardTreasureHttpService by lazy {
-        App.instance.networkService.getHttpService(GuardTreasureHttpService::class.java)
-    }
-
-    fun getTodayGuardTreasure(): TodayGuardTreasureInfo? {
-        return todayGuardTreasureInfo
-    }
-
-    fun loadTodayGuardTreasure() {
-        viewModelScope.launch {
-            val treasureConfigDef = async { guardTreasureManager.loadGuardTreasureConfig(true) }
-            val todayDef = async { guardTreasureHttpService.getTodayBox(true) }
-            val currentGuardDef = async { guardTreasureHttpService.getCurrentGuardingInfo() }
-            val configRes = treasureConfigDef.await()
-            val todayRes = todayDef.await()
-            val currentGuardRes = currentGuardDef.await()
-            if (!configRes) {
-                todayGuardTreasureLD.send(null)
-                return@launch
-            }
-            if (todayRes is Rlt.Success) {
-                val data = todayRes.data.data
-                data?.receiveTime = System.currentTimeMillis()
-                data?.ownerUserInfo = (ProfileModule.getUserInfoByUid(data?.uid ?: 0) as? Rlt.Success)?.data
-                val rewardItems = data?.rewards?.mapIndexed { index, guardTreasureRewardData ->
-
-                    if (index == 0) {
-                        TreasureRewardTopItemData(guardTreasureRewardData)
-                    } else {
-                        TreasureRewardNormalItemData(guardTreasureRewardData)
-                    }
-                }
-
-                val currentGuard = (currentGuardRes as? Rlt.Success)?.data?.data
-                todayGuardTreasureInfo = TodayGuardTreasureInfo(
-                    data,
-                    rewardItems,
-                    if (currentGuard?.id == data?.id) {
-                        currentGuard
-                    } else {
-                        null
-                    }
-                )
-                todayGuardTreasureLD.send(todayGuardTreasureInfo)
-            } else {
-                todayGuardTreasureLD.send(null)
-            }
-        }
-    }
-
-    companion object {
-        private const val TAG = "TodayGuardTreasureViewModel"
-
-    }
-}

+ 0 - 42
module/guardtreasure/src/main/java/com/adealink/weparty/guardtreasure/widget/RewardSpacingItemDecoration.kt

@@ -1,42 +0,0 @@
-package com.adealink.weparty.guardtreasure.widget
-
-import android.graphics.Rect
-import android.view.View
-import androidx.recyclerview.widget.RecyclerView
-
-class RewardSpacingItemDecoration(
-    private val spanCount: Int,
-    private val spacingH: Int,
-    private val spacingV: Int,
-) :
-    RecyclerView.ItemDecoration() {
-
-    override fun getItemOffsets(
-        outRect: Rect,
-        view: View,
-        parent: RecyclerView,
-        state: RecyclerView.State
-    ) {
-        super.getItemOffsets(outRect, view, parent, state)
-        val position = parent.getChildAdapterPosition(view) // item position
-        val isRtl = parent.layoutDirection == View.LAYOUT_DIRECTION_RTL
-        if (position == 0) {
-            outRect.left = if (isRtl) spacingH else 0
-            outRect.right = if (isRtl) 0 else spacingH
-        } else {
-            val row = (position - 1) % spanCount
-            if (row == 0) {
-                outRect.top = 0
-                outRect.bottom = spacingV / 2
-            } else if (row >= spanCount - 1) {
-                outRect.top = spacingV / 2
-                outRect.bottom = 0
-            } else {
-                outRect.top = spacingV / 2
-                outRect.bottom = spacingV / 2
-            }
-            outRect.left = if (isRtl) 0 else spacingH
-            outRect.right = if (isRtl) spacingH else 0
-        }
-    }
-}

+ 0 - 11
module/guardtreasure/src/main/res/anim/item_enter_from_left.xml

@@ -1,11 +0,0 @@
-<set xmlns:android="http://schemas.android.com/apk/res/android"
-    android:duration="300">
-    <translate
-        android:fromXDelta="-100%p"
-        android:interpolator="@android:anim/decelerate_interpolator"
-        android:toXDelta="0" />
-    <alpha
-        android:fromAlpha="0.5"
-        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
-        android:toAlpha="1" />
-</set>

+ 0 - 7
module/guardtreasure/src/main/res/anim/treasure_get_reward_item_anim.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layoutAnimation
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:animation="@anim/item_enter_from_left"
-    android:delay="80%"
-    android:animationOrder="normal"
-    />

BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_avatar_frame_ic.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_bg.webp


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_check_normal_ic.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_check_selected_ic.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_confirm_long_btn.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_confirm_short_btn.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_countdown_ic.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_enter_club_bg.9.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_guard_fail_bg.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_guard_fail_for_rob_ic.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_guard_success_bg.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_history_ic.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_history_intro_bg.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_history_intro_tab_bg.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_history_intro_tab_select_bg.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_intro_ic.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_invite_bg.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_refresh_ic.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_reward_bg.9.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_tab_bg.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_tab_left_unselected.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_tab_right_unselected.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guard_treasure_tab_selected.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/guarding_go_btn.9.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/treasure_reward_bg.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/treasure_reward_bingo_bg.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/treasure_reward_mark_ic.9.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/treasure_reward_mark_rtl_ic.9.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/treasure_reward_top_bingo_bg.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/treasure_reward_top_mark_ic.9.png


BIN
module/guardtreasure/src/main/res/drawable-xhdpi/treasure_reward_top_mark_rtl_ic.9.png


+ 0 - 6
module/guardtreasure/src/main/res/drawable/guard_treasure_invite_refuse_bg.xml

@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-    <stroke android:width="1dp" android:color="@color/color_FFC9A972" />
-    <corners android:radius="45dp" />
-</shape>

+ 0 - 6
module/guardtreasure/src/main/res/drawable/guarding_bg.xml

@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-    <solid android:color="@color/color_B30E603E" />
-    <corners android:radius="20dp" />
-</shape>

+ 0 - 13
module/guardtreasure/src/main/res/drawable/guarding_treasure_invite_bottom_bg.xml

@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-    <gradient
-        android:angle="270"
-        android:centerColor="@color/color_FF001E11"
-        android:endColor="@color/color_FF001E11"
-        android:startColor="@color/transparent"
-        android:type="linear" />
-    <corners
-        android:bottomLeftRadius="20dp"
-        android:bottomRightRadius="20dp" />
-</shape>

+ 0 - 11
module/guardtreasure/src/main/res/drawable/guarding_treasure_invite_under_bg.xml

@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-    <gradient
-        android:angle="270"
-        android:centerColor="@color/color_FF006D3B"
-        android:endColor="@color/color_FF001E11"
-        android:startColor="@color/color_FF001E11"
-        android:type="linear" />
-    <corners android:radius="20dp" />
-</shape>

+ 0 - 13
module/guardtreasure/src/main/res/drawable/guarding_treasure_preview_under_bg.xml

@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-    <gradient
-        android:angle="270"
-        android:centerColor="@color/color_FF006D3B"
-        android:endColor="@color/color_FF001E11"
-        android:startColor="@color/color_FF001E11"
-        android:type="linear" />
-    <corners
-        android:topLeftRadius="20dp"
-        android:topRightRadius="20dp" />
-</shape>

+ 0 - 8
module/guardtreasure/src/main/res/drawable/guarding_treasure_reward_item_bottom_bg.xml

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-    <solid android:color="@color/color_66000000" />
-    <corners
-        android:bottomLeftRadius="8dp"
-        android:bottomRightRadius="8dp" />
-</shape>

+ 0 - 6
module/guardtreasure/src/main/res/drawable/guarding_treasure_status_bg.xml

@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-    <solid android:color="@color/color_CC000000" />
-    <corners android:radius="20dp" />
-</shape>

+ 0 - 23
module/guardtreasure/src/main/res/layout/dialog_enter_clubroom.xml

@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <androidx.appcompat.widget.AppCompatTextView
-        android:id="@+id/tv_title"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:background="@drawable/guard_treasure_enter_club_bg"
-        android:gravity="center"
-        android:textColor="@color/white"
-        android:textSize="14sp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintWidth_percent="0.8"
-        tools:text="@string/guard_treasure_join_room_tips" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 0 - 68
module/guardtreasure/src/main/res/layout/dialog_guard_treasure.xml

@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content">
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:id="@+id/cl_guarding"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginHorizontal="16dp"
-        android:background="@drawable/guarding_bg"
-        android:paddingHorizontal="16dp"
-        android:paddingVertical="4dp"
-        android:visibility="invisible"
-        app:layout_constrainedWidth="true"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        tools:visibility="visible">
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/tv_guarding_title"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:gravity="center"
-            android:textColor="@color/color_FFFFEEAB"
-            android:textSize="12sp"
-            app:layout_constrainedWidth="true"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintEnd_toStartOf="@id/tv_go"
-            app:layout_constraintHorizontal_chainStyle="packed"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            tools:text="@string/guarding_title" />
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/tv_go"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="8dp"
-            android:background="@drawable/guarding_go_btn"
-            android:gravity="center"
-            android:paddingHorizontal="8dp"
-            android:paddingVertical="3dp"
-            android:text="@string/common_go"
-            android:textColor="@color/color_FFFFEEAB"
-            android:textSize="16sp"
-            app:layout_constrainedWidth="true"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toEndOf="@id/tv_guarding_title"
-            app:layout_constraintTop_toTopOf="parent" />
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-    <FrameLayout
-        android:id="@+id/fl_content"
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_marginTop="8dp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/cl_guarding" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 0 - 82
module/guardtreasure/src/main/res/layout/dialog_guard_treasure_get_rewards.xml

@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <com.opensource.svgaplayer.WenextSvgaView
-        android:id="@+id/svga_treasure"
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:visibility="invisible"
-        app:layout_constraintBottom_toBottomOf="@id/iv_treasure"
-        app:layout_constraintDimensionRatio="w,1:1"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="@id/iv_treasure"
-        app:source="level_upgrade_bg.svga" />
-
-    <com.adealink.frame.image.view.NetworkImageView
-        android:id="@+id/iv_treasure"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:visibility="invisible"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintDimensionRatio="1:1"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintVertical_bias="0.46"
-        app:layout_constraintWidth_percent="0.67"
-        tools:visibility="visible" />
-
-    <FrameLayout
-        android:id="@+id/fl_vap_treasure"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:visibility="invisible"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintDimensionRatio="750:900"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        tools:visibility="visible">
-
-        <com.tencent.qgame.animplayer.AnimView
-            android:id="@+id/vap_treasure"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent" />
-    </FrameLayout>
-
-    <androidx.appcompat.widget.AppCompatTextView
-        android:id="@+id/tv_title"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginHorizontal="16dp"
-        android:layout_marginTop="20dp"
-        android:text="@string/guard_treasure_get_reward"
-        android:textColor="@color/color_CCFFEEAB"
-        android:textSize="14sp"
-        android:visibility="gone"
-        app:layout_constrainedWidth="true"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/iv_treasure" />
-
-    <androidx.recyclerview.widget.RecyclerView
-        android:id="@+id/rv_rewards"
-        android:layout_width="wrap_content"
-        android:layout_height="0dp"
-        android:layout_marginTop="16dp"
-        android:clipToPadding="true"
-        android:fadingEdgeLength="12dp"
-        android:requiresFadingEdge="vertical"
-        android:scrollbars="none"
-        app:layout_constrainedWidth="true"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/tv_title" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 0 - 337
module/guardtreasure/src/main/res/layout/dialog_guard_treasure_invite.xml

@@ -1,337 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:layout_height="500dp">
-
-    <Space
-        android:id="@+id/space_bg_top"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        app:layout_constraintDimensionRatio="375:13"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-
-    <View
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:background="@drawable/guarding_treasure_invite_under_bg"
-        app:layout_constraintBottom_toBottomOf="@id/sv_content"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/space_bg_top" />
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:clipChildren="true"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent">
-
-        <androidx.appcompat.widget.AppCompatImageView
-            android:id="@+id/v_bg"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:adjustViewBounds="true"
-            app:layout_constraintDimensionRatio="335:536"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:srcCompat="@drawable/guard_treasure_invite_bg" />
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-    <Space
-        android:id="@+id/space_top"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        app:layout_constraintDimensionRatio="375:28"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-
-    <View
-        android:id="@+id/v_title"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        app:layout_constraintDimensionRatio="375:35"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/space_top" />
-
-    <com.adealink.weparty.commonui.imageview.AvatarView
-        android:id="@+id/avatar_inviter"
-        android:layout_width="32dp"
-        android:layout_height="32dp"
-        android:layout_marginStart="6dp"
-        android:visibility="gone"
-        app:layout_constraintBottom_toBottomOf="@id/tv_title"
-        app:layout_constraintEnd_toStartOf="@id/tv_title"
-        app:layout_constraintHorizontal_chainStyle="packed"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="@id/tv_title"
-        app:placeholderImage="@drawable/common_default_avatar_ic"
-        app:roundAsCircle="true"
-        app:roundingBorderColor="@color/color_FFFFEEAB"
-        app:roundingBorderWidth="1dp" />
-
-    <androidx.appcompat.widget.AppCompatTextView
-        android:id="@+id/tv_title"
-        android:layout_width="wrap_content"
-        android:layout_height="0dp"
-        android:layout_marginStart="4dp"
-        android:layout_marginEnd="36dp"
-        android:gravity="center"
-        android:textColor="@color/color_FFFFEEAB"
-        android:textSize="18sp"
-        app:autoSizeMaxTextSize="18sp"
-        app:autoSizeMinTextSize="6sp"
-        app:autoSizeTextType="uniform"
-        app:layout_constrainedWidth="true"
-        app:layout_constraintBottom_toBottomOf="@id/v_title"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toEndOf="@id/avatar_inviter"
-        app:layout_constraintTop_toTopOf="@id/v_title"
-        app:layout_goneMarginStart="36dp"
-        tools:text="@string/guard_treasure_invite_someone" />
-
-    <androidx.appcompat.widget.AppCompatImageView
-        android:id="@+id/iv_close"
-        android:layout_width="32dp"
-        android:layout_height="32dp"
-        android:layout_marginEnd="6dp"
-        android:padding="4dp"
-        app:layout_constraintBottom_toBottomOf="@id/tv_title"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toTopOf="@id/tv_title"
-        app:srcCompat="@drawable/guard_treasure_close_ic" />
-
-    <ScrollView
-        android:id="@+id/sv_content"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:fadingEdgeLength="12dp"
-        android:requiresFadingEdge="vertical"
-        android:scrollbars="none"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/v_title">
-
-        <androidx.constraintlayout.widget.ConstraintLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingHorizontal="12dp"
-            android:paddingBottom="120dp">
-
-            <androidx.appcompat.widget.AppCompatTextView
-                android:id="@+id/tv_tips"
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="14dp"
-                android:gravity="start|center_vertical"
-                android:paddingHorizontal="8dp"
-                android:text="@string/guard_treasure_inviter_tips"
-                android:textColor="@color/color_FFFFEEAB"
-                android:textSize="14sp"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="parent" />
-
-            <com.adealink.frame.image.view.NetworkImageView
-                android:id="@+id/iv_treasure"
-                android:layout_width="0dp"
-                android:layout_height="0dp"
-                android:layout_marginTop="8dp"
-                app:layout_constraintDimensionRatio="1:1"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@id/tv_tips"
-                app:layout_constraintWidth_percent="0.37" />
-
-            <androidx.constraintlayout.widget.ConstraintLayout
-                android:id="@+id/cl_guard_time"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:background="@drawable/guarding_treasure_status_bg"
-                android:paddingHorizontal="12dp"
-                android:paddingVertical="8dp"
-                app:layout_constrainedWidth="true"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@id/iv_treasure">
-
-                <androidx.appcompat.widget.AppCompatImageView
-                    android:id="@+id/iv_guard_time"
-                    android:layout_width="16dp"
-                    android:layout_height="16dp"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toStartOf="@id/tv_guard_time"
-                    app:layout_constraintHorizontal_chainStyle="packed"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toTopOf="parent"
-                    app:srcCompat="@drawable/guard_treasure_countdown_ic" />
-
-                <androidx.appcompat.widget.AppCompatTextView
-                    android:id="@+id/tv_guard_time"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginStart="4dp"
-                    android:singleLine="true"
-                    android:textColor="@color/color_FFFFEEAB"
-                    android:textSize="12sp"
-                    app:layout_constrainedWidth="true"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toEndOf="@id/iv_guard_time"
-                    app:layout_constraintTop_toTopOf="parent"
-                    tools:text="@string/guard_treasure_guard_time" />
-
-            </androidx.constraintlayout.widget.ConstraintLayout>
-
-            <androidx.appcompat.widget.AppCompatTextView
-                android:id="@+id/tv_reward_tips"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginStart="4dp"
-                android:layout_marginTop="12dp"
-                android:gravity="center"
-                android:singleLine="true"
-                android:text="@string/guard_treasure_guard_reward_tips"
-                android:textColor="@color/color_FFFFEEAB"
-                android:textSize="12sp"
-                app:layout_constrainedWidth="true"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@id/cl_guard_time" />
-
-            <androidx.recyclerview.widget.RecyclerView
-                android:id="@+id/rv_rewards"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="16dp"
-                android:clipToPadding="true"
-                android:fadingEdgeLength="12dp"
-                android:requiresFadingEdge="horizontal"
-                android:scrollbars="none"
-                app:layout_constrainedWidth="true"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@id/tv_reward_tips" />
-
-        </androidx.constraintlayout.widget.ConstraintLayout>
-    </ScrollView>
-
-    <!--底部悬浮区域-->
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:background="@drawable/guarding_treasure_invite_bottom_bg"
-        android:paddingTop="16dp"
-        android:paddingBottom="8dp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent">
-
-        <!--邀请者确认按钮-->
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/tv_invite_confirm"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginBottom="8dp"
-            android:background="@drawable/guard_treasure_confirm_long_btn"
-            android:gravity="center"
-            android:singleLine="true"
-            android:text="@string/guard_treasure_invite_confirm"
-            android:textColor="@color/color_FFFFEEAB"
-            android:textSize="16sp"
-            android:textStyle="bold"
-            app:layout_constrainedWidth="true"
-            app:layout_constraintBottom_toTopOf="@id/cl_remind"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_goneMarginBottom="8dp"
-            tools:visibility="gone" />
-
-        <!--受邀者响应按钮-->
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/tv_invite_refuse"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:background="@drawable/guard_treasure_invite_refuse_bg"
-            android:gravity="center"
-            android:singleLine="true"
-            android:text="@string/guard_treasure_invite_refuse"
-            android:textColor="@color/color_FFFFEEAB"
-            android:textSize="16sp"
-            android:textStyle="bold"
-            app:layout_constraintBottom_toBottomOf="@id/tv_invite_accept"
-            app:layout_constraintEnd_toStartOf="@id/tv_invite_accept"
-            app:layout_constraintHorizontal_chainStyle="spread"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="@id/tv_invite_accept"
-            app:layout_constraintWidth_percent="0.42" />
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/tv_invite_accept"
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
-            android:layout_marginBottom="8dp"
-            android:background="@drawable/guard_treasure_confirm_short_btn"
-            android:gravity="center"
-            android:singleLine="true"
-            android:text="@string/guard_treasure_invite_accept"
-            android:textColor="@color/color_FFFFEEAB"
-            android:textSize="16sp"
-            android:textStyle="bold"
-            app:layout_constraintBottom_toTopOf="@id/cl_remind"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toEndOf="@id/tv_invite_refuse"
-            app:layout_constraintWidth_percent="0.42"
-            app:layout_goneMarginBottom="8dp" />
-
-        <!--不再提示-->
-        <androidx.constraintlayout.widget.ConstraintLayout
-            android:id="@+id/cl_remind"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:padding="8dp"
-            app:layout_constrainedWidth="true"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent">
-
-            <androidx.appcompat.widget.AppCompatImageView
-                android:id="@+id/iv_remind"
-                android:layout_width="14dp"
-                android:layout_height="14dp"
-                app:layout_constraintBottom_toBottomOf="parent"
-                app:layout_constraintEnd_toStartOf="@id/tv_remind"
-                app:layout_constraintHorizontal_chainStyle="packed"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="parent"
-                app:srcCompat="@drawable/guard_treasure_check_normal_ic" />
-
-            <androidx.appcompat.widget.AppCompatTextView
-                android:id="@+id/tv_remind"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginStart="8dp"
-                android:singleLine="true"
-                android:text="@string/guard_treasure_invite_remind"
-                android:textColor="@color/color_FFFFEEAB"
-                android:textSize="12sp"
-                app:layout_constrainedWidth="true"
-                app:layout_constraintBottom_toBottomOf="parent"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toEndOf="@id/iv_remind"
-                app:layout_constraintTop_toTopOf="parent" />
-
-        </androidx.constraintlayout.widget.ConstraintLayout>
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 0 - 193
module/guardtreasure/src/main/res/layout/dialog_guard_treasure_preview.xml

@@ -1,193 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content">
-
-    <!--背景-->
-    <Space
-        android:id="@+id/space_bg_top"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        app:layout_constraintDimensionRatio="375:13"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-
-    <View
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:background="@drawable/guarding_treasure_preview_under_bg"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/space_bg_top" />
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:clipChildren="true"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent">
-
-        <androidx.appcompat.widget.AppCompatImageView
-            android:id="@+id/v_bg"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:adjustViewBounds="true"
-            app:layout_constraintDimensionRatio="335:536"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:srcCompat="@drawable/guard_treasure_invite_bg" />
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-    <Space
-        android:id="@+id/space_top"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        app:layout_constraintDimensionRatio="375:28"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-
-    <androidx.appcompat.widget.AppCompatTextView
-        android:id="@+id/tv_title"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:gravity="center"
-        android:paddingHorizontal="36dp"
-        android:textColor="@color/color_FFFFEEAB"
-        android:textSize="18sp"
-        app:layout_constraintDimensionRatio="375:35"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/space_top"
-        tools:text="@string/guard_treasure_preview_title" />
-
-    <androidx.appcompat.widget.AppCompatImageView
-        android:id="@+id/iv_close"
-        android:layout_width="32dp"
-        android:layout_height="32dp"
-        android:layout_marginEnd="6dp"
-        android:padding="4dp"
-        app:layout_constraintBottom_toBottomOf="@id/tv_title"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toTopOf="@id/tv_title"
-        app:srcCompat="@drawable/guard_treasure_close_ic" />
-
-    <androidx.appcompat.widget.AppCompatImageView
-        android:id="@+id/iv_intro"
-        android:layout_width="32dp"
-        android:layout_height="32dp"
-        android:layout_marginTop="16dp"
-        android:padding="2dp"
-        android:scaleType="fitCenter"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toEndOf="@id/iv_history"
-        app:layout_constraintTop_toBottomOf="@id/tv_title"
-        app:srcCompat="@drawable/guard_treasure_intro_ic" />
-
-    <androidx.appcompat.widget.AppCompatImageView
-        android:id="@+id/iv_history"
-        android:layout_width="32dp"
-        android:layout_height="32dp"
-        android:layout_marginEnd="12dp"
-        android:padding="2dp"
-        android:scaleType="fitCenter"
-        app:layout_constraintBottom_toBottomOf="@id/iv_intro"
-        app:layout_constraintEnd_toStartOf="@id/iv_intro"
-        app:layout_constraintHorizontal_chainStyle="packed"
-        app:layout_constraintStart_toEndOf="@id/iv_treasure"
-        app:layout_constraintTop_toTopOf="@id/iv_intro"
-        app:srcCompat="@drawable/guard_treasure_history_ic" />
-
-    <!--宝箱图片-->
-    <com.adealink.frame.image.view.NetworkImageView
-        android:id="@+id/iv_treasure"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:layout_marginTop="16dp"
-        app:layout_constraintDimensionRatio="1:1"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/tv_title"
-        app:layout_constraintWidth_percent="0.4" />
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:id="@+id/cl_guard_time"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="8dp"
-        android:background="@drawable/guarding_treasure_status_bg"
-        android:paddingHorizontal="12dp"
-        android:paddingVertical="8dp"
-        app:layout_constrainedWidth="true"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/iv_treasure">
-
-        <androidx.appcompat.widget.AppCompatImageView
-            android:id="@+id/iv_guard_time"
-            android:layout_width="16dp"
-            android:layout_height="16dp"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintEnd_toStartOf="@id/tv_guard_time"
-            app:layout_constraintHorizontal_chainStyle="packed"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:srcCompat="@drawable/guard_treasure_countdown_ic" />
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/tv_guard_time"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="4dp"
-            android:singleLine="true"
-            android:textColor="@color/color_FFFFEEAB"
-            android:textSize="12sp"
-            app:layout_constrainedWidth="true"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toEndOf="@id/iv_guard_time"
-            app:layout_constraintTop_toTopOf="parent"
-            tools:text="@string/guard_treasure_guard_time_left" />
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-    <androidx.appcompat.widget.AppCompatTextView
-        android:id="@+id/tv_reward_tips"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="4dp"
-        android:layout_marginTop="12dp"
-        android:gravity="center"
-        android:singleLine="true"
-        android:text="@string/guard_treasure_guard_reward_tips"
-        android:textColor="@color/color_FFFFEEAB"
-        android:textSize="12sp"
-        app:layout_constrainedWidth="true"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/cl_guard_time" />
-
-    <!--宝箱内容-->
-    <androidx.recyclerview.widget.RecyclerView
-        android:id="@+id/rv_rewards"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:clipToPadding="true"
-        android:fadingEdgeLength="12dp"
-        android:paddingHorizontal="12dp"
-        android:paddingTop="12dp"
-        android:paddingBottom="20dp"
-        android:requiresFadingEdge="horizontal"
-        android:scrollbars="none"
-        app:layout_constrainedWidth="true"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/tv_reward_tips" />
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 0 - 62
module/guardtreasure/src/main/res/layout/dialog_history_intro.xml

@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@drawable/guard_treasure_history_intro_bg">
-
-    <androidx.constraintlayout.widget.Guideline
-        android:id="@+id/tab_start"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        app:layout_constraintGuide_percent="0.13" />
-
-    <androidx.constraintlayout.widget.Guideline
-        android:id="@+id/tab_end"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        app:layout_constraintGuide_percent="0.87" />
-
-    <com.google.android.material.tabs.TabLayout
-        android:id="@+id/tab"
-        android:layout_width="0dp"
-        android:layout_height="36dp"
-        android:layout_marginTop="30dp"
-        android:background="@drawable/guard_treasure_history_intro_tab_bg"
-        app:layout_constraintEnd_toStartOf="@id/tab_end"
-        app:layout_constraintStart_toEndOf="@id/tab_start"
-        app:layout_constraintTop_toTopOf="parent"
-        app:tabBackground="@null"
-        app:tabGravity="fill"
-        app:tabIndicatorHeight="0dp"
-        app:tabMode="fixed"
-        app:tabPaddingEnd="0dp"
-        app:tabPaddingStart="0dp"
-        app:tabRippleColor="@null" />
-
-    <androidx.appcompat.widget.AppCompatImageView
-        android:id="@+id/iv_close"
-        android:layout_width="32dp"
-        android:layout_height="32dp"
-        android:padding="4dp"
-        app:layout_constraintBottom_toBottomOf="@id/tab"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toEndOf="@id/tab_end"
-        app:layout_constraintTop_toTopOf="@id/tab"
-        app:srcCompat="@drawable/guard_treasure_close_ic" />
-
-    <androidx.viewpager2.widget.ViewPager2
-        android:id="@+id/vp_content"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:layout_marginTop="16dp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/tab"
-        app:layout_constraintWidth_percent="0.96" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 0 - 109
module/guardtreasure/src/main/res/layout/fragment_my_treasure.xml

@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@color/color_FF001E11">
-
-    <!--今日宝箱,宝箱库-->
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:id="@+id/cl_top"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:background="@drawable/guard_treasure_tab_bg"
-        app:layout_constraintDimensionRatio="375:45"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent">
-
-        <androidx.constraintlayout.widget.Guideline
-            android:id="@+id/tab_start"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:orientation="vertical"
-            app:layout_constraintGuide_percent="0.10" />
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/tab_today_treasure"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:background="@drawable/guard_treasure_tab_left_unselected"
-            android:ellipsize="end"
-            android:gravity="center"
-            android:paddingHorizontal="18dp"
-            android:singleLine="true"
-            android:text="@string/guarding_treasure_tab_today"
-            android:textColor="@color/color_FFFFEEAB"
-            android:textSize="14sp"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintDimensionRatio="332:75"
-            app:layout_constraintStart_toStartOf="@id/tab_start"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintWidth_percent="0.44" />
-
-        <com.adealink.weparty.commonui.widget.MarqueeTextView
-            android:id="@+id/tab_my_treasure"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:background="@drawable/guard_treasure_tab_selected"
-            android:gravity="center"
-            android:paddingHorizontal="18dp"
-            android:singleLine="true"
-            android:text="@string/guarding_treasure_tab_my"
-            android:textColor="@color/color_FFFFEEAB"
-            android:textSize="18sp"
-            android:textStyle="bold"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintDimensionRatio="332:78"
-            app:layout_constraintEnd_toEndOf="@id/tab_end"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintWidth_percent="0.45" />
-
-        <androidx.constraintlayout.widget.Guideline
-            android:id="@+id/tab_end"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:orientation="vertical"
-            app:layout_constraintGuide_percent="0.90" />
-
-        <androidx.appcompat.widget.AppCompatImageView
-            android:id="@+id/iv_close"
-            android:layout_width="32dp"
-            android:layout_height="32dp"
-            android:padding="4dp"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toEndOf="@id/tab_end"
-            app:layout_constraintTop_toTopOf="parent"
-            app:srcCompat="@drawable/guard_treasure_close_ic" />
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-    <!--内容缺省-->
-    <androidx.appcompat.widget.AppCompatImageView
-        android:id="@+id/iv_content_empty"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/cl_top"
-        app:layout_constraintVertical_bias="0.25"
-        app:layout_constraintWidth_percent="0.32"
-        app:srcCompat="@drawable/common_content_empty_ic" />
-
-    <androidx.appcompat.widget.AppCompatTextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:gravity="start"
-        android:singleLine="true"
-        android:text="@string/guard_treasure_my_treasure_coming_soon"
-        android:textColor="@color/color_FFFFEEAB"
-        android:textSize="16sp"
-        android:textStyle="bold"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/iv_content_empty" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 0 - 435
module/guardtreasure/src/main/res/layout/fragment_today_treasure.xml

@@ -1,435 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:id="@+id/cl_content"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@color/color_FF001E11">
-
-    <ScrollView
-        android:id="@+id/sv_content"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent">
-
-        <androidx.constraintlayout.widget.ConstraintLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content">
-
-            <View
-                android:layout_width="0dp"
-                android:layout_height="0dp"
-                android:background="@drawable/guard_treasure_bg"
-                app:layout_constraintDimensionRatio="750:1117"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="parent" />
-
-            <!--今日宝箱,宝箱库-->
-            <androidx.constraintlayout.widget.ConstraintLayout
-                android:id="@+id/cl_top"
-                android:layout_width="0dp"
-                android:layout_height="0dp"
-                app:layout_constraintDimensionRatio="375:45"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="parent">
-
-                <androidx.constraintlayout.widget.Guideline
-                    android:id="@+id/tab_start"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:orientation="vertical"
-                    app:layout_constraintGuide_percent="0.10" />
-
-                <androidx.appcompat.widget.AppCompatTextView
-                    android:id="@+id/tab_my_treasure"
-                    android:layout_width="0dp"
-                    android:layout_height="0dp"
-                    android:background="@drawable/guard_treasure_tab_right_unselected"
-                    android:ellipsize="end"
-                    android:gravity="center"
-                    android:paddingHorizontal="18dp"
-                    android:singleLine="true"
-                    android:text="@string/guarding_treasure_tab_my"
-                    android:textColor="@color/color_FFFFEEAB"
-                    android:textSize="14sp"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintDimensionRatio="332:75"
-                    app:layout_constraintEnd_toEndOf="@id/tab_end"
-                    app:layout_constraintTop_toTopOf="parent"
-                    app:layout_constraintWidth_percent="0.44" />
-
-                <com.adealink.weparty.commonui.widget.MarqueeTextView
-                    android:id="@+id/tab_today_treasure"
-                    android:layout_width="0dp"
-                    android:layout_height="0dp"
-                    android:background="@drawable/guard_treasure_tab_selected"
-                    android:gravity="center"
-                    android:paddingHorizontal="18dp"
-                    android:singleLine="true"
-                    android:text="@string/guarding_treasure_tab_today"
-                    android:textColor="@color/color_FFFFEEAB"
-                    android:textSize="18sp"
-                    android:textStyle="bold"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintDimensionRatio="332:78"
-                    app:layout_constraintStart_toStartOf="@id/tab_start"
-                    app:layout_constraintTop_toTopOf="parent"
-                    app:layout_constraintWidth_percent="0.45" />
-
-                <androidx.constraintlayout.widget.Guideline
-                    android:id="@+id/tab_end"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:orientation="vertical"
-                    app:layout_constraintGuide_percent="0.90" />
-
-                <androidx.appcompat.widget.AppCompatImageView
-                    android:id="@+id/iv_close"
-                    android:layout_width="32dp"
-                    android:layout_height="32dp"
-                    android:padding="4dp"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toEndOf="@id/tab_end"
-                    app:layout_constraintTop_toTopOf="parent"
-                    app:srcCompat="@drawable/guard_treasure_close_ic" />
-
-            </androidx.constraintlayout.widget.ConstraintLayout>
-
-            <!--宝箱图片,历史记录,玩法介绍-->
-            <androidx.constraintlayout.widget.ConstraintLayout
-                android:id="@+id/cl_treasure"
-                android:layout_width="0dp"
-                android:layout_height="0dp"
-                app:layout_constraintDimensionRatio="375:180"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@id/cl_top">
-
-                <androidx.appcompat.widget.AppCompatImageView
-                    android:id="@+id/iv_intro"
-                    android:layout_width="32dp"
-                    android:layout_height="32dp"
-                    android:padding="2dp"
-                    android:scaleType="fitCenter"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintHorizontal_bias="0.96"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toTopOf="parent"
-                    app:layout_constraintVertical_bias="0.05"
-                    app:srcCompat="@drawable/guard_treasure_intro_ic" />
-
-                <androidx.appcompat.widget.AppCompatImageView
-                    android:id="@+id/iv_history"
-                    android:layout_width="32dp"
-                    android:layout_height="32dp"
-                    android:layout_marginEnd="12dp"
-                    android:padding="2dp"
-                    android:scaleType="fitCenter"
-                    app:layout_constraintBottom_toBottomOf="@id/iv_intro"
-                    app:layout_constraintEnd_toStartOf="@id/iv_intro"
-                    app:layout_constraintTop_toTopOf="@id/iv_intro"
-                    app:srcCompat="@drawable/guard_treasure_history_ic" />
-
-                <!--宝箱状态-->
-                <androidx.constraintlayout.widget.Guideline
-                    android:id="@+id/chest_status_start"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:orientation="vertical"
-                    app:layout_constraintGuide_percent="0.25" />
-
-                <androidx.constraintlayout.widget.Guideline
-                    android:id="@+id/chest_status_end"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:orientation="vertical"
-                    app:layout_constraintGuide_percent="0.75" />
-
-                <androidx.appcompat.widget.AppCompatTextView
-                    android:id="@+id/tv_treasure_status"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:background="@drawable/guarding_treasure_status_bg"
-                    android:gravity="center"
-                    android:paddingHorizontal="12dp"
-                    android:paddingVertical="8dp"
-                    android:textColor="@color/color_B3FFEEAB"
-                    android:textSize="12sp"
-                    android:visibility="gone"
-                    app:layout_constrainedWidth="true"
-                    app:layout_constraintBottom_toBottomOf="@id/iv_intro"
-                    app:layout_constraintEnd_toStartOf="@id/chest_status_end"
-                    app:layout_constraintStart_toEndOf="@id/chest_status_start"
-                    app:layout_constraintTop_toTopOf="@id/iv_intro"
-                    tools:text="@string/guarding_treasure_status" />
-
-                <com.adealink.frame.image.view.NetworkImageView
-                    android:id="@+id/iv_treasure"
-                    android:layout_width="0dp"
-                    android:layout_height="0dp"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintDimensionRatio="1:1"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintWidth_percent="0.4" />
-
-            </androidx.constraintlayout.widget.ConstraintLayout>
-
-            <!--守护时长,刷新倒计时-->
-            <androidx.constraintlayout.widget.ConstraintLayout
-                android:id="@+id/cl_operate"
-                android:layout_width="0dp"
-                android:layout_height="0dp"
-                android:paddingBottom="5dp"
-                app:layout_constraintDimensionRatio="375:50"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@id/cl_treasure">
-
-                <!--倒计时-->
-                <androidx.constraintlayout.widget.Guideline
-                    android:id="@+id/count_down_start"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:orientation="vertical"
-                    app:layout_constraintGuide_percent="0.06" />
-
-                <androidx.constraintlayout.widget.Guideline
-                    android:id="@+id/count_down_end"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:orientation="vertical"
-                    app:layout_constraintGuide_percent="0.35" />
-
-                <androidx.appcompat.widget.AppCompatImageView
-                    android:id="@+id/iv_count_down"
-                    android:layout_width="24dp"
-                    android:layout_height="24dp"
-                    android:layout_marginStart="4dp"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toStartOf="@id/cl_count_down"
-                    app:layout_constraintHorizontal_chainStyle="packed"
-                    app:layout_constraintStart_toStartOf="@id/count_down_start"
-                    app:layout_constraintTop_toTopOf="parent"
-                    app:srcCompat="@drawable/guard_treasure_countdown_ic" />
-
-                <androidx.constraintlayout.widget.ConstraintLayout
-                    android:id="@+id/cl_count_down"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginStart="8dp"
-                    android:layout_marginEnd="4dp"
-                    app:layout_constrainedWidth="true"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toEndOf="@id/count_down_end"
-                    app:layout_constraintStart_toEndOf="@id/iv_count_down"
-                    app:layout_constraintTop_toTopOf="parent">
-
-                    <androidx.appcompat.widget.AppCompatTextView
-                        android:id="@+id/tv_count_down"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:singleLine="true"
-                        android:textColor="@color/color_FFFFEEAB"
-                        android:textSize="14sp"
-                        android:textStyle="bold"
-                        app:autoSizeMaxTextSize="14sp"
-                        app:autoSizeMinTextSize="8sp"
-                        app:autoSizeTextType="uniform"
-                        app:layout_constrainedWidth="true"
-                        app:layout_constraintBottom_toTopOf="@id/tv_count_down_desc"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintStart_toStartOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        app:layout_constraintVertical_chainStyle="packed"
-                        tools:text="10mins" />
-
-                    <androidx.appcompat.widget.AppCompatTextView
-                        android:id="@+id/tv_count_down_desc"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:ellipsize="end"
-                        android:gravity="center"
-                        android:singleLine="true"
-                        android:text="@string/guard_treasure_count_down_time"
-                        android:textColor="@color/color_FFFFEEAB"
-                        android:textSize="10sp"
-                        app:layout_constrainedWidth="true"
-                        app:layout_constraintBottom_toBottomOf="parent"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintStart_toStartOf="parent"
-                        app:layout_constraintTop_toBottomOf="@id/tv_count_down"
-                        tools:ignore="SmallSp" />
-
-                </androidx.constraintlayout.widget.ConstraintLayout>
-
-                <!--刷新时间-->
-                <androidx.constraintlayout.widget.Guideline
-                    android:id="@+id/refresh_start"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:orientation="vertical"
-                    app:layout_constraintGuide_percent="0.65" />
-
-                <androidx.constraintlayout.widget.Guideline
-                    android:id="@+id/refresh_end"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:orientation="vertical"
-                    app:layout_constraintGuide_percent="0.94" />
-
-                <View
-                    android:id="@+id/v_refresh_click"
-                    android:layout_width="0dp"
-                    android:layout_height="0dp"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toStartOf="@id/refresh_end"
-                    app:layout_constraintStart_toEndOf="@id/refresh_start"
-                    app:layout_constraintTop_toTopOf="parent" />
-
-                <androidx.appcompat.widget.AppCompatImageView
-                    android:id="@+id/iv_refresh_time"
-                    android:layout_width="24dp"
-                    android:layout_height="24dp"
-                    android:layout_marginStart="4dp"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toStartOf="@id/cl_refresh_time"
-                    app:layout_constraintHorizontal_chainStyle="packed"
-                    app:layout_constraintStart_toStartOf="@id/refresh_start"
-                    app:layout_constraintTop_toTopOf="parent"
-                    app:srcCompat="@drawable/guard_treasure_refresh_ic" />
-
-                <androidx.constraintlayout.widget.ConstraintLayout
-                    android:id="@+id/cl_refresh_time"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginStart="8dp"
-                    android:layout_marginEnd="4dp"
-                    app:layout_constrainedWidth="true"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toEndOf="@id/refresh_end"
-                    app:layout_constraintStart_toEndOf="@id/iv_refresh_time"
-                    app:layout_constraintTop_toTopOf="parent">
-
-                    <androidx.appcompat.widget.AppCompatTextView
-                        android:id="@+id/tv_refresh_time"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:singleLine="true"
-                        android:textColor="@color/color_FFFFEEAB"
-                        android:textSize="14sp"
-                        android:textStyle="bold"
-                        app:autoSizeMaxTextSize="14sp"
-                        app:autoSizeMinTextSize="8sp"
-                        app:autoSizeTextType="uniform"
-                        app:layout_constrainedWidth="true"
-                        app:layout_constraintBottom_toTopOf="@id/tv_refresh_time_desc"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintStart_toStartOf="parent"
-                        app:layout_constraintTop_toTopOf="parent"
-                        app:layout_constraintVertical_chainStyle="packed"
-                        tools:text="10:12:19" />
-
-                    <androidx.appcompat.widget.AppCompatTextView
-                        android:id="@+id/tv_refresh_time_desc"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:ellipsize="end"
-                        android:gravity="center"
-                        android:singleLine="true"
-                        android:text="@string/guard_treasure_refresh_time"
-                        android:textColor="@color/color_FFFFEEAB"
-                        android:textSize="10sp"
-                        app:autoSizeMaxTextSize="10sp"
-                        app:autoSizeMinTextSize="6sp"
-                        app:autoSizeTextType="uniform"
-                        app:layout_constrainedWidth="true"
-                        app:layout_constraintBottom_toBottomOf="parent"
-                        app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintStart_toStartOf="parent"
-                        app:layout_constraintTop_toBottomOf="@id/tv_refresh_time"
-                        tools:ignore="SmallSp" />
-                </androidx.constraintlayout.widget.ConstraintLayout>
-
-            </androidx.constraintlayout.widget.ConstraintLayout>
-
-            <!--邀请好友守护-->
-            <androidx.constraintlayout.widget.ConstraintLayout
-                android:id="@+id/cl_tips"
-                android:layout_width="0dp"
-                android:layout_height="0dp"
-                app:layout_constraintDimensionRatio="375:45"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@id/cl_operate">
-
-                <androidx.appcompat.widget.AppCompatTextView
-                    android:id="@+id/tv_tips"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:gravity="center"
-                    android:text="@string/guard_treasure_invite_reward_tips"
-                    android:textColor="@color/color_FFFFEEAB"
-                    android:textSize="14sp"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toTopOf="parent"
-                    app:layout_constraintWidth_percent="0.88" />
-
-            </androidx.constraintlayout.widget.ConstraintLayout>
-
-            <!--宝箱内容-->
-            <androidx.constraintlayout.widget.ConstraintLayout
-                android:id="@+id/cl_treasure_detail"
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:background="@color/color_FF001E11"
-                android:paddingTop="12dp"
-                android:paddingBottom="100dp"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@id/cl_tips">
-
-                <androidx.recyclerview.widget.RecyclerView
-                    android:id="@+id/rv_rewards"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:clipToPadding="true"
-                    android:fadingEdgeLength="12dp"
-                    android:paddingHorizontal="12dp"
-                    android:requiresFadingEdge="horizontal"
-                    android:scrollbars="none"
-                    app:layout_constrainedWidth="true"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toTopOf="parent" />
-
-            </androidx.constraintlayout.widget.ConstraintLayout>
-        </androidx.constraintlayout.widget.ConstraintLayout>
-    </ScrollView>
-
-    <androidx.appcompat.widget.AppCompatTextView
-        android:id="@+id/btn_invite"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginBottom="25dp"
-        android:background="@drawable/guard_treasure_invite_btn_enable_ic"
-        android:gravity="center"
-        android:text="@string/guard_treasure_invite_cp_friend"
-        android:textColor="@color/color_FFFFEEAB"
-        android:textSize="18sp"
-        android:textStyle="bold"
-        app:layout_constraintBottom_toBottomOf="@id/sv_content"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_chainStyle="packed"
-        app:layout_constraintStart_toStartOf="parent" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 0 - 19
module/guardtreasure/src/main/res/layout/fragment_treasure_history.xml

@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<com.scwang.smart.refresh.layout.SmartRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:id="@+id/refresh_layout"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    app:layout_constraintBottom_toBottomOf="parent"
-    app:layout_constraintTop_toTopOf="parent">
-
-    <androidx.recyclerview.widget.RecyclerView
-        android:id="@+id/rv_treasures"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:clipToPadding="true"
-        android:fadingEdgeLength="15dp"
-        android:paddingBottom="20dp"
-        android:requiresFadingEdge="vertical"
-        android:scrollbars="none" />
-</com.scwang.smart.refresh.layout.SmartRefreshLayout>

+ 0 - 11
module/guardtreasure/src/main/res/layout/fragment_treasure_intro.xml

@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <FrameLayout
-        android:id="@+id/fl_web_channel"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 0 - 81
module/guardtreasure/src/main/res/layout/layout_treasure_get_reward_item.xml

@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    tools:layout_width="80dp">
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:id="@+id/cl_reward"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:background="@drawable/treasure_reward_bg"
-        app:layout_constraintDimensionRatio="1:1"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent">
-
-        <com.adealink.frame.image.view.NetworkImageView
-            android:id="@+id/iv_reward"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            app:actualImageScaleType="fitCenter"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintDimensionRatio="1:1"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintWidth_percent="0.86" />
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/tv_duration"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:background="@drawable/treasure_reward_mark_ic"
-            android:gravity="center"
-            android:includeFontPadding="false"
-            android:paddingHorizontal="6dp"
-            android:paddingVertical="1dp"
-            android:textColor="@color/color_FFFFEEAB"
-            android:textSize="10sp"
-            app:layout_constrainedWidth="true"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintHorizontal_bias="0"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintWidth_min="35dp"
-            tools:ignore="SmallSp"
-            tools:text="x10d" />
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-    <androidx.appcompat.widget.AppCompatImageView
-        android:id="@+id/iv_value"
-        android:layout_width="12dp"
-        android:layout_height="12dp"
-        app:layout_constraintBottom_toBottomOf="@id/tv_num"
-        app:layout_constraintDimensionRatio="1:1"
-        app:layout_constraintEnd_toStartOf="@id/tv_num"
-        app:layout_constraintHorizontal_chainStyle="packed"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="@id/tv_num"
-        app:srcCompat="@drawable/common_coin_24_ic" />
-
-    <androidx.appcompat.widget.AppCompatTextView
-        android:id="@+id/tv_num"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="2dp"
-        android:layout_marginTop="4dp"
-        android:ellipsize="end"
-        android:singleLine="true"
-        android:textColor="@color/color_FFFFDB4A"
-        android:textSize="12sp"
-        app:layout_constrainedWidth="true"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toEndOf="@id/iv_value"
-        app:layout_constraintTop_toBottomOf="@id/cl_reward"
-        tools:text="x100000金币" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 0 - 237
module/guardtreasure/src/main/res/layout/layout_treasure_history_item.xml

@@ -1,237 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    tools:layout_width="183dp">
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:id="@+id/cl_content"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:background="@drawable/guard_treasure_guard_success_bg"
-        app:layout_constraintDimensionRatio="366:482"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent">
-
-        <androidx.constraintlayout.widget.Guideline
-            android:id="@+id/guard_result_top"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            app:layout_constraintGuide_percent="0.12" />
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/tv_guard_result"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:singleLine="true"
-            android:textColor="@color/color_FFFFEEAB"
-            android:textSize="14sp"
-            android:textStyle="bold"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/guard_result_top"
-            tools:text="@string/guard_success" />
-
-        <com.adealink.frame.image.view.NetworkImageView
-            android:id="@+id/iv_treasure"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginTop="6dp"
-            app:layout_constraintDimensionRatio="1:1"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/tv_guard_result"
-            app:layout_constraintWidth_percent="0.44" />
-
-        <androidx.appcompat.widget.AppCompatImageView
-            android:id="@+id/iv_rob"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:visibility="gone"
-            app:layout_constraintBottom_toBottomOf="@id/iv_treasure"
-            app:layout_constraintEnd_toEndOf="@id/iv_treasure"
-            app:layout_constraintStart_toStartOf="@id/iv_treasure"
-            app:layout_constraintTop_toTopOf="@id/iv_treasure"
-            app:srcCompat="@drawable/guard_treasure_guard_fail_for_rob_ic" />
-
-        <androidx.constraintlayout.widget.ConstraintLayout
-            android:id="@+id/cl_reward"
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="20dp"
-            android:layout_marginEnd="20dp"
-            android:background="@drawable/guard_treasure_reward_bg"
-            android:paddingVertical="2dp"
-            app:layout_constraintBottom_toTopOf="@id/cl_user"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/iv_treasure">
-
-            <com.adealink.frame.image.view.NetworkImageView
-                android:id="@+id/iv_reward"
-                android:layout_width="16dp"
-                android:layout_height="16dp"
-                app:actualImageScaleType="fitCenter"
-                app:layout_constraintBottom_toBottomOf="@id/tv_reward"
-                app:layout_constraintEnd_toStartOf="@id/tv_reward"
-                app:layout_constraintHorizontal_chainStyle="packed"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="parent"
-                tools:placeholderImage="@drawable/common_coin_32_ic" />
-
-            <androidx.appcompat.widget.AppCompatTextView
-                android:id="@+id/tv_reward"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginStart="2dp"
-                android:textColor="@color/color_FFFFDB4A"
-                android:textSize="14sp"
-                app:layout_constrainedWidth="true"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toEndOf="@id/iv_reward"
-                app:layout_constraintTop_toTopOf="parent"
-                tools:text="Kevinvinvin" />
-
-            <androidx.appcompat.widget.AppCompatTextView
-                android:id="@+id/tv_reward_desc"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:ellipsize="end"
-                android:singleLine="true"
-                android:text="@string/guard_treasure_record_get_reward"
-                android:textColor="@color/color_7FFFEEAB"
-                android:textSize="10sp"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@id/tv_reward"
-                tools:ignore="SmallSp" />
-
-        </androidx.constraintlayout.widget.ConstraintLayout>
-
-        <androidx.constraintlayout.widget.ConstraintLayout
-            android:id="@+id/cl_user"
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="20dp"
-            android:layout_marginEnd="20dp"
-            app:layout_constraintBottom_toTopOf="@id/tv_time"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/cl_reward">
-
-            <com.adealink.weparty.commonui.imageview.AvatarView
-                android:id="@+id/iv_avatar"
-                android:layout_width="28dp"
-                android:layout_height="28dp"
-                app:actualImageScaleType="fitCenter"
-                app:layout_constraintBottom_toBottomOf="parent"
-                app:layout_constraintEnd_toStartOf="@id/cl_name"
-                app:layout_constraintHorizontal_chainStyle="packed"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="parent"
-                app:placeholderImage="@drawable/common_default_avatar_ic"
-                app:placeholderImageScaleType="fitCenter"
-                app:roundAsCircle="true" />
-
-            <androidx.appcompat.widget.AppCompatImageView
-                android:layout_width="30dp"
-                android:layout_height="30dp"
-                android:scaleType="fitXY"
-                app:layout_constraintBottom_toBottomOf="@id/iv_avatar"
-                app:layout_constraintEnd_toEndOf="@id/iv_avatar"
-                app:layout_constraintStart_toStartOf="@id/iv_avatar"
-                app:layout_constraintTop_toTopOf="@id/iv_avatar"
-                app:srcCompat="@drawable/guard_treasure_avatar_frame_ic" />
-
-            <androidx.constraintlayout.widget.ConstraintLayout
-                android:id="@+id/cl_name"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginStart="8dp"
-                app:layout_constrainedWidth="true"
-                app:layout_constraintBottom_toBottomOf="parent"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toEndOf="@id/iv_avatar"
-                app:layout_constraintTop_toTopOf="parent">
-
-                <androidx.appcompat.widget.AppCompatTextView
-                    android:id="@+id/tv_name"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:ellipsize="end"
-                    android:singleLine="true"
-                    android:textColor="@color/color_FFFFEEAB"
-                    android:textSize="10sp"
-                    android:textStyle="bold"
-                    app:layout_constrainedWidth="true"
-                    app:layout_constraintBottom_toTopOf="@id/tv_desc"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintHorizontal_bias="0"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toTopOf="parent"
-                    app:layout_constraintVertical_chainStyle="packed"
-                    tools:ignore="SmallSp"
-                    tools:text="Kevinvinvin" />
-
-                <androidx.appcompat.widget.AppCompatTextView
-                    android:id="@+id/tv_desc"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:ellipsize="end"
-                    android:singleLine="true"
-                    android:textColor="@color/color_7FFFEEAB"
-                    android:textSize="10sp"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintEnd_toEndOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@id/tv_name"
-                    tools:ignore="SmallSp"
-                    tools:text="守护者搭档" />
-            </androidx.constraintlayout.widget.ConstraintLayout>
-
-        </androidx.constraintlayout.widget.ConstraintLayout>
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/tv_time"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:gravity="center"
-            android:textColor="@color/color_FFFFEEAB"
-            android:textSize="10sp"
-            app:layout_constrainedWidth="true"
-            app:layout_constraintBottom_toTopOf="@id/guide_bottom"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintWidth_percent="0.65"
-            tools:ignore="SmallSp"
-            tools:text="04.01 15:02" />
-
-        <androidx.constraintlayout.widget.Guideline
-            android:id="@+id/guide_bottom"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            app:layout_constraintGuide_percent="0.95" />
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-    <androidx.appcompat.widget.AppCompatTextView
-        android:id="@+id/tv_treasure_type"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="5dp"
-        android:paddingHorizontal="6dp"
-        android:paddingVertical="2dp"
-        android:textColor="@color/color_FFFFEEAB"
-        android:textSize="10sp"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        tools:ignore="SmallSp"
-        tools:text="青铜宝箱" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 0 - 85
module/guardtreasure/src/main/res/layout/layout_treasure_reward_item.xml

@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:background="@drawable/treasure_reward_bg"
-    tools:layout_height="72dp"
-    tools:layout_width="72dp">
-
-    <com.adealink.frame.image.view.NetworkImageView
-        android:id="@+id/iv_reward"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:layout_marginHorizontal="2dp"
-        android:layout_marginTop="2dp"
-        app:actualImageScaleType="fitCenter"
-        app:layout_constraintDimensionRatio="1:1"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-
-    <androidx.appcompat.widget.AppCompatTextView
-        android:id="@+id/tv_duration"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:background="@drawable/treasure_reward_mark_ic"
-        android:gravity="center"
-        android:includeFontPadding="false"
-        android:paddingHorizontal="6dp"
-        android:paddingVertical="1dp"
-        android:textColor="@color/color_FFFFEEAB"
-        android:textSize="10sp"
-        app:layout_constrainedWidth="true"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_bias="0"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintWidth_min="35dp"
-        tools:ignore="SmallSp"
-        tools:text="x10d" />
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:id="@+id/cl_bottom"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:background="@drawable/guarding_treasure_reward_item_bottom_bg"
-        android:paddingVertical="3dp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent">
-
-        <com.adealink.frame.image.view.NetworkImageView
-            android:id="@+id/iv_value"
-            android:layout_width="12dp"
-            android:layout_height="12dp"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintDimensionRatio="1:1"
-            app:layout_constraintEnd_toStartOf="@id/tv_num"
-            app:layout_constraintHorizontal_chainStyle="packed"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintWidth_percent="0.55" />
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/tv_num"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="2dp"
-            android:ellipsize="end"
-            android:includeFontPadding="false"
-            android:singleLine="true"
-            android:textColor="@color/color_FFFFDB4A"
-            android:textSize="10sp"
-            app:layout_constrainedWidth="true"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toEndOf="@id/iv_value"
-            app:layout_constraintTop_toTopOf="parent"
-            tools:text="100000"
-            tools:ignore="SmallSp" />
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 0 - 83
module/guardtreasure/src/main/res/layout/layout_treasure_reward_top_item.xml

@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:background="@drawable/treasure_reward_bg"
-    tools:layout_height="148dp"
-    tools:layout_width="119dp">
-
-    <com.adealink.frame.image.view.NetworkImageView
-        android:id="@+id/iv_reward"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:layout_marginHorizontal="2dp"
-        android:layout_marginTop="2dp"
-        app:actualImageScaleType="fitCenter"
-        app:layout_constraintDimensionRatio="1:1"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-
-    <androidx.appcompat.widget.AppCompatTextView
-        android:id="@+id/tv_duration"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:background="@drawable/treasure_reward_top_mark_ic"
-        android:gravity="center"
-        android:includeFontPadding="false"
-        android:paddingHorizontal="8dp"
-        android:paddingVertical="2dp"
-        android:textColor="@color/color_FFFFEEAB"
-        android:textSize="12sp"
-        app:layout_constrainedWidth="true"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_bias="0"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintWidth_min="35dp"
-        tools:text="x10d" />
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:id="@+id/cl_bottom"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:background="@drawable/guarding_treasure_reward_item_bottom_bg"
-        android:paddingVertical="4dp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent">
-
-        <com.adealink.frame.image.view.NetworkImageView
-            android:id="@+id/iv_value"
-            android:layout_width="16dp"
-            android:layout_height="16dp"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintDimensionRatio="1:1"
-            app:layout_constraintEnd_toStartOf="@id/tv_num"
-            app:layout_constraintHorizontal_chainStyle="packed"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintWidth_percent="0.55" />
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/tv_num"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="2dp"
-            android:ellipsize="end"
-            android:includeFontPadding="false"
-            android:singleLine="true"
-            android:textColor="@color/color_FFFFDB4A"
-            android:textSize="14sp"
-            app:layout_constrainedWidth="true"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toEndOf="@id/iv_value"
-            app:layout_constraintTop_toTopOf="parent"
-            tools:text="100000" />
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-</androidx.constraintlayout.widget.ConstraintLayout>

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä