package com.example.smart.ui.main import android.content.Context import android.graphics.Color import android.view.View import android.widget.FrameLayout import androidx.lifecycle.Observer import com.example.basecore.base.BaseContextViewModel import com.example.basecore.util.dp2px import com.example.smart.R import com.example.smart.observer.TabEventProvider import com.example.smart.observer.data.HomeTabData import com.example.smart.ui.home.BasePageFragment import com.example.smart.ui.home.home.HomeFragment import com.example.smart.ui.home.mine.MineFragment import com.example.smart.ui.main.page.MainFragment import com.example.smart.widget.HomeTabLayout import com.example.smart.widget.HomeTabLayout.Companion.buildItem class MainViewModel : BaseContextViewModel() { val tabProvider: TabEventProvider = TabEventProvider() private val tabObserver = TabObserver() init { initObserver() } private fun initObserver() { tabProvider.homeTabObserver.observeForever(tabObserver) } private inner class TabObserver : Observer { override fun onChanged(value: HomeTabData) { } } fun generateTab(context: Context, container: FrameLayout) { val tabLayout = HomeTabLayout.create(context, tabProvider) val itemHome = buildItem(context, R.drawable.selector_tab_home, "้ฆ–้กต") val itemMine = buildItem(context, R.drawable.selector_tab_personal, "ๆˆ‘็š„") tabLayout.addItem(itemHome).addItem(itemMine) container.addView(tabLayout) val maskView = View(context) val maskLp = FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, context.dp2px(0.5f)) maskView.layoutParams = maskLp maskView.setBackgroundColor(Color.parseColor("#f5f5f5")) container.addView(maskView) } fun generatePage(): ArrayList { val pageContainer = ArrayList() val feedPage = MainFragment.newInstance() val minePage = MineFragment.newInstance() pageContainer.add(feedPage) pageContainer.add(minePage) return pageContainer } override fun onCleared() { super.onCleared() tabProvider.homeTabObserver.removeObserver(tabObserver) } }