package com.fuban.driver.ui.main
|
|
import android.content.ActivityNotFoundException
|
import android.content.Intent
|
import android.os.Handler
|
import android.os.Looper
|
import android.provider.Settings
|
import android.widget.Toast
|
import androidx.core.app.ActivityCompat
|
import cn.sinata.rxnetty.NettyClient
|
import cn.sinata.xldutils.utils.*
|
import com.amap.api.location.AMapLocation
|
import com.amap.api.location.AMapLocationListener
|
import com.fuban.driver.R
|
import com.fuban.driver.base.BaseEvent
|
import com.fuban.driver.base.Const
|
import com.fuban.driver.base.MyApplication
|
import com.fuban.driver.base.MyBaseActivity
|
import com.fuban.driver.base.gaode.AMapKit
|
import com.fuban.driver.bean.HomeDataBean
|
import com.fuban.driver.bean.OrderSimpleData
|
import com.fuban.driver.bean.SelectServerModeBean
|
import com.fuban.driver.bean.VersionBean
|
import com.fuban.driver.netUtls.Api
|
import com.fuban.driver.netUtls.callNet
|
import com.fuban.driver.netUtls.getMapByAny
|
import com.fuban.driver.ui.DialogUtil
|
import com.fuban.driver.ui.main.add_order.AddCityOrderActivity
|
import com.fuban.driver.ui.main.event.MineEventActivity
|
import com.fuban.driver.ui.mine.MineActivity
|
import com.fuban.driver.ui.mine.MsgActivity
|
import com.fuban.driver.utils.Cache.CacheKey
|
import com.fuban.driver.utils.DateUtil
|
import com.fuban.driver.utils.download.DownloadUtil
|
import com.google.gson.Gson
|
import com.lljjcoder.style.citylist.Toast.ToastUtils
|
import kotlinx.android.synthetic.main.activity_main.*
|
import kotlinx.android.synthetic.main.app_title.*
|
import org.greenrobot.eventbus.EventBus
|
import org.jetbrains.anko.startActivity
|
import org.jetbrains.anko.toast
|
|
|
class MainActivity : MyBaseActivity(), AMapLocationListener {
|
|
val mainFragment by lazy {
|
MainFragment()
|
}
|
|
var homeDataBean: HomeDataBean? = null
|
|
override fun setContentView() {
|
setContentView(R.layout.activity_main)
|
}
|
|
override fun initView() {
|
// var packageName = "com.android.providers.downloads";
|
// var intent = Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
|
// intent.setData(Uri.parse("package:" + packageName));
|
// startActivity(intent);
|
ActivityCompat.requestPermissions(this, Const.PERMISSIONS_LIST, 101);
|
setTitleText("福伴出行司机")
|
tv_Left.setDrawableLeft(R.mipmap.icon_nav_user)
|
iv_right_title.setImageResource(R.mipmap.icon_nav_news)
|
addFragment(mainFragment, R.id.rl_container)
|
AMapKit.initLocation(this, this)
|
MyApplication.isLogin = true
|
beOnDuty(false)
|
initCall()
|
NettyClient.getInstance().startService()
|
callVersion()
|
checkGps()
|
MyApplication.addOrderView(qeeOrderView)
|
|
}
|
|
|
|
|
var qeeOrderView = object : MyApplication.OrderStatueView {
|
override fun orderInfo(data: OrderSimpleData?) {
|
data?.let {
|
when(it.orderType){
|
1,2,3 -> {
|
if (it.status == 10 || it.status == 12) {
|
Handler(Looper.getMainLooper()).post {
|
mainFragment?.refresh()
|
MyApplication.getTTsManager().setVideoText("有用户订单被取消或改派")
|
}
|
}
|
}
|
}
|
|
}
|
}
|
}
|
|
private fun checkGps() {
|
if (!AMapKit.isLocServiceEnable(this)){
|
DialogUtil.getDelAndSureDialog(this,"查看定位","退出","您暂未开启手机定位GPS,是否前往开启?",{
|
onBackPressed()
|
}){
|
val intent = Intent()
|
intent.action = Settings.ACTION_LOCATION_SOURCE_SETTINGS;
|
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK;
|
try {
|
startActivity(intent)
|
} catch (ex: ActivityNotFoundException) { //如果页面无法打开,进入设置页面
|
intent.action = Settings.ACTION_SETTINGS
|
try {
|
startActivity(intent)
|
} catch (e: Exception) {
|
e.printStackTrace()
|
}
|
}
|
}
|
}
|
}
|
|
private fun callVersion() {
|
var map = getMapByAny()
|
// map["id"] = CacheKey.getUserId()
|
callNet(Api.queryNewData, map) {
|
var data = gson.fromJson<VersionBean>(it, VersionBean::class.java)
|
if (data.data.version != "" && data.data.version != Utils.getAppVersion(this)) {
|
if (data.data.mandatory == 2) {
|
DialogUtil.getDelAndSureDialog(this, "有新版本是否更新?", {}, {
|
DownloadUtil(this).downloadAPK(data.data.url, "福伴出行司机端")
|
})
|
} else if (data.data.mandatory == 1) {
|
DialogUtil.getDelAndSureDialog(this, "版本已过时,是否强制升级?", {
|
EventBus.getDefault().post(BaseEvent(BaseEvent.OUT_APP))
|
}, {
|
DownloadUtil(this).downloadAPK(data.data.url, "福伴出行司机端")
|
ToastUtils.showShortToast(this, "后台开始下载,请等待")
|
})
|
}else{
|
// toast("已经是最新版本")
|
}
|
} else {
|
// toast("已经是最新版本")
|
}
|
}
|
}
|
|
override fun onResume() {
|
super.onResume()
|
mainFragment?.refresh()
|
}
|
|
fun beOnDuty(b:Boolean){
|
if (b){
|
avv_anim.visible()
|
tv_up_avv.visible()
|
}else{
|
avv_anim.gone()
|
tv_up_avv.gone()
|
}
|
}
|
|
|
private fun initCall() {
|
var map = getMapByAny()
|
callNet(Api.queryHomeData, map) {
|
var data = gson.fromJson<HomeDataBean>(it, HomeDataBean::class.java)
|
homeDataBean = data
|
tv_order_num.text = data.data.dayNum.toString()
|
tv_month_order.text = data.data.mouthNum.toString()
|
tv_grade.text = getFormatOne(data.data.score)
|
tv_task.text = data.data.activity.toString()
|
tv_car_num.text = data.data.licensePlate
|
tv_lien_name.text = data.data.brand.toString()
|
tv_car.text = if (data.data.work == 1) "收车" else "出车"
|
if (data.data.work == 1){
|
MyApplication.getTTsManager().setVideoText("您正在上班中")
|
beOnDuty(true)
|
}else{
|
MyApplication.getTTsManager().setVideoText("您已收车")
|
beOnDuty(false)
|
}
|
tv_time.text = DateUtil.getTime(
|
DateUtil.TYPE7,
|
System.currentTimeMillis()
|
) + " " + DateUtil.getWeek(System.currentTimeMillis())
|
}
|
}
|
|
fun callNum(){
|
var map = getMapByAny()
|
callNet(Api.queryHomeData, map) {
|
var data = gson.fromJson<HomeDataBean>(it, HomeDataBean::class.java)
|
homeDataBean = data
|
tv_order_num.text = data.data.dayNum.toString()
|
tv_month_order.text = data.data.mouthNum.toString()
|
tv_grade.text = getFormatOne(data.data.score)
|
tv_task.text = data.data.activity.toString()
|
tv_car_num.text = data.data.licensePlate
|
tv_lien_name.text = data.data.brand.toString()
|
tv_time.text = DateUtil.getTime(
|
DateUtil.TYPE7,
|
System.currentTimeMillis()
|
) + " " + DateUtil.getWeek(System.currentTimeMillis())
|
}
|
}
|
|
|
override fun setOnclick() {
|
tv_server_ing.setOnClickListener {
|
tv_server_ing.textColor(this, R.color.color_f07207)
|
tv_wait_server.textColor(this, R.color.main_gray)
|
mainFragment.state = 1
|
mainFragment.autoRefresh()
|
}
|
|
tv_wait_server.setOnClickListener {
|
tv_server_ing.textColor(this, R.color.main_gray)
|
tv_wait_server.textColor(this, R.color.color_f07207)
|
mainFragment.state = 2
|
mainFragment.autoRefresh()
|
}
|
|
tv_Left.clickDelay {
|
startActivity<MineActivity>()
|
}
|
|
iv_right_title.clickDelay {
|
startActivity<MsgActivity>()
|
}
|
|
tv_history_order.clickDelay {
|
startActivity<HistoryOrderActivity>()
|
}
|
|
ll_task.clickDelay {
|
startActivity<MineEventActivity>()
|
}
|
|
tv_help_order.clickDelay {
|
startActivity<AddCityOrderActivity>()
|
}
|
|
tv_car.clickDelay {
|
if (homeDataBean?.data?.work == 1) {
|
callNet(Api.work, getMapByAny()) {
|
homeDataBean?.data?.work = 2
|
tv_car.text = "出车"
|
beOnDuty(false)
|
MyApplication.getTTsManager().setVideoText("您已收车")
|
}
|
} else {
|
callNet(Api.queryMyBusiness, getMapByAny()){
|
var bean = gson.fromJson(it, SelectServerModeBean::class.java).data
|
if (bean.isEmpty()){
|
toast("请选择接单业务")
|
return@callNet
|
}
|
if (bean.size > 1){
|
startActivity<SelectServerModeActivity>()
|
}else{
|
var map= getMapByAny()
|
map["type"] = bean[0].id
|
callNet(Api.work,map) {
|
toast("上班成功")
|
beOnDuty(true)
|
EventBus.getDefault().post(BaseEvent(BaseEvent.START_CAR))
|
}
|
}
|
}
|
}
|
}
|
|
ll_tests.clickDelay {
|
// :{"orderType":4,"orderId":8,"state":7,"time":10}}
|
// showOrder("3170","2",100,1)
|
showOrder(
|
"102",
|
"1",
|
30,
|
1
|
)
|
}
|
}
|
|
|
|
private
|
var mBackAppTime: Long = 0
|
|
override fun onBackPressed() {
|
if (System.currentTimeMillis() - mBackAppTime > 2000) {
|
Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show()
|
mBackAppTime = System.currentTimeMillis()
|
} else {
|
closeAll()
|
}
|
}
|
|
override fun onEventMainThread(event: BaseEvent?) {
|
super.onEventMainThread(event)
|
when (event!!.code) {
|
BaseEvent.START_CAR -> {
|
beOnDuty(true)
|
initCall()
|
}
|
BaseEvent.CHANGE_CAR_SUCCESS -> {
|
initCall()
|
}
|
BaseEvent.CALL_NUM_MAIN -> {
|
callNum()
|
}
|
BaseEvent.REFREASH_MAIN -> {
|
mainFragment?.refresh()
|
}
|
}
|
}
|
|
override fun onLocationChanged(p0: AMapLocation?) {
|
if (p0?.errorCode == 0) {
|
MyApplication.aMapLocation = p0
|
CacheKey.putKeyStr("location",Gson().toJson(p0))
|
}
|
}
|
}
|