app/src/main/AndroidManifest.xml
@@ -75,6 +75,10 @@ android:name=".ui.main.SetDestinationActivity" android:exported="false" /> <activity android:name=".ui.to_city.CityOrderReassignConfirmActivity" android:exported="true" android:theme="@style/FadeDialog" /> <activity android:name=".ui.to_city.ChangePriceActivity" android:exported="false" /> <activity app/src/main/java/com/fangxinxing/xxfxx/base/Const.java
@@ -74,6 +74,8 @@ public final static String OFFLINE = "OFFLINE"; public final static String REASSIGN_END_CANCEL = "REASSIGN_END_CANCEL"; public final static String REASSIGN_CONFIRM_REQUEST = "REASSIGN_CONFIRM_REQUEST"; public final static String REASSIGN_RESULT = "REASSIGN_RESULT"; public final static String PASSENGERS_LOCATION_REFRESH = "PASSENGER_LOCATION"; } app/src/main/java/com/fangxinxing/xxfxx/base/MyApplication.kt
@@ -15,6 +15,9 @@ import androidx.annotation.RequiresApi import cn.jpush.android.api.JPushInterface import cn.jpush.android.api.TagAliasCallback import com.fangxinxing.xxfxx.bean.ReassignConfirmInfo import com.fangxinxing.xxfxx.bean.ReassignResultInfo import com.fangxinxing.xxfxx.ui.to_city.CityOrderReassignConfirmActivity import com.fangxinxing.xxfxx.BuildConfig import com.fangxinxing.xxfxx.base.gaode.AMapKit import com.fangxinxing.xxfxx.base.gaode.gpsnav.util.TTSController @@ -36,6 +39,7 @@ import com.fangxinxing.xxfxx.bean.OrderResData import com.fangxinxing.xxfxx.bean.OrderSimpleData import com.fangxinxing.xxfxx.bean.websocket.HeartBean import com.fangxinxing.xxfxx.ui.DialogUtil import com.google.gson.Gson import com.tencent.bugly.crashreport.CrashReport import com.umeng.commonsdk.UMConfigure @@ -305,6 +309,36 @@ ) } Const.SOCKET_METHOD.REASSIGN_CONFIRM_REQUEST -> { val info = Gson().fromJson(data, ReassignConfirmInfo::class.java) if (reassignIds != info.reassignIds) { reassignIds = info.reassignIds val act = activities[activities.size - 1] act?.startActivity( CityOrderReassignConfirmActivity.getIntent( act, info ).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) } ) } } Const.SOCKET_METHOD.REASSIGN_RESULT -> { val info = Gson().fromJson(data, ReassignResultInfo::class.java) val act = activities[activities.size - 1] act?.also { it.runOnUiThread { EventBus.getDefault().post(BaseEvent(BaseEvent.REFREASH_MAIN)) val dialog = DialogUtil.getOnlySureDialog(it, "提示", info.message) { } dialog.show() } } } Const.SOCKET_METHOD.PASSENGERS_LOCATION_REFRESH -> { EventBus.getDefault().post( BaseEvent(BaseEvent.PASSENGERS_LOCATION_REFRESH, data) @@ -425,6 +459,7 @@ mutableListOf() var testHeartNunm = 0 var testReceiveNum = 0 var reassignIds = "" fun handleSSLHandshake() { try { app/src/main/java/com/fangxinxing/xxfxx/bean/OperationBean.kt
New file @@ -0,0 +1,4 @@ package com.fangxinxing.xxfxx.bean //操作类结果 data class OperationBean(val code: Int = 0, val msg: String? = null, val data: Boolean? = null) app/src/main/java/com/fangxinxing/xxfxx/bean/ReassignConfirmInfo.kt
New file @@ -0,0 +1,17 @@ package com.fangxinxing.xxfxx.bean import android.os.Parcelable import kotlinx.android.parcel.Parcelize //改派确认信息 @Parcelize data class ReassignConfirmInfo( var reassignIds: String,//逗号分隔的改派记录ID var orderIds: String,//订单ID值,逗号分隔 var startSite: String,//起始站点 var endSite: String,//结束站点 var routeInfo: String,//起始站点 → 结束站点 var totalPeopleNumber: String,//总人数 var travelTime: String,//开始时间 var expireTime: String,//过期时间 ) : Parcelable app/src/main/java/com/fangxinxing/xxfxx/bean/ReassignResultInfo.kt
New file @@ -0,0 +1,14 @@ package com.fangxinxing.xxfxx.bean import android.os.Parcelable import kotlinx.android.parcel.Parcelize //改派结果信息 @Parcelize data class ReassignResultInfo( var reassignId: String,//改派记录ID var type: String,//类型 var orderId: String,//订单id var orderType: String,//订单类型 var message: String,//提示语 ) : Parcelable app/src/main/java/com/fangxinxing/xxfxx/netUtls/Api.java
@@ -52,6 +52,7 @@ public static String queryHistoryActivityInfo = "api/driver/queryHistoryActivityInfo"; //api/driver/queryHistoryActivityInfo 获取历史日期中的活动内容 public static String queryNeedCertificate = "base/driver/queryNeedCertificate"; //base/driver/queryNeedCertificate 注册完善个人信息根据选择的从业地判断是否需要网约车资格证 public static String addSelfTrip = "api/crossCity/addSelfTrip"; //api/crossCity/addSelfTrip 添加自主行程 public static String respondReassign = "api/orderCrossCity/respondReassign"; //api/orderCrossCity/respondReassign 操作司机改派订单 public static String queryDriverLocation = "base/driver/queryNearbyCar"; // 获取司机位置 public static String queryHeatLocation = "base/driver/queryNearbyOrderHeatMap"; // 获取热力点 app/src/main/java/com/fangxinxing/xxfxx/ui/to_city/CityOrderReassignConfirmActivity.kt
New file @@ -0,0 +1,81 @@ package com.fangxinxing.xxfxx.ui.to_city import android.content.Context import android.content.Intent import cn.sinata.xldutils.activitys.DialogActivity import com.fangxinxing.xxfxx.R import com.fangxinxing.xxfxx.base.BaseEvent import com.fangxinxing.xxfxx.bean.OperationBean import com.fangxinxing.xxfxx.bean.ReassignConfirmInfo import com.fangxinxing.xxfxx.netUtls.Api import com.fangxinxing.xxfxx.netUtls.callNet import com.fangxinxing.xxfxx.netUtls.getMapByAny import com.fangxinxing.xxfxx.utils.clickDelay import com.fangxinxing.xxfxx.utils.toast import com.google.gson.Gson import kotlinx.android.synthetic.main.activity_city_order_reassign_confirm.tv_close import kotlinx.android.synthetic.main.activity_city_order_reassign_confirm.tv_end import kotlinx.android.synthetic.main.activity_city_order_reassign_confirm.tv_people_num import kotlinx.android.synthetic.main.activity_city_order_reassign_confirm.tv_start import kotlinx.android.synthetic.main.activity_city_order_reassign_confirm.tv_sure import kotlinx.android.synthetic.main.activity_city_order_reassign_confirm.tv_time import org.greenrobot.eventbus.EventBus //跨城改派确认弹窗页 class CityOrderReassignConfirmActivity : DialogActivity() { private val info: ReassignConfirmInfo by lazy { intent.getParcelableExtra("data") } companion object { fun getIntent(context: Context, info: ReassignConfirmInfo): Intent { return Intent(context, CityOrderReassignConfirmActivity::class.java).apply { putExtra("data", info) } } } override fun setContentLayout(): Int { return R.layout.activity_city_order_reassign_confirm } override fun initView() { tv_time.text = info.travelTime tv_start.text = info.startSite tv_end.text = info.endSite tv_people_num.text = info.totalPeopleNumber + "人" tv_close.clickDelay { refused() } tv_sure.clickDelay { confirm() } } //拒绝 private fun refused() { operation(2) { finish() } } //同意 private fun confirm() { operation(1) { isOk -> finish() if (isOk) { EventBus.getDefault().post(BaseEvent(BaseEvent.REFREASH_MAIN)) } } } //操作 private fun operation(responseType: Int, clickAction: (isOk: Boolean) -> Unit) { val map = getMapByAny() map["reassignIds"] = info.reassignIds map["responseType"] = responseType callNet(this, Api.respondReassign, map) { val bean = Gson().fromJson(it, OperationBean::class.java) clickAction.invoke(bean.data == true) if (bean.data != true && !bean.msg.isNullOrEmpty()) { toast(bean.msg) } } } } app/src/main/java/com/fangxinxing/xxfxx/ui/to_city/SelectDriverActivity.kt
@@ -79,6 +79,7 @@ override fun mapObject(): HashMap<String?, Any?>? { var map = getMapByAny() map["driverShiftId"] = lineShiftDriverId map["orderIds"] = orderId return map } app/src/main/res/layout/activity_city_order_reassign_confirm.xml
New file @@ -0,0 +1,163 @@ <?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" android:background="@color/transparent"> <LinearLayout android:layout_width="280dp" android:layout_height="wrap_content" android:layout_centerInParent="true" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="64dp" android:background="@drawable/car_get_top"> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="11dp" android:text="跨城出行订单" android:textColor="#ffffffff" android:textSize="18sp" /> <TextView android:id="@+id/tv_reassign" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/tv_title" android:layout_centerHorizontal="true" android:layout_marginStart="7dp" android:layout_marginTop="2dp" android:background="@drawable/bg_white_round_2" android:paddingStart="10dp" android:paddingTop="2dp" android:paddingEnd="10dp" android:paddingBottom="2dp" android:text="同行改派" android:textColor="#fffd943a" android:textSize="11sp" /> <TextView android:id="@+id/tv_title_hint" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@id/tv_title" android:layout_marginStart="2dp" android:layout_marginEnd="20dp" android:layout_toRightOf="@+id/tv_title" android:background="@drawable/bg_white_round_2" android:paddingStart="2dp" android:paddingTop="1dp" android:paddingEnd="2dp" android:paddingBottom="1dp" android:text="拼车" android:textColor="#ff4680EB" android:textSize="11sp" android:visibility="gone" /> </RelativeLayout> <LinearLayout android:id="@+id/ll_order_top" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/white" android:orientation="vertical" android:paddingStart="33dp" android:paddingTop="15dp" android:paddingBottom="11dp"> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:layout_marginBottom="6dp" android:drawableStart="@mipmap/icon_time_gray" android:drawablePadding="5dp" android:text="4月3日 14:00" android:textColor="#666666" android:textSize="16sp" android:textStyle="bold" /> <TextView android:id="@+id/tv_start" 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" android:drawablePadding="5dp" android:text="" android:textColor="#ff27282d" android:textSize="16sp" android:textStyle="bold" /> <TextView android:id="@+id/tv_end" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:layout_marginBottom="6dp" android:drawableStart="@drawable/bg_point_end" android:drawablePadding="5dp" android:text="" android:textColor="#ff27282d" android:textSize="16sp" android:textStyle="bold" /> <TextView android:id="@+id/tv_people_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="3dp" android:layout_marginBottom="6dp" android:drawableStart="@mipmap/icon_people_gray" android:drawablePadding="5dp" android:text="" android:textColor="#ff27282d" android:textSize="16sp" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="17dp" android:orientation="horizontal"> <TextView android:id="@+id/tv_close" android:layout_width="120dp" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:background="@drawable/car_get_close" android:gravity="center" android:paddingTop="8dp" android:paddingBottom="8dp" android:text="拒绝" android:textColor="@color/main_yellow_shen" android:textSize="16sp" /> <include layout="@layout/include_weight_width" /> <TextView android:id="@+id/tv_sure" android:layout_width="120dp" android:layout_height="wrap_content" android:layout_marginEnd="8dp" android:background="@drawable/car_get_start" android:gravity="center" android:paddingTop="8dp" android:paddingBottom="8dp" android:text="接收" android:textColor="@color/white" android:textSize="16sp" /> </LinearLayout> </LinearLayout> </RelativeLayout> app/src/main/res/layout/pop_pay.xml
@@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" xmlns:tools="http://schemas.android.com/tools" android:background="@color/l_transparent" android:layout_height="match_parent"> @@ -58,7 +59,8 @@ android:layout_height="wrap_content" android:background="@null" android:padding="5dp" android:visibility="visible" android:visibility="gone" tools:visibility="visible" android:text="微信支付" android:textColor="@color/black" android:textSize="@dimen/textSize" />