Почему у меня при первом открытии кнопка переходит в нужное состояние экрана INFO_TAB, но viewPager не меняет сам экран на iNFO_TAB? package ru.maxi.mobile.feature.bonusPoints.ui.container

import android.os.Bundle
import android.util.Log
import android.view.View
import androidx.fragment.app.viewModels
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import androidx.viewpager2.widget.ViewPager2
import by.kirich1409.viewbindingdelegate.viewBinding
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.launch
import ru.maxi.mobile.R
import ru.maxi.mobile.base.ui.MvvmBaseFragment
import ru.maxi.mobile.common.utils.android.screenArgs
import ru.maxi.mobile.databinding.FragmentBonusPointsContainerBinding
import ru.maxi.mobile.feature.bonusPoints.BonusPointsScreens
import ru.maxi.mobile.feature.bonusPoints.ui.container.model.BonusPointsTabPage
import ru.maxi.mobile.feature.bonusPoints.ui.container.model.BonusPointsViewState
import ru.maxi.mobile.uikit.utils.lifecycleAwareLazy

/**
 * [Fragment] контейнера для баллов
 */
@AndroidEntryPoint
class BonusPointsContainerFragment : MvvmBaseFragment(R.layout.fragment_bonus_points_container) {

    private val viewBinding by viewBinding(FragmentBonusPointsContainerBinding::bind)

    private val screenArgs by screenArgs(BonusPointsContainerArgs)

    private val viewModel by viewModels<BonusPointsContainerViewModel>()

    private val pageAdapter by lifecycleAwareLazy {
        BonusPointsTabAdapter(this)
    }

    override val analyticsName: String? = null

    private var isFirstOpen = true

    private val pageChangeListener = object : ViewPager2.OnPageChangeCallback() {
        override fun onPageSelected(position: Int) {
            // if (isFirstOpen) {
            //     val tabPosition = when (screenArgs.tabId) {
            //         BALANCE_TAB -> 0
            //         INFO_TAB -> 1
            //         else -> throw IllegalArgumentException("invalid tabId ${screenArgs.tabId}")
            //     }
            //     viewBinding.tabsButtonContainer.check(screenArgs.tabId)
            //     viewBinding.tabsContainer.setCurrentItem(tabPosition, false)
            //     isFirstOpen = false
            // } else {
            //     val tab = when (position) {
            //         0 -> BALANCE_TAB
            //         1 -> INFO_TAB
            //         else -> throw IllegalArgumentException("invalid tabId ${screenArgs.tabId}")
            //     }
            //     viewModel.updateCurrentTab(tab, position)
            // }
            Log.d("TESTING", "onPageSelected")
            val tab = when (position) {
                0 -> BALANCE_TAB
                1 -> INFO_TAB
                else -> throw IllegalArgumentException("invalid tabId ${screenArgs.tabId}")
            }
            viewModel.updateCurrentTab(tab, position)
        }
    }

    private val pageList: MutableList<BonusPointsTabPage> = mutableListOf(
        BonusPointsTabPage(BonusPointsScreens.BonusPointsHistoryScreen()),
        BonusPointsTabPage(BonusPointsScreens.InfoScreen()),
    )

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        actionBarManager.setTitle(R.string.bonus_points_screen_title)
        actionBarManager.showBackButton()


        with(viewBinding) {
            // tabsContainer.offscreenPageLimit = pageList.size - 1
            tabsContainer.registerOnPageChangeCallback(pageChangeListener)
            tabsContainer.adapter = pageAdapter
            pageAdapter.pages = pageList

            tabsButtonContainer.setOnButtonCheckedListener { buttonId ->
                when (buttonId) {
                    BALANCE_TAB -> {
                        viewModel.updateCurrentTab(BALANCE_TAB, 0)
                    }

                    INFO_TAB -> {
                        viewModel.updateCurrentTab(INFO_TAB, 1)
                    }
                }
            }
        }
        Log.d("TESTING", "onViewCreated")
        with(viewLifecycleOwner) {
            lifecycleScope.launch {
                repeatOnLifecycle(Lifecycle.State.STARTED) {
                    launch { viewModel.viewState.collect(::onViewStateChange) }
                }
            }
        }
    }

    override fun onDestroyView() {
        super.onDestroyView()
        viewBinding.tabsContainer.unregisterOnPageChangeCallback(pageChangeListener)
    }

    private fun onViewStateChange(state: BonusPointsViewState) {
        with(viewBinding) {
            Log.d("TESTING", "$isFirstOpen")
            if (isFirstOpen) {
                state.currentPosition = when (screenArgs.tabId) {
                    BALANCE_TAB -> 0
                    INFO_TAB -> 1
                    else -> throw IllegalArgumentException("invalid tabId ${screenArgs.tabId}")
                }
                isFirstOpen = false
                Log.d("TESTING", "$isFirstOpen")
            }
            tabsButtonContainer.check(state.tabButtonId)
            tabsContainer.setCurrentItem(state.currentPosition, true)
        }
    }

    companion object {
        val BALANCE_TAB = R.id.balance_tab
        val INFO_TAB = R.id.info_tab
    }
}