|
@@ -1,15 +1,186 @@
|
|
|
package com.swago.room.gift
|
|
|
|
|
|
+import android.content.Context
|
|
|
+import android.graphics.Color
|
|
|
+import android.os.Bundle
|
|
|
+import android.util.Log
|
|
|
+import android.view.Gravity
|
|
|
+import androidx.viewpager.widget.ViewPager
|
|
|
+import com.swago.baseswago.GradientIndicator
|
|
|
+import com.swago.baseswago.SwagoAdapter
|
|
|
import com.swago.baseswago.dialog.BaseXDFragment
|
|
|
+import com.swago.baseswago.model.live.gift.GiftModel
|
|
|
+import com.swago.baseswago.util.AppContext
|
|
|
+import com.swago.baseswago.util.DpPxUtil
|
|
|
+import com.swago.baseswago.util.LogUtil
|
|
|
+import com.swago.room.R
|
|
|
import com.swago.room.databinding.DialogGiftBinding
|
|
|
+import net.lucode.hackware.magicindicator.ViewPagerHelper
|
|
|
+import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator
|
|
|
+import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter
|
|
|
+import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator
|
|
|
+import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView
|
|
|
+import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.SimplePagerTitleView
|
|
|
|
|
|
/**
|
|
|
*@date 2021/12/12 14:59
|
|
|
*description:
|
|
|
*/
|
|
|
-class GiftDialog:BaseXDFragment<DialogGiftBinding>() {
|
|
|
+class GiftDialog : BaseXDFragment<DialogGiftBinding>() {
|
|
|
+
|
|
|
+ private val titleList = arrayListOf(
|
|
|
+ AppContext.getContext().resources.getString(R.string.hot),
|
|
|
+ AppContext.getContext().resources.getString(R.string.luxury)
|
|
|
+ )
|
|
|
+
|
|
|
+ // private val titleList = arrayListOf(AppContext.getContext().resources.getString(R.string.hot),AppContext.getContext().resources.getString(R.string.luxury),AppContext.getContext().resources.getString(R.string.luxury))
|
|
|
+ private val giftFragmentList = ArrayList<GiftFragment>()
|
|
|
+
|
|
|
+ private var hotFragment: GiftFragment? = null
|
|
|
+ private var luxuryFragment: GiftFragment? = null
|
|
|
+ private var hotData: ArrayList<GiftModel>? = null
|
|
|
+ private var luxuryData: ArrayList<GiftModel>? = null
|
|
|
+
|
|
|
+ private var type = 1
|
|
|
+
|
|
|
+ init {
|
|
|
+ setGravity(Gravity.BOTTOM)
|
|
|
+ setDimAmount(0f)
|
|
|
+ }
|
|
|
+
|
|
|
+ companion object {
|
|
|
+ fun newInstance(
|
|
|
+ hotData: ArrayList<GiftModel>,
|
|
|
+ luxuryData: ArrayList<GiftModel>,
|
|
|
+ luckyData: ArrayList<GiftModel>
|
|
|
+ ): GiftDialog {
|
|
|
+ val giftDialog = GiftDialog()
|
|
|
+ val bundle = Bundle()
|
|
|
+ bundle.putParcelableArrayList("hot", hotData)
|
|
|
+ bundle.putParcelableArrayList("luxury", luxuryData)
|
|
|
+ bundle.putParcelableArrayList("lucky", luckyData)
|
|
|
+ giftDialog.arguments = bundle
|
|
|
+ return giftDialog
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
override fun initOther() {
|
|
|
+ arguments?.let {
|
|
|
+ hotData = it.getParcelableArrayList<GiftModel>("hot")
|
|
|
+ luxuryData = it.getParcelableArrayList<GiftModel>("luxury")
|
|
|
+ val luckyData = it.getParcelableArrayList<GiftModel>("lucky") as ArrayList<GiftModel>
|
|
|
+ hotFragment = GiftFragment.newInstance(1, hotData!!)
|
|
|
+ luxuryFragment = GiftFragment.newInstance(2, luxuryData!!)
|
|
|
+ giftFragmentList.add(hotFragment!!)
|
|
|
+ giftFragmentList.add(luxuryFragment!!)
|
|
|
+// giftFragmentList.add(GiftFragment.newInstance(3,luckyData))
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 重置选中的礼物
|
|
|
+ */
|
|
|
+ hotFragment?.listener = {
|
|
|
+ luxuryFragment?.reset()
|
|
|
+ }
|
|
|
+ luxuryFragment?.listener = {
|
|
|
+ hotFragment?.reset()
|
|
|
+ }
|
|
|
+
|
|
|
+ binding.viewPager.offscreenPageLimit = 3
|
|
|
+ val viewPagerAdapter = SwagoAdapter(giftFragmentList, childFragmentManager, titleList)
|
|
|
+ binding.viewPager.adapter = viewPagerAdapter
|
|
|
+
|
|
|
+ val commonNavigator = CommonNavigator(context)
|
|
|
+ commonNavigator.adapter = object : CommonNavigatorAdapter() {
|
|
|
+ override fun getCount(): Int {
|
|
|
+ return titleList.size
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun getTitleView(context: Context, index: Int): IPagerTitleView {
|
|
|
+ val simplePagerTitleView = SimplePagerTitleView(context)
|
|
|
+ simplePagerTitleView.text = titleList[index]
|
|
|
+ val padding = DpPxUtil.dip2px(15f).toFloat()
|
|
|
+ simplePagerTitleView.textSize = 16f
|
|
|
+ simplePagerTitleView.setPadding(padding.toInt(), 0, padding.toInt(), 0)
|
|
|
+ simplePagerTitleView.normalColor = Color.parseColor("#868686")
|
|
|
+ simplePagerTitleView.selectedColor = Color.parseColor("#ffffff")
|
|
|
+ simplePagerTitleView.setOnClickListener {
|
|
|
+ binding.viewPager.currentItem = index
|
|
|
+ }
|
|
|
+ return simplePagerTitleView
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun getIndicator(context: Context?): IPagerIndicator {
|
|
|
+ val indicator = GradientIndicator(context)
|
|
|
+ indicator.mode = GradientIndicator.MODE_WRAP_CONTENT
|
|
|
+ indicator.lineWidth = DpPxUtil.dip2px(72f).toFloat()
|
|
|
+ indicator.xOffset = DpPxUtil.dip2px(5f).toFloat()
|
|
|
+ indicator.yOffset = DpPxUtil.dip2px(3f).toFloat()
|
|
|
+ indicator.lineHeight = DpPxUtil.dip2px(4f).toFloat()
|
|
|
+ indicator.roundRadius = DpPxUtil.dip2px(2f).toFloat()
|
|
|
+ return indicator
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ binding.magicIndicator.navigator = commonNavigator
|
|
|
+ ViewPagerHelper.bind(binding.magicIndicator, binding.viewPager)
|
|
|
+
|
|
|
+
|
|
|
+ //打开礼物弹窗时默认显示到上次选中的礼物
|
|
|
+ binding.viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
|
|
|
+ override fun onPageScrollStateChanged(state: Int) {}
|
|
|
+
|
|
|
+ override fun onPageScrolled(
|
|
|
+ position: Int,
|
|
|
+ positionOffset: Float,
|
|
|
+ positionOffsetPixels: Int
|
|
|
+ ) {
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onPageSelected(position: Int) {
|
|
|
+ Log.d("hhq", "$position")
|
|
|
+ type = position + 1
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ when(GiftConfig.giftSelectedWhichType){
|
|
|
+ 1 -> {
|
|
|
+ binding.viewPager.currentItem = 0
|
|
|
+ }
|
|
|
+ 2 -> {
|
|
|
+ binding.viewPager.currentItem = 1
|
|
|
+ }
|
|
|
+ 3 -> {
|
|
|
+ binding.viewPager.currentItem = 2
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //点击送礼
|
|
|
+ binding.tvToSend.setOnClickListener {
|
|
|
+ when (type) {
|
|
|
+ 1 -> {
|
|
|
+ //热门
|
|
|
+ hotData?.let {
|
|
|
+ val gifModel = it[GiftConfig.giftSelectedPageIndex*8+GiftConfig.giftSelectedPageSelectedPosition]
|
|
|
+ LogUtil.d("礼物id","${gifModel.gift_name}")
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ 2 -> {
|
|
|
+ //高级
|
|
|
+ luxuryData?.let {
|
|
|
+ val gifModel = it[GiftConfig.giftSelectedPageIndex*8+GiftConfig.giftSelectedPageSelectedPosition]
|
|
|
+ LogUtil.d("礼物id","${gifModel.gift_name}")
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ 3 -> {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
override fun initLiveData() {
|