| | |
| | | import androidx.lifecycle.lifecycleScope |
| | | import androidx.viewpager.widget.PagerAdapter |
| | | import androidx.viewpager.widget.ViewPager |
| | | import cn.sinata.rxnetty.LogHelper |
| | | import cn.sinata.rxnetty.NettyClient |
| | | import cn.sinata.xldutils.gone |
| | | import cn.sinata.xldutils.invisible |
| | |
| | | import com.igo.user.ui.trip.ScanActivity |
| | | import com.igo.user.ui.trip.TripActivity |
| | | import com.igo.user.utils.Const |
| | | import com.igo.user.utils.google.AMapKit |
| | | import com.tbruyelle.rxpermissions2.RxPermissions |
| | | import org.jetbrains.anko.find |
| | | import org.jetbrains.anko.sdk27.coroutines.onClick |
| | | import org.jetbrains.anko.startActivity |
| | | import org.jetbrains.anko.startActivityForResult |
| | | import org.jetbrains.anko.textColor |
| | |
| | | private val tabview1 by lazy { find<TextView>(R.id.tabview1) } |
| | | private val tabview2 by lazy { find<TextView>(R.id.tabview2) } |
| | | |
| | | |
| | | override fun initClick() { |
| | | |
| | | |
| | | iv_mine.setOnClickListener { |
| | | /* if (iv_mine.isSelected){ |
| | | if (fragments[mViewPager.currentItem] is MapTripFragment){ |
| | | taxiFragment.back() |
| | | }else{ |
| | | logisticsFragment.back(false) |
| | | } |
| | | } |
| | | else if (checkLogin()) |
| | | if (!drawer_main.isDrawerOpen(GravityCompat.START)) |
| | | drawer_main.openDrawer(GravityCompat.START)*/ |
| | | finish() |
| | | } |
| | | imguserinto.setOnClickListener { |
| | |
| | | |
| | | checkNewVersion() |
| | | getPhone() |
| | | if (isOpen) |
| | | getAds() |
| | | |
| | | getAds() |
| | | |
| | | titles.addAll(arrayOf(getString(R.string.专车), getString(R.string.快件))) |
| | | fragments.add(taxiFragment) |
| | |
| | | taxiFragment.callback = { |
| | | tv_tip.visibility = if (this) View.VISIBLE else View.GONE |
| | | } |
| | | |
| | | |
| | | /* func.forEach { |
| | | if (it.id in (1..2)&&!fragments.contains(taxiFragment)) |
| | | |
| | | else if (it.id == Const.OrderType.TYPE_CROSS_CITY) |
| | | fragments.add(crossCityFragment) |
| | | else if (it.id in (4..5)&&!fragments.contains(logisticsFragment)) |
| | | |
| | | else if (it.id == Const.OrderType.TYPE_CHARTER) |
| | | fragments.add(charterFragment) |
| | | }*/ |
| | | |
| | | mViewPager.adapter = object : FragmentPagerAdapter( |
| | | supportFragmentManager, |
| | |
| | | var istaxi = true |
| | | |
| | | private fun initTab() { |
| | | /*val frags = arrayListOf<Fragment>() |
| | | (0 until titles.size).forEach { |
| | | frags.add(PlaceHolderFragment()) |
| | | }*/ |
| | | /* tabView.setViewPager(fake_viewpager, titles.toTypedArray(), this, frags) |
| | | tabView.currentTab = intent.getIntExtra("pos", 0)*/ |
| | | tabview1.setOnClickListener { |
| | | istaxi = true |
| | | updateTip(0) |
| | |
| | | if (fragments[0] is LogisticsFragment) |
| | | logisticsFragment.type = func[0].id |
| | | } |
| | | /* mViewPager.addOnPageChangeListener(object :OnPageChangeListener{ |
| | | override fun onPageScrolled( |
| | | position: Int, |
| | | positionOffset: Float, |
| | | positionOffsetPixels: Int |
| | | ) { |
| | | } |
| | | |
| | | override fun onPageSelected(position: Int) { |
| | | if(position==0){ |
| | | tabview1.textColor=getColor(R.color.colorPrimary) |
| | | tabview2.textColor=getColor(R.color.textColor99) |
| | | }else{ |
| | | tabview1.textColor=getColor(R.color.textColor99) |
| | | tabview2.textColor=getColor(R.color.colorPrimary) |
| | | } |
| | | } |
| | | |
| | | override fun onPageScrollStateChanged(state: Int) { |
| | | } |
| | | |
| | | })*/ |
| | | /* tabView.setOnTabSelectListener(object : OnTabSelectListener { |
| | | override fun onTabSelect(position: Int) { |
| | | Log.e("onTabSelect: ",position.toString() ) |
| | | updateTip(func[position].id) |
| | | mViewPager.currentItem = position |
| | | if (position == 0) taxiFragment.changeType(Const.OrderType.TYPE_SPECIAL) |
| | | else logisticsFragment.changeType(Const.OrderType.TYPE_SAME_CITY) |
| | | *//* when(func[position].id){ |
| | | Const.OrderType.TYPE_SPECIAL-> { |
| | | Log.e(Const.Tag,"当前模块为:专车") |
| | | line_top.gone() |
| | | mViewPager.currentItem = fragments.indexOf(taxiFragment) |
| | | taxiFragment.changeType(Const.OrderType.TYPE_SPECIAL) |
| | | } |
| | | Const.OrderType.TYPE_TAXI-> { |
| | | line_top.gone() |
| | | Log.e(Const.Tag,"当前模块为:出租车") |
| | | mViewPager.currentItem = fragments.indexOf(taxiFragment) |
| | | taxiFragment.changeType(Const.OrderType.TYPE_TAXI) |
| | | } |
| | | Const.OrderType.TYPE_CROSS_CITY-> { |
| | | line_top.visible() |
| | | Log.e(Const.Tag,"当前模块为:跨城出行") |
| | | mViewPager.currentItem = fragments.indexOf(crossCityFragment) |
| | | updateTitleVisibility(false,false) |
| | | } |
| | | Const.OrderType.TYPE_SAME_CITY-> { |
| | | Log.e(Const.Tag,"当前模块为:同城物流") |
| | | mViewPager.currentItem = fragments.indexOf(logisticsFragment) |
| | | taxiFragment.checkBack() |
| | | logisticsFragment.changeType(Const.OrderType.TYPE_SAME_CITY) |
| | | } |
| | | Const.OrderType.TYPE_TRANS_CROSS-> { |
| | | Log.e(Const.Tag,"当前模块为:跨城物流") |
| | | mViewPager.currentItem = fragments.indexOf(logisticsFragment) |
| | | taxiFragment.checkBack() |
| | | logisticsFragment.changeType(Const.OrderType.TYPE_TRANS_CROSS) |
| | | } |
| | | Const.OrderType.TYPE_CHARTER-> { |
| | | Log.e(Const.Tag,"当前模块为:包车") |
| | | mViewPager.currentItem = fragments.indexOf(charterFragment) |
| | | taxiFragment.checkBack() |
| | | } |
| | | }*//* |
| | | } |
| | | |
| | | override fun onTabReselect(position: Int) { |
| | | } |
| | | })*/ |
| | | mViewPager.offscreenPageLimit = 2 |
| | | } |
| | | |
| | | private fun getPhone() { |
| | | HttpManager.getPhone(IGoApplication.lat, IGoApplication.lon) |
| | | val currentLocation = IGoApplication.getCurrentLocation() |
| | | HttpManager.getPhone(currentLocation.latitude, currentLocation.longitude) |
| | | .request(this, false) { _, data -> |
| | | data?.let { |
| | | if (isFinishing) return@let |
| | | it.forEach { |
| | | if (it.type == 1) |
| | | phoneEmergency = it.phone |
| | | else if (it.type == 2) |
| | | IGoApplication.phoneService = it.phone |
| | | } |
| | | data?.forEach { |
| | | if (it.type == 1) |
| | | phoneEmergency = it.phone |
| | | else if (it.type == 2) |
| | | IGoApplication.phoneService = it.phone |
| | | } |
| | | } |
| | | } |
| | |
| | | * 查询是否有进行中的订单 |
| | | */ |
| | | fun queryTripping() { |
| | | LogHelper.logRecord("查询是否有进行中的订单") |
| | | HttpManager.queryServingOrder().request(this, false) { _, data -> |
| | | data?.let { |
| | | if (isFinishing) return@let |
| | | if (it.isNullOrEmpty()) { |
| | | if (it.isEmpty()) { |
| | | isTripping = false |
| | | if (fragments.contains(taxiFragment)) |
| | | taxiFragment.getDriverNum() |
| | | tv_tip.onClick { } |
| | | tv_tip.setOnClickListener(null) |
| | | getTripId() |
| | | } else { |
| | | val order = data[0] |
| | | if (order.state in (1..5) || order.state == 11) { |
| | | IGoApplication.tripId = order.tripId ?: "" |
| | | IGoApplication.tripId = order.tripId |
| | | } else { |
| | | getTripId() |
| | | } |
| | |
| | | Log.e("当前订单详情: ", "order.orderType ${order.orderType}") |
| | | tv_tip.setOnDurationClickListener { |
| | | if (tv_tip.alpha != 0f) { |
| | | if (order.state in (1..5) || order.state == 11) |
| | | if (order.state in (1..5) || order.state == 11) { |
| | | LogHelper.logRecord("有正在处理的订单state:${order.state} orderId:${order.orderId} orderType:${order.orderType}") |
| | | startActivity<TripActivity>( |
| | | "id" to order.orderId, |
| | | "type" to order.orderType |
| | | ) |
| | | else if (order.state == 7 && order.orderType == Const.OrderType.TYPE_CROSS_CITY) { |
| | | } else if (order.state == 7 && order.orderType == Const.OrderType.TYPE_CROSS_CITY) { |
| | | startActivity<PayCrossActivity>("id" to order.orderId) |
| | | } else |
| | | startActivity<OrderDetailActivity>( |
| | |
| | | } |
| | | } |
| | | |
| | | //获取广告 |
| | | private fun getAds() { |
| | | HttpManager.getAds( |
| | | 1, |
| | | (if (lat != 0.0) lat else IGoApplication.lat).toString(), |
| | | (if (lon != 0.0) lon else IGoApplication.lon).toString() |
| | | ).request(this) { _, data -> |
| | | if (!isOpen) { |
| | | return |
| | | } |
| | | if (lat != 0.0 && lon != 0.0) { |
| | | getAds(lat, lon) |
| | | } else { |
| | | initLocation { |
| | | getAds(it.latitude, it.longitude) |
| | | } |
| | | } |
| | | } |
| | | |
| | | //获取广告 |
| | | private fun getAds(latitude: Double, longitude: Double) { |
| | | HttpManager.getAds(1, latitude.toString(), longitude.toString()).request(this) { _, data -> |
| | | data?.let { |
| | | if (it.isNotEmpty()) { |
| | | val bannerDialog = BannerDialog() |
| | |
| | | gotoLogin() |
| | | } else if (requestCode == 501) {//选择城市 |
| | | if (resultCode == Activity.RESULT_OK && data != null) { |
| | | /* startActivity<MainActivity>( |
| | | "isOpen" to true, |
| | | "func" to data.getParcelableArrayListExtra<Function>("func"), |
| | | "lat" to data.getDoubleExtra("lat", 0.0), |
| | | "lon" to data.getDoubleExtra("lon", 0.0) |
| | | ) |
| | | funcHome = data.getParcelableArrayListExtra<Function>("func")!!*/ |
| | | tv_city.text = IGoApplication.chooseCityName |
| | | // latHome=data.getDoubleExtra("lat",0.0) |
| | | // lonHome=data.getDoubleExtra("lon",0.0) |
| | | IGoApplication.lat = data.getDoubleExtra("lat", 0.0) |
| | | IGoApplication.lon = data.getDoubleExtra("lon", 0.0) |
| | | |
| | | IGoApplication.setLocation( |
| | | data.getDoubleExtra("lat", 0.0), |
| | | data.getDoubleExtra("lon", 0.0) |
| | | ) |
| | | lifecycleScope.launchWhenResumed { |
| | | taxiFragment.aMap.moveCamera( |
| | | CameraUpdateFactory.newLatLng( |
| | | LatLng( |
| | | IGoApplication.lat, |
| | | IGoApplication.lon |
| | | ) |
| | | ) |
| | | taxiFragment.aMap?.moveCamera( |
| | | CameraUpdateFactory.newLatLng(IGoApplication.getCurrentLocation()) |
| | | ) |
| | | } |
| | | |
| | | Log.e("定位==============》", "${latHome},${lonHome}") |
| | | // finish() |
| | | } else if (!isOpen || func.isEmpty()) { |
| | | if (IGoApplication.chooseCityName == "——") |
| | | showAlert() |
| | |
| | | } |
| | | } |
| | | |
| | | /* override fun onBackPressed() { |
| | | if (drawer_main.isDrawerOpen(GravityCompat.START)) |
| | | drawer_main.closeDrawer(GravityCompat.START) |
| | | else if (fragments[mViewPager.currentItem] is LogisticsFragment && logisticsFragment.checkBack()) { |
| | | super.onBackPressed() |
| | | IGoApplication.hasAutoGoTripping = false |
| | | } else if (fragments[mViewPager.currentItem] is MapTripFragment && taxiFragment.checkBack()) { |
| | | super.onBackPressed() |
| | | IGoApplication.hasAutoGoTripping = false |
| | | } |
| | | }*/ |
| | | //初始化定位 |
| | | private fun initLocation(block: (LatLng) -> Unit) { |
| | | if (!IGoApplication.hadInitLocation()) { |
| | | AMapKit.initLocation(this, success = { |
| | | val latLng = it.latLng |
| | | if (latLng == null) { |
| | | LogHelper.logRecord("定位失败") |
| | | return@initLocation |
| | | } |
| | | latHome = latLng.latitude |
| | | lonHome = latLng.longitude |
| | | LogHelper.logRecord("定位成功:latitude=${latLng.latitude} longitude=${latLng.longitude}") |
| | | IGoApplication.setLocation(latLng) |
| | | block.invoke(latLng) |
| | | }) { |
| | | LogHelper.logRecord("定位失败") |
| | | } |
| | | return |
| | | } |
| | | block.invoke(IGoApplication.getCurrentLocation()) |
| | | } |
| | | } |