Merge remote-tracking branch 'origin/dev_robotaxi-d-app-module_2100_220816_2.10.0' into dev_robotaxi-d-app-module_2100_220816_2.10.0
This commit is contained in:
@@ -11,7 +11,8 @@ public class DriverStatusQueryRespBean extends BaseData {
|
|||||||
public Result data;
|
public Result data;
|
||||||
|
|
||||||
public static class Result {
|
public static class Result {
|
||||||
public int serviceStatus; //0收车,1出车
|
public int servingStatus; //0收车,1出车
|
||||||
|
public int driverStatus; //0收车,1出车
|
||||||
public String orderNo;
|
public String orderNo;
|
||||||
public int purpose; // 1 运营, 2 测试, 3演示
|
public int purpose; // 1 运营, 2 测试, 3演示
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,12 +7,24 @@ package com.mogo.och.taxi.bean;
|
|||||||
public class TaxiLoginReqBean {
|
public class TaxiLoginReqBean {
|
||||||
|
|
||||||
public String phone;
|
public String phone;
|
||||||
public String code;
|
public String captcha;
|
||||||
public String sn;
|
public String sn;
|
||||||
|
public Location4Login loc;
|
||||||
|
|
||||||
public TaxiLoginReqBean(String phone, String code, String sn) {
|
public TaxiLoginReqBean(String phone, String code, String sn,Location4Login location4Login) {
|
||||||
this.phone = phone;
|
this.phone = phone;
|
||||||
this.code = code;
|
this.captcha = code;
|
||||||
this.sn = sn;
|
this.sn = sn;
|
||||||
|
this.loc = location4Login;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Location4Login{
|
||||||
|
double lat;
|
||||||
|
double lon;
|
||||||
|
|
||||||
|
public Location4Login(double lat, double lon) {
|
||||||
|
this.lat = lat;
|
||||||
|
this.lon = lon;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package com.mogo.och.taxi.bean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by pangfan on 2021/8/19
|
||||||
|
* 司机端准备好或者乘客已验证上车请求参数
|
||||||
|
*/
|
||||||
|
public class TaxiLoginSmsReqBean {
|
||||||
|
|
||||||
|
public String phone;
|
||||||
|
|
||||||
|
public TaxiLoginSmsReqBean(String phone) {
|
||||||
|
this.phone = phone;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package com.mogo.och.taxi.bean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by pangfan on 2021/8/19
|
||||||
|
* 司机端准备好或者乘客已验证上车请求参数
|
||||||
|
*/
|
||||||
|
public class TaxiLogoutReqBean {
|
||||||
|
public String sn;
|
||||||
|
public Location4Login loc;
|
||||||
|
|
||||||
|
public TaxiLogoutReqBean(String sn, Location4Login location4Login) {
|
||||||
|
this.sn = sn;
|
||||||
|
this.loc = location4Login;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Location4Login{
|
||||||
|
double lat;
|
||||||
|
double lon;
|
||||||
|
|
||||||
|
public Location4Login(double lat, double lon) {
|
||||||
|
this.lat = lat;
|
||||||
|
this.lon = lon;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -14,4 +14,5 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public interface ITaxiLoginCallback {
|
public interface ITaxiLoginCallback {
|
||||||
void getPhoneCodeSuccess();
|
void getPhoneCodeSuccess();
|
||||||
|
void loginSuccess();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.mogo.och.taxi.constant
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created on 2022/08/19
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* 0 初始状态,
|
||||||
|
* 10 已登录,
|
||||||
|
* 20 已登出,
|
||||||
|
*/
|
||||||
|
enum class TaxiLoginStatusEnum(val code: Int) {
|
||||||
|
None( 0 ),
|
||||||
|
Login( 10),
|
||||||
|
Logout( 20),;
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
@JvmStatic
|
||||||
|
fun valueOf(code: Int): TaxiLoginStatusEnum? {
|
||||||
|
for (value in values()) {
|
||||||
|
if (value.code == code) {
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return None
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.mogo.och.taxi.constant
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created on 2022/08/19
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* 0 初始状态,
|
||||||
|
* 10 接单状态 可接单,
|
||||||
|
* 20 暂停接到哪 不可接单,
|
||||||
|
*/
|
||||||
|
enum class TaxiOpenOrderStatusEnum(val code: Int) {
|
||||||
|
None( 0 ),
|
||||||
|
Ordering( 10),
|
||||||
|
UnOrdering( 20),;
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
@JvmStatic
|
||||||
|
fun valueOf(code: Int): TaxiOpenOrderStatusEnum? {
|
||||||
|
for (value in values()) {
|
||||||
|
if (value.code == code) {
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return None
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,202 +0,0 @@
|
|||||||
package com.mogo.och.taxi.model;
|
|
||||||
|
|
||||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_OCH_TAXI_START_AUTOPILOT;
|
|
||||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_ADAS;
|
|
||||||
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT;
|
|
||||||
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.location.Location;
|
|
||||||
import android.net.ConnectivityManager;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
|
|
||||||
import com.amap.api.maps.model.LatLng;
|
|
||||||
import com.elegant.network.utils.GsonUtil;
|
|
||||||
import com.mogo.aicloud.services.socket.IMogoLifecycleListener;
|
|
||||||
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager;
|
|
||||||
import com.mogo.cloud.commons.utils.CoordinateUtils;
|
|
||||||
import com.mogo.commons.debug.DebugConfig;
|
|
||||||
import com.mogo.eagle.core.data.BaseData;
|
|
||||||
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
|
|
||||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo;
|
|
||||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
|
|
||||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningListener;
|
|
||||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
|
|
||||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager;
|
|
||||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
|
|
||||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager;
|
|
||||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
|
||||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
|
|
||||||
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr;
|
|
||||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils;
|
|
||||||
import com.mogo.eagle.core.utilcode.util.ToastUtils;
|
|
||||||
import com.mogo.map.navi.IMogoCarLocationChangedListener2;
|
|
||||||
import com.mogo.module.common.MogoApisHandler;
|
|
||||||
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
|
|
||||||
import com.mogo.och.common.module.utils.PinYinUtil;
|
|
||||||
import com.mogo.och.taxi.R;
|
|
||||||
import com.mogo.och.taxi.bean.DriverServiceDataRespBean;
|
|
||||||
import com.mogo.och.taxi.bean.DriverStatusQueryRespBean;
|
|
||||||
import com.mogo.och.taxi.bean.OrderGrabRespBean;
|
|
||||||
import com.mogo.och.taxi.bean.OrderGrabStatusQueryRespBean;
|
|
||||||
import com.mogo.och.taxi.bean.OrderQueryRespBean;
|
|
||||||
import com.mogo.och.taxi.bean.OrderQueryRouteInfoRespBean;
|
|
||||||
import com.mogo.och.taxi.bean.OrderRouteUpdateReqBean;
|
|
||||||
import com.mogo.och.taxi.bean.OrdersInServiceQueryRespBean;
|
|
||||||
import com.mogo.och.taxi.bean.OrdersListQueryRespBean;
|
|
||||||
import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean;
|
|
||||||
import com.mogo.och.taxi.bean.QueryOrderRouteResp;
|
|
||||||
import com.mogo.och.taxi.bean.TaxiDataBaseRespBean;
|
|
||||||
import com.mogo.och.taxi.bean.TaxiLoginRespBean;
|
|
||||||
import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean;
|
|
||||||
import com.mogo.och.taxi.callback.ITaxiADASStatusCallback;
|
|
||||||
import com.mogo.och.taxi.callback.ITaxiCarStatusCallback;
|
|
||||||
import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback;
|
|
||||||
import com.mogo.och.taxi.callback.ITaxiLoginCallback;
|
|
||||||
import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback;
|
|
||||||
import com.mogo.och.taxi.constant.TaxiConst;
|
|
||||||
import com.mogo.och.taxi.constant.TaxiDriverRoleEnum;
|
|
||||||
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum;
|
|
||||||
import com.mogo.och.taxi.constant.TaxiOrderTypeEnum;
|
|
||||||
import com.mogo.och.taxi.network.TaxiServiceCallback;
|
|
||||||
import com.mogo.och.taxi.network.TaxiServiceManager;
|
|
||||||
import com.mogo.och.taxi.utils.OrderUtil;
|
|
||||||
import com.mogo.och.taxi.utils.TaxiAnalyticsManager;
|
|
||||||
import com.mogo.och.taxi.utils.TaxiTrajectoryManager;
|
|
||||||
import com.mogo.service.intent.IMogoIntentListener;
|
|
||||||
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
|
||||||
import com.mogo.service.statusmanager.StatusDescriptor;
|
|
||||||
import com.zhjt.service.chain.ChainLog;
|
|
||||||
import com.zhjt.service.chain.TracingConstants;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import io.reactivex.exceptions.UndeliverableException;
|
|
||||||
import io.reactivex.functions.Consumer;
|
|
||||||
import io.reactivex.plugins.RxJavaPlugins;
|
|
||||||
import mogo.telematics.pad.MessagePad;
|
|
||||||
import mogo_msg.MogoReportMsg;
|
|
||||||
import system_master.SystemStatusInfo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by pangfan on 2021/8/19
|
|
||||||
* <p>
|
|
||||||
* 网约车 - 出租车业务逻辑处理
|
|
||||||
*/
|
|
||||||
public class TaxiLoginModel {
|
|
||||||
|
|
||||||
private static final String TAG = TaxiLoginModel.class.getSimpleName();
|
|
||||||
|
|
||||||
private static final class SingletonHolder {
|
|
||||||
private static final TaxiLoginModel INSTANCE = new TaxiLoginModel();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TaxiLoginModel getInstance() {
|
|
||||||
return SingletonHolder.INSTANCE;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Context mContext;
|
|
||||||
|
|
||||||
ITaxiLoginCallback iTaxiLoginCallback;
|
|
||||||
|
|
||||||
|
|
||||||
private TaxiLoginModel() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public void init(Context context) {
|
|
||||||
mContext = context.getApplicationContext();
|
|
||||||
}
|
|
||||||
|
|
||||||
public ITaxiLoginCallback getiTaxiLoginCallback() {
|
|
||||||
return iTaxiLoginCallback;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setiTaxiLoginCallback(ITaxiLoginCallback iTaxiLoginCallback) {
|
|
||||||
this.iTaxiLoginCallback = iTaxiLoginCallback;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void release() {
|
|
||||||
this.iTaxiLoginCallback = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取手机验证码
|
|
||||||
*/
|
|
||||||
public void getPhoneCode(String phone) {
|
|
||||||
TaxiServiceManager.getInstance().getPhoneCode(mContext,phone,
|
|
||||||
new TaxiServiceCallback<BaseData>() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess(BaseData data) {
|
|
||||||
if (null != data && 0 == data.code) {
|
|
||||||
// 获取验证码成功
|
|
||||||
ToastUtils.showShort(mContext.getString(R.string.module_och_taxi_login_get_code_success));
|
|
||||||
if(iTaxiLoginCallback!=null){
|
|
||||||
iTaxiLoginCallback.getPhoneCodeSuccess();
|
|
||||||
}
|
|
||||||
}else {
|
|
||||||
if(data!=null) {
|
|
||||||
ToastUtils.showShort(data.code);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError() {
|
|
||||||
if (!NetworkUtils.isConnected(mContext)) {
|
|
||||||
ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
|
|
||||||
} else {
|
|
||||||
ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFail(int code, String msg) {
|
|
||||||
ToastUtils.showShort(code + "," + msg);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public void gotoLogin(@NotNull String phone, @NotNull String code) {
|
|
||||||
TaxiServiceManager.getInstance().gotoLoginBycode(mContext,phone,code,
|
|
||||||
new TaxiServiceCallback<TaxiLoginRespBean>() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess(TaxiLoginRespBean data) {
|
|
||||||
if (null != data && 0 == data.code) {
|
|
||||||
// 获取验证码成功
|
|
||||||
ToastUtils.showShort(mContext.getString(R.string.module_och_taxi_login_get_code_success));
|
|
||||||
if(iTaxiLoginCallback!=null){
|
|
||||||
iTaxiLoginCallback.getPhoneCodeSuccess();
|
|
||||||
}
|
|
||||||
}else {
|
|
||||||
if(data!=null) {
|
|
||||||
ToastUtils.showShort(data.code);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError() {
|
|
||||||
if (!NetworkUtils.isConnected(mContext)) {
|
|
||||||
ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
|
|
||||||
} else {
|
|
||||||
ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFail(int code, String msg) {
|
|
||||||
ToastUtils.showShort(code + "," + msg);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,128 @@
|
|||||||
|
package com.mogo.och.taxi.model
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
|
import android.content.Context
|
||||||
|
import com.mogo.eagle.core.data.BaseData
|
||||||
|
import com.mogo.eagle.core.utilcode.util.NetworkUtils
|
||||||
|
import com.mogo.och.taxi.model.TaxiLoginModel
|
||||||
|
import com.mogo.och.taxi.callback.ITaxiLoginCallback
|
||||||
|
import com.mogo.module.common.MogoApisHandler
|
||||||
|
import com.mogo.map.navi.IMogoCarLocationChangedListener2
|
||||||
|
import com.mogo.och.taxi.network.TaxiServiceManager
|
||||||
|
import com.mogo.och.taxi.network.TaxiServiceCallback
|
||||||
|
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||||
|
import com.mogo.och.taxi.R
|
||||||
|
import com.mogo.och.taxi.bean.TaxiLoginReqBean
|
||||||
|
import com.mogo.och.taxi.bean.TaxiLoginRespBean
|
||||||
|
import com.mogo.och.taxi.constant.TaxiLoginStatusEnum
|
||||||
|
import com.mogo.och.taxi.utils.StatusManager
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by pangfan on 2021/8/19
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* 网约车 - 出租车业务逻辑处理
|
||||||
|
*/
|
||||||
|
@SuppressLint("StaticFieldLeak")
|
||||||
|
object TaxiLoginModel{
|
||||||
|
|
||||||
|
private val TAG = "TaxiLoginModel"
|
||||||
|
private var mContext: Context? = null
|
||||||
|
var iTaxiLoginCallback: ITaxiLoginCallback? = null
|
||||||
|
private var mLongitude = 0.0
|
||||||
|
private var mLatitude = 0.0
|
||||||
|
fun init(context: Context) {
|
||||||
|
mContext = context.applicationContext
|
||||||
|
// 达到起始站围栏监听
|
||||||
|
MogoApisHandler.getInstance()
|
||||||
|
.apis
|
||||||
|
.registerCenterApi
|
||||||
|
.registerCarLocationChangedListener(TAG, mCarLocationChangedListener2)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 自车定位
|
||||||
|
private val mCarLocationChangedListener2 = IMogoCarLocationChangedListener2 { location ->
|
||||||
|
mLongitude = location.longitude
|
||||||
|
mLatitude = location.latitude
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getiTaxiLoginCallback(): ITaxiLoginCallback? {
|
||||||
|
return iTaxiLoginCallback
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setiTaxiLoginCallback(iTaxiLoginCallback: ITaxiLoginCallback?) {
|
||||||
|
this.iTaxiLoginCallback = iTaxiLoginCallback
|
||||||
|
}
|
||||||
|
|
||||||
|
fun release() {
|
||||||
|
mContext = null
|
||||||
|
iTaxiLoginCallback = null
|
||||||
|
// 注销到达起始站围栏监听
|
||||||
|
MogoApisHandler.getInstance().apis.registerCenterApi
|
||||||
|
.unregisterCarLocationChangedListener(TAG, mCarLocationChangedListener2)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取手机验证码
|
||||||
|
*/
|
||||||
|
fun getPhoneCode(phone: String?) {
|
||||||
|
TaxiServiceManager.getInstance().getPhoneCode(mContext, phone,
|
||||||
|
object : TaxiServiceCallback<BaseData?> {
|
||||||
|
override fun onSuccess(data: BaseData?) {
|
||||||
|
if (null != data && 0 == data.code) {
|
||||||
|
// 获取验证码成功
|
||||||
|
ToastUtils.showShort(mContext!!.getString(R.string.module_och_taxi_login_get_code_success))
|
||||||
|
iTaxiLoginCallback?.getPhoneCodeSuccess()
|
||||||
|
} else {
|
||||||
|
if (data != null) {
|
||||||
|
ToastUtils.showShort(data.code)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onError() {
|
||||||
|
if (!NetworkUtils.isConnected(mContext)) {
|
||||||
|
ToastUtils.showShort(mContext!!.getString(R.string.network_error_tip))
|
||||||
|
} else {
|
||||||
|
ToastUtils.showShort(mContext!!.getString(R.string.request_error_tip))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onFail(code: Int, msg: String) {
|
||||||
|
ToastUtils.showShort("$code,$msg")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
fun gotoLogin(phone: String, code: String) {
|
||||||
|
val location4Login = TaxiLoginReqBean.Location4Login(mLatitude, mLongitude)
|
||||||
|
TaxiServiceManager.getInstance().gotoLoginBycode(mContext, phone, code, location4Login,
|
||||||
|
object : TaxiServiceCallback<TaxiLoginRespBean?> {
|
||||||
|
override fun onSuccess(data: TaxiLoginRespBean?) {
|
||||||
|
if (null != data && 0 == data.code) {
|
||||||
|
// 获取验证码成功
|
||||||
|
ToastUtils.showShort(mContext!!.getString(R.string.module_och_taxi_login_login_success))
|
||||||
|
StatusManager.setLoginStatus(TaxiLoginStatusEnum.Login)
|
||||||
|
iTaxiLoginCallback?.loginSuccess()
|
||||||
|
} else {
|
||||||
|
if (data != null) {
|
||||||
|
ToastUtils.showShort(data.code)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onError() {
|
||||||
|
if (!NetworkUtils.isConnected(mContext)) {
|
||||||
|
ToastUtils.showShort(mContext!!.getString(R.string.network_error_tip))
|
||||||
|
} else {
|
||||||
|
ToastUtils.showShort(mContext!!.getString(R.string.request_error_tip))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onFail(code: Int, msg: String) {
|
||||||
|
ToastUtils.showShort("$code,$msg")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -49,6 +49,7 @@ import com.mogo.och.taxi.bean.OrdersListQueryRespBean;
|
|||||||
import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean;
|
import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean;
|
||||||
import com.mogo.och.taxi.bean.QueryOrderRouteResp;
|
import com.mogo.och.taxi.bean.QueryOrderRouteResp;
|
||||||
import com.mogo.och.taxi.bean.TaxiDataBaseRespBean;
|
import com.mogo.och.taxi.bean.TaxiDataBaseRespBean;
|
||||||
|
import com.mogo.och.taxi.bean.TaxiLogoutReqBean;
|
||||||
import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean;
|
import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean;
|
||||||
import com.mogo.och.taxi.callback.ITaxiADASStatusCallback;
|
import com.mogo.och.taxi.callback.ITaxiADASStatusCallback;
|
||||||
import com.mogo.och.taxi.callback.ITaxiCarStatusCallback;
|
import com.mogo.och.taxi.callback.ITaxiCarStatusCallback;
|
||||||
@@ -56,10 +57,12 @@ import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback;
|
|||||||
import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback;
|
import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback;
|
||||||
import com.mogo.och.taxi.constant.TaxiDriverRoleEnum;
|
import com.mogo.och.taxi.constant.TaxiDriverRoleEnum;
|
||||||
import com.mogo.och.taxi.constant.TaxiConst;
|
import com.mogo.och.taxi.constant.TaxiConst;
|
||||||
|
import com.mogo.och.taxi.constant.TaxiLoginStatusEnum;
|
||||||
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum;
|
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum;
|
||||||
import com.mogo.och.taxi.constant.TaxiOrderTypeEnum;
|
import com.mogo.och.taxi.constant.TaxiOrderTypeEnum;
|
||||||
import com.mogo.och.taxi.network.TaxiServiceCallback;
|
import com.mogo.och.taxi.network.TaxiServiceCallback;
|
||||||
import com.mogo.och.taxi.network.TaxiServiceManager;
|
import com.mogo.och.taxi.network.TaxiServiceManager;
|
||||||
|
import com.mogo.och.taxi.utils.StatusManager;
|
||||||
import com.mogo.och.taxi.utils.TaxiAnalyticsManager;
|
import com.mogo.och.taxi.utils.TaxiAnalyticsManager;
|
||||||
import com.mogo.och.taxi.utils.OrderUtil;
|
import com.mogo.och.taxi.utils.OrderUtil;
|
||||||
import com.mogo.aicloud.services.socket.IMogoLifecycleListener;
|
import com.mogo.aicloud.services.socket.IMogoLifecycleListener;
|
||||||
@@ -103,7 +106,6 @@ public class TaxiModel {
|
|||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private volatile int mPrevAPStatus = -1; //前一次自动驾驶状态值
|
private volatile int mPrevAPStatus = -1; //前一次自动驾驶状态值
|
||||||
private volatile int mOCHCarStatus = -1; //出车/收车状态:1 出车;0 收车
|
|
||||||
private volatile String mPrevOrderNo = ""; //前一次的新到单id(当次和前一次orderId相同时,本次不再弹出)
|
private volatile String mPrevOrderNo = ""; //前一次的新到单id(当次和前一次orderId相同时,本次不再弹出)
|
||||||
private volatile OrderQueryRespBean.Result mNewBookingOrder; //新到待抢预约单
|
private volatile OrderQueryRespBean.Result mNewBookingOrder; //新到待抢预约单
|
||||||
private volatile OrderQueryRespBean.Result mCurrentOCHOrder; //当前订单
|
private volatile OrderQueryRespBean.Result mCurrentOCHOrder; //当前订单
|
||||||
@@ -255,17 +257,26 @@ public class TaxiModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//查询出车/收车状态
|
/**
|
||||||
|
* 查询出车/收车状态
|
||||||
|
* 1、初始化查下状态
|
||||||
|
* 2、点击更新接单状态 如果是初始化状态就查下状态
|
||||||
|
* 3、点击更新接单状态后 查询状态
|
||||||
|
* 4、网络状态波动时 查询状态
|
||||||
|
* 5、登出后更新状态
|
||||||
|
*/
|
||||||
public void queryCarStatus() {
|
public void queryCarStatus() {
|
||||||
TaxiServiceManager.getInstance().queryDriverServiceStatus(mContext,
|
TaxiServiceManager.getInstance().queryDriverServiceStatus(mContext,
|
||||||
new TaxiServiceCallback<DriverStatusQueryRespBean>() {
|
new TaxiServiceCallback<DriverStatusQueryRespBean>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(DriverStatusQueryRespBean data) {
|
public void onSuccess(DriverStatusQueryRespBean data) {
|
||||||
if (null != data && 0 == data.code) {
|
if (null != data && 0 == data.code) {
|
||||||
mOCHCarStatus = data.data.serviceStatus == 1 ? 1 : 0;
|
StatusManager.setLoginStatus(data.data.driverStatus);
|
||||||
|
StatusManager.setOpenOrderStatus(data.data.servingStatus);
|
||||||
//更新view
|
//更新view
|
||||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "changeCarStatus:" + mOCHCarStatus);
|
CallerLogger.INSTANCE.d(M_TAXI + TAG, "changeCarStatus:" + StatusManager.getLoginStatus());
|
||||||
startOrStopOrderLoop(mOCHCarStatus == 1);
|
startOrStopOrderLoop(StatusManager.isLogin());
|
||||||
|
mCarStatusCallback.onCarLoginStatusChange(StatusManager.isLogin());
|
||||||
String role = "";
|
String role = "";
|
||||||
if (TaxiDriverRoleEnum.DEMO.getCode() == data.data.purpose) {
|
if (TaxiDriverRoleEnum.DEMO.getCode() == data.data.purpose) {
|
||||||
role = TaxiConst.DEMO_USER;
|
role = TaxiConst.DEMO_USER;
|
||||||
@@ -273,7 +284,7 @@ public class TaxiModel {
|
|||||||
role = TaxiConst.TEST_USER;
|
role = TaxiConst.TEST_USER;
|
||||||
}
|
}
|
||||||
if (mCarStatusCallback != null) {
|
if (mCarStatusCallback != null) {
|
||||||
mCarStatusCallback.onCarStatusChanged(mOCHCarStatus == 1, role);
|
mCarStatusCallback.onCarStatusChanged(StatusManager.isOpeningOrderStatus(), role);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -299,17 +310,16 @@ public class TaxiModel {
|
|||||||
|
|
||||||
//更新出车收车状态
|
//更新出车收车状态
|
||||||
public void updateCarStatus() {
|
public void updateCarStatus() {
|
||||||
if (mOCHCarStatus == -1) {
|
if (StatusManager.getLoginStatus().equals(TaxiLoginStatusEnum.None)) {
|
||||||
queryCarStatus();
|
queryCarStatus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final int status = mOCHCarStatus == 1 ? 0 : 1;
|
TaxiServiceManager.getInstance().changeOrderServing(mContext,StatusManager.isOpeningOrderStatus(),
|
||||||
TaxiServiceManager.getInstance().updateDriverServiceStatus(mContext, status,
|
|
||||||
new TaxiServiceCallback<BaseData>() {
|
new TaxiServiceCallback<BaseData>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(BaseData data) {
|
public void onSuccess(BaseData data) {
|
||||||
if (null != data && 0 == data.code) {
|
if (null != data && 0 == data.code) {
|
||||||
mOCHCarStatus = status;
|
//StatusManager.changeOrderStatus();
|
||||||
queryCarStatus();
|
queryCarStatus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -328,6 +338,7 @@ public class TaxiModel {
|
|||||||
ToastUtils.showShort(code + "," + msg);
|
ToastUtils.showShort(code + "," + msg);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -972,7 +983,7 @@ public class TaxiModel {
|
|||||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "onIntentReceived = %s", intentStr);
|
CallerLogger.INSTANCE.d(M_TAXI + TAG, "onIntentReceived = %s", intentStr);
|
||||||
if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intentStr)) {
|
if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intentStr)) {
|
||||||
if (NetworkUtils.isConnected(mContext)) {
|
if (NetworkUtils.isConnected(mContext)) {
|
||||||
startOrStopOrderLoop(mOCHCarStatus == 1);
|
startOrStopOrderLoop(StatusManager.isLogin());
|
||||||
queryCarStatus();
|
queryCarStatus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1543,19 +1554,22 @@ public class TaxiModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 取消待服务中订单
|
// 登出
|
||||||
public void logout() {
|
public void logout() {
|
||||||
TaxiServiceManager.getInstance().logout(mContext,
|
TaxiLogoutReqBean.Location4Login location4Login = new TaxiLogoutReqBean.Location4Login(mLatitude, mLongitude);
|
||||||
|
TaxiServiceManager.getInstance().logout(mContext,location4Login,
|
||||||
new TaxiServiceCallback<BaseData>() {
|
new TaxiServiceCallback<BaseData>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(BaseData data) {
|
public void onSuccess(BaseData data) {
|
||||||
if (null != data && 0 == data.code) {
|
if (null != data && 0 == data.code) {
|
||||||
mCarStatusCallback.onCarLoginStatusChange(false);
|
mCarStatusCallback.onCarLoginStatusChange(false);
|
||||||
|
queryCarStatus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError() {
|
public void onError() {
|
||||||
|
mCarStatusCallback.onCarLoginStatusChange(false);
|
||||||
if (!NetworkUtils.isConnected(mContext)) {
|
if (!NetworkUtils.isConnected(mContext)) {
|
||||||
ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
|
ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ import com.mogo.och.taxi.bean.QueryOrderRouteResp;
|
|||||||
import com.mogo.och.taxi.bean.TaxiDataBaseRespBean;
|
import com.mogo.och.taxi.bean.TaxiDataBaseRespBean;
|
||||||
import com.mogo.och.taxi.bean.TaxiLoginReqBean;
|
import com.mogo.och.taxi.bean.TaxiLoginReqBean;
|
||||||
import com.mogo.och.taxi.bean.TaxiLoginRespBean;
|
import com.mogo.och.taxi.bean.TaxiLoginRespBean;
|
||||||
|
import com.mogo.och.taxi.bean.TaxiLoginSmsReqBean;
|
||||||
|
import com.mogo.och.taxi.bean.TaxiLogoutReqBean;
|
||||||
import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean;
|
import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean;
|
||||||
import com.mogo.och.taxi.bean.UpdateOrderDisAndTimeReqBean;
|
import com.mogo.och.taxi.bean.UpdateOrderDisAndTimeReqBean;
|
||||||
|
|
||||||
@@ -313,14 +315,14 @@ interface TaxiServiceApiNew {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取手机验证码
|
* 获取手机验证码
|
||||||
* @param sn
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||||
// @GET( "/autopilot-car-hailing/api/v1/driver/serviceStatus/query" )
|
// @GET( "/autopilot-car-hailing/api/v1/driver/serviceStatus/query" )
|
||||||
@GET( "/autopilot-car-hailing/car/v2/driver/taxi/serviceStatus/query" )
|
@POST( "/autopilot-car-hailing/driver/v2/driver/taxi/sendSms" )
|
||||||
Observable<DriverStatusQueryRespBean> getPhoneCode(@Header ("appId") String appId
|
Observable<DriverStatusQueryRespBean> getPhoneCode(@Header ("appId") String appId
|
||||||
,@Header("ticket") String ticket,@Query("sn") String sn,@Query("phone") String phone);
|
,@Header("ticket") String ticket,@Body TaxiLoginSmsReqBean data);
|
||||||
/**
|
/**
|
||||||
* 通过验证码登录
|
* 通过验证码登录
|
||||||
* @param appId
|
* @param appId
|
||||||
@@ -329,15 +331,45 @@ interface TaxiServiceApiNew {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||||
@POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/orderCompleted" )
|
@POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/startOperation" )
|
||||||
Observable<TaxiLoginRespBean> gotoLoginBycode(@Header ("appId") String appId
|
Observable<TaxiLoginRespBean> gotoLoginBycode(@Header ("appId") String appId
|
||||||
, @Header("ticket") String ticket, @Body TaxiLoginReqBean data);
|
, @Header("ticket") String ticket, @Body TaxiLoginReqBean data);
|
||||||
/**
|
/**
|
||||||
* 登出接口
|
* 登出接口
|
||||||
*/
|
*/
|
||||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||||
@GET("/autopilot-car-hailing/car/v2/driver/taxi/serviceStatus/query")
|
@POST("/autopilot-car-hailing/cab/flow/v1/driver/taxi/endOperation")
|
||||||
Observable<BaseData> logout(@Header ("appId") String appId,@Header("ticket") String ticket,
|
Observable<BaseData> logout(@Header ("appId") String appId,@Header("ticket") String ticket,
|
||||||
@Query("sn") String sn);
|
@Body TaxiLogoutReqBean data);
|
||||||
|
/**
|
||||||
|
* 暂停接单
|
||||||
|
* @param data
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||||
|
// @POST( "/autopilot-car-hailing/api/v1/driver/serviceStatus/update" )
|
||||||
|
@POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/stopOrderServing" )
|
||||||
|
Observable<BaseData> stopOrderServing(@Header ("appId") String appId,@Header("ticket") String ticket
|
||||||
|
,@Body DriverStatusUpdateReqBean data);
|
||||||
|
/**
|
||||||
|
* 暂停接单
|
||||||
|
* @param data
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||||
|
// @POST( "/autopilot-car-hailing/api/v1/driver/serviceStatus/update" )
|
||||||
|
@POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/resetOrderServing" )
|
||||||
|
Observable<BaseData> resetOrderServing(@Header ("appId") String appId,@Header("ticket") String ticket
|
||||||
|
,@Body DriverStatusUpdateReqBean data);
|
||||||
|
/**
|
||||||
|
* 收车/出车状态和登录状态查询
|
||||||
|
* @param sn
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||||
|
// @GET( "/autopilot-car-hailing/api/v1/driver/serviceStatus/query" )
|
||||||
|
@GET( "/autopilot-car-hailing/operation/v1/driver/taxi/loginStatus" )
|
||||||
|
Observable<DriverStatusQueryRespBean> queryDriverServiceStatusAndLoginStatus(@Header ("appId") String appId
|
||||||
|
,@Header("ticket") String ticket,@Query("sn") String sn);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,12 +32,15 @@ import com.mogo.och.taxi.bean.QueryOrderRouteResp;
|
|||||||
import com.mogo.och.taxi.bean.TaxiDataBaseRespBean;
|
import com.mogo.och.taxi.bean.TaxiDataBaseRespBean;
|
||||||
import com.mogo.och.taxi.bean.TaxiLoginReqBean;
|
import com.mogo.och.taxi.bean.TaxiLoginReqBean;
|
||||||
import com.mogo.och.taxi.bean.TaxiLoginRespBean;
|
import com.mogo.och.taxi.bean.TaxiLoginRespBean;
|
||||||
|
import com.mogo.och.taxi.bean.TaxiLoginSmsReqBean;
|
||||||
|
import com.mogo.och.taxi.bean.TaxiLogoutReqBean;
|
||||||
import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean;
|
import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean;
|
||||||
import com.mogo.och.taxi.bean.UpdateOrderDisAndTimeReqBean;
|
import com.mogo.och.taxi.bean.UpdateOrderDisAndTimeReqBean;
|
||||||
import com.mogo.och.taxi.constant.TaxiConst;
|
import com.mogo.och.taxi.constant.TaxiConst;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import io.reactivex.Observable;
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
import io.reactivex.schedulers.Schedulers;
|
import io.reactivex.schedulers.Schedulers;
|
||||||
|
|
||||||
@@ -234,19 +237,43 @@ public class TaxiServiceManager {
|
|||||||
.subscribe(getSubscribeImpl(context, callback, "updateOrderStatus"));
|
.subscribe(getSubscribeImpl(context, callback, "updateOrderStatus"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * 收车/出车状态更新
|
||||||
|
// * @param context
|
||||||
|
// * @param status
|
||||||
|
// * @param callback
|
||||||
|
// */
|
||||||
|
// public void updateDriverServiceStatus(Context context, int status,
|
||||||
|
// TaxiServiceCallback<BaseData> callback) {
|
||||||
|
// mOCHTaxiServiceApi.updateDriverServiceStatus(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
|
||||||
|
// ,MoGoAiCloudClientConfig.getInstance().getToken()
|
||||||
|
// ,new DriverStatusUpdateReqBean(
|
||||||
|
// MoGoAiCloudClientConfig.getInstance().getSn(), status))
|
||||||
|
// .subscribeOn(Schedulers.io())
|
||||||
|
// .observeOn(AndroidSchedulers.mainThread())
|
||||||
|
// .subscribe(getSubscribeImpl(context, callback, "updateDriverServiceStatus"));
|
||||||
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 收车/出车状态更新
|
* 暂停接单
|
||||||
* @param context
|
* @param context
|
||||||
* @param status
|
|
||||||
* @param callback
|
* @param callback
|
||||||
*/
|
*/
|
||||||
public void updateDriverServiceStatus(Context context, int status,
|
public void changeOrderServing(Context context,boolean isOrdering,
|
||||||
TaxiServiceCallback<BaseData> callback) {
|
TaxiServiceCallback<BaseData> callback) {
|
||||||
mOCHTaxiServiceApi.updateDriverServiceStatus(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
|
Observable<BaseData> baseDataObservable = null;
|
||||||
,MoGoAiCloudClientConfig.getInstance().getToken()
|
if(isOrdering) {// 正在接单去暂停
|
||||||
,new DriverStatusUpdateReqBean(
|
baseDataObservable = mOCHTaxiServiceApi.stopOrderServing(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
|
||||||
MoGoAiCloudClientConfig.getInstance().getSn(), status))
|
, MoGoAiCloudClientConfig.getInstance().getToken()
|
||||||
.subscribeOn(Schedulers.io())
|
, new DriverStatusUpdateReqBean(
|
||||||
|
MoGoAiCloudClientConfig.getInstance().getSn(), 0));
|
||||||
|
}else {// 没有接单去接单
|
||||||
|
baseDataObservable = mOCHTaxiServiceApi.resetOrderServing(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
|
||||||
|
, MoGoAiCloudClientConfig.getInstance().getToken()
|
||||||
|
, new DriverStatusUpdateReqBean(
|
||||||
|
MoGoAiCloudClientConfig.getInstance().getSn(), 0));
|
||||||
|
}
|
||||||
|
baseDataObservable.subscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribe(getSubscribeImpl(context, callback, "updateDriverServiceStatus"));
|
.subscribe(getSubscribeImpl(context, callback, "updateDriverServiceStatus"));
|
||||||
}
|
}
|
||||||
@@ -258,7 +285,7 @@ public class TaxiServiceManager {
|
|||||||
*/
|
*/
|
||||||
public void queryDriverServiceStatus(Context context,
|
public void queryDriverServiceStatus(Context context,
|
||||||
TaxiServiceCallback<DriverStatusQueryRespBean> callback) {
|
TaxiServiceCallback<DriverStatusQueryRespBean> callback) {
|
||||||
mOCHTaxiServiceApi.queryDriverServiceStatus(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
|
mOCHTaxiServiceApi.queryDriverServiceStatusAndLoginStatus(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
|
||||||
,MoGoAiCloudClientConfig.getInstance().getToken()
|
,MoGoAiCloudClientConfig.getInstance().getToken()
|
||||||
,MoGoAiCloudClientConfig.getInstance().getSn())
|
,MoGoAiCloudClientConfig.getInstance().getSn())
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
@@ -447,8 +474,7 @@ public class TaxiServiceManager {
|
|||||||
TaxiServiceCallback<BaseData> callback) {
|
TaxiServiceCallback<BaseData> callback) {
|
||||||
mOCHTaxiServiceApi.getPhoneCode(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
|
mOCHTaxiServiceApi.getPhoneCode(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
|
||||||
, MoGoAiCloudClientConfig.getInstance().getToken()
|
, MoGoAiCloudClientConfig.getInstance().getToken()
|
||||||
, MoGoAiCloudClientConfig.getInstance().getSn()
|
, new TaxiLoginSmsReqBean(phone))
|
||||||
, phone)
|
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribe(getSubscribeImpl(context, callback, "getPhoneCode"));
|
.subscribe(getSubscribeImpl(context, callback, "getPhoneCode"));
|
||||||
@@ -458,12 +484,13 @@ public class TaxiServiceManager {
|
|||||||
* @param context
|
* @param context
|
||||||
* @param callback
|
* @param callback
|
||||||
*/
|
*/
|
||||||
public void gotoLoginBycode(Context context,String phone,String code,
|
public void gotoLoginBycode(Context context, String phone, String code,
|
||||||
TaxiServiceCallback<TaxiLoginRespBean> callback) {
|
TaxiLoginReqBean.Location4Login location4Login,
|
||||||
|
TaxiServiceCallback<TaxiLoginRespBean> callback) {
|
||||||
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
|
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
|
||||||
mOCHTaxiServiceApi.gotoLoginBycode(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
|
mOCHTaxiServiceApi.gotoLoginBycode(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
|
||||||
, MoGoAiCloudClientConfig.getInstance().getToken()
|
, MoGoAiCloudClientConfig.getInstance().getToken()
|
||||||
, new TaxiLoginReqBean(phone,code,sn))
|
, new TaxiLoginReqBean(phone, code, sn, location4Login))
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribe(getSubscribeImpl(context, callback, "gotoLoginBycode"));
|
.subscribe(getSubscribeImpl(context, callback, "gotoLoginBycode"));
|
||||||
@@ -472,11 +499,11 @@ public class TaxiServiceManager {
|
|||||||
/**
|
/**
|
||||||
* 登出
|
* 登出
|
||||||
*/
|
*/
|
||||||
public void logout(Context context, TaxiServiceCallback<BaseData> callback) {
|
public void logout(Context context, TaxiLogoutReqBean.Location4Login location4Login, TaxiServiceCallback<BaseData> callback) {
|
||||||
mOCHTaxiServiceApi.logout(
|
mOCHTaxiServiceApi.logout(
|
||||||
MoGoAiCloudClientConfig.getInstance().getServiceAppId(),
|
MoGoAiCloudClientConfig.getInstance().getServiceAppId(),
|
||||||
MoGoAiCloudClientConfig.getInstance().getToken(),
|
MoGoAiCloudClientConfig.getInstance().getToken(),
|
||||||
MoGoAiCloudClientConfig.getInstance().getSn())
|
new TaxiLogoutReqBean(MoGoAiCloudClientConfig.getInstance().getSn(), location4Login))
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribe(getSubscribeImpl(context, callback, "logout"));
|
.subscribe(getSubscribeImpl(context, callback, "logout"));
|
||||||
|
|||||||
@@ -29,12 +29,12 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) :
|
|||||||
private var countDownDisposable: Disposable? = null
|
private var countDownDisposable: Disposable? = null
|
||||||
|
|
||||||
init {
|
init {
|
||||||
TaxiLoginModel.getInstance().init(AbsMogoApplication.getApp())
|
TaxiLoginModel.init(AbsMogoApplication.getApp())
|
||||||
initListeners()
|
initListeners()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initListeners() {
|
private fun initListeners() {
|
||||||
TaxiLoginModel.getInstance().setiTaxiLoginCallback(this)
|
TaxiLoginModel.setiTaxiLoginCallback(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getPhoneCode(phone:String){
|
fun getPhoneCode(phone:String){
|
||||||
@@ -43,7 +43,7 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) :
|
|||||||
mView?.inputPhoneError()
|
mView?.inputPhoneError()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
TaxiLoginModel.getInstance().getPhoneCode(phone)
|
TaxiLoginModel.getPhoneCode(phone)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreate(owner: LifecycleOwner) {
|
override fun onCreate(owner: LifecycleOwner) {
|
||||||
@@ -55,7 +55,7 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) :
|
|||||||
|
|
||||||
override fun onDestroy(owner: LifecycleOwner) {
|
override fun onDestroy(owner: LifecycleOwner) {
|
||||||
super.onDestroy(owner)
|
super.onDestroy(owner)
|
||||||
TaxiLoginModel.getInstance().release()
|
TaxiLoginModel.release()
|
||||||
countDownDisposable?.let {
|
countDownDisposable?.let {
|
||||||
if (!it.isDisposed) {
|
if (!it.isDisposed) {
|
||||||
it.dispose()
|
it.dispose()
|
||||||
@@ -86,6 +86,10 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) :
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun loginSuccess() {
|
||||||
|
mView?.loginSuccess()
|
||||||
|
}
|
||||||
|
|
||||||
fun gotoLogin(phone: String, code: String) {
|
fun gotoLogin(phone: String, code: String) {
|
||||||
if (!RegexUtils.isMobileExact(phone)) {
|
if (!RegexUtils.isMobileExact(phone)) {
|
||||||
ToastUtils.showShort(R.string.module_och_taxi_login_phone_error)
|
ToastUtils.showShort(R.string.module_och_taxi_login_phone_error)
|
||||||
@@ -93,6 +97,6 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) :
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
mView?.closeSoftInput()
|
mView?.closeSoftInput()
|
||||||
TaxiLoginModel.getInstance().gotoLogin(phone,code)
|
TaxiLoginModel.gotoLogin(phone,code)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -204,7 +204,11 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCarLoginStatusChange(boolean isLogin) {
|
public void onCarLoginStatusChange(boolean isLogin) {
|
||||||
mView.showLoginDialogFragment();
|
if(isLogin){
|
||||||
|
mView.hideLoginDialogFragment();
|
||||||
|
}else {
|
||||||
|
mView.showLoginDialogFragment();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -392,15 +392,32 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
|
|||||||
|
|
||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
public void changeOverview(EventLogout eventLogout){
|
public void changeOverview(EventLogout eventLogout){
|
||||||
CallerLogger.INSTANCE.d(M_TAXI + TAG,"changeOverview 开始登出成功");
|
CallerLogger.INSTANCE.d(M_TAXI + TAG,"changeOverview Event消息去登出");
|
||||||
mPresenter.logout();
|
mPresenter.logout();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showLoginDialogFragment(){
|
public void showLoginDialogFragment(){
|
||||||
CallerLogger.INSTANCE.d(M_TAXI + TAG,"showLoginDialogFragment 登出成功");
|
CallerLogger.INSTANCE.d(M_TAXI + TAG,"showLoginDialogFragment 展示登录界面");
|
||||||
CallerHmiManager.INSTANCE.hideToolsView();
|
CallerHmiManager.INSTANCE.hideToolsView();
|
||||||
taxiLoginDialogFragment = new WeakReference<>(TaxiLoginDialogFragment.newInstance());
|
if(taxiLoginDialogFragment==null||taxiLoginDialogFragment.get()==null) {
|
||||||
taxiLoginDialogFragment.get().show(getParentFragmentManager(),taxiLoginDialogFragment.get().getTag());
|
taxiLoginDialogFragment = new WeakReference<>(TaxiLoginDialogFragment.newInstance());
|
||||||
|
}
|
||||||
|
TaxiLoginDialogFragment taxiLoginDialog = taxiLoginDialogFragment.get();
|
||||||
|
if(taxiLoginDialog!=null) {
|
||||||
|
if (taxiLoginDialog.getDialog() != null && taxiLoginDialog.getDialog().isShowing()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (taxiLoginDialog.isAdded()) {//解决方法就是添加这行代码,如果已经添加了,就移除掉然后再show,就不会出现Fragment already added的错误了。
|
||||||
|
getParentFragmentManager().beginTransaction().remove(taxiLoginDialog).commit();
|
||||||
|
}
|
||||||
|
taxiLoginDialog.show(getParentFragmentManager(), taxiLoginDialog.getTag());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void hideLoginDialogFragment(){
|
||||||
|
CallerLogger.INSTANCE.d(M_TAXI + TAG,"hideLoginDialogFragment 隐藏登录界面");
|
||||||
|
if(taxiLoginDialogFragment!=null&&taxiLoginDialogFragment.get()!=null){
|
||||||
|
taxiLoginDialogFragment.get().dismissAllowingStateLoss();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void testRouteInfoUpload() {
|
private void testRouteInfoUpload() {
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import androidx.constraintlayout.widget.ConstraintLayout
|
|||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.core.widget.addTextChangedListener
|
import androidx.core.widget.addTextChangedListener
|
||||||
import com.mogo.commons.mvp.MvpDialogFragment
|
import com.mogo.commons.mvp.MvpDialogFragment
|
||||||
|
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||||
import com.mogo.eagle.core.utilcode.util.BarUtils
|
import com.mogo.eagle.core.utilcode.util.BarUtils
|
||||||
@@ -88,7 +89,7 @@ class TaxiLoginDialogFragment : MvpDialogFragment<TaxiLoginDialogFragment?, Taxi
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
acbtnLogin.setOnClickListener {
|
acbtnLogin.onClick {
|
||||||
val phone = aceLoginPhoneValue.text.toString()
|
val phone = aceLoginPhoneValue.text.toString()
|
||||||
val code = acetPhoneCodeValue.text.toString()
|
val code = acetPhoneCodeValue.text.toString()
|
||||||
mPresenter?.gotoLogin(phone,code)
|
mPresenter?.gotoLogin(phone,code)
|
||||||
@@ -109,7 +110,7 @@ class TaxiLoginDialogFragment : MvpDialogFragment<TaxiLoginDialogFragment?, Taxi
|
|||||||
clMain.scrollTo(0, 0)
|
clMain.scrollTo(0, 0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
actvLoginGetCode.setOnClickListener {
|
actvLoginGetCode.onClick {
|
||||||
mPresenter?.getPhoneCode(aceLoginPhoneValue.text.toString())
|
mPresenter?.getPhoneCode(aceLoginPhoneValue.text.toString())
|
||||||
}
|
}
|
||||||
aceLoginPhoneValue.addTextChangedListener {
|
aceLoginPhoneValue.addTextChangedListener {
|
||||||
@@ -181,6 +182,10 @@ class TaxiLoginDialogFragment : MvpDialogFragment<TaxiLoginDialogFragment?, Taxi
|
|||||||
return keyCode == KeyEvent.KEYCODE_BACK
|
return keyCode == KeyEvent.KEYCODE_BACK
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun loginSuccess() {
|
||||||
|
dismissAllowingStateLoss()
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val TAG = TaxiLoginDialogFragment::class.java.simpleName
|
private val TAG = TaxiLoginDialogFragment::class.java.simpleName
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,73 @@
|
|||||||
|
package com.mogo.och.taxi.utils
|
||||||
|
|
||||||
|
import com.mogo.och.taxi.constant.TaxiLoginStatusEnum
|
||||||
|
import com.mogo.och.taxi.constant.TaxiOpenOrderStatusEnum
|
||||||
|
|
||||||
|
object StatusManager {
|
||||||
|
/**
|
||||||
|
* 登录状态
|
||||||
|
*/
|
||||||
|
private var loginStatus: TaxiLoginStatusEnum = TaxiLoginStatusEnum.None
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接单状态
|
||||||
|
*/
|
||||||
|
private var openOrderStatus: TaxiOpenOrderStatusEnum = TaxiOpenOrderStatusEnum.None
|
||||||
|
@JvmStatic
|
||||||
|
fun setLoginStatus(status: Int) {
|
||||||
|
when (status) {
|
||||||
|
0 -> {
|
||||||
|
this.loginStatus = TaxiLoginStatusEnum.Logout
|
||||||
|
}
|
||||||
|
1 -> {
|
||||||
|
this.loginStatus = TaxiLoginStatusEnum.Login
|
||||||
|
}
|
||||||
|
else -> {
|
||||||
|
this.loginStatus = TaxiLoginStatusEnum.None
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@JvmStatic
|
||||||
|
fun setLoginStatus(loginStatus: TaxiLoginStatusEnum) {
|
||||||
|
this.loginStatus = loginStatus
|
||||||
|
}
|
||||||
|
@JvmStatic
|
||||||
|
fun getLoginStatus(): TaxiLoginStatusEnum {
|
||||||
|
return loginStatus
|
||||||
|
}
|
||||||
|
@JvmStatic
|
||||||
|
fun isLogin():Boolean {
|
||||||
|
if(loginStatus==TaxiLoginStatusEnum.Login){
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
// region 是否可用接单
|
||||||
|
@JvmStatic
|
||||||
|
fun isOpeningOrderStatus():Boolean{
|
||||||
|
if(openOrderStatus==TaxiOpenOrderStatusEnum.Ordering){
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
@JvmStatic
|
||||||
|
fun setOpenOrderStatus(status: Int) {
|
||||||
|
when (status) {
|
||||||
|
0 -> {
|
||||||
|
this.openOrderStatus = TaxiOpenOrderStatusEnum.UnOrdering
|
||||||
|
}
|
||||||
|
1 -> {
|
||||||
|
this.openOrderStatus = TaxiOpenOrderStatusEnum.Ordering
|
||||||
|
}
|
||||||
|
else -> {
|
||||||
|
this.openOrderStatus = TaxiOpenOrderStatusEnum.None
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@JvmStatic
|
||||||
|
fun getOpenOrderStatus(): TaxiOpenOrderStatusEnum {
|
||||||
|
return openOrderStatus
|
||||||
|
}
|
||||||
|
|
||||||
|
//endregion
|
||||||
|
}
|
||||||
@@ -35,6 +35,7 @@
|
|||||||
<string name="module_och_taxi_login_get_code">获取验证码</string>
|
<string name="module_och_taxi_login_get_code">获取验证码</string>
|
||||||
<string name="module_och_taxi_login_get_code_title">请输入验证码</string>
|
<string name="module_och_taxi_login_get_code_title">请输入验证码</string>
|
||||||
<string name="module_och_taxi_login_get_code_success">获取验证码成功</string>
|
<string name="module_och_taxi_login_get_code_success">获取验证码成功</string>
|
||||||
|
<string name="module_och_taxi_login_login_success">登录成功</string>
|
||||||
<string name="module_och_taxi_login_phone_error">请输入正确的手机号</string>
|
<string name="module_och_taxi_login_phone_error">请输入正确的手机号</string>
|
||||||
<string name="module_och_taxi_login_phone_hint_text">请输入手机号</string>
|
<string name="module_och_taxi_login_phone_hint_text">请输入手机号</string>
|
||||||
<string name="module_och_taxi_login_get_phone_title">请输入手机号</string>
|
<string name="module_och_taxi_login_get_phone_title">请输入手机号</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user