package com.base.locationsharewhite.ui.howuse

import android.graphics.Color
import androidx.activity.addCallback
import androidx.core.view.updatePadding
import androidx.viewpager2.widget.MarginPageTransformer
import com.base.locationsharewhite.R
import com.base.locationsharewhite.bean.BannerBean
import com.base.locationsharewhite.databinding.ActivityHowViewOtherBinding
import com.base.locationsharewhite.helper.BaseActivity
import com.base.locationsharewhite.utils.BarUtils
import com.base.locationsharewhite.utils.LogEx
import com.youth.banner.listener.OnPageChangeListener
import com.youth.banner.util.BannerUtils

class HowViewOtherActivity : BaseActivity<ActivityHowViewOtherBinding>() {

    private lateinit var adapter: ImageBannerAdapter

    override val binding: ActivityHowViewOtherBinding by lazy {
        ActivityHowViewOtherBinding.inflate(layoutInflater)
    }

    override fun initView() {
        BarUtils.setStatusBarLightMode(this, true)
        BarUtils.setStatusBarColor(this, Color.WHITE)
        binding.root.updatePadding(top = BarUtils.getStatusBarHeight())

        initBanner()
        step1ui()
    }

    private fun initBanner() {
        adapter = ImageBannerAdapter(
            listOf(
                BannerBean(R.mipmap.how_view_tu3),
                BannerBean(R.mipmap.how_view_tu4)
            )
        )
        binding.banner.setAdapter(adapter)
        binding.banner.isAutoLoop(false)

        binding.banner.addBannerLifecycleObserver(this)
        binding.banner.setIndicator(binding.indicator, false)
        binding.banner.setPageTransformer(MarginPageTransformer(BannerUtils.dp2px(10f)))
        binding.indicator.indicatorConfig.height = resources.getDimensionPixelSize(R.dimen.dp_5)
        binding.indicator.indicatorConfig.selectedWidth = resources.getDimensionPixelSize(R.dimen.dp_25)
        binding.indicator.indicatorConfig.normalWidth = resources.getDimensionPixelSize(R.dimen.dp_5)

        binding.banner.setOnBannerListener { data, position -> }
        binding.banner.addOnPageChangeListener(object : OnPageChangeListener {
            override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {

            }

            override fun onPageSelected(position: Int) {
                LogEx.logDebug("banner", "position=$position")
                if (position == 0) {
                    step1ui()
                } else {
                    step2ui()
                }
            }

            override fun onPageScrollStateChanged(state: Int) {

            }
        })
    }

    override fun initListener() {
        super.initListener()
        onBackPressedDispatcher.addCallback {
            finish()
        }
        binding.flFanhui.setOnClickListener {
            onBackPressedDispatcher.onBackPressed()
        }
        binding.tvBtn.setOnClickListener {
            if (uiType == 1) {
                step2ui()
            } else {
                finishToMain()
            }
        }
    }

    private var uiType = 0
    private fun step1ui() {
        uiType = 1
        binding.tvStep.text = resources.getString(R.string.how_view_other_step_1)
        if (binding.banner.currentItem != 0) {

            binding.banner.currentItem = 0
        }
        binding.tvBtn.text = getString(R.string.next)
    }

    private fun step2ui() {
        uiType = 2
        binding.tvStep.text = resources.getString(R.string.how_view_other_step_2)
        if (binding.banner.currentItem != 1) {
            binding.banner.currentItem = 1
        }
        binding.tvBtn.text = getString(R.string.let_s_go)
    }
}