package com.zhaoyang.driver.ui.main
|
|
import android.content.ActivityNotFoundException
|
import android.content.Intent
|
import android.net.Uri
|
import android.os.Build
|
import android.os.Handler
|
import android.os.Looper
|
import android.provider.Settings
|
import android.widget.Toast
|
import cn.sinata.rxnetty.NettyClient
|
import cn.sinata.xldutils.utils.*
|
import com.amap.api.location.AMapLocation
|
import com.amap.api.location.AMapLocationListener
|
import com.zhaoyang.driver.R
|
import com.zhaoyang.driver.base.BaseEvent
|
import com.zhaoyang.driver.base.MyApplication
|
import com.zhaoyang.driver.base.MyBaseActivity
|
import com.zhaoyang.driver.base.gaode.AMapKit
|
import com.zhaoyang.driver.bean.*
|
import com.zhaoyang.driver.netUtls.Api
|
import com.zhaoyang.driver.netUtls.callNet
|
import com.zhaoyang.driver.netUtls.getMapByAny
|
import com.zhaoyang.driver.ui.DialogUtil
|
import com.zhaoyang.driver.ui.main.add_order.AddCityOrderActivity
|
import com.zhaoyang.driver.ui.main.event.MineEventActivity
|
import com.zhaoyang.driver.ui.mine.ChangeCarActivity
|
import com.zhaoyang.driver.ui.mine.DriverAttestationActivity
|
import com.zhaoyang.driver.ui.mine.MineActivity
|
import com.zhaoyang.driver.ui.mine.MsgActivity
|
import com.zhaoyang.driver.utils.Cache.CacheKey
|
import com.zhaoyang.driver.utils.DateUtil
|
import com.zhaoyang.driver.utils.MyUtils
|
import com.zhaoyang.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() {
|
setTitleText("昭阳出行司机")
|
tv_up_avv.text = SpanBuilder.content("接单中\n点击收车").sizeSpan(0,3,16).build()
|
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)
|
callcarAll()
|
toastTo()
|
callTime("1")
|
|
|
}
|
|
override fun onRestart() {
|
super.onRestart()
|
callTime("1")
|
}
|
|
|
private fun callTime(type: String) {
|
var map = getMapByAny()
|
callNet(Api.getDriverOnlineTime, map) {
|
var bean = gson.fromJson<TimeBean>(it, TimeBean::class.java)
|
if (bean.data.attendance == 0.0) {
|
tv_active.text = "0.0h"
|
} else {
|
tv_active.text = doubleOne(bean.data.attendance / 60 / 60) + "h"
|
}
|
if (bean.data.today == 0.0) {
|
tv_today_time.text = "0.0h"
|
} else {
|
tv_today_time.text = doubleOne(bean.data.today / 60 / 60) + "h"
|
}
|
if (bean.data.thisWeek == 0.0) {
|
tv_week_time.text = "0.0h"
|
} else {
|
tv_week_time.text = doubleOne(bean.data.thisWeek / 60 / 60) + "h"
|
}
|
if (bean.data.thisMonth == 0.0) {
|
tv_month_time.text = "0.0h"
|
} else {
|
tv_month_time.text = doubleOne(bean.data.thisMonth / 60 / 60) + "h"
|
}
|
|
}
|
}
|
|
|
private fun toastTo() {
|
var jumpCode = CacheKey.getKeyStr("jumpCode")
|
if (jumpCode == "100000") {
|
DialogUtil.getDelAndSureDialog(this, "是否完善个人资料?", {}, {
|
startActivity<DriverAttestationActivity>()
|
})
|
}
|
}
|
|
private fun callcarAll() {
|
callNet(Api.queryMyCar, getMapByAny()) {
|
var bean = gson.fromJson<MyCarBean>(it, MyCarBean::class.java)
|
if (bean.data.car.isNullOrEmpty()) {
|
DialogUtil.getDelAndSureDialog(this, "您还没有完善车辆信息,请前往完善", {}, {
|
startActivity<ChangeCarActivity>()
|
})
|
}
|
}
|
}
|
|
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()
|
}
|
}
|
}
|
}
|
|
if (!MyUtils.canBackgroundStart(this)) {
|
DialogUtil.getDelAndSureDialog(this, "前往开启", "退出", "您暂未开启手机权限“后台弹出界面”,可能导致无法接单,是否前往开启?", {
|
onBackPressed()
|
}) {
|
MyUtils.toSettingPro(this)
|
}
|
}
|
}
|
|
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, "新版本更新", data.data.content, {}, {
|
DownloadUtil(this).downloadAPK(data.data.url, "昭阳出行司机端")
|
})
|
} else if (data.data.mandatory == 1) {
|
DialogUtil.getDelAndSureDialog(this, "新版本更新", data.data.content, {
|
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()
|
tv_car.gone()
|
} else {
|
avv_anim.gone()
|
tv_up_avv.gone()
|
tv_car.visible()
|
}
|
}
|
|
|
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.main_blue)
|
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.main_blue)
|
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))
|
}
|
}
|
}
|
}
|
}
|
|
tv_up_avv.clickDelay {
|
callNet(Api.work, getMapByAny()) {
|
homeDataBean?.data?.work = 2
|
tv_car.text = "出车"
|
beOnDuty(false)
|
MyApplication.getTTsManager().setVideoText("您已下班")
|
}
|
}
|
|
ll_tests.clickDelay {
|
// :{"orderType":4,"orderId":8,"state":7,"time":10}}
|
// showOrder("267","4",100,1)
|
// showOrder(
|
// "1944",
|
// "2",
|
// 30,
|
// 2
|
// )
|
}
|
}
|
|
|
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))
|
}
|
}
|
}
|