app/src/main/AndroidManifest.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/okgoincar/bean/OrderBean.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/okgoincar/netUtls/Api.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/okgoincar/slab/SlabGetOrderFragment.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/okgoincar/slab/cargo/CargoActivity.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/okgoincar/utils/UtilKt.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/layout/activity_trip_slab_cargo.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/layout/dialog_cargo.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/layout/dialog_show_cha_money.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/layout/item_get_order.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
app/src/main/AndroidManifest.xml
@@ -153,6 +153,8 @@ <activity android:name=".slab.SlabSelectServerModeActivity" android:configChanges="orientation|screenSize|keyboardHidden" /> <activity android:name=".slab.cargo.CargoActivity" android:configChanges="orientation|screenSize|keyboardHidden" /> <activity android:name=".slab.SlabStartActivity" android:configChanges="orientation|screenSize|keyboardHidden" > app/src/main/java/com/okgoincar/bean/OrderBean.java
@@ -81,6 +81,15 @@ private int reservation; private String type; private String emergencyCall; private String peopleNumber; public String getPeopleNumber() { return peopleNumber; } public void setPeopleNumber(String peopleNumber) { this.peopleNumber = peopleNumber; } public String getTravelTime_() { return travelTime_; app/src/main/java/com/okgoincar/netUtls/Api.java
@@ -107,6 +107,7 @@ public static String queryPenalties = "api/driver/queryPenalties"; //api/driver/queryPenalties 获取扣款明细 public static String queryNewData_ = "api/version/queryNewData_"; ///api/version/queryNewData_ 获取最新版本数据 public static String fillInPickUpCode = "api/order/fillInPickUpCode"; ///api/order/fillInPickUpCode 设置小件物流取件码 public static String makeUpTheDifference = "api/order/makeUpTheDifference"; ///api/order/makeUpTheDifference 设置小件物流差价 } app/src/main/java/com/okgoincar/slab/SlabGetOrderFragment.kt
@@ -5,10 +5,7 @@ import android.os.Bundle import android.os.CountDownTimer import cn.sinata.xldutils.activitys.DialogActivity import cn.sinata.xldutils.utils.Toast import cn.sinata.xldutils.utils.clickDelay import cn.sinata.xldutils.utils.getNowTimeBlack import cn.sinata.xldutils.utils.textColor import cn.sinata.xldutils.utils.* import com.amap.api.maps.model.LatLng import com.okgoincar.netUtls.* import com.okgoincar.slab.util.UiUtil @@ -19,6 +16,7 @@ import com.okgoincar.bean.OrderBean import com.okgoincar.bean.ServerVoiceBean import com.okgoincar.netUtls.Api import com.okgoincar.slab.cargo.CargoActivity import kotlinx.android.synthetic.main.item_get_order.* import kotlinx.android.synthetic.main.item_map_market.view.* import org.jetbrains.anko.startActivity @@ -126,6 +124,19 @@ tv_end.text = data.endAddress tv_money.text = data.tipMoney.toString() + "元红包" tv_reassign.text = data.type if (orderType == "5" || orderType == "4"){ toast("确少货物数量") tv_name.visible() tv_cargo_num.visible() tv_money.visible() tv_name.text = data.nickName+"-"+data.phone tv_cargo_num.text = "普通小件X"+data.peopleNumber if (data.tipMoney != null && data.tipMoney > 0.0){ tv_money.text = doubleTwo(data.tipMoney)+"元加急费" }else{ tv_money.gone() } } AMapKit.initRouteLine( this, LatLng(MyApplication.getLocation().latitude, MyApplication.getLocation().longitude), @@ -173,7 +184,14 @@ dismissDialog() Toast.create(this).show("抢单成功") onBackPressed() this.startActivity<SlabTripActivity>("orderId" to orderId, "orderType" to orderType) when(orderType){ "1","2","3" -> { this.startActivity<SlabTripActivity>("orderId" to orderId, "orderType" to orderType) } "4","5" -> { this.startActivity<CargoActivity>("orderId" to orderId, "orderType" to orderType) } } },{ toast(it!!) dismissDialog() app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt
@@ -270,6 +270,10 @@ mainFragment.autoRefresh() } iv_small.setOnClickListener { } tv_name.clickDelay { } app/src/main/java/com/okgoincar/slab/cargo/CargoActivity.kt
New file @@ -0,0 +1,782 @@ package com.okgoincar.slab.cargo import android.content.Context import android.content.Intent import android.os.Bundle import android.os.Handler import android.os.Looper import android.view.View import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import cn.sinata.xldutils.utils.* import com.amap.api.location.AMapLocationListener import com.amap.api.maps.AMap import com.amap.api.maps.model.LatLng import com.amap.api.maps.model.Marker import com.amap.api.maps.model.Polyline import com.okgoincar.netUtls.* import com.okgoincar.ui.adapter.SlabStartAdapter import com.okgoincar.slab.util.DialogUtil import com.okgoincar.utils.Cache.CacheKey import com.okgoincar.R import com.okgoincar.base.AMapKit import com.okgoincar.base.AMapKit.addMarker import com.okgoincar.base.AMapKit.getIcon import com.okgoincar.base.AMapKit.getTimeType import com.okgoincar.base.AMapKit.initMap import com.okgoincar.base.AMapKit.moveCamera import com.okgoincar.base.BaseEvent import com.okgoincar.base.MoneyBroadCastReceiver import com.okgoincar.base.MyApplication import com.okgoincar.base.gpsnav.GPSNaviActivity import com.okgoincar.bean.OrderBean import com.okgoincar.bean.OrderSimpleData import com.okgoincar.bean.UserBean import com.okgoincar.bean.UserInfoBean import com.okgoincar.netUtls.Api import com.okgoincar.slab.MySlabBaseActivity import com.okgoincar.slab.SlabFillOutActivity import com.okgoincar.slab.SlabOrderOverActivity import com.okgoincar.utils.DateUtil import com.okgoincar.utils.glide.GlideUtil import com.trello.rxlifecycle3.android.ActivityEvent import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers import kotlinx.android.synthetic.main.activity_trip_slab_cargo.* import kotlinx.android.synthetic.main.dialog_cargo.view.* import kotlinx.android.synthetic.main.dialog_select_pay_type.view.* import kotlinx.android.synthetic.main.dialog_show_cha_money.view.* import kotlinx.android.synthetic.main.dialog_sure_and_del_slab.view.* import kotlinx.android.synthetic.main.dialog_sure_and_del_slab.view.rl_top_slab import kotlinx.android.synthetic.main.dialog_sure_and_del_slab.view.tv_view_two_base import kotlinx.android.synthetic.main.item_map_market.view.* import org.greenrobot.eventbus.EventBus import org.jetbrains.anko.startActivity import org.jetbrains.anko.toast import java.lang.Exception import java.util.concurrent.TimeUnit class CargoActivity : MySlabBaseActivity() { private fun callOver(contexts: Context, travelFee: Double) { MoneyBroadCastReceiver.callOver(contexts, travelFee) } private fun callStatue(contexts: Context, i: Int) { MoneyBroadCastReceiver.callStatue(contexts, i) } /*** * * 1=待接单,2=待出发,3=待到达预约地点,4=待取货,5=送货中,6=已送达,7=待支付,8=需补差价,9=已取货,10=已取消,11=改派中,12=已支付差价 * * // 流程操作状态(3=开始出发预约点,4=到达预约点,5=开始服务,6=服务结束) * 页面一共4个marker 1:预约地点 2:起点 3终点 4:司机点 */ val orderType by lazy { intent.getStringExtra("orderType") } val orderId by lazy { intent.getStringExtra("orderId") } var isTimeStart = false //限制计时器 var makeMarker: Marker? = null var startMarker: Marker? = null var endMarker: Marker? = null var carMarker: Marker? = null var markerLine: Polyline? = null lateinit var aMap: AMap lateinit var orderBean: OrderBean override fun setContentView() { setContentView(R.layout.activity_trip_slab_cargo) } override fun setBlackMode(b: Boolean?) { super.setBlackMode(b) if (b!!) { ll_order_top.setBackgroundResource(R.drawable.bg_slab_main_8_bottom_blacl) ll_info_top.setBackgroundResource(R.drawable.bg_slab_main_8_black) rl_back.setBackgroundResource(R.color.black_191919) iv_back_slab.setImageResource(R.mipmap.icon_back_slab) tv_title_slab.textColor(this, R.color.write) tv_name.textColor(this, R.color.write) tv_car_num.textColor(this, R.color.write) tv_phone.textColor(this, R.color.write) tv_phone.setDrawableLeft(R.mipmap.icon_dial_slab) tv_time.textColor(this, R.color.write) tv_start_address.textColor(this, R.color.write) tv_red_money.textColor(this, R.color.write) tv_end_address.textColor(this, R.color.write) tv_name_phone.textColor(this, R.color.write) tv_type_cargo.textColor(this, R.color.write) tv_code_num.textColor(this, R.color.write) tv_name_car_man.textColor(this, R.color.write) tv_car_num_var.textColor(this, R.color.write) tv_star_num.textColor(this, R.color.write) tv_company.textColor(this, R.color.write) tv_time_send_prove.textColor(this, R.color.write) tv_current_time.textColor(this, R.color.write) } else { ll_order_top.setBackgroundResource(R.drawable.write_bottom_10) ll_info_top.setBackgroundResource(R.drawable.write_top_10) rl_back.setBackgroundResource(R.drawable.write) iv_back_slab.setImageResource(R.mipmap.icon_back_black) tv_title_slab.textColor(this, R.color.black) tv_name.textColor(this, R.color.black) tv_car_num.textColor(this, R.color.black) tv_phone.textColor(this, R.color.black) tv_phone.setDrawableLeft(R.mipmap.car_phone_bkack) tv_time.textColor(this, R.color.black) tv_start_address.textColor(this, R.color.black) tv_red_money.textColor(this, R.color.black) tv_end_address.textColor(this, R.color.black) tv_type_cargo.textColor(this, R.color.black) tv_name_phone.textColor(this, R.color.black) tv_code_num.textColor(this, R.color.black) tv_name_car_man.textColor(this, R.color.black) tv_car_num_var.textColor(this, R.color.black) tv_star_num.textColor(this, R.color.black) tv_company.textColor(this, R.color.black) tv_time_send_prove.textColor(this, R.color.black) tv_current_time.textColor(this, R.color.black) } } override fun initView() { // tv_Right.text = "申请改派" showHeader(false) showTitle(false) rl_persion_info.gone() callOrder() initMineLocation() onclick() addSockectCancel() changeMode() MyApplication.getInstance()!!.initUpPoint() } private fun addSockectCancel() { MyApplication.addOrderView(object : MyApplication.OrderStatueView { override fun orderInfo(data: OrderSimpleData?) { data?.let { if (it.status == 10 || it.status == 12) { Handler(Looper.getMainLooper()).post { toast("用户已取消订单") MyApplication.getTTsManager().setVideoText("用户已取消订单") MyApplication.currentOrderType = "" MyApplication.currentOrderId = "" finish() } } } } }) } override fun onBackPressed() { super.onBackPressed() } fun changeMode() { if (tv_change.text == "收起") { rl_map.invisible() rl_persion_info.visible() tv_change.text = "地图" tv_change.textColor(this, R.color.main_yellow) tv_change.setBackgroundResource(R.drawable.bg_orange_slab_line_4) } else { rl_map.visible() rl_persion_info.invisible() tv_change.text = "收起" tv_change.textColor(this, R.color.white) tv_change.setBackgroundResource(R.drawable.bg_login) } } private fun onclick() { btn_start.clickDelay { callStatue(this, 5) } btn_end.clickDelay { callOver(this, 10.0) } tv_change.clickDelay { changeMode() } iv_move.setOnClickListener { orderBean.let { when (it.data.orderState) { 2, 3 -> { moveCamera(aMap, makeMarker!!.position, carMarker!!.position) } 4 -> { moveCamera(aMap, carMarker!!.position) } 5, 6 -> { moveCamera(aMap, carMarker!!.position, endMarker!!.position) } } } } iv_to_gd.setOnClickListener { orderBean.let { when (it.data.orderState) { 2, 3 -> { // startAMapNavi(makeMarker!!) startActivity<GPSNaviActivity>( "start" to carMarker!!.position, "end" to makeMarker!!.position ) } 5, 6 -> { // startAMapNavi(endMarker!!) startActivity<GPSNaviActivity>( "start" to carMarker!!.position, "end" to endMarker!!.position ) } } } } tv_gap_money.clickDelay { showGaoMoneyDialog() } slide_btn.onSwipeListener = { orderBean.let { when (it.data.orderState) { 2, 3, 4 -> { it.data.orderState++ callStatue(it.data.orderState) {} showStatueMapUI(it) } 5, 6 -> { it.data.orderState = 6 showChangeCargoDialog() } 12 -> { it.data.orderState = 5 callStatue(it.data.orderState) {} showStatueMapUI(it) } 8 -> { toast("请补差价") } else -> { } } } } iv_back_slab.clickDelay { onBackPressed() } tv_phone.clickDelay { orderBean.let { Utils.callPhone(this, it.data.phone) } } } private fun callNumberCargo(num: String, click: () -> Unit) { var map = getMapByAny() map["orderId"] = orderId map["pickUpCode"] = num callNet(true,Api.fillInPickUpCode, map) { click() } } private fun callseatmoney(num: String, click: () -> Unit) { var map = getMapByAny() map["orderId"] = orderId map["difference"] = num callNet(true,Api.makeUpTheDifference, map) { click() } } private fun callStatue(i: Int, click: () -> Unit) { var map = getMapByAny() map["orderId"] = orderId map["orderType"] = orderType map["state"] = i map["lat"] = MyApplication.getLocation().latitude map["lon"] = MyApplication.getLocation().longitude callNet(this, Api.process, map) { click() } } private fun showMoneyTypeDialog() { var pop = DialogUtil.getPopupwindow(this, R.layout.dialog_select_pay_type) var payType = 1 //支付方式(1=OK平台收款,2=其他方式收款) if (getNowTimeBlack()) { pop.contentView.rl_back_pop.setBackgroundResource(R.drawable.bg_slab_main_8_black) pop.contentView.tv_cancel.textColor(this, R.color.white) pop.contentView.tv_ok.textColor(this, R.color.white) } else { pop.contentView.rl_back_pop.setBackgroundResource(R.drawable.bg_white_round_2) pop.contentView.tv_cancel.textColor(this, R.color.black) pop.contentView.tv_ok.textColor(this, R.color.black) } pop.showDown(window.decorView) pop.contentView.tv_cancel.setOnClickListener { pop.dismiss() } pop.contentView.tv_ok.setOnClickListener { pop.dismiss() if (payType == 1) { callStatue(6) { startActivity<SlabFillOutActivity>( "orderId" to orderId, "orderType" to orderType ) finish() } } else { var pop = DialogUtil.getSlabDelAndSurePopWindow(this, "请确定是否收款?", {}, { pop.dismiss() val map = getMapByAny() map["orderId"] = orderId map["orderType"] = orderType map["type"] = payType callStatue(6) { callNet(this, Api.confirmFees, map) { finish() startActivity<SlabOrderOverActivity>( "orderId" to orderId, "orderType" to orderType ) } } }) if (getNowTimeBlack()) { pop.contentView.rl_top_slab.setBackgroundResource(R.drawable.bg_green_4_black) pop.contentView.tv_view_two_base.textColor(this, R.color.white) } else { pop.contentView.rl_top_slab.setBackgroundResource(R.drawable.bg_white_round_2) pop.contentView.tv_view_two_base.textColor(this, R.color.black) } pop.showCenter(window.decorView) } } pop.contentView.tv_select_ok.setOnClickListener { pop.contentView.tv_select_ok.textColor(this, R.color.white) pop.contentView.tv_select_ok.setBackgroundResource(R.drawable.bg_login) pop.contentView.tv_select_or.textColor(this, R.color.main_yellow) pop.contentView.tv_select_or.setBackgroundResource(R.drawable.bg_orange_slab_line_4) payType = 1 } pop.contentView.tv_select_or.setOnClickListener { pop.contentView.tv_select_ok.textColor(this, R.color.main_yellow) pop.contentView.tv_select_ok.setBackgroundResource(R.drawable.bg_orange_slab_line_4) pop.contentView.tv_select_or.textColor(this, R.color.white) pop.contentView.tv_select_or.setBackgroundResource(R.drawable.bg_login) payType = 2 } } /*** * 定位时司机与线路的改变 */ private fun initMineLocation() { AMapKit.initLocation(this, AMapLocationListener { it?.let { // toast("errorCode=="+it.errorCode.toString()+"latitude=="+it.latitude.toString()) if (it.errorCode == 0) { MyApplication.aMapLocation = it carMarker!!.position = LatLng(it.latitude, it.longitude) } } orderBean.let { when (it.data.orderState) { 2, 3 -> { changeCarThree(false) } 5, 6 -> { changeCarFive(false) } } } }) } private fun changeCarThree(isMove: Boolean) { if (makeMarker != null && carMarker != null) { AMapKit.initRouteLine( this, makeMarker!!.position, carMarker!!.position, object : (MutableList<LatLng>, Float, Long) -> Unit { override fun invoke(p1: MutableList<LatLng>, p2: Float, p3: Long) { var view = creatCarView("距预约点" + AMapKit.getTance(p2)) carMarker!!.setIcon(getIcon(view)) addline(p1) if (isMove) moveCamera(aMap, makeMarker!!.position, carMarker!!.position) } }) } } private fun changeCarFive(isMove: Boolean) { if (carMarker != null && endMarker != null) { AMapKit.initRouteLine( this, carMarker!!.position, endMarker!!.position, object : (MutableList<LatLng>, Float, Long) -> Unit { override fun invoke(p1: MutableList<LatLng>, p2: Float, p3: Long) { addline(p1) var view = creatCarView("剩余" + AMapKit.getTance(p2) + "\n" + "预计还需" + p3.toInt() + "分钟") carMarker!!.setIcon(getIcon(view)) if (isMove) { moveCamera(aMap, carMarker!!.position, endMarker!!.position) } } }) } } private fun callOrder() { MyApplication.currentOrderId = orderId MyApplication.currentOrderType = orderType var map = getMapByAny() map["orderId"] = orderId map["orderType"] = orderType callNet(this, Api.queryOrderInfo, map) { orderBean = gson.fromJson(it, OrderBean::class.java) showUi(orderBean) // Handler(Looper.getMainLooper()).postDelayed({ // startActivity<SlabOrderOverActivity>("orderId" to orderBean.data.orderId.toString() , "orderType" to orderBean.data.type.toString()) // },1000) } callPersion() } private fun callPersion() { callNet(true, Api.queryInfo, getMapByAny()) { var user = gson.fromJson<UserBean>(it, UserBean::class.java) CacheKey.saveUserInfo(user.data) showDriverUI(user.data) } } private fun showDriverUI(data: UserInfoBean?) { data?.let { if (data.taxiAptitudeCard.length > 7) { tv_code_num.text = "资格证号:" + data.taxiAptitudeCard.substring( 0, 3 ) + "*******" + data.taxiAptitudeCard.substring( data.taxiAptitudeCard.length - 4, data.taxiAptitudeCard.length ) } else { tv_code_num.text = "资格证号:" + data.taxiAptitudeCard } tv_name_car_man.text = "姓名:" + it.name tv_car_num_var.text = "车牌:" + it.licensePlate recycler_view_start.layoutManager = LinearLayoutManager( this, RecyclerView.HORIZONTAL, false ) as RecyclerView.LayoutManager? recycler_view_start.adapter = SlabStartAdapter(it.score.toDouble()) tv_company.text = "公司:" + it.company tv_time_send_prove.text = "发证日期:" + it.networkCarlssueDate GlideUtil.load(this, it.avatar, iv_head, 8) tv_current_time.text = DateUtil.getTime( DateUtil.TYPE7, System.currentTimeMillis() ) + DateUtil.getWeek(System.currentTimeMillis()) } } private fun showUi(orderBean: OrderBean?) { orderBean?.let { tv_name.text = orderBean.data.nickName tv_car_num.text = it.data.historyNum.toString() + "次乘车" tv_time.text = it.data.travelTime tv_start_address.text = it.data.startAddress tv_end_address.text = it.data.endAddress tv_name_phone.text = orderBean.data.nickName + "-" + orderBean.data.phone tv_type_cargo.text = "普通小件X" + orderBean.data.peopleNumber tv_red_money.text = doubleTwo(orderBean.data.tipMoney) + "元加急费" tv_phone.text = orderBean.data.phone showStatueMapUI(it) } } private fun getAllMark(it: OrderBean) { if (makeMarker == null) { val view = createView(R.layout.item_map_market_make, this) view.iv_img.setImageResource(R.mipmap.yuyue) makeMarker = addMarker(aMap, it.data.startLat, it.data.startLon, view, "") } makeMarker!!.isVisible = false if (startMarker == null) { val view = createView(R.layout.item_map_market, this) view.iv_img.setImageResource(R.mipmap.qidian) startMarker = addMarker(aMap, it.data.startLat, it.data.startLon, view, "") } startMarker!!.isVisible = false if (endMarker == null) { val view = createView(R.layout.item_map_market, this) view.iv_img.setImageResource(R.mipmap.zhongdian) endMarker = addMarker(aMap, it.data.endLat, it.data.endLon, view, "") } endMarker!!.isVisible = false if (carMarker == null) { val carView = creatCarView("") carMarker = addMarker( aMap, MyApplication.getLocation().latitude, MyApplication.getLocation().longitude, carView, "" ) } carMarker!!.isVisible = false if (markerLine != null) { markerLine!!.isVisible = false } } override fun setTitleText(title: String?) { tv_title_slab.text = title } fun creatCarView(content: String): View { val carView = createView(R.layout.item_map_market, this) carView.iv_img.setImageResource(R.mipmap.icon_car) carView.tv_hint.visible() carView.tv_hint.text = content return carView } // 流程操作状态(3=开始出发预约点,4=到达预约点,5=开始服务,6=服务结束) private fun showStatueMapUI(it: OrderBean) { getAllMark(it) when (it.data.orderState) { 2, 3 -> { clickBroad() iv_to_gd.visible() makeMarker?.isVisible = true carMarker?.isVisible = true changeCarThree(true) closeTimeStart() if (it.data.orderState == 2) { slide_btn.changeButtonText("出发前往预约地点") setTitleText("准备出发") } else { slide_btn.changeButtonText("到达取货地点") setTitleText("去取货物") } } 4,8-> { clickBroad() iv_to_gd.gone() closeLine() carMarker?.isVisible = true startTimeStart( ((System.currentTimeMillis() - DateUtil.dateToStamp( DateUtil.TYPE0, it.data.waitTime )) / 1000).toInt() ) moveCamera(aMap, carMarker!!.position) setTitleText("等待取货") slide_btn.changeButtonText("确认取货") } 5, 6 -> { closeTimeStart() iv_to_gd.visible() tv_Right.gone() startMarker?.isVisible = true endMarker?.isVisible = true carMarker?.isVisible = true changeCarFive(true) setTitleText("送货中") slide_btn.changeButtonText("确认送达") } } } fun clickBroad() { var intent = Intent(); intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK; intent.action = "wisdom.intent.action.topLight"; intent.putExtra("state", 0) sendBroadcast(intent); } private fun startTimeStart(waitTime: Int) { if (!isTimeStart) { isTimeStart = true refreshTime(waitTime) { var view = creatCarView("您已等待" + getTimeType(it)) carMarker!!.setIcon(getIcon(view)) } } } private var timeDisposable: Disposable? = null private fun refreshTime(waitTime: Int, click: (num: Int) -> Unit) { if (null != timeDisposable && !timeDisposable!!.isDisposed) { timeDisposable!!.dispose() } timeDisposable = Observable .interval(1, TimeUnit.SECONDS) .take(100000000) .subscribeOn(Schedulers.computation()) .observeOn(AndroidSchedulers.mainThread()) .compose(bindUntilEvent(ActivityEvent.DESTROY)) .subscribe { aLong -> var num = waitTime + aLong click(num.toInt()) } } private fun closeTimeStart() { if (timeDisposable != null) { timeDisposable!!.dispose() } } override fun onDestroy() { super.onDestroy() closeTimeStart() } private fun addline(allLine: MutableList<LatLng>) { closeLine() markerLine = AMapKit.drawLine(this, aMap, allLine) } fun closeLine() { if (markerLine != null) { markerLine!!.remove() } } fun getTance(startLatLng: LatLng, endLatLng: LatLng, onclick: (tance: Float) -> Unit) { AMapKit.initRouteLine( this, startLatLng, endLatLng, object : (MutableList<LatLng>, Float, Long) -> Unit { override fun invoke(p1: MutableList<LatLng>, p2: Float, p3: Long) { onclick(p2) } }) } override fun setOnclick() { } private fun showChangeCargoDialog() { var dialog = DialogUtil.getDialog(this,R.layout.dialog_cargo) var viewContent = DialogUtil.getView(dialog) viewContent.tv_close_base_cargo.setOnClickListener { dialog.dismiss() } viewContent.tv_sure_base_cargo.setOnClickListener { var num = viewContent.tv_view_two_base_cargo.getContent() if (num.isEmpty()){ toast("请输入验证码") return@setOnClickListener } callNumberCargo(num){ dialog.dismiss() startActivity<SlabOrderOverActivity>( "orderId" to orderId, "orderType" to orderType ) } } } private fun showGaoMoneyDialog() { var dialog = DialogUtil.getDialog(this,R.layout.dialog_show_cha_money) var viewContent = DialogUtil.getView(dialog) viewContent.tv_close_base_cha.setOnClickListener { dialog.dismiss() } viewContent.tv_sure_base_cha.setOnClickListener { var num = viewContent.tv_view_two_base_cha.getContent() if (num.isEmpty()){ toast("请输入金额") return@setOnClickListener } callseatmoney(num){ dialog.dismiss() toast("设置成功") } } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) aMap = initMap(savedInstanceState, map_view) } override fun onEventMainThread(event: BaseEvent?) { super.onEventMainThread(event) when (event!!.code) { // BaseEvent.REAGASSIGN_SUCCESS -> { // MyApplication.currentOrderId = "" // MyApplication.currentOrderType = "" // finish() // } BaseEvent.UP_TRIP -> { callOrder() } BaseEvent.SURE_MONEY -> { startActivity<SlabOrderOverActivity>( "orderId" to orderBean.data.orderId.toString(), "orderType" to "2" ) finish() } BaseEvent.ERROR_INFO -> { onBackPressed() } } } } app/src/main/java/com/okgoincar/utils/UtilKt.kt
@@ -212,6 +212,9 @@ this.visibility = View.GONE } fun doubleTwo(price: Double): String? { return String.format("%.2f", price) } fun View.visible() { this.visibility = View.VISIBLE app/src/main/res/layout/activity_trip_slab_cargo.xml
New file @@ -0,0 +1,427 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/rl_back" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bg_slab_main"> <RelativeLayout android:id="@+id/rl_top" android:layout_width="match_parent" android:layout_height="70dp" android:layout_marginTop="26dp"> <ImageView android:id="@+id/iv_back_slab" android:layout_width="84dp" android:layout_height="54dp" android:layout_centerVertical="true" android:paddingStart="26dp" android:paddingEnd="26dp" android:src="@mipmap/icon_back_slab" /> <TextView android:id="@+id/tv_title_slab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:layout_centerInParent="true" android:text="准备出发" android:textColor="#ffffffff" android:textSize="50sp" /> </RelativeLayout> <LinearLayout android:layout_width="404dp" android:layout_height="match_parent" android:layout_below="@+id/rl_top" android:layout_marginStart="16dp" android:layout_marginTop="13dp" android:layout_marginBottom="10dp" android:orientation="vertical"> <LinearLayout android:id="@+id/ll_info_top" android:layout_width="384dp" android:layout_height="wrap_content" android:layout_margin="10dp" android:background="@drawable/bg_slab_main_8" android:elevation="5dp" android:orientation="vertical" android:paddingStart="10dp"> <TextView android:id="@+id/tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="23dp" android:text="可乐" android:textColor="#ffffffff" android:textSize="34sp" android:textStyle="bold" /> <TextView android:id="@+id/tv_car_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="23dp" android:layout_marginBottom="9dp" android:text="123次乘车" android:textColor="#ffffffff" android:textSize="30sp" android:textStyle="bold" android:visibility="gone" /> <TextView android:id="@+id/tv_phone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="23dp" android:layout_marginBottom="22dp" android:drawableStart="@mipmap/icon_dial_slab" android:drawablePadding="10dp" android:text="15367543211" android:textColor="#ffffffff" android:textSize="30sp" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:id="@+id/ll_order_top" android:layout_width="384dp" android:layout_height="match_parent" android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_marginBottom="10dp" android:background="@drawable/bg_slab_main_8_bottom" android:elevation="5dp" android:orientation="vertical" android:paddingStart="16dp"> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="21dp" android:layout_marginBottom="11dp" android:drawableStart="@mipmap/icon_time_xiao" android:drawablePadding="13dp" android:text="4月3日 14:00" android:textColor="#ffffffff" android:textSize="26sp" android:textStyle="bold" /> <TextView android:id="@+id/tv_start_address" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="28dp" android:layout_marginBottom="11dp" android:drawableStart="@drawable/bg_point_main_color_slab" android:drawablePadding="13dp" android:text="柳州市政府旁红旗连锁超市" android:textColor="#ffffffff" android:textSize="26sp" android:textStyle="bold" /> <TextView android:id="@+id/tv_end_address" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="28dp" android:layout_marginBottom="11dp" android:drawableStart="@drawable/bg_point_main_color_black_slab" android:drawablePadding="13dp" android:text="柳州客运中心" android:textColor="#ffffffff" android:textSize="26sp" android:textStyle="bold" /> <TextView android:id="@+id/tv_name_phone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="28dp" android:layout_marginBottom="11dp" android:drawableStart="@drawable/bg_point_main_color_black_slab" android:drawablePadding="13dp" android:text="张三-145764578" android:textColor="#ffffffff" android:textSize="26sp" android:textStyle="bold" /> <TextView android:id="@+id/tv_type_cargo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="28dp" android:layout_marginBottom="11dp" android:drawableStart="@drawable/bg_point_main_color_black_slab" android:drawablePadding="13dp" android:text="普通小件" android:textColor="#ffffffff" android:textSize="26sp" android:textStyle="bold" /> <TextView android:id="@+id/tv_red_money" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="28dp" android:layout_marginBottom="11dp" android:drawableStart="@drawable/bg_point_main_color_black_slab" android:drawablePadding="18dp" android:text="8元加急费" android:textColor="#ffffffff" android:textSize="26sp" android:textStyle="bold" /> </LinearLayout> </LinearLayout> <RelativeLayout android:id="@+id/rl_map" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/rl_top" android:layout_marginStart="407dp" android:layout_marginTop="23dp"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginStart="23dp" android:layout_marginEnd="26dp" android:layout_marginBottom="20dp"> <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="match_parent" app:cardCornerRadius="6dp"> <com.amap.api.maps.MapView android:id="@+id/map_view" android:layout_width="match_parent" android:layout_height="match_parent" /> </androidx.cardview.widget.CardView> </RelativeLayout> <ImageView android:id="@+id/iv_move" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentBottom="true" android:layout_marginStart="33dp" android:layout_marginBottom="40dp" android:src="@mipmap/pos" /> <TextView android:id="@+id/tv_gap_money" android:layout_width="wrap_content" android:layout_height="40dp" android:text="补差价" android:layout_marginBottom="20dp" android:gravity="center" android:textSize="30dp" android:textColor="@color/main_yellow" android:layout_above="@+id/iv_to_gd" android:layout_alignEnd="@+id/iv_to_gd" android:src="@mipmap/daohang"/> <ImageView android:id="@+id/iv_to_gd" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" android:layout_marginEnd="40dp" android:layout_marginBottom="40dp" android:src="@mipmap/daohang" /> </RelativeLayout> <RelativeLayout android:id="@+id/rl_persion_info" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/rl_top" android:layout_marginStart="450dp" android:layout_marginTop="23dp" android:visibility="gone"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/tv_title_top" android:layout_width="wrap_content" android:layout_height="91dp" android:gravity="center" android:text="服 务 监 督 卡" android:textColor="#ED5F08" android:textSize="66sp" android:textStyle="bold" /> <TextView android:id="@+id/tv_code_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:layout_marginTop="16dp" android:text="证号:123441415242345678" android:textColor="#ffffffff" android:textSize="30sp" /> <TextView android:id="@+id/tv_name_car_man" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="11dp" android:textStyle="bold" android:text="姓名:张师傅" android:textColor="#ffffffff" android:textSize="30sp" /> <TextView android:id="@+id/tv_car_num_var" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="11dp" android:text="车牌:桂B12345" android:textStyle="bold" android:textColor="#ffffffff" android:textSize="30sp" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="11dp" android:gravity="center_vertical" android:orientation="horizontal"> <TextView android:id="@+id/tv_star_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="星级:" android:textStyle="bold" android:textColor="#ffffffff" android:textSize="30sp" /> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recycler_view_start" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> <TextView android:id="@+id/tv_company" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="11dp" android:text="公司:云森科技公司" android:textStyle="bold" android:textColor="#ffffffff" android:textSize="30sp" /> <TextView android:id="@+id/tv_time_send_prove" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="11dp" android:text="发证日期:2018.12.1" android:textStyle="bold" android:textColor="#ffffffff" android:textSize="30sp" /> </LinearLayout> <ImageView android:id="@+id/iv_head" android:layout_width="200dp" android:layout_height="200dp" android:layout_alignParentEnd="true" android:layout_marginTop="160dp" android:layout_marginEnd="26dp" /> <TextView android:id="@+id/tv_current_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/iv_head" android:layout_alignParentEnd="true" android:layout_marginTop="14dp" android:textStyle="bold" android:layout_marginEnd="35dp" android:text="8月32日星期三" android:textColor="#ffffffff" android:textSize="26sp" /> </RelativeLayout> <TextView android:id="@+id/tv_change" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/rl_map" android:layout_alignEnd="@+id/rl_map" android:layout_marginEnd="26dp" android:background="@drawable/bg_login" android:paddingStart="25dp" android:paddingTop="13dp" android:paddingEnd="25dp" android:paddingBottom="13dp" android:text="收起" android:textColor="#ffffffff" android:textSize="40sp" /> <com.okgoincar.utils.view.SlidingButton android:id="@+id/slide_btn" android:layout_width="384dp" android:layout_height="94dp" android:layout_alignParentBottom="true" android:layout_marginStart="26dp" android:layout_marginEnd="26dp" android:layout_marginBottom="14dp" android:visibility="gone" /> <Button android:id="@+id/btn_start" android:layout_width="wrap_content" android:layout_marginStart="150dp" android:text="开始行程" android:visibility="gone" android:layout_height="match_parent"/> <Button android:id="@+id/btn_end" android:layout_width="wrap_content" android:layout_marginStart="300dp" android:text="结束行程" android:visibility="gone" android:layout_height="match_parent"/> </RelativeLayout> app/src/main/res/layout/dialog_cargo.xml
New file @@ -0,0 +1,108 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:layout_width="716dp" android:layout_height="wrap_content" android:layout_centerInParent="true"> <RelativeLayout android:id="@+id/rl_top_slab_cargo" android:layout_width="716dp" android:layout_height="wrap_content" android:background="@drawable/bg_green_4"> <TextView android:id="@+id/tv_hint_base_slab_cargo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="37dp" android:text="验证码" android:textColor="#ffffa72d" android:textSize="60sp" /> <TextView android:id="@+id/view_slab_del_and_sure_cargo" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/tv_hint_base_slab_cargo" android:layout_marginLeft="48dp" android:layout_marginTop="25dp" android:layout_marginRight="48dp" android:text="请输入用户的取件码,验收收件人真实性" android:textColor="@color/white" android:textSize="40dp" /> <EditText android:id="@+id/tv_view_two_base_cargo" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/view_slab_del_and_sure_cargo" android:layout_centerHorizontal="true" android:layout_marginStart="50dp" android:layout_marginTop="70dp" android:layout_marginEnd="50dp" android:layout_marginBottom="50dp" android:background="#396F6A" android:hint="取件码" android:inputType="number" android:maxLength="10" android:paddingStart="10dp" android:paddingTop="10dp" android:paddingEnd="10dp" android:paddingBottom="10dp" android:text="" android:textColor="#ffffffff" android:textColorHint="@color/write_50" android:textSize="40sp" /> </RelativeLayout> <LinearLayout android:layout_width="716dp" android:layout_height="wrap_content" android:layout_below="@+id/rl_top_slab_cargo" android:layout_centerInParent="true" android:layout_marginStart="16dp" android:layout_marginTop="40dp" android:layout_marginEnd="16dp" android:layout_marginBottom="21dp" android:orientation="horizontal"> <TextView android:id="@+id/tv_close_base_cargo" android:layout_width="0dp" android:layout_height="68dp" android:layout_marginStart="48dp" android:layout_marginEnd="50dp" android:layout_weight="1" android:background="@drawable/bg_orange_slab_line_4" android:gravity="center" android:text="取消" android:textColor="#fff28105" android:textSize="40sp" android:textStyle="bold" /> <TextView android:id="@+id/tv_sure_base_cargo" android:layout_width="0dp" android:layout_height="68dp" android:layout_marginStart="50dp" android:layout_marginEnd="48dp" android:layout_weight="1" android:background="@drawable/bg_login" android:gravity="center" android:text="确认" android:textColor="#ffffffff" android:textSize="40sp" /> </LinearLayout> </RelativeLayout> </RelativeLayout> app/src/main/res/layout/dialog_show_cha_money.xml
New file @@ -0,0 +1,108 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:layout_width="716dp" android:layout_height="wrap_content" android:layout_centerInParent="true"> <RelativeLayout android:id="@+id/rl_top_slab_cha" android:layout_width="716dp" android:layout_height="wrap_content" android:background="@drawable/bg_green_4"> <TextView android:id="@+id/tv_hint_base_slab_cha" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="37dp" android:text="补差价" android:textColor="#ffffa72d" android:textSize="60sp" /> <TextView android:id="@+id/view_slab_del_and_sure_cha" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/tv_hint_base_slab_cha" android:layout_marginLeft="48dp" android:layout_marginTop="25dp" android:layout_marginRight="48dp" android:text="填写需要和客户确认好的支付金额" android:textColor="@color/white" android:textSize="40dp" /> <EditText android:id="@+id/tv_view_two_base_cha" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/view_slab_del_and_sure_cha" android:layout_centerHorizontal="true" android:layout_marginStart="50dp" android:layout_marginTop="70dp" android:layout_marginEnd="50dp" android:layout_marginBottom="50dp" android:background="#396F6A" android:hint="填写金额" android:inputType="numberDecimal" android:maxLength="10" android:paddingStart="10dp" android:paddingTop="10dp" android:paddingEnd="10dp" android:paddingBottom="10dp" android:text="" android:textColor="#ffffffff" android:textColorHint="@color/write_50" android:textSize="40sp" /> </RelativeLayout> <LinearLayout android:layout_width="716dp" android:layout_height="wrap_content" android:layout_below="@+id/rl_top_slab_cha" android:layout_centerInParent="true" android:layout_marginStart="16dp" android:layout_marginTop="40dp" android:layout_marginEnd="16dp" android:layout_marginBottom="21dp" android:orientation="horizontal"> <TextView android:id="@+id/tv_close_base_cha" android:layout_width="0dp" android:layout_height="68dp" android:layout_marginStart="48dp" android:layout_marginEnd="50dp" android:layout_weight="1" android:background="@drawable/bg_orange_slab_line_4" android:gravity="center" android:text="取消" android:textColor="#fff28105" android:textSize="40sp" android:textStyle="bold" /> <TextView android:id="@+id/tv_sure_base_cha" android:layout_width="0dp" android:layout_height="68dp" android:layout_marginStart="50dp" android:layout_marginEnd="48dp" android:layout_weight="1" android:background="@drawable/bg_login" android:gravity="center" android:text="确认" android:textColor="#ffffffff" android:textSize="40sp" /> </LinearLayout> </RelativeLayout> </RelativeLayout> app/src/main/res/layout/item_get_order.xml
@@ -124,6 +124,32 @@ android:textStyle="bold" /> <TextView android:id="@+id/tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:layout_marginBottom="6dp" android:drawableStart="@drawable/bg_point_main_color_black_slab" android:drawablePadding="5dp" android:text="张三-169345734" android:textColor="@color/write" android:textSize="32sp" android:textStyle="bold" /> <TextView android:id="@+id/tv_cargo_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:layout_marginBottom="6dp" android:drawableStart="@drawable/bg_point_main_color_black_slab" android:drawablePadding="5dp" android:text="普通小件" android:textColor="@color/write" android:textSize="32sp" android:textStyle="bold" /> <TextView android:id="@+id/tv_money" android:layout_width="wrap_content" android:layout_height="wrap_content" @@ -132,7 +158,7 @@ android:layout_marginBottom="17dp" android:drawableStart="@mipmap/hongbao_xiao" android:drawablePadding="10dp" android:text="8元小费" android:text="2元加急费" android:textColor="@color/write" android:textSize="32sp" android:textStyle="bold" />