package com.kuanzhai.driver.ui.main
|
|
import android.Manifest
|
import android.content.ActivityNotFoundException
|
import android.content.Intent
|
import android.os.Handler
|
import android.os.Looper
|
import android.provider.Settings
|
import android.view.View
|
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.kuanzhai.driver.R
|
import com.kuanzhai.driver.base.*
|
import com.kuanzhai.driver.base.gaode.AMapKit
|
import com.kuanzhai.driver.bean.*
|
import com.kuanzhai.driver.netUtls.Api
|
import com.kuanzhai.driver.netUtls.callNet
|
import com.kuanzhai.driver.netUtls.getMapByAny
|
import com.kuanzhai.driver.ui.DialogUtil
|
import com.kuanzhai.driver.ui.main.add_order.AddCityOrderActivity
|
import com.kuanzhai.driver.ui.main.event.MineEventActivity
|
import com.kuanzhai.driver.ui.merchant.MerchantMineOrderActivity
|
import com.kuanzhai.driver.ui.merchant.NineFiveFragment
|
import com.kuanzhai.driver.ui.mine.MsgActivity
|
import com.kuanzhai.driver.utils.Cache.CacheKey
|
import com.kuanzhai.driver.utils.DateUtil
|
import com.kuanzhai.driver.utils.HtmlUtils
|
import com.kuanzhai.driver.utils.download.DownloadUtil
|
import com.google.gson.Gson
|
import com.lljjcoder.style.citylist.Toast.ToastUtils
|
import com.tbruyelle.rxpermissions2.RxPermissions
|
import kotlinx.android.synthetic.main.activity_main.*
|
import org.greenrobot.eventbus.EventBus
|
import org.jetbrains.anko.startActivity
|
import org.jetbrains.anko.toast
|
|
|
class MainPubFragment : MyBaseFragment(), AMapLocationListener {
|
|
val mainFragment by lazy {
|
MainFragment()
|
}
|
|
val nineFragment by lazy {
|
NineFiveFragment()
|
}
|
|
|
|
var homeDataBean: HomeDataBean? = null
|
|
override fun layoutId(): Int {
|
return 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);
|
MyApplication.getInstance()?.initPersionDate()
|
ActivityCompat.requestPermissions(requireActivity(), Const.PERMISSIONS_LIST_LOCATION, 101);
|
|
tv_title_f.text = "宽窄优行司机"
|
tv_left_title_f.setDrawableNull()
|
iv_right_title_f.setImageResource(R.mipmap.nav_news)
|
// addFragment(nineFragment, R.id.rl_container)
|
addFragment(mainFragment, R.id.rl_container)
|
childFragmentManager.beginTransaction().show(mainFragment)
|
AMapKit.initLocation(requireContext(), this)
|
MyApplication.isLogin = true
|
beOnDuty(false)
|
initCall()
|
NettyClient.getInstance().startService()
|
callVersion()
|
checkGps()
|
MyApplication.addOrderView(qeeOrderView)
|
showHintDialog()
|
setOnclick()
|
}
|
|
private fun showHintDialog() {
|
var hint = CacheKey.getKeyStr("money_hinr")
|
if (hint.isEmpty()){
|
var map = getMapByAny()
|
map["type"] = 18
|
callNet(false,Api.queryByType, map) {
|
CacheKey.putKeyStr("money_hinr","money_hinr")
|
var data = gson.fromJson<AgreeBean>(it, AgreeBean::class.java)
|
var dialog = DialogUtil.getOnlySureDialog(requireContext(),"投诉扣款须知",HtmlUtils.getTextFromHtmlAll(data.data.content)){
|
}
|
}
|
}
|
|
}
|
|
|
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(requireContext())){
|
DialogUtil.getDelAndSureDialog(requireContext(),"查看定位","退出","您暂未开启手机定位GPS,是否前往开启?",{
|
requireActivity().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(false,Api.queryNewData, map) {
|
var data = gson.fromJson<VersionBean>(it, VersionBean::class.java)
|
if (data.data.version != "" && data.data.version != Utils.getAppVersion(requireContext())) {
|
if (data.data.mandatory == 2) {
|
DialogUtil.getDelAndSureDialog(requireContext(), "有新版本是否更新?", {}, {
|
DownloadUtil(requireContext()).downloadAPK(data.data.url, "宽窄优行司机端")
|
})
|
} else if (data.data.mandatory == 1) {
|
DialogUtil.getDelAndSureDialog(requireContext(), "版本已过时,是否强制升级?", {
|
EventBus.getDefault().post(BaseEvent(BaseEvent.OUT_APP))
|
}, {
|
DownloadUtil(requireContext()).downloadAPK(data.data.url, "宽窄优行司机端")
|
ToastUtils.showShortToast(requireContext(), "后台开始下载,请等待")
|
})
|
}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(false,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())
|
}
|
}
|
|
|
var type = 0
|
fun setOnclick() {
|
tv_server_ing.setOnClickListener {
|
type = 0
|
tv_help_order.visible()
|
addFragment(mainFragment, R.id.rl_container)
|
avv_anim.visible()
|
tv_up_avv.visible()
|
tv_server_ing.textColor(requireContext(), R.color.main_yellow)
|
tv_wait_server.textColor(requireContext(), R.color.main_gray)
|
tv_95128.textColor(requireContext(), R.color.main_gray)
|
mainFragment.state = 1
|
mainFragment.autoRefresh()
|
}
|
|
tv_wait_server.setOnClickListener {
|
type = 1
|
tv_help_order.visible()
|
addFragment(mainFragment, R.id.rl_container)
|
avv_anim.visible()
|
tv_up_avv.visible()
|
tv_server_ing.textColor(requireContext(), R.color.main_gray)
|
tv_wait_server.textColor(requireContext(), R.color.main_yellow)
|
tv_95128.textColor(requireContext(), R.color.main_gray)
|
mainFragment.state = 2
|
mainFragment.autoRefresh()
|
}
|
|
tv_95128.clickDelay {
|
type = 2
|
addFragment(nineFragment, R.id.rl_container)
|
tv_help_order.gone()
|
avv_anim.gone()
|
tv_up_avv.gone()
|
nineFragment.showOrder(false)
|
tv_server_ing.textColor(requireContext(), R.color.main_gray)
|
tv_wait_server.textColor(requireContext(), R.color.main_gray)
|
tv_95128.textColor(requireContext(), R.color.main_yellow)
|
|
}
|
|
iv_right_title_f.clickDelay {
|
requireContext().startActivity<MsgActivity>()
|
}
|
|
tv_history_order.clickDelay {
|
if (type == 2){
|
requireContext().startActivity<MerchantMineOrderActivity>()
|
}else{
|
requireContext().startActivity<HistoryOrderActivity>()
|
}
|
}
|
|
ll_task.clickDelay {
|
requireContext().startActivity<MineEventActivity>()
|
}
|
|
tv_help_order.clickDelay {
|
RxPermissions(requireActivity()).request(Manifest.permission.RECORD_AUDIO).subscribe {
|
if (it)
|
requireContext().startActivity<AddCityOrderActivity>()
|
else{
|
DialogUtil.getOnlySureDialog(requireContext(),"抢单下单功能不可用"){}
|
}
|
}
|
}
|
|
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){
|
requireActivity().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))
|
}
|
}
|
}
|
}
|
}
|
|
|
}
|
|
|
|
// 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))
|
}
|
}
|
}
|