161 lines
5.0 KiB
Kotlin
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);
|
|
}
|
|
|
|
} |