package com.arpa.hndahesudintocctmsdriver.ui import android.Manifest import android.os.Build import android.os.Bundle import android.widget.Toast import androidx.fragment.app.Fragment import androidx.viewpager.widget.ViewPager import com.arpa.hndahesudintocctmsdriver.R import com.arpa.hndahesudintocctmsdriver.adapter.MyHomePagerAdapter import com.arpa.hndahesudintocctmsdriver.bean.TabBean import com.arpa.hndahesudintocctmsdriver.databinding.ActivityHomeBinding import com.arpa.hndahesudintocctmsdriver.event.GoWaybillEvent import com.arpa.hndahesudintocctmsdriver.ui.home.HomeFragment import com.arpa.hndahesudintocctmsdriver.ui.message.MessageFragment import com.arpa.hndahesudintocctmsdriver.ui.mine.MineFragment import com.arpa.hndahesudintocctmsdriver.ui.waybill.WaybillFragment import com.arpa.mylibrary.base.BaseActivity import com.flyco.tablayout.listener.CustomTabEntity import com.flyco.tablayout.listener.OnTabSelectListener import com.permissionx.guolindev.PermissionX import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import java.util.Timer import java.util.TimerTask /** * @ClassName HomeActivity * @Author 用户 * @Date 2023/12/27 17:12 * @Description TODO */ class HomeActivity : BaseActivity(), OnTabSelectListener, ViewPager.OnPageChangeListener { private val mNormalRes = mutableListOf( R.drawable.tab_home_normal, R.drawable.tab_waybill_normal, R.drawable.tab_mine_normal ) private val mSelectRes = mutableListOf( R.drawable.tab_home_press, R.drawable.tab_waybill_press, R.drawable.tab_mine_press ) private var mTitles = arrayOf("首页", "运单", "我的") private var mTabEntities = arrayListOf( TabBean(mTitles[0], mSelectRes[0], mNormalRes[0]), TabBean(mTitles[1], mSelectRes[1], mNormalRes[1]), TabBean(mTitles[2], mSelectRes[2], mNormalRes[2]), ) private var mFragments = arrayListOf(HomeFragment(), WaybillFragment(), MineFragment()) override fun initView(savedInstanceState: Bundle?) { EventBus.getDefault().register(this); binding.homeTabLayout.run { setTabData(mTabEntities) setOnTabSelectListener(this@HomeActivity) currentTab = 0 } binding.homeNoScrollViewPager.run { adapter = MyHomePagerAdapter(this@HomeActivity.supportFragmentManager, mTitles, mFragments) addOnPageChangeListener(this@HomeActivity) offscreenPageLimit = 3 } // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { // getPermissions() // } } override fun initDate() { } private fun getPermissions() { PermissionX.init(this) .permissions( // Manifest.permission.CAMERA, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.ACCESS_COARSE_LOCATION, // Manifest.permission.RECORD_AUDIO, // Manifest.permission.ACCESS_BACKGROUND_LOCATION, ) .request { allGranted, grantedList, deniedList -> if (allGranted) { } else { Toast.makeText( mContext, "开启权限失败,请在应用设置-权限-定位-始终允许", Toast.LENGTH_SHORT ).show() } } } private var mBackKeyPressed = false override fun onBackPressed() { if (!mBackKeyPressed) { showToast("再按一次退出程序") mBackKeyPressed = true Timer().schedule(object : TimerTask() { override fun run() { mBackKeyPressed = false } }, 2000) } else { canCelToast() moveTaskToBack(true) // finish() } } // fun getFragment(){ // var adapter : MyHomePagerAdapter = binding.homeNoScrollViewPager.adapter as MyHomePagerAdapter // // adapter.instantiateItem(binding.homeNoScrollViewPager,0) // } override fun onTabSelect(position: Int) { binding.homeNoScrollViewPager.setCurrentItem(position) } override fun onTabReselect(position: Int) { } override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) { } override fun onPageSelected(position: Int) { binding.homeTabLayout.setCurrentTab(position) } override fun onPageScrollStateChanged(state: Int) { } @Subscribe fun eventStatu(event: GoWaybillEvent) { binding.homeTabLayout.currentTab = event.statu binding.homeNoScrollViewPager.currentItem = event.statu } override fun onDestroy() { super.onDestroy() EventBus.getDefault().unregister(this); } }