GLDriver/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/HomeActivity.kt
2024-12-24 09:27:02 +08:00

161 lines
5.0 KiB
Kotlin

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<ActivityHomeBinding>(), 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<CustomTabEntity>(
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<Fragment>(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);
}
}