|
@@ -42,12 +42,13 @@ class RankListFragment : BaseFragment(R.layout.fragment_rank_list) {
|
|
|
|
|
|
|
|
companion object {
|
|
companion object {
|
|
|
fun newInstance(
|
|
fun newInstance(
|
|
|
- type: Int = TYPE_TOP_GIFT, time: Int = TIME_DAILY
|
|
|
|
|
|
|
+ type: Int = TYPE_TOP_GIFT, time: Int = TIME_DAILY, gender: Int = TYPE_ALL
|
|
|
): RankListFragment {
|
|
): RankListFragment {
|
|
|
val fragment = RankListFragment()
|
|
val fragment = RankListFragment()
|
|
|
val bundle = Bundle().apply {
|
|
val bundle = Bundle().apply {
|
|
|
putInt(RankKey.TYPE, type)
|
|
putInt(RankKey.TYPE, type)
|
|
|
putInt(RankKey.TIME, time)
|
|
putInt(RankKey.TIME, time)
|
|
|
|
|
+ putInt(RankKey.GENDER, gender)
|
|
|
}
|
|
}
|
|
|
fragment.arguments = bundle
|
|
fragment.arguments = bundle
|
|
|
return fragment
|
|
return fragment
|
|
@@ -65,6 +66,7 @@ class RankListFragment : BaseFragment(R.layout.fragment_rank_list) {
|
|
|
|
|
|
|
|
private var type = TYPE_TOP_GIFT // 榜单类型:
|
|
private var type = TYPE_TOP_GIFT // 榜单类型:
|
|
|
private var time = TIME_DAILY // 榜单周期
|
|
private var time = TIME_DAILY // 榜单周期
|
|
|
|
|
+ private var gender = TYPE_ALL
|
|
|
private val listAdapter by lazy { MultiTypeListAdapter(BaseListDiffUtil()) }
|
|
private val listAdapter by lazy { MultiTypeListAdapter(BaseListDiffUtil()) }
|
|
|
private val rankListViewModel by viewModels<RankListViewModel> { RankViewModelFactory() }
|
|
private val rankListViewModel by viewModels<RankListViewModel> { RankViewModelFactory() }
|
|
|
private val binding by viewBinding(FragmentRankListBinding::bind)
|
|
private val binding by viewBinding(FragmentRankListBinding::bind)
|
|
@@ -119,6 +121,7 @@ class RankListFragment : BaseFragment(R.layout.fragment_rank_list) {
|
|
|
private fun parseIntent() {
|
|
private fun parseIntent() {
|
|
|
type = arguments?.getInt(RankKey.TYPE, TYPE_TOP_GIFT) ?: TYPE_TOP_GIFT
|
|
type = arguments?.getInt(RankKey.TYPE, TYPE_TOP_GIFT) ?: TYPE_TOP_GIFT
|
|
|
time = arguments?.getInt(RankKey.TIME, TIME_DAILY) ?: TIME_DAILY
|
|
time = arguments?.getInt(RankKey.TIME, TIME_DAILY) ?: TIME_DAILY
|
|
|
|
|
+ gender = arguments?.getInt(RankKey.GENDER, TYPE_ALL) ?: TYPE_ALL
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
override fun observeViewModel() {
|
|
override fun observeViewModel() {
|
|
@@ -131,7 +134,7 @@ class RankListFragment : BaseFragment(R.layout.fragment_rank_list) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private fun requestListData() {
|
|
private fun requestListData() {
|
|
|
- Log.d("PWL", "requestListData type: $type, time: $time")
|
|
|
|
|
|
|
+ Log.d("PWL", "requestListData type: $type, time: $time, gender: $gender")
|
|
|
val activityId = ACTIVITY_ID_ARRAY[type][time]
|
|
val activityId = ACTIVITY_ID_ARRAY[type][time]
|
|
|
when(type) {
|
|
when(type) {
|
|
|
TYPE_TOP_GIFT,
|
|
TYPE_TOP_GIFT,
|
|
@@ -168,6 +171,7 @@ class RankListFragment : BaseFragment(R.layout.fragment_rank_list) {
|
|
|
if (!isViewBindingValid()) {
|
|
if (!isViewBindingValid()) {
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
+ this.gender = gender
|
|
|
val targetList = if(gender == TYPE_ALL) {
|
|
val targetList = if(gender == TYPE_ALL) {
|
|
|
rankListCache
|
|
rankListCache
|
|
|
} else {
|
|
} else {
|
|
@@ -195,7 +199,11 @@ class RankListFragment : BaseFragment(R.layout.fragment_rank_list) {
|
|
|
rankListCache.clear()
|
|
rankListCache.clear()
|
|
|
rankListCache.addAll(result.rankList)
|
|
rankListCache.addAll(result.rankList)
|
|
|
|
|
|
|
|
- val targetList = result.rankList.toList()
|
|
|
|
|
|
|
+ val targetList = if(gender != TYPE_ALL && type == TYPE_TOP_GIFT) {
|
|
|
|
|
+ result.rankList.filter { it.userInfo?.gender == gender }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ result.rankList.toList()
|
|
|
|
|
+ }
|
|
|
val (topList, remainingList) = if (targetList.size <= 3) {
|
|
val (topList, remainingList) = if (targetList.size <= 3) {
|
|
|
targetList to emptyList()
|
|
targetList to emptyList()
|
|
|
} else {
|
|
} else {
|