From 6ba43066e49c6e15159949fc2879aa5b9b3ce470 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 22 Aug 2022 18:51:09 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E5=92=8C=E9=83=A8=E5=88=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../taxi/bean/DriverStatusQueryRespBean.java | 1 + .../mogo/och/taxi/bean/TaxiLoginReqBean.java | 18 +- .../och/taxi/bean/TaxiLoginSmsReqBean.java | 14 ++ .../mogo/och/taxi/bean/TaxiLogoutReqBean.java | 25 +++ .../och/taxi/constant/TaxiLoginStatusEnum.kt | 27 +++ .../taxi/constant/TaxiOpenOrderStatusEnum.kt | 27 +++ .../mogo/och/taxi/model/TaxiLoginModel.java | 202 ------------------ .../com/mogo/och/taxi/model/TaxiLoginModel.kt | 129 +++++++++++ .../com/mogo/och/taxi/model/TaxiModel.java | 40 ++-- .../och/taxi/network/TaxiServiceApiNew.java | 44 +++- .../och/taxi/network/TaxiServiceManager.java | 59 +++-- .../och/taxi/presenter/TaxiLoginPresenter.kt | 10 +- .../och/taxi/presenter/TaxiPresenter.java | 6 +- .../com/mogo/och/taxi/ui/TaxiFragment.java | 14 +- .../och/taxi/ui/TaxiLoginDialogFragment.kt | 5 +- .../com/mogo/och/taxi/utils/StatusManager.kt | 81 +++++++ 16 files changed, 451 insertions(+), 251 deletions(-) create mode 100644 OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginSmsReqBean.java create mode 100644 OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLogoutReqBean.java create mode 100644 OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiLoginStatusEnum.kt create mode 100644 OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiOpenOrderStatusEnum.kt delete mode 100644 OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.java create mode 100644 OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt create mode 100644 OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/StatusManager.kt diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java index d40b1222f2..46bc6e0fcc 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java @@ -12,6 +12,7 @@ public class DriverStatusQueryRespBean extends BaseData { public static class Result { public int serviceStatus; //0收车,1出车 + public int loginStatus; //0收车,1出车 public String orderNo; public int purpose; // 1 运营, 2 测试, 3演示 } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginReqBean.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginReqBean.java index d5a3443d60..0591d3f878 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginReqBean.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginReqBean.java @@ -7,12 +7,24 @@ package com.mogo.och.taxi.bean; public class TaxiLoginReqBean { public String phone; - public String code; + public String captcha; 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.code = code; + this.captcha = code; 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; + } } } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginSmsReqBean.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginSmsReqBean.java new file mode 100644 index 0000000000..3a4d4d7a4f --- /dev/null +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginSmsReqBean.java @@ -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; + } +} diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLogoutReqBean.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLogoutReqBean.java new file mode 100644 index 0000000000..ced9b2eddb --- /dev/null +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLogoutReqBean.java @@ -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; + } + } +} diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiLoginStatusEnum.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiLoginStatusEnum.kt new file mode 100644 index 0000000000..5e19782f5e --- /dev/null +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiLoginStatusEnum.kt @@ -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 + } + } +} \ No newline at end of file diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiOpenOrderStatusEnum.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiOpenOrderStatusEnum.kt new file mode 100644 index 0000000000..b583f28d3c --- /dev/null +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiOpenOrderStatusEnum.kt @@ -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 + } + } +} \ No newline at end of file diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.java deleted file mode 100644 index 3ee26ebd52..0000000000 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.java +++ /dev/null @@ -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 - *

- * 网约车 - 出租车业务逻辑处理 - */ -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() { - @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() { - @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); - } - }); - } - -} diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt new file mode 100644 index 0000000000..e5bee4de53 --- /dev/null +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt @@ -0,0 +1,129 @@ +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 + +/** + * 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 { + override fun onSuccess(data: BaseData?) { + 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 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 { + override fun onSuccess(data: TaxiLoginRespBean?) { + 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 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") + } + }) + } + +} \ No newline at end of file diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java index 160fe20f3f..13d3fdf568 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java @@ -49,6 +49,7 @@ 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.TaxiLogoutReqBean; import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean; import com.mogo.och.taxi.callback.ITaxiADASStatusCallback; 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.constant.TaxiDriverRoleEnum; 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.TaxiOrderTypeEnum; import com.mogo.och.taxi.network.TaxiServiceCallback; 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.OrderUtil; import com.mogo.aicloud.services.socket.IMogoLifecycleListener; @@ -103,7 +106,6 @@ public class TaxiModel { private Context mContext; private volatile int mPrevAPStatus = -1; //前一次自动驾驶状态值 - private volatile int mOCHCarStatus = -1; //出车/收车状态:1 出车;0 收车 private volatile String mPrevOrderNo = ""; //前一次的新到单id(当次和前一次orderId相同时,本次不再弹出) private volatile OrderQueryRespBean.Result mNewBookingOrder; //新到待抢预约单 private volatile OrderQueryRespBean.Result mCurrentOCHOrder; //当前订单 @@ -255,17 +257,26 @@ public class TaxiModel { } } - //查询出车/收车状态 + /** + * 查询出车/收车状态 + * 1、初始化查下状态 + * 2、点击更新接单状态 如果是初始化状态就查下状态 + * 3、点击更新接单状态后 查询状态 + * 4、网络状态波动时 查询状态 + * 5、登出后更新状态 + */ public void queryCarStatus() { TaxiServiceManager.getInstance().queryDriverServiceStatus(mContext, new TaxiServiceCallback() { @Override public void onSuccess(DriverStatusQueryRespBean data) { if (null != data && 0 == data.code) { - mOCHCarStatus = data.data.serviceStatus == 1 ? 1 : 0; + StatusManager.setLoginStatus(data.data.loginStatus); + StatusManager.setOpenOrderStatus(data.data.serviceStatus); //更新view - CallerLogger.INSTANCE.d(M_TAXI + TAG, "changeCarStatus:" + mOCHCarStatus); - startOrStopOrderLoop(mOCHCarStatus == 1); + CallerLogger.INSTANCE.d(M_TAXI + TAG, "changeCarStatus:" + StatusManager.getLoginStatus()); + startOrStopOrderLoop(StatusManager.isLogin()); + mCarStatusCallback.onCarLoginStatusChange(StatusManager.isLogin()); String role = ""; if (TaxiDriverRoleEnum.DEMO.getCode() == data.data.purpose) { role = TaxiConst.DEMO_USER; @@ -273,7 +284,7 @@ public class TaxiModel { role = TaxiConst.TEST_USER; } if (mCarStatusCallback != null) { - mCarStatusCallback.onCarStatusChanged(mOCHCarStatus == 1, role); + mCarStatusCallback.onCarStatusChanged(StatusManager.isLogin(), role); } } @@ -299,17 +310,16 @@ public class TaxiModel { //更新出车收车状态 public void updateCarStatus() { - if (mOCHCarStatus == -1) { + if (StatusManager.getLoginStatus().equals(TaxiLoginStatusEnum.None)) { queryCarStatus(); return; } - final int status = mOCHCarStatus == 1 ? 0 : 1; - TaxiServiceManager.getInstance().updateDriverServiceStatus(mContext, status, + TaxiServiceManager.getInstance().changeOrderServing(mContext,StatusManager.isOpeningOrderStatus(), new TaxiServiceCallback() { @Override public void onSuccess(BaseData data) { if (null != data && 0 == data.code) { - mOCHCarStatus = status; + StatusManager.changeOrderStatus(); queryCarStatus(); } } @@ -328,6 +338,7 @@ public class TaxiModel { ToastUtils.showShort(code + "," + msg); } }); + } /** @@ -972,7 +983,7 @@ public class TaxiModel { CallerLogger.INSTANCE.d(M_TAXI + TAG, "onIntentReceived = %s", intentStr); if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intentStr)) { if (NetworkUtils.isConnected(mContext)) { - startOrStopOrderLoop(mOCHCarStatus == 1); + startOrStopOrderLoop(StatusManager.isLogin()); queryCarStatus(); } } @@ -1525,19 +1536,22 @@ public class TaxiModel { } } - // 取消待服务中订单 + // 登出 public void logout() { - TaxiServiceManager.getInstance().logout(mContext, + TaxiLogoutReqBean.Location4Login location4Login = new TaxiLogoutReqBean.Location4Login(mLatitude, mLongitude); + TaxiServiceManager.getInstance().logout(mContext,location4Login, new TaxiServiceCallback() { @Override public void onSuccess(BaseData data) { if (null != data && 0 == data.code) { mCarStatusCallback.onCarLoginStatusChange(false); + queryCarStatus(); } } @Override public void onError() { + mCarStatusCallback.onCarLoginStatusChange(false); if (!NetworkUtils.isConnected(mContext)) { ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); } else { diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java index 156193ca60..fc156d38d2 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java @@ -22,6 +22,8 @@ import com.mogo.och.taxi.bean.QueryOrderRouteResp; import com.mogo.och.taxi.bean.TaxiDataBaseRespBean; import com.mogo.och.taxi.bean.TaxiLoginReqBean; 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.UpdateOrderDisAndTimeReqBean; @@ -313,14 +315,14 @@ interface TaxiServiceApiNew { /** * 获取手机验证码 - * @param sn + * * @return */ @Headers( {"Content-type:application/json;charset=UTF-8"} ) // @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 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 @@ -329,15 +331,45 @@ interface TaxiServiceApiNew { * @return */ @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 gotoLoginBycode(@Header ("appId") String appId , @Header("ticket") String ticket, @Body TaxiLoginReqBean data); /** * 登出接口 */ @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 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 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 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 queryDriverServiceStatusAndLoginStatus(@Header ("appId") String appId + ,@Header("ticket") String ticket,@Query("sn") String sn); } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java index b69e9fe0e2..f113d752df 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java @@ -32,12 +32,15 @@ import com.mogo.och.taxi.bean.QueryOrderRouteResp; import com.mogo.och.taxi.bean.TaxiDataBaseRespBean; import com.mogo.och.taxi.bean.TaxiLoginReqBean; 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.UpdateOrderDisAndTimeReqBean; import com.mogo.och.taxi.constant.TaxiConst; import java.util.List; +import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; @@ -234,19 +237,43 @@ public class TaxiServiceManager { .subscribe(getSubscribeImpl(context, callback, "updateOrderStatus")); } +// /** +// * 收车/出车状态更新 +// * @param context +// * @param status +// * @param callback +// */ +// public void updateDriverServiceStatus(Context context, int status, +// TaxiServiceCallback 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 status * @param callback */ - public void updateDriverServiceStatus(Context context, int status, - TaxiServiceCallback callback) { - mOCHTaxiServiceApi.updateDriverServiceStatus(MoGoAiCloudClientConfig.getInstance().getServiceAppId() - ,MoGoAiCloudClientConfig.getInstance().getToken() - ,new DriverStatusUpdateReqBean( - MoGoAiCloudClientConfig.getInstance().getSn(), status)) - .subscribeOn(Schedulers.io()) + public void changeOrderServing(Context context,boolean isOrdering, + TaxiServiceCallback callback) { + Observable baseDataObservable = null; + if(isOrdering) {// 正在接单去暂停 + baseDataObservable = mOCHTaxiServiceApi.stopOrderServing(MoGoAiCloudClientConfig.getInstance().getServiceAppId() + , MoGoAiCloudClientConfig.getInstance().getToken() + , 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()) .subscribe(getSubscribeImpl(context, callback, "updateDriverServiceStatus")); } @@ -447,8 +474,7 @@ public class TaxiServiceManager { TaxiServiceCallback callback) { mOCHTaxiServiceApi.getPhoneCode(MoGoAiCloudClientConfig.getInstance().getServiceAppId() , MoGoAiCloudClientConfig.getInstance().getToken() - , MoGoAiCloudClientConfig.getInstance().getSn() - , phone) + , new TaxiLoginSmsReqBean(phone)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(getSubscribeImpl(context, callback, "getPhoneCode")); @@ -458,12 +484,13 @@ public class TaxiServiceManager { * @param context * @param callback */ - public void gotoLoginBycode(Context context,String phone,String code, - TaxiServiceCallback callback) { + public void gotoLoginBycode(Context context, String phone, String code, + TaxiLoginReqBean.Location4Login location4Login, + TaxiServiceCallback callback) { String sn = MoGoAiCloudClientConfig.getInstance().getSn(); mOCHTaxiServiceApi.gotoLoginBycode(MoGoAiCloudClientConfig.getInstance().getServiceAppId() , MoGoAiCloudClientConfig.getInstance().getToken() - , new TaxiLoginReqBean(phone,code,sn)) + , new TaxiLoginReqBean(phone, code, sn, location4Login)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(getSubscribeImpl(context, callback, "gotoLoginBycode")); @@ -472,11 +499,11 @@ public class TaxiServiceManager { /** * 登出 */ - public void logout(Context context, TaxiServiceCallback callback) { + public void logout(Context context, TaxiLogoutReqBean.Location4Login location4Login, TaxiServiceCallback callback) { mOCHTaxiServiceApi.logout( MoGoAiCloudClientConfig.getInstance().getServiceAppId(), MoGoAiCloudClientConfig.getInstance().getToken(), - MoGoAiCloudClientConfig.getInstance().getSn()) + new TaxiLogoutReqBean(MoGoAiCloudClientConfig.getInstance().getSn(), location4Login)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(getSubscribeImpl(context, callback, "logout")); diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt index a8ede59a35..f240c72db3 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt @@ -29,12 +29,12 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) : private var countDownDisposable: Disposable? = null init { - TaxiLoginModel.getInstance().init(AbsMogoApplication.getApp()) + TaxiLoginModel.init(AbsMogoApplication.getApp()) initListeners() } private fun initListeners() { - TaxiLoginModel.getInstance().setiTaxiLoginCallback(this) + TaxiLoginModel.setiTaxiLoginCallback(this) } fun getPhoneCode(phone:String){ @@ -43,7 +43,7 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) : mView?.inputPhoneError() return } - TaxiLoginModel.getInstance().getPhoneCode(phone) + TaxiLoginModel.getPhoneCode(phone) } override fun onCreate(owner: LifecycleOwner) { @@ -55,7 +55,7 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) : override fun onDestroy(owner: LifecycleOwner) { super.onDestroy(owner) - TaxiLoginModel.getInstance().release() + TaxiLoginModel.release() countDownDisposable?.let { if (!it.isDisposed) { it.dispose() @@ -93,6 +93,6 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) : return } mView?.closeSoftInput() - TaxiLoginModel.getInstance().gotoLogin(phone,code) + TaxiLoginModel.gotoLogin(phone,code) } } \ No newline at end of file diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java index dd8ed6cf4e..bd9442055a 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java @@ -204,7 +204,11 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS @Override public void onCarLoginStatusChange(boolean isLogin) { - mView.showLoginDialogFragment(); + if(isLogin){ + mView.hideLoginDialogFragment(); + }else { + mView.showLoginDialogFragment(); + } } @Override diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java index dc189db017..0e751d49f2 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java @@ -392,16 +392,24 @@ public class TaxiFragment extends BaseTaxiTabFragment(TaxiLoginDialogFragment.newInstance()); + if(taxiLoginDialogFragment==null||taxiLoginDialogFragment.get()==null) { + taxiLoginDialogFragment = new WeakReference<>(TaxiLoginDialogFragment.newInstance()); + } taxiLoginDialogFragment.get().show(getParentFragmentManager(),taxiLoginDialogFragment.get().getTag()); } + public void hideLoginDialogFragment(){ + CallerLogger.INSTANCE.d(M_TAXI + TAG,"hideLoginDialogFragment 隐藏登录界面"); + if(taxiLoginDialogFragment!=null&&taxiLoginDialogFragment.get()!=null){ + taxiLoginDialogFragment.get().dismissAllowingStateLoss(); + } + } private void testRouteInfoUpload() { TPRouteDataTestUtils.converToRouteData(); diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt index 421eede884..4106b63711 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt @@ -11,6 +11,7 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat import androidx.core.widget.addTextChangedListener 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.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.BarUtils @@ -88,7 +89,7 @@ class TaxiLoginDialogFragment : MvpDialogFragment { + this.loginStatus = TaxiLoginStatusEnum.Logout + } + 1 -> { + this.loginStatus = TaxiLoginStatusEnum.Login + } + else -> { + this.loginStatus = TaxiLoginStatusEnum.None + } + } + } + @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 + } + + @JvmStatic + fun changeOrderStatus() { + when (openOrderStatus) { + TaxiOpenOrderStatusEnum.Ordering -> { + openOrderStatus = TaxiOpenOrderStatusEnum.UnOrdering + } + TaxiOpenOrderStatusEnum.UnOrdering -> { + openOrderStatus = TaxiOpenOrderStatusEnum.Ordering + } + else -> {} + } + } + //endregion +} \ No newline at end of file From e2c580ac6a05d2cfc934e4d619fe714b081931ad Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 24 Aug 2022 15:57:41 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=B0=83=E8=AF=95?= =?UTF-8?q?=E5=92=8C=E9=83=A8=E5=88=86=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/taxi/bean/DriverStatusQueryRespBean.java | 4 ++-- .../och/taxi/callback/ITaxiLoginCallback.java | 1 + .../com/mogo/och/taxi/model/TaxiLoginModel.kt | 13 ++++++------- .../java/com/mogo/och/taxi/model/TaxiModel.java | 8 ++++---- .../och/taxi/network/TaxiServiceManager.java | 2 +- .../och/taxi/presenter/TaxiLoginPresenter.kt | 4 ++++ .../java/com/mogo/och/taxi/ui/TaxiFragment.java | 11 ++++++++++- .../mogo/och/taxi/ui/TaxiLoginDialogFragment.kt | 4 ++++ .../com/mogo/och/taxi/utils/StatusManager.kt | 16 ++++------------ .../src/main/res/values/strings.xml | 1 + 10 files changed, 37 insertions(+), 27 deletions(-) diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java index 46bc6e0fcc..bb65c2efc8 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java @@ -11,8 +11,8 @@ public class DriverStatusQueryRespBean extends BaseData { public Result data; public static class Result { - public int serviceStatus; //0收车,1出车 - public int loginStatus; //0收车,1出车 + public int servingStatus; //0收车,1出车 + public int driverStatus; //0收车,1出车 public String orderNo; public int purpose; // 1 运营, 2 测试, 3演示 } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiLoginCallback.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiLoginCallback.java index c320810e88..a8f35171cb 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiLoginCallback.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiLoginCallback.java @@ -14,4 +14,5 @@ import java.util.List; */ public interface ITaxiLoginCallback { void getPhoneCodeSuccess(); + void loginSuccess(); } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt index e5bee4de53..2f830b5383 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt @@ -14,6 +14,8 @@ 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 @@ -70,9 +72,7 @@ object TaxiLoginModel{ if (null != data && 0 == data.code) { // 获取验证码成功 ToastUtils.showShort(mContext!!.getString(R.string.module_och_taxi_login_get_code_success)) - if (iTaxiLoginCallback != null) { - iTaxiLoginCallback!!.getPhoneCodeSuccess() - } + iTaxiLoginCallback?.getPhoneCodeSuccess() } else { if (data != null) { ToastUtils.showShort(data.code) @@ -101,10 +101,9 @@ object TaxiLoginModel{ override fun onSuccess(data: TaxiLoginRespBean?) { if (null != data && 0 == data.code) { // 获取验证码成功 - ToastUtils.showShort(mContext!!.getString(R.string.module_och_taxi_login_get_code_success)) - if (iTaxiLoginCallback != null) { - iTaxiLoginCallback!!.getPhoneCodeSuccess() - } + 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) diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java index 13d3fdf568..4bcaaa4079 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java @@ -271,8 +271,8 @@ public class TaxiModel { @Override public void onSuccess(DriverStatusQueryRespBean data) { if (null != data && 0 == data.code) { - StatusManager.setLoginStatus(data.data.loginStatus); - StatusManager.setOpenOrderStatus(data.data.serviceStatus); + StatusManager.setLoginStatus(data.data.driverStatus); + StatusManager.setOpenOrderStatus(data.data.servingStatus); //更新view CallerLogger.INSTANCE.d(M_TAXI + TAG, "changeCarStatus:" + StatusManager.getLoginStatus()); startOrStopOrderLoop(StatusManager.isLogin()); @@ -284,7 +284,7 @@ public class TaxiModel { role = TaxiConst.TEST_USER; } if (mCarStatusCallback != null) { - mCarStatusCallback.onCarStatusChanged(StatusManager.isLogin(), role); + mCarStatusCallback.onCarStatusChanged(StatusManager.isOpeningOrderStatus(), role); } } @@ -319,7 +319,7 @@ public class TaxiModel { @Override public void onSuccess(BaseData data) { if (null != data && 0 == data.code) { - StatusManager.changeOrderStatus(); + //StatusManager.changeOrderStatus(); queryCarStatus(); } } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java index f113d752df..4e2750299a 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java @@ -285,7 +285,7 @@ public class TaxiServiceManager { */ public void queryDriverServiceStatus(Context context, TaxiServiceCallback callback) { - mOCHTaxiServiceApi.queryDriverServiceStatus(MoGoAiCloudClientConfig.getInstance().getServiceAppId() + mOCHTaxiServiceApi.queryDriverServiceStatusAndLoginStatus(MoGoAiCloudClientConfig.getInstance().getServiceAppId() ,MoGoAiCloudClientConfig.getInstance().getToken() ,MoGoAiCloudClientConfig.getInstance().getSn()) .subscribeOn(Schedulers.io()) diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt index f240c72db3..a44dc70275 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt @@ -86,6 +86,10 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) : }) } + override fun loginSuccess() { + mView?.loginSuccess() + } + fun gotoLogin(phone: String, code: String) { if (!RegexUtils.isMobileExact(phone)) { ToastUtils.showShort(R.string.module_och_taxi_login_phone_error) diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java index 0e751d49f2..6e001b7d91 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java @@ -402,7 +402,16 @@ public class TaxiFragment extends BaseTaxiTabFragment(TaxiLoginDialogFragment.newInstance()); } - taxiLoginDialogFragment.get().show(getParentFragmentManager(),taxiLoginDialogFragment.get().getTag()); + 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 隐藏登录界面"); diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt index 4106b63711..c71d37594e 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt @@ -182,6 +182,10 @@ class TaxiLoginDialogFragment : MvpDialogFragment { - openOrderStatus = TaxiOpenOrderStatusEnum.UnOrdering - } - TaxiOpenOrderStatusEnum.UnOrdering -> { - openOrderStatus = TaxiOpenOrderStatusEnum.Ordering - } - else -> {} - } - } //endregion } \ No newline at end of file diff --git a/OCH/mogo-och-taxi/src/main/res/values/strings.xml b/OCH/mogo-och-taxi/src/main/res/values/strings.xml index 5cd6eac3f7..7defd4e933 100644 --- a/OCH/mogo-och-taxi/src/main/res/values/strings.xml +++ b/OCH/mogo-och-taxi/src/main/res/values/strings.xml @@ -35,6 +35,7 @@ 获取验证码 请输入验证码 获取验证码成功 + 登录成功 请输入正确的手机号 请输入手机号 请输入手机号