[6.4.0]
[登录模块分离]
This commit is contained in:
@@ -14,6 +14,7 @@ import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.och.bus.constant.BusConst;
|
||||
import com.mogo.och.bus.fragment.BusFragment;
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -23,7 +24,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
@Route(path = BusConst.PATH)
|
||||
@Route(path = OchCommonConst.BUS_DRIVER)
|
||||
public class BusProvider implements IMogoOCH {
|
||||
|
||||
private static final String TAG = "BusProvider";
|
||||
|
||||
@@ -32,13 +32,10 @@ import com.mogo.map.overlay.point.Point;
|
||||
import com.mogo.och.bus.R;
|
||||
import com.mogo.och.bus.bean.BusStationBean;
|
||||
import com.mogo.och.bus.constant.BusConst;
|
||||
import com.mogo.och.bus.net.login.LoginBusImpl;
|
||||
import com.mogo.och.bus.presenter.BusPresenter;
|
||||
import com.mogo.och.bus.ui.BusStationCommonItem;
|
||||
import com.mogo.och.bus.ui.BusSwitchLineActivity;
|
||||
import com.mogo.och.bus.view.SlidePanelView;
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst;
|
||||
import com.mogo.och.common.module.biz.provider.LoginService;
|
||||
import com.mogo.och.common.module.utils.BlinkAnimationUtil;
|
||||
import com.mogo.och.common.module.utils.OCHThreadPoolManager;
|
||||
import com.mogo.och.common.module.utils.QRUtilsKt;
|
||||
@@ -75,8 +72,6 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
|
||||
private BusStationCommonItem secondStationItem;
|
||||
private BusStationCommonItem thirdStationItem;
|
||||
|
||||
private LoginService loginService;
|
||||
|
||||
@Override
|
||||
public String getTagName() {
|
||||
return "BusFragment";
|
||||
@@ -85,17 +80,11 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
|
||||
@Override
|
||||
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation();
|
||||
if (loginService != null) {
|
||||
loginService.registerFragment(this, getPresenter(), new LoginBusImpl());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
loginService.unRegisterFragment();
|
||||
loginService = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -59,8 +59,8 @@ import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg;
|
||||
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager;
|
||||
import com.mogo.och.common.module.biz.common.socketmessage.data.OCHOperationalMessage;
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst;
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager;
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback;
|
||||
import com.mogo.och.common.module.biz.provider.LoginService;
|
||||
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback;
|
||||
import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
|
||||
@@ -123,8 +123,6 @@ public class OrderModel {
|
||||
//0: 代表没有启动过 1代表是启动第一次,当>=1 代表是重试 每次到站/路线结束清空置为0
|
||||
private volatile int firstStartAutopilot = 0;
|
||||
|
||||
private LoginService loginService;
|
||||
|
||||
private final Handler handler = new Handler(msg -> {
|
||||
if (msg.what == MSG_QUERY_BUS_STATION) {
|
||||
queryBusRoutes();
|
||||
@@ -149,7 +147,6 @@ public class OrderModel {
|
||||
|
||||
public void init() {
|
||||
mContext = AbsMogoApplication.getApp();
|
||||
loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation();
|
||||
// 定位监听
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG,5, mMapLocationListener);
|
||||
|
||||
@@ -315,7 +312,6 @@ public class OrderModel {
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.removeListener(TAG);
|
||||
|
||||
TrajectoryManager.INSTANCE.addTrajectoryListListenerr(TAG,null);
|
||||
loginService = null;
|
||||
|
||||
OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null);
|
||||
|
||||
@@ -1172,7 +1168,7 @@ public class OrderModel {
|
||||
public void logout() {
|
||||
double mLatitude = CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLatitude();
|
||||
double mLongitude =CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLongitude();
|
||||
loginService.loginOut(mLatitude, mLongitude);
|
||||
LoginStatusManager.loginOut(mLatitude, mLongitude);
|
||||
}
|
||||
|
||||
public void triggerStartServiceEvent(boolean isRestart, boolean send) {
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
package com.mogo.och.bus.net.login
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean
|
||||
import com.mogo.och.common.module.biz.network.LoginDefaultManage
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
|
||||
class LoginBusImpl: LoginDefaultManage {
|
||||
|
||||
override fun getPhoneCode(
|
||||
context: Context, phone: String?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
OchCommonServiceManager.getPhoneCode(context,phone,callback)
|
||||
}
|
||||
|
||||
override fun gotoLoginBycode(
|
||||
context: Context,
|
||||
phone: String?,
|
||||
code: String?,
|
||||
location4Login: TaxiLoginReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<TaxiLoginRespBean>?
|
||||
) {
|
||||
OchCommonServiceManager.gotoLoginBycode(context,phone,code,location4Login,callback)
|
||||
}
|
||||
|
||||
override fun logout(
|
||||
context: Context,
|
||||
location4Login: TaxiLogoutReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
OchCommonServiceManager.logout(context,location4Login,callback)
|
||||
}
|
||||
|
||||
override fun queryDriverServiceStatus(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<DriverStatusQueryRespBean>?
|
||||
) {
|
||||
OchCommonServiceManager.queryDriverServiceStatus(context,callback)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,150 +0,0 @@
|
||||
package com.mogo.och.bus.net.login
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl
|
||||
import com.mogo.och.common.module.biz.network.interceptor.transformTry
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
*/
|
||||
object OchCommonServiceManager {
|
||||
|
||||
private const val TAG = "OchCommonServiceManager"
|
||||
|
||||
private val mLoginServiceApi: OchLoginServiceApi =
|
||||
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(
|
||||
OchLoginServiceApi::class.java
|
||||
)
|
||||
|
||||
private val mLoginSaasServiceApi: OchSAASLoginServiceApi =
|
||||
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(
|
||||
OchSAASLoginServiceApi::class.java
|
||||
)
|
||||
|
||||
/**
|
||||
* 获取手机验证码
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun getPhoneCode(
|
||||
context: Context, phone: String?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
if (DebugConfig.getProjectFlavor().contains("saas")){
|
||||
mLoginSaasServiceApi.getPhoneCode(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
TaxiLoginSmsReqBean(phone)
|
||||
).transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "getPhoneCode"))
|
||||
}else{
|
||||
mLoginServiceApi.getPhoneCode(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
TaxiLoginSmsReqBean(phone)
|
||||
).transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "getPhoneCode"))
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过验证码登录
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun gotoLoginBycode(
|
||||
context: Context, phone: String?, code: String?,
|
||||
location4Login: TaxiLoginReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<TaxiLoginRespBean>?
|
||||
) {
|
||||
val sn = SharedPrefsMgr.getInstance().sn
|
||||
|
||||
if (DebugConfig.getProjectFlavor().contains("saas")){
|
||||
mLoginSaasServiceApi.gotoLoginBycode4Bus(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
TaxiLoginReqBean(phone, code, sn, location4Login)
|
||||
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "gotoLoginBycode"))
|
||||
}else{
|
||||
mLoginServiceApi.gotoLoginBycode4Bus(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
TaxiLoginReqBean(phone, code, sn, location4Login)
|
||||
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "gotoLoginBycode"))
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 登出
|
||||
*/
|
||||
@JvmStatic
|
||||
fun logout(
|
||||
context: Context,
|
||||
location4Login: TaxiLogoutReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
if (DebugConfig.getProjectFlavor().contains("saas")){
|
||||
mLoginSaasServiceApi.logout4Bus(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
TaxiLogoutReqBean(SharedPrefsMgr.getInstance().sn, location4Login)
|
||||
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout"))
|
||||
}else{
|
||||
mLoginServiceApi.logout4Bus(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
TaxiLogoutReqBean(SharedPrefsMgr.getInstance().sn, location4Login)
|
||||
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout"))
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 接单状态和登录状态查询
|
||||
*
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun queryDriverServiceStatus(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<DriverStatusQueryRespBean>?
|
||||
) {
|
||||
if (SharedPrefsMgr.getInstance().token.isEmpty()) {
|
||||
callback?.onFail(OchCommonConst.WAIT_TAKEN, "等待令牌中请稍等")
|
||||
MoGoAiCloudClient.getInstance().refreshToken()
|
||||
return
|
||||
}
|
||||
if (DebugConfig.getProjectFlavor().contains("saas")){
|
||||
mLoginSaasServiceApi.queryDriverServiceStatusAndLoginStatus(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
SharedPrefsMgr.getInstance().sn
|
||||
).transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus"))
|
||||
}else{
|
||||
mLoginServiceApi.queryDriverServiceStatusAndLoginStatus(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
SharedPrefsMgr.getInstance().sn
|
||||
).transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus"))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
package com.mogo.och.bus.net.login;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import retrofit2.http.Body;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Header;
|
||||
import retrofit2.http.Headers;
|
||||
import retrofit2.http.POST;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
* <p>
|
||||
* 网约车-出租车接口定义
|
||||
*/
|
||||
interface OchSAASLoginServiceApi {
|
||||
/**
|
||||
* 获取手机验证码
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
@POST("/och-bus-cabin/api/sms/v1/driver/sendSms")
|
||||
Observable<DriverStatusQueryRespBean> getPhoneCode(@Header("appId") String appId
|
||||
, @Header("ticket") String ticket, @Body TaxiLoginSmsReqBean data);
|
||||
|
||||
/**
|
||||
* 通过验证码登录
|
||||
*
|
||||
* @param appId
|
||||
* @param ticket
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
@POST("/och-bus-cabin/cab/flow/v1/bus/driver/startOperation")
|
||||
Observable<TaxiLoginRespBean> gotoLoginBycode4Bus(@Header("appId") String appId
|
||||
, @Header("ticket") String ticket, @Body TaxiLoginReqBean data);
|
||||
|
||||
/**
|
||||
* 登出接口
|
||||
*/
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
@POST("/och-bus-cabin/cab/flow/v1/bus/driver/endOperation")
|
||||
Observable<BaseData> logout4Bus(@Header("appId") String appId, @Header("ticket") String ticket,
|
||||
@Body TaxiLogoutReqBean data);
|
||||
|
||||
/**
|
||||
* 接单状态和登录状态查询 出租车司机端、小巴车司机端、小巴车乘客端
|
||||
*
|
||||
* @param sn
|
||||
* @return
|
||||
*/
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
@GET("/och-bus-cabin/api/business/v1/loginStatus")
|
||||
Observable<DriverStatusQueryRespBean> queryDriverServiceStatusAndLoginStatus(@Header("appId") String appId
|
||||
, @Header("ticket") String ticket, @Query("sn") String sn);
|
||||
|
||||
}
|
||||
@@ -27,9 +27,8 @@ import com.mogo.och.bus.fragment.BusFragment;
|
||||
import com.mogo.och.bus.model.OrderModel;
|
||||
import com.mogo.och.bus.util.BusTrajectoryManager;
|
||||
import com.mogo.och.bus.util.BusVoiceManager;
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.common.module.biz.callback.ILoginCallback;
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager;
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback;
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.autopilot.ArrivedStation;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.autopilot.IOchAutopilotStatusListener;
|
||||
@@ -266,7 +265,7 @@ public class BusPresenter extends Presenter<BusFragment>
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loginSuccess(DriverStatusQueryRespBean data) {
|
||||
public void loginSuccess() {
|
||||
CallerLogger.d(M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin());
|
||||
if(LoginStatusManager.isLogin()){
|
||||
OrderModel.getInstance().startOrStopOrderLoop(true);
|
||||
@@ -281,11 +280,6 @@ public class BusPresenter extends Presenter<BusFragment>
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loginFail(boolean isLogin) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void playPassenger(WriteOffPassenger passenger) {
|
||||
int passengerNum = passenger.passengerSize;
|
||||
|
||||
@@ -9,9 +9,8 @@ import com.mogo.eagle.core.utilcode.util.GsonUtils;
|
||||
import com.mogo.och.bus.bean.BusRoutesResult;
|
||||
import com.mogo.och.bus.constant.BusConst;
|
||||
import com.mogo.och.bus.model.OrderModel;
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager;
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager;
|
||||
import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager;
|
||||
import com.zhidao.socket.utils.LoginStatusUtil;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils
|
||||
import com.mogo.och.bus.passenger.constant.BusPassengerConst
|
||||
import com.mogo.och.bus.passenger.ui.BusPassengerRouteFragment
|
||||
import com.mogo.och.bus.passenger.passenger.ui.PM2BaseFragment
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.wigets.media.MediaPlayerActivity
|
||||
|
||||
/**
|
||||
@@ -22,7 +23,7 @@ import com.mogo.och.common.module.wigets.media.MediaPlayerActivity
|
||||
*
|
||||
* Created on 2022/3/29
|
||||
*/
|
||||
@Route(path = BusPassengerConst.PATH)
|
||||
@Route(path = OchCommonConst.BUS_PASSENGER)
|
||||
class MogoOCHBusPassenger : IMoGoFunctionProvider {
|
||||
private var mActivity: FragmentActivity? = null
|
||||
private var mContainerId = 0
|
||||
|
||||
@@ -8,13 +8,14 @@ import com.magic.mogo.och.charter.constant.CharterConst
|
||||
import com.magic.mogo.och.charter.fragment.DriverM1Fragment
|
||||
import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
|
||||
|
||||
/**
|
||||
* @author: wangmingjun
|
||||
* @date: 2023/2/22
|
||||
*/
|
||||
@Route(path = CharterConst.PATH)
|
||||
@Route(path = OchCommonConst.CHARTER_DRIVER)
|
||||
class CharterProvider: IMoGoFunctionProvider{
|
||||
|
||||
private var mActivity: FragmentActivity? = null
|
||||
|
||||
@@ -5,13 +5,11 @@ import android.os.Bundle
|
||||
import android.os.CountDownTimer
|
||||
import android.view.View.GONE
|
||||
import android.view.View.VISIBLE
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.magic.mogo.och.charter.R
|
||||
import com.magic.mogo.och.charter.base.CharterBaseFragment
|
||||
import com.magic.mogo.och.charter.bean.QueryCurrentOrderResponse
|
||||
import com.magic.mogo.och.charter.bean.QueryCurrentOrderResponse.Result.Companion.ARRIVING
|
||||
import com.magic.mogo.och.charter.constant.CharterConst.Companion.LOOP_PERIOD_60S
|
||||
import com.magic.mogo.och.charter.net.login.LoginDriverM1Impl
|
||||
import com.magic.mogo.och.charter.presenter.DriverM1Presenter
|
||||
import com.magic.mogo.och.charter.view.SlidePanelView
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
@@ -19,8 +17,6 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.temp.EventLogout
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.biz.provider.LoginService
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.common.module.utils.createQRCodeWithPicture
|
||||
import com.mogo.och.common.module.wigets.BindQRCodeDialog
|
||||
@@ -47,7 +43,6 @@ import kotlin.math.roundToInt
|
||||
*/
|
||||
class DriverM1Fragment : CharterBaseFragment<DriverM1Fragment?, DriverM1Presenter?>(),
|
||||
SlidePanelView.OnSlidePanelMoveToEndListener{
|
||||
private var loginService: LoginService? = null
|
||||
private var ochCommitDialog: OCHCommitDialog? = null
|
||||
var countDownTimer: CountDownTimer? = null
|
||||
|
||||
@@ -57,11 +52,6 @@ class DriverM1Fragment : CharterBaseFragment<DriverM1Fragment?, DriverM1Presente
|
||||
|
||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||
super.onActivityCreated(savedInstanceState)
|
||||
loginService =
|
||||
ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation() as LoginService
|
||||
if (loginService != null) {
|
||||
loginService?.registerFragment(this, presenter, LoginDriverM1Impl())
|
||||
}
|
||||
}
|
||||
|
||||
private fun showOrHideOrderUI(show:Boolean){
|
||||
@@ -119,8 +109,6 @@ class DriverM1Fragment : CharterBaseFragment<DriverM1Fragment?, DriverM1Presente
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
loginService?.unRegisterFragment()
|
||||
loginService = null
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
|
||||
@@ -14,7 +14,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.ActivityUtils
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager
|
||||
import com.mogo.och.common.module.utils.SoundPoolHelper
|
||||
import io.reactivex.Observable
|
||||
|
||||
@@ -47,7 +47,7 @@ import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManag
|
||||
import com.mogo.och.common.module.biz.common.socketmessage.data.*
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.biz.provider.LoginService
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback
|
||||
import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager.startLoopAbnormalFactors
|
||||
import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager.stopLoopAbnormalFactors
|
||||
@@ -95,7 +95,6 @@ class DriverM1Model {
|
||||
|
||||
//0: 代表没有启动过 1代表是启动第一次,当>=1 代表是重试 每次到站/路线结束清空置为0
|
||||
|
||||
private var loginService: LoginService? = null
|
||||
|
||||
companion object {
|
||||
val TAG = DriverM1Model::class.java.simpleName
|
||||
@@ -147,8 +146,6 @@ class DriverM1Model {
|
||||
//网络监听
|
||||
IntentManager.getInstance().registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener)
|
||||
|
||||
loginService = ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation() as LoginService
|
||||
|
||||
//2022.1.28
|
||||
// 调用Disposable.dispose() 时候会出现InterruptedException 导致出现崩溃
|
||||
// The exception could not be delivered to the consumer because it has already canceled/disposed
|
||||
@@ -172,7 +169,6 @@ class DriverM1Model {
|
||||
// 注销定位监听
|
||||
CallerChassisLocationGCJ02ListenerManager.removeListener(TAG)
|
||||
|
||||
loginService = null
|
||||
OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null)
|
||||
releaseSocketMessageListener(
|
||||
OCHSocketMessageManager.msgMonitorType
|
||||
@@ -350,7 +346,7 @@ class DriverM1Model {
|
||||
d(SceneConstant.M_TAXI + TAG, "onIntentReceived = %s", intentStr)
|
||||
if (ConnectivityManager.CONNECTIVITY_ACTION == intentStr) {
|
||||
if (NetworkUtils.isConnected(mContext)) {
|
||||
loginService!!.queryLoginStatusByNet()
|
||||
LoginStatusManager.queryLoginStatusByNet()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -517,7 +513,7 @@ class DriverM1Model {
|
||||
|
||||
// 登出
|
||||
fun logout() {
|
||||
loginService!!.loginOut(mLatitude, mLongitude)
|
||||
LoginStatusManager.loginOut(mLatitude, mLongitude)
|
||||
}
|
||||
|
||||
fun triggerStartServiceEvent(isRestart: Boolean, send: Boolean) {
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
package com.magic.mogo.och.charter.net.login
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean
|
||||
import com.mogo.och.common.module.biz.network.LoginDefaultManage
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
|
||||
class LoginDriverM1Impl: LoginDefaultManage {
|
||||
|
||||
override fun getPhoneCode(
|
||||
context: Context, phone: String?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
OchCommonServiceManager.getPhoneCode(context,phone,callback)
|
||||
}
|
||||
|
||||
override fun gotoLoginBycode(
|
||||
context: Context,
|
||||
phone: String?,
|
||||
code: String?,
|
||||
location4Login: TaxiLoginReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<TaxiLoginRespBean>?
|
||||
) {
|
||||
OchCommonServiceManager.gotoLoginBycode(context,phone,code,location4Login,callback)
|
||||
}
|
||||
|
||||
override fun logout(
|
||||
context: Context,
|
||||
location4Login: TaxiLogoutReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
OchCommonServiceManager.logout(context,location4Login,callback)
|
||||
}
|
||||
|
||||
override fun queryDriverServiceStatus(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<DriverStatusQueryRespBean>?
|
||||
) {
|
||||
OchCommonServiceManager.queryDriverServiceStatus(context,callback)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
package com.magic.mogo.och.charter.net.login;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import retrofit2.http.Body;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Header;
|
||||
import retrofit2.http.Headers;
|
||||
import retrofit2.http.POST;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
* <p>
|
||||
* 网约车-出租车接口定义
|
||||
*/
|
||||
interface OchLoginServiceApi {
|
||||
/**
|
||||
* 获取手机验证码
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
@POST("/och-rental-cabin/api/sms/v1/driver/sendSms")
|
||||
Observable<DriverStatusQueryRespBean> getPhoneCode(@Header("appId") String appId
|
||||
, @Header("ticket") String ticket, @Body TaxiLoginSmsReqBean data);
|
||||
|
||||
/**
|
||||
* 通过验证码登录
|
||||
*
|
||||
* @param appId
|
||||
* @param ticket
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
@POST("/och-rental-cabin/api/flow/v1/driver/startOperation")
|
||||
Observable<TaxiLoginRespBean> gotoLoginBycode4Bus(@Header("appId") String appId
|
||||
, @Header("ticket") String ticket, @Body TaxiLoginReqBean data);
|
||||
|
||||
/**
|
||||
* 登出接口
|
||||
*/
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
@POST("/och-rental-cabin/api/flow/v1/driver/endOperation")
|
||||
Observable<BaseData> logout4Bus(@Header("appId") String appId, @Header("ticket") String ticket,
|
||||
@Body TaxiLogoutReqBean data);
|
||||
|
||||
/**
|
||||
* 接单状态和登录状态查询 出租车司机端、小巴车司机端、小巴车乘客端
|
||||
*
|
||||
* @param sn
|
||||
* @return
|
||||
*/
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
@GET("/och-rental-cabin/api/business/v1/driver/loginStatus")
|
||||
Observable<DriverStatusQueryRespBean> queryDriverServiceStatusAndLoginStatus(@Header("appId") String appId
|
||||
, @Header("ticket") String ticket, @Query("sn") String sn);
|
||||
|
||||
}
|
||||
@@ -5,23 +5,19 @@ import com.magic.mogo.och.charter.R
|
||||
import com.magic.mogo.och.charter.bean.QueryCurrentOrderResponse
|
||||
import com.magic.mogo.och.charter.callback.ChangeDestCallback
|
||||
import com.magic.mogo.och.charter.callback.DriverM1OrderCallback
|
||||
import com.magic.mogo.och.charter.callback.IDriverM1ControllerStatusCallback
|
||||
import com.magic.mogo.och.charter.fragment.DriverM1Fragment
|
||||
import com.magic.mogo.och.charter.manager.CharterTrajectoryManager
|
||||
import com.magic.mogo.och.charter.model.DriverM1Model
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.mvp.Presenter
|
||||
import com.mogo.eagle.core.data.map.MogoLocation
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.DateTimeUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.common.module.biz.callback.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.OPERATION_ROAD_SIDE_TYPE
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager.isLogin
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager.isLogin
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.manager.beautifymode.BeautifyManager
|
||||
import com.mogo.och.common.module.manager.stopsidemanager.OCHPlanningActionsCallback
|
||||
@@ -36,7 +32,8 @@ import mogo_msg.MogoReportMsg
|
||||
* @date: 2023/2/22
|
||||
*/
|
||||
class DriverM1Presenter(view: DriverM1Fragment?) :
|
||||
Presenter<DriverM1Fragment?>(view),ILoginCallback, DriverM1OrderCallback, ChangeDestCallback,
|
||||
Presenter<DriverM1Fragment?>(view),
|
||||
ILoginCallback, DriverM1OrderCallback, ChangeDestCallback,
|
||||
IMoGoAutopilotStatusListener, OCHPlanningActionsCallback{
|
||||
|
||||
companion object{
|
||||
@@ -70,7 +67,7 @@ class DriverM1Presenter(view: DriverM1Fragment?) :
|
||||
DriverM1Model.get().release()
|
||||
}
|
||||
|
||||
override fun loginSuccess(data: DriverStatusQueryRespBean?) {
|
||||
override fun loginSuccess() {
|
||||
d(SceneConstant.M_BUS + TAG, " loginStatus =" + isLogin())
|
||||
if(isLogin()){
|
||||
// 查询服务状态
|
||||
@@ -81,7 +78,7 @@ class DriverM1Presenter(view: DriverM1Fragment?) :
|
||||
}
|
||||
}
|
||||
|
||||
override fun loginFail(isLogin: Boolean) {
|
||||
override fun loginFail() {
|
||||
DriverM1Model.get().stopQueryCurrentOrder()
|
||||
}
|
||||
|
||||
|
||||
@@ -10,13 +10,14 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.och.charter.passenger.constant.CharterPassengerConst
|
||||
import com.mogo.och.charter.passenger.ui.MainFragment
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
|
||||
/**
|
||||
* 网约车-Bus-乘客端
|
||||
*
|
||||
* Created on 2022/3/29
|
||||
*/
|
||||
@Route(path = CharterPassengerConst.PATH)
|
||||
@Route(path = OchCommonConst.CHARTER_PASSENGER)
|
||||
class MogoOCHBusPassenger : IMoGoFunctionProvider {
|
||||
private var mActivity: FragmentActivity? = null
|
||||
private var mContainerId = 0
|
||||
|
||||
@@ -37,9 +37,10 @@ import com.mogo.och.charter.passenger.utils.VoiceFocusManager
|
||||
import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg
|
||||
import com.mogo.och.common.module.bean.dpmsg.ChangeDestMsg
|
||||
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.biz.constant.TaxiLoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.TaxiLoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.manager.CharterSendTripInfoManager
|
||||
import com.mogo.och.common.module.manager.CharterSendTripInfoManager.LEAVE_STATION
|
||||
@@ -49,7 +50,6 @@ import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager
|
||||
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.common.module.utils.PinYinUtil
|
||||
import com.mogo.och.common.module.utils.RxUtils
|
||||
import com.mogo.och.common.module.voice.VoiceNotice
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.disposables.Disposable
|
||||
@@ -163,27 +163,26 @@ object CharterPassengerModel {
|
||||
* 启动轮询查询司机登录状态
|
||||
*/
|
||||
private fun listenerLoginStatus() {
|
||||
LoginStatusManager.setControllerStatusCallback(TAG,
|
||||
object : LoginStatusManager.ILoginStatusChangeListener {
|
||||
override fun onStatusChange(currentStatus: TaxiLoginStatusEnum) {
|
||||
if (LoginStatusManager.isLogin()) {
|
||||
// 1、打开视频播放、
|
||||
// 2 、打开空调暖风机灯设置页面
|
||||
// 3、车控页面、
|
||||
// 4、打开选择线路页面
|
||||
BizLoopManager.removeLoopFunction(TAGLOGIN)
|
||||
d(M_BUS_P + TAG, "结束登录状态轮询")
|
||||
// 启动订单轮
|
||||
startOrderLoop()
|
||||
} else {
|
||||
BizLoopManager.setLoopFunction(
|
||||
TAGLOGIN,
|
||||
LoopInfo(3, ::queryLoginStatus)
|
||||
)
|
||||
d(M_BUS_P + TAG, "启动登录状态轮询")
|
||||
}
|
||||
LoginStatusManager.addListener(TAG,object : ILoginCallback{
|
||||
override fun onStatusChange(currentStatus: TaxiLoginStatusEnum?) {
|
||||
if (LoginStatusManager.isLogin()) {
|
||||
// 1、打开视频播放、
|
||||
// 2 、打开空调暖风机灯设置页面
|
||||
// 3、车控页面、
|
||||
// 4、打开选择线路页面
|
||||
BizLoopManager.removeLoopFunction(TAGLOGIN)
|
||||
d(M_BUS_P + TAG, "结束登录状态轮询")
|
||||
// 启动订单轮
|
||||
startOrderLoop()
|
||||
} else {
|
||||
BizLoopManager.setLoopFunction(
|
||||
TAGLOGIN,
|
||||
LoopInfo(3, ::queryLoginStatus)
|
||||
)
|
||||
d(M_BUS_P + TAG, "启动登录状态轮询")
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
// endregion
|
||||
|
||||
@@ -291,26 +290,7 @@ object CharterPassengerModel {
|
||||
* 查询车辆登录状态、车牌、司机手机号、司机sn
|
||||
*/
|
||||
fun queryLoginStatus() {
|
||||
BusPassengerServiceManager.queryDriverOperationStatus(
|
||||
mContext, object : OchCommonServiceCallback<M1DriverLoginStatusResponse> {
|
||||
override fun onSuccess(data: M1DriverLoginStatusResponse?) {
|
||||
if (data?.data == null) return
|
||||
LoginStatusManager.setLoginStatus(data.data.driverStatus)
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String) {
|
||||
RxUtils.createSubscribe {
|
||||
queryLoginStatus()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onError() {
|
||||
super.onError()
|
||||
RxUtils.createSubscribe {
|
||||
queryLoginStatus()
|
||||
}
|
||||
}
|
||||
})
|
||||
LoginStatusManager.queryLoginStatusByNet()
|
||||
}
|
||||
|
||||
//监听网络变化,避免启动机器时无网导致无法更新订单信息
|
||||
|
||||
@@ -32,7 +32,7 @@ import com.mogo.och.charter.passenger.ui.dialogfragment.NoviceGuidanceFragment
|
||||
import com.mogo.och.charter.passenger.ui.lockview.LockManager
|
||||
import com.mogo.och.charter.passenger.ui.statusbar.StatusBarView
|
||||
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import kotlinx.android.synthetic.main.charter_p_main_fragment.aciv_enter_video
|
||||
import kotlinx.android.synthetic.main.charter_p_main_fragment.aciv_map_2_default
|
||||
import kotlinx.android.synthetic.main.charter_p_main_fragment.bb_boorombar
|
||||
|
||||
1
OCH/common/biz/.gitignore
vendored
Normal file
1
OCH/common/biz/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/build
|
||||
63
OCH/common/biz/build.gradle
Normal file
63
OCH/common/biz/build.gradle
Normal file
@@ -0,0 +1,63 @@
|
||||
plugins {
|
||||
id 'com.android.library'
|
||||
id 'kotlin-kapt'
|
||||
id 'org.jetbrains.kotlin.android'
|
||||
id 'kotlin-android-extensions'
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion rootProject.ext.android.compileSdkVersion
|
||||
defaultConfig {
|
||||
minSdkVersion rootProject.ext.android.minSdkVersion
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
consumerProguardFiles "consumer-rules.pro"
|
||||
|
||||
kapt {
|
||||
useBuildCache = false
|
||||
arguments {
|
||||
arg("AROUTER_MODULE_NAME", project.getName())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = '1.8'
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||
implementation rootProject.ext.dependencies.kotlinstdlib
|
||||
implementation rootProject.ext.dependencies.androidxccorektx
|
||||
implementation rootProject.ext.dependencies.androidxappcompat
|
||||
implementation rootProject.ext.dependencies.material
|
||||
implementation rootProject.ext.dependencies.rxandroid
|
||||
implementation project(':OCH:common:common')
|
||||
|
||||
implementation rootProject.ext.dependencies.arouter
|
||||
kapt rootProject.ext.dependencies.aroutercompiler
|
||||
|
||||
if (Boolean.valueOf(USE_MAVEN_PACKAGE)) {
|
||||
api rootProject.ext.dependencies.mogocommons
|
||||
api rootProject.ext.dependencies.mogoutils
|
||||
}else {
|
||||
api project(":foudations:mogo-commons")
|
||||
api project(":core:mogo-core-utils")
|
||||
}
|
||||
|
||||
}
|
||||
0
OCH/common/biz/consumer-rules.pro
Normal file
0
OCH/common/biz/consumer-rules.pro
Normal file
21
OCH/common/biz/proguard-rules.pro
vendored
Normal file
21
OCH/common/biz/proguard-rules.pro
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# You can control the set of applied configuration files using the
|
||||
# proguardFiles setting in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
||||
5
OCH/common/biz/src/main/AndroidManifest.xml
Normal file
5
OCH/common/biz/src/main/AndroidManifest.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.mogo.och.biz">
|
||||
|
||||
</manifest>
|
||||
@@ -0,0 +1,96 @@
|
||||
package com.mogo.och.biz.login
|
||||
|
||||
import android.content.Context
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.eagle.core.data.temp.EventLogout
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.och.biz.login.model.OchCommonLoginStatusDefaultModel
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.biz.login.LoginInfo
|
||||
import com.mogo.och.common.module.biz.login.LoginService
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.TaxiDriverRoleEnum
|
||||
import com.mogo.och.common.module.biz.login.TaxiLoginStatusEnum
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
/**
|
||||
* 网约车小巴业务实现入口
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
@Route(path = OchCommonConst.BIZ_LOGIN)
|
||||
class LoginProvider : LoginService {
|
||||
private lateinit var loginFragment: Fragment
|
||||
|
||||
private var uiModel = true
|
||||
|
||||
private var loginStatus: TaxiLoginStatusEnum = TaxiLoginStatusEnum.None
|
||||
private var loginInfo: LoginInfo?=null
|
||||
override fun init(context: Context) {
|
||||
loginFragment = Fragment()
|
||||
}
|
||||
|
||||
override fun getFragment(): Fragment {
|
||||
return loginFragment
|
||||
}
|
||||
|
||||
override fun setLoginStatus(status: Int) {
|
||||
when (status) {
|
||||
0 -> {
|
||||
setLoginStatus(TaxiLoginStatusEnum.Logout)
|
||||
}
|
||||
1 -> {
|
||||
setLoginStatus(TaxiLoginStatusEnum.Login)
|
||||
}
|
||||
else -> {
|
||||
setLoginStatus(TaxiLoginStatusEnum.None)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun queryLoginStatusByNet() {
|
||||
OchCommonLoginStatusDefaultModel.queryCarStatus()
|
||||
}
|
||||
override fun showUiModel(show: Boolean) {
|
||||
uiModel = show;
|
||||
}
|
||||
override fun loginOut(mLatitude: Double, mLongitude: Double) {
|
||||
OchCommonLoginStatusDefaultModel.logout(mLatitude, mLongitude)
|
||||
}
|
||||
|
||||
override fun setLoginInfo(loginInfo: LoginInfo) {
|
||||
this.loginInfo = loginInfo
|
||||
}
|
||||
|
||||
override fun getLoginInfo(): LoginInfo? {
|
||||
return loginInfo
|
||||
}
|
||||
|
||||
override fun getPurpose(): TaxiDriverRoleEnum {
|
||||
return TaxiDriverRoleEnum.valueOf(loginInfo?.purpose)
|
||||
}
|
||||
|
||||
override fun isLogin(): Boolean {
|
||||
return loginStatus == TaxiLoginStatusEnum.Login
|
||||
}
|
||||
|
||||
override fun getLoginStatus(): TaxiLoginStatusEnum {
|
||||
return loginStatus
|
||||
}
|
||||
|
||||
|
||||
override fun setLoginStatus(loginStatus: TaxiLoginStatusEnum) {
|
||||
if(loginStatus!=this.loginStatus){
|
||||
this.loginStatus = loginStatus
|
||||
LoginStatusManager.invokeLoginStatusChange(loginStatus)
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val TAG = "LoginProvider"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.mogo.och.biz.login.bean;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.och.common.module.biz.login.LoginInfo;
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
*
|
||||
* 状态查询返回数据结构
|
||||
*/
|
||||
public class DriverStatusQueryRespBean extends BaseData {
|
||||
public LoginInfo data;
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.common.module.biz.bean;
|
||||
package com.mogo.och.biz.login.bean;
|
||||
|
||||
/**
|
||||
* Created by yangyakun on 2021/8/19
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.common.module.biz.bean;
|
||||
package com.mogo.och.biz.login.bean;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.common.module.biz.bean;
|
||||
package com.mogo.och.biz.login.bean;
|
||||
|
||||
/**
|
||||
* Created by yyk on 2021/8/19
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.common.module.biz.bean;
|
||||
package com.mogo.och.biz.login.bean;
|
||||
|
||||
/**
|
||||
* Created by yyk on 2021/8/19
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.mogo.och.common.module.biz.callback;
|
||||
package com.mogo.och.biz.login.callback;
|
||||
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.biz.login.bean.DriverStatusQueryRespBean;
|
||||
|
||||
public interface ILoginCallback {
|
||||
void loginSuccess(DriverStatusQueryRespBean data);
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.common.module.biz.callback;
|
||||
package com.mogo.och.biz.login.callback;
|
||||
|
||||
/**
|
||||
* Created on 2021/9/8
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.common.module.biz.model
|
||||
package com.mogo.och.biz.login.model
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
@@ -6,14 +6,14 @@ import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils
|
||||
import com.mogo.och.common.module.R
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean
|
||||
import com.mogo.och.common.module.biz.callback.ITaxiLoginCallback
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.constant.TaxiLoginStatusEnum
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.biz.login.bean.TaxiLoginReqBean
|
||||
import com.mogo.och.biz.login.bean.TaxiLoginRespBean
|
||||
import com.mogo.och.biz.login.callback.ITaxiLoginCallback
|
||||
import com.mogo.och.biz.login.net.OchCommonServiceManager
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.TaxiLoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceManager
|
||||
import com.mogo.och.common.module.utils.ToastUtilsOch
|
||||
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
|
||||
|
||||
@@ -45,7 +45,7 @@ object OchCommonLoginModel {
|
||||
}
|
||||
|
||||
fun setiTaxiLoginCallback(iTaxiLoginCallback: ITaxiLoginCallback?) {
|
||||
this.iTaxiLoginCallback = iTaxiLoginCallback
|
||||
OchCommonLoginModel.iTaxiLoginCallback = iTaxiLoginCallback
|
||||
}
|
||||
|
||||
fun release() {
|
||||
@@ -1,16 +1,15 @@
|
||||
package com.mogo.och.common.module.biz.model
|
||||
package com.mogo.och.biz.login.model
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.mogo.och.biz.login.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.common.module.bean.dpmsg.BusCacheKey
|
||||
import com.mogo.och.common.module.bean.dpmsg.LoginCacheStatus
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.common.module.biz.callback.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.callback.ILoginViewCallback
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.data.manager.cache.CacheDataManager
|
||||
|
||||
@@ -22,18 +21,15 @@ object OchCommonLoginStatusDefaultModel : OchCommonLoginStatusModel() {
|
||||
|
||||
|
||||
var loginCallback: ILoginCallback? = null
|
||||
var loginViewCallback: ILoginViewCallback? = null
|
||||
|
||||
override fun loginSuccess(data: DriverStatusQueryRespBean?) {
|
||||
CallerLogger.d(SceneConstant.M_TAXI + TAG, "loginSuccess:${LoginStatusManager.isLogin()}")
|
||||
if (LoginStatusManager.isLogin()) {
|
||||
SharedPrefsMgr.getInstance().putString("och_account", data?.data?.phone)
|
||||
loginViewCallback?.hideLoginDialogFragment()
|
||||
} else {
|
||||
SharedPrefsMgr.getInstance().putString("och_account", "")
|
||||
loginViewCallback?.showLoginDialogFragment()
|
||||
}
|
||||
loginCallback?.loginSuccess(data)
|
||||
loginCallback?.loginSuccess()
|
||||
|
||||
data?.data?.driverStatus?.let { updateLoginLocalStatus(it) }
|
||||
|
||||
@@ -45,15 +41,10 @@ object OchCommonLoginStatusDefaultModel : OchCommonLoginStatusModel() {
|
||||
GsonUtils.toJson(loginCacheStatus))
|
||||
}
|
||||
|
||||
|
||||
override fun loginFail(isLogin: Boolean) {
|
||||
CallerLogger.d(SceneConstant.M_TAXI + TAG, "loginFail:$isLogin")
|
||||
if (isLogin) {
|
||||
loginViewCallback?.hideLoginDialogFragment()
|
||||
} else {
|
||||
loginViewCallback?.showLoginDialogFragment()
|
||||
}
|
||||
loginCallback?.loginFail(isLogin)
|
||||
|
||||
loginCallback?.loginFail()
|
||||
updateLoginLocalStatus(0)
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.common.module.biz.model;
|
||||
package com.mogo.och.biz.login.model;
|
||||
|
||||
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI;
|
||||
|
||||
@@ -8,14 +8,13 @@ import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils;
|
||||
import com.mogo.och.common.module.R;
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean;
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager;
|
||||
import com.mogo.och.biz.R;
|
||||
import com.mogo.och.biz.login.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.biz.login.bean.TaxiLogoutReqBean;
|
||||
import com.mogo.och.biz.login.net.OchCommonServiceManager;
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager;
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst;
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback;
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceManager;
|
||||
import com.mogo.och.common.module.utils.ToastUtilsOch;
|
||||
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils;
|
||||
|
||||
@@ -60,6 +59,7 @@ public abstract class OchCommonLoginStatusModel {
|
||||
public void onSuccess(DriverStatusQueryRespBean data) {
|
||||
if (null != data && 0 == data.code) {
|
||||
LoginStatusManager.setLoginStatus(data.data.driverStatus);
|
||||
LoginStatusManager.setLoginInfo(data.data);
|
||||
CallerLogger.d(M_TAXI + TAG, "changeCarStatus:" + LoginStatusManager.getLoginStatus());
|
||||
loginSuccess(data);
|
||||
}
|
||||
@@ -1,32 +1,44 @@
|
||||
package com.magic.mogo.och.charter.net.login
|
||||
package com.mogo.och.biz.login.net
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.och.biz.login.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.biz.login.bean.TaxiLoginReqBean
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.och.biz.login.bean.TaxiLoginRespBean
|
||||
import com.mogo.och.biz.login.bean.TaxiLoginSmsReqBean
|
||||
import com.mogo.och.biz.login.bean.TaxiLogoutReqBean
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl
|
||||
import com.mogo.och.common.module.biz.network.interceptor.transformTry
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
*/
|
||||
object OchCommonServiceManager {
|
||||
|
||||
private const val TAG = "OchCommonServiceManager"
|
||||
|
||||
private val mLoginServiceApi: OchLoginServiceApi =
|
||||
private val loginDefaultManage: OchLoginServiceApi =
|
||||
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(
|
||||
OchLoginServiceApi::class.java
|
||||
)
|
||||
private var draiverSnCacher = ""
|
||||
/**
|
||||
* 获取Bus司机端的sn
|
||||
* @return
|
||||
*/
|
||||
val draiverSn: String
|
||||
get(){
|
||||
val serverToken = CallerTelematicManager.getServerToken()
|
||||
if (serverToken != draiverSnCacher && serverToken.isNotEmpty()) {
|
||||
draiverSnCacher = serverToken
|
||||
}
|
||||
return draiverSnCacher
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取手机验证码
|
||||
@@ -38,7 +50,7 @@ object OchCommonServiceManager {
|
||||
context: Context, phone: String?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
mLoginServiceApi.getPhoneCode(
|
||||
loginDefaultManage.getPhoneCode(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
TaxiLoginSmsReqBean(phone)
|
||||
@@ -54,11 +66,11 @@ object OchCommonServiceManager {
|
||||
@JvmStatic
|
||||
fun gotoLoginBycode(
|
||||
context: Context, phone: String?, code: String?,
|
||||
location4Login: TaxiLoginReqBean.Location4Login?,
|
||||
location4Login: TaxiLoginReqBean.Location4Login,
|
||||
callback: OchCommonServiceCallback<TaxiLoginRespBean>?
|
||||
) {
|
||||
val sn = SharedPrefsMgr.getInstance().sn
|
||||
mLoginServiceApi.gotoLoginBycode4Bus(
|
||||
loginDefaultManage.gotoLoginBycode(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
TaxiLoginReqBean(phone, code, sn, location4Login)
|
||||
@@ -74,10 +86,12 @@ object OchCommonServiceManager {
|
||||
location4Login: TaxiLogoutReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
mLoginServiceApi.logout4Bus(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
loginDefaultManage.logout(MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
TaxiLogoutReqBean(SharedPrefsMgr.getInstance().sn, location4Login)
|
||||
TaxiLogoutReqBean(
|
||||
SharedPrefsMgr.getInstance().sn,
|
||||
location4Login
|
||||
)
|
||||
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout"))
|
||||
}
|
||||
|
||||
@@ -92,15 +106,16 @@ object OchCommonServiceManager {
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<DriverStatusQueryRespBean>?
|
||||
) {
|
||||
if (SharedPrefsMgr.getInstance().token.isEmpty()) {
|
||||
callback?.onFail(OchCommonConst.WAIT_TAKEN, "等待令牌中请稍等")
|
||||
MoGoAiCloudClient.getInstance().refreshToken()
|
||||
return
|
||||
val sn =
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
SharedPrefsMgr.getInstance().sn
|
||||
} else{
|
||||
draiverSn
|
||||
}
|
||||
mLoginServiceApi.queryDriverServiceStatusAndLoginStatus(
|
||||
loginDefaultManage.queryDriverServiceStatusAndLoginStatus(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
SharedPrefsMgr.getInstance().sn
|
||||
sn
|
||||
).transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus"))
|
||||
}
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.mogo.och.bus.net.login;
|
||||
package com.mogo.och.biz.login.net;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean;
|
||||
import com.mogo.och.biz.login.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.biz.login.bean.TaxiLoginReqBean;
|
||||
import com.mogo.och.biz.login.bean.TaxiLoginRespBean;
|
||||
import com.mogo.och.biz.login.bean.TaxiLoginSmsReqBean;
|
||||
import com.mogo.och.biz.login.bean.TaxiLogoutReqBean;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import retrofit2.http.Body;
|
||||
@@ -13,7 +13,6 @@ import retrofit2.http.GET;
|
||||
import retrofit2.http.Header;
|
||||
import retrofit2.http.Headers;
|
||||
import retrofit2.http.POST;
|
||||
import retrofit2.http.Path;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
/**
|
||||
@@ -42,7 +41,7 @@ interface OchLoginServiceApi {
|
||||
*/
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
@POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/startOperation")
|
||||
Observable<TaxiLoginRespBean> gotoLoginBycode4Bus(@Header("appId") String appId
|
||||
Observable<TaxiLoginRespBean> gotoLoginBycode(@Header("appId") String appId
|
||||
, @Header("ticket") String ticket, @Body TaxiLoginReqBean data);
|
||||
|
||||
/**
|
||||
@@ -50,7 +49,7 @@ interface OchLoginServiceApi {
|
||||
*/
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
@POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/endOperation")
|
||||
Observable<BaseData> logout4Bus(@Header("appId") String appId, @Header("ticket") String ticket,
|
||||
Observable<BaseData> logout(@Header("appId") String appId, @Header("ticket") String ticket,
|
||||
@Body TaxiLogoutReqBean data);
|
||||
|
||||
/**
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.common.module.biz.presenter
|
||||
package com.mogo.och.biz.login.presenter
|
||||
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
@@ -6,10 +6,10 @@ import com.mogo.commons.mvp.Presenter
|
||||
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.RegexUtils
|
||||
import com.mogo.och.common.module.R
|
||||
import com.mogo.och.common.module.biz.callback.ITaxiLoginCallback
|
||||
import com.mogo.och.common.module.biz.model.OchCommonLoginModel
|
||||
import com.mogo.och.common.module.biz.ui.TaxiLoginDialogFragment
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.biz.login.callback.ITaxiLoginCallback
|
||||
import com.mogo.och.biz.login.ui.TaxiLoginDialogFragment
|
||||
import com.mogo.och.biz.login.model.OchCommonLoginModel
|
||||
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
@@ -0,0 +1,204 @@
|
||||
package com.mogo.och.biz.login.ui
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.graphics.Rect
|
||||
import android.os.Bundle
|
||||
import android.os.SystemClock
|
||||
import android.view.*
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.widget.addTextChangedListener
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.mogo.commons.mvp.MvpFragment
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
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.ActivityUtils
|
||||
import com.mogo.eagle.core.utilcode.util.KeyboardUtils
|
||||
import com.mogo.och.biz.R
|
||||
import com.mogo.och.biz.login.presenter.OchCommonLoginPresenter
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.biz.login.LoginService
|
||||
import kotlinx.android.synthetic.main.taxi_login_view.acbtn_login
|
||||
import kotlinx.android.synthetic.main.taxi_login_view.ace_login_phone_value
|
||||
import kotlinx.android.synthetic.main.taxi_login_view.acet_phone_code_value
|
||||
import kotlinx.android.synthetic.main.taxi_login_view.aciv_login_bg
|
||||
import kotlinx.android.synthetic.main.taxi_login_view.actv_login_get_code
|
||||
import kotlinx.android.synthetic.main.taxi_login_view.actv_login_show_sn
|
||||
import kotlinx.android.synthetic.main.taxi_login_view.actv_welcome_login_title
|
||||
import kotlinx.android.synthetic.main.taxi_login_view.cl_main
|
||||
|
||||
|
||||
/**
|
||||
* @author: yangyakun
|
||||
* @date: 2022/8/15
|
||||
*/
|
||||
class TaxiLoginDialogFragment :
|
||||
MvpFragment<TaxiLoginDialogFragment?, OchCommonLoginPresenter?>(){
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
return super.onCreateView(inflater, container, savedInstanceState)
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.taxi_login_view
|
||||
}
|
||||
|
||||
override fun initViews() {
|
||||
inputPhoneNormal()
|
||||
initBg()
|
||||
initListener()
|
||||
}
|
||||
|
||||
private fun initBg() {
|
||||
if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode) &&
|
||||
AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
//出租车司机
|
||||
aciv_login_bg.setImageResource(R.drawable.taxi_ic_login_bg)
|
||||
} else if ((AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)
|
||||
|| AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)
|
||||
|| AppIdentityModeUtils.isCharter(FunctionBuildConfig.appIdentityMode)) &&
|
||||
AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
//小巴车司机
|
||||
aciv_login_bg.setImageResource(R.drawable.bus_ic_login_bg)
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
private fun initListener() {
|
||||
mRootView.isFocusable = true
|
||||
mRootView.isFocusableInTouchMode = true
|
||||
mRootView.setOnTouchListener { _, event ->
|
||||
when (event?.action) {
|
||||
MotionEvent.ACTION_DOWN -> {
|
||||
closeSoftInput()
|
||||
}
|
||||
}
|
||||
false
|
||||
}
|
||||
acbtn_login.onClick {
|
||||
val phone = ace_login_phone_value.text.toString()
|
||||
val code = acet_phone_code_value.text.toString()
|
||||
mPresenter?.gotoLogin(phone, code)
|
||||
}
|
||||
actv_welcome_login_title.setOnClickListener {
|
||||
continuousClick()
|
||||
}
|
||||
cl_main.viewTreeObserver.addOnGlobalLayoutListener {
|
||||
val rect = Rect()
|
||||
cl_main.getWindowVisibleDisplayFrame(rect)
|
||||
val mainInvisibleHeight = cl_main.rootView.height - rect.bottom
|
||||
if (mainInvisibleHeight > 100) {
|
||||
val outLocation = IntArray(2)
|
||||
acbtn_login.getLocationInWindow(outLocation)
|
||||
val srollHeight = (outLocation[1] + acbtn_login.height) - rect.bottom
|
||||
if (srollHeight > 0) {
|
||||
cl_main.scrollTo(0, srollHeight)
|
||||
}
|
||||
CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "滚动的距离:$srollHeight")
|
||||
} else {
|
||||
cl_main.scrollTo(0, 0)
|
||||
}
|
||||
}
|
||||
actv_login_get_code.onClick {
|
||||
mPresenter?.getPhoneCode(ace_login_phone_value.text.toString())
|
||||
}
|
||||
actv_login_show_sn.setOnLongClickListener {
|
||||
val loginService = ARouter.getInstance().build(OchCommonConst.LOGINSERVICE)
|
||||
.navigation() as LoginService
|
||||
loginService.showUiModel(false)
|
||||
true
|
||||
}
|
||||
ace_login_phone_value.addTextChangedListener {
|
||||
it?.let { itEditable ->
|
||||
if (itEditable.isNotEmpty()) {
|
||||
inputPhoneNormal()
|
||||
}
|
||||
}
|
||||
}
|
||||
actv_login_show_sn.text = SharedPrefsMgr.getInstance().sn
|
||||
}
|
||||
|
||||
/**
|
||||
* 关闭键盘
|
||||
*/
|
||||
fun closeSoftInput() {
|
||||
mRootView.requestFocus()
|
||||
KeyboardUtils.hideSoftInput(ActivityUtils.getTopActivity())
|
||||
}
|
||||
|
||||
fun setCountDownText(text: String, enable: Boolean) {
|
||||
if (enable) {
|
||||
actv_login_get_code.setText(R.string.module_och_taxi_login_get_code)
|
||||
actv_login_get_code.isEnabled = true
|
||||
} else {
|
||||
actv_login_get_code.text = text
|
||||
actv_login_get_code.isEnabled = false
|
||||
}
|
||||
}
|
||||
|
||||
fun inputPhoneError() {
|
||||
ace_login_phone_value.text?.clear()
|
||||
ace_login_phone_value.setHint(R.string.module_och_taxi_login_phone_error)
|
||||
context?.let {
|
||||
ace_login_phone_value.setHintTextColor(ContextCompat.getColor(it, R.color.taxi_EF262C))
|
||||
ace_login_phone_value.setBackgroundResource(R.drawable.taxi_login_phone_error)
|
||||
}
|
||||
}
|
||||
|
||||
private fun inputPhoneNormal() {
|
||||
//ace_login_phone_value.setHint(R.string.module_och_taxi_login_phone_hint_text)
|
||||
context?.let {
|
||||
ace_login_phone_value.setHintTextColor(ContextCompat.getColor(it, R.color.taxi_878890))
|
||||
ace_login_phone_value.setBackgroundResource(R.drawable.taxi_login_phone_normal)
|
||||
}
|
||||
}
|
||||
|
||||
override fun createPresenter(): OchCommonLoginPresenter {
|
||||
return OchCommonLoginPresenter(this)
|
||||
}
|
||||
|
||||
override fun getTagName(): String {
|
||||
return TAG
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val COUNTS = 4 // 点击次数
|
||||
private const val DURATION: Long = 1000 // 规定有效时间
|
||||
val TAG = TaxiLoginDialogFragment::class.java.simpleName
|
||||
|
||||
@JvmStatic
|
||||
fun newInstance(): TaxiLoginDialogFragment {
|
||||
val args = Bundle()
|
||||
val fragment = TaxiLoginDialogFragment()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
private var mHits = LongArray(COUNTS)
|
||||
|
||||
private fun continuousClick() {
|
||||
//每次点击时,数组向前移动一位
|
||||
System.arraycopy(mHits, 1, mHits, 0, mHits.size - 1)
|
||||
//为数组最后一位赋值
|
||||
mHits[mHits.size - 1] = SystemClock.uptimeMillis()
|
||||
if (mHits[0] >= (SystemClock.uptimeMillis() - DURATION)) {
|
||||
mHits = LongArray(COUNTS) //重新初始化数组
|
||||
mPresenter?.gotoLogin("13288888888", "8888")
|
||||
}
|
||||
}
|
||||
|
||||
fun loginSuccess() {
|
||||
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
20
OCH/common/biz/src/main/res/values/strings.xml
Normal file
20
OCH/common/biz/src/main/res/values/strings.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<string name="module_och_taxi_login_title">欢迎您登录</string>
|
||||
<string name="module_och_taxi_login_btn">登录</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_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_code_error">请输入正确的验证码</string>
|
||||
<string name="module_och_taxi_login_phone_hint_text">请输入手机号</string>
|
||||
<string name="module_och_taxi_login_get_phone_title">请输入手机号</string>
|
||||
|
||||
<string name="network_error_tip">网络异常,请稍后重试</string>
|
||||
<string name="request_error_tip">请求出现异常,请稍后重试</string>
|
||||
|
||||
<string name="qr_cancel">取消</string>
|
||||
<string name="bind_driver_qr_title">扫描二维码完成车辆绑定</string>
|
||||
</resources>
|
||||
@@ -1,25 +0,0 @@
|
||||
package com.mogo.och.common.module.biz.bean;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
*
|
||||
* 状态查询返回数据结构
|
||||
*/
|
||||
public class DriverStatusQueryRespBean extends BaseData {
|
||||
public Result data;
|
||||
|
||||
public static class Result {
|
||||
public int servingStatus; //1接单,1暂停接单
|
||||
public int driverStatus; //1登录,0登出
|
||||
public String orderNo;
|
||||
public int purpose; // 1 运营, 2 测试, 3演示
|
||||
|
||||
public String sn;
|
||||
public String plateNumber;//车牌号
|
||||
public String phone;//手机号
|
||||
public Integer lineId;//线路id
|
||||
public Integer taskId;//任务id
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
package com.mogo.och.common.module.biz.callback
|
||||
|
||||
interface ILoginViewCallback {
|
||||
/**
|
||||
* 展示登录页面
|
||||
*/
|
||||
fun showLoginDialogFragment()
|
||||
|
||||
/**
|
||||
* 隐藏登录页面
|
||||
*/
|
||||
fun hideLoginDialogFragment()
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
package com.mogo.och.common.module.biz.constant
|
||||
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
|
||||
object LoginStatusManager {
|
||||
/**
|
||||
* 登录状态
|
||||
*/
|
||||
private var loginStatus: TaxiLoginStatusEnum = TaxiLoginStatusEnum.None
|
||||
private val mStatusChangeListener = ConcurrentHashMap<String, ILoginStatusChangeListener>()
|
||||
|
||||
@JvmStatic
|
||||
fun setLoginStatus(status: Int) {
|
||||
when (status) {
|
||||
0 -> {
|
||||
setLoginStatus(TaxiLoginStatusEnum.Logout)
|
||||
}
|
||||
1 -> {
|
||||
setLoginStatus(TaxiLoginStatusEnum.Login)
|
||||
}
|
||||
else -> {
|
||||
setLoginStatus(TaxiLoginStatusEnum.None)
|
||||
}
|
||||
}
|
||||
}
|
||||
@JvmStatic
|
||||
fun setLoginStatus(loginStatus: TaxiLoginStatusEnum) {
|
||||
if(loginStatus!=this.loginStatus){
|
||||
this.loginStatus = loginStatus
|
||||
for (callback in mStatusChangeListener.values) {
|
||||
callback.onStatusChange(loginStatus)
|
||||
}
|
||||
}
|
||||
}
|
||||
@JvmStatic
|
||||
fun getLoginStatus(): TaxiLoginStatusEnum {
|
||||
return loginStatus
|
||||
}
|
||||
@JvmStatic
|
||||
fun isLogin():Boolean {
|
||||
if(loginStatus== TaxiLoginStatusEnum.Login){
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
fun setControllerStatusCallback(tag: String, callback: ILoginStatusChangeListener?) {
|
||||
if (tag.isBlank()) return
|
||||
if (callback == null) {
|
||||
mStatusChangeListener.remove(tag)
|
||||
return
|
||||
}
|
||||
mStatusChangeListener[tag] = callback
|
||||
}
|
||||
|
||||
interface ILoginStatusChangeListener{
|
||||
fun onStatusChange(currentStatus:TaxiLoginStatusEnum)
|
||||
}
|
||||
}
|
||||
@@ -30,6 +30,25 @@ class OchCommonConst {
|
||||
|
||||
const val LOGINSERVICE = "/ochbiz/common/login"
|
||||
|
||||
const val BIZ_LOGIN = "/ochbiz/common/login"
|
||||
|
||||
const val BUS_DRIVER = "/bus/driver"
|
||||
const val BUS_PASSENGER = "/bus/passenger"
|
||||
|
||||
const val CHARTER_DRIVER = "/charter/driver"
|
||||
const val CHARTER_PASSENGER = "/charter/passenger"
|
||||
|
||||
const val SHUTTLE_DRIVER = "/shuttle/driver"
|
||||
const val SHUTTLE_PASSENGER = "/shuttle/passenger"
|
||||
|
||||
const val SWEEPER_DRIVER = "/sweeper/driver"
|
||||
|
||||
const val TAXI_DRIVER = "/taxi/driver"
|
||||
const val TAXI_PASSENGER = "/taxi/passenger"
|
||||
|
||||
const val TAXI_UNMANNED_DRIVER = "/taxiunman/driver"
|
||||
const val TAXI_UNMANNED_PASSENGER = "/taxiunman/passenger"
|
||||
|
||||
const val BUSINESS_STRING = 100
|
||||
|
||||
// 自动驾驶自动规划的最大距离
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.mogo.och.common.module.biz.login;
|
||||
|
||||
public interface ILoginCallback {
|
||||
default void loginSuccess(){}
|
||||
|
||||
default void loginFail(){}
|
||||
|
||||
default void onStatusChange(TaxiLoginStatusEnum currentStatus){}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.mogo.och.common.module.biz.login;
|
||||
|
||||
public class LoginInfo {
|
||||
public int driverStatus; //1登录,0登出
|
||||
public String orderNo;
|
||||
public int purpose; // 1 运营, 2 测试, 3演示
|
||||
public String sn;
|
||||
public String plateNumber;//车牌号
|
||||
public String phone;//手机号
|
||||
public Integer lineId;//线路id
|
||||
public Integer taskId;//任务id
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.mogo.och.common.module.biz.login
|
||||
|
||||
import com.mogo.och.common.module.biz.provider.CommonService
|
||||
|
||||
interface LoginService : CommonService {
|
||||
fun setLoginInfo(loginInfo: LoginInfo)
|
||||
fun getLoginInfo():LoginInfo?
|
||||
|
||||
fun getPurpose():TaxiDriverRoleEnum
|
||||
|
||||
fun isLogin():Boolean
|
||||
fun getLoginStatus(): TaxiLoginStatusEnum
|
||||
fun setLoginStatus(loginStatus: TaxiLoginStatusEnum)
|
||||
fun setLoginStatus(status: Int)
|
||||
|
||||
fun queryLoginStatusByNet()
|
||||
|
||||
fun showUiModel(show:Boolean)
|
||||
|
||||
/**
|
||||
* 登出
|
||||
*/
|
||||
fun loginOut(mLatitude:Double,mLongitude:Double)
|
||||
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.mogo.och.common.module.biz.login
|
||||
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotStatisticsListenerManager
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.utils.CallerBase
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
|
||||
object LoginStatusManager : CallerBase<ILoginCallback>() {
|
||||
|
||||
private var loginService: LoginService? =
|
||||
ARouter.getInstance().build(OchCommonConst.BIZ_LOGIN).navigation() as LoginService
|
||||
|
||||
@JvmStatic
|
||||
fun loginOut(mLatitude: Double, mLongitude: Double) {
|
||||
loginService?.loginOut(mLatitude, mLongitude)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun queryLoginStatusByNet() {
|
||||
loginService?.queryLoginStatusByNet()
|
||||
}
|
||||
@JvmStatic
|
||||
fun getPurpose(): TaxiDriverRoleEnum {
|
||||
loginService?.let {
|
||||
return it.getPurpose()
|
||||
}
|
||||
return TaxiDriverRoleEnum.None
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun setLoginInfo(loginInfo: LoginInfo) {
|
||||
loginService?.setLoginInfo(loginInfo)
|
||||
}
|
||||
|
||||
fun getLoginInfo(): LoginInfo? {
|
||||
return loginService?.getLoginInfo()
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun setLoginStatus(status: Int) {
|
||||
loginService?.setLoginStatus(status)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun setLoginStatus(loginStatus: TaxiLoginStatusEnum) {
|
||||
loginService?.setLoginStatus(loginStatus)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getLoginStatus(): TaxiLoginStatusEnum {
|
||||
loginService?.let {
|
||||
return it.getLoginStatus()
|
||||
}
|
||||
return TaxiLoginStatusEnum.None
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun isLogin(): Boolean {
|
||||
loginService?.let {
|
||||
return it.isLogin()
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
fun invokeLoginStatusChange(currentStatus: TaxiLoginStatusEnum) {
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onStatusChange(currentStatus)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.mogo.och.common.module.biz.login
|
||||
|
||||
/**
|
||||
* Created on 2021/12/7
|
||||
* 1 运营, 2 测试, 3演示
|
||||
*/
|
||||
enum class TaxiDriverRoleEnum(val code: Int) {
|
||||
None( 0),
|
||||
OPERATION( 1),
|
||||
TEST( 2),
|
||||
DEMO( 3);
|
||||
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun valueOf(code: Int?): TaxiDriverRoleEnum {
|
||||
for (value in TaxiDriverRoleEnum.values()) {
|
||||
if (value.code == code) {
|
||||
return value
|
||||
}
|
||||
}
|
||||
return TaxiDriverRoleEnum.None
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.common.module.biz.constant
|
||||
package com.mogo.och.common.module.biz.login
|
||||
|
||||
/**
|
||||
* Created on 2022/08/19
|
||||
@@ -1,30 +0,0 @@
|
||||
package com.mogo.och.common.module.biz.network
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean
|
||||
|
||||
interface LoginDefaultManage {
|
||||
fun getPhoneCode(
|
||||
context: Context,
|
||||
phone: String?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
)
|
||||
fun gotoLoginBycode(
|
||||
context: Context, phone: String?, code: String?,
|
||||
location4Login: TaxiLoginReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<TaxiLoginRespBean>?
|
||||
)
|
||||
fun logout(
|
||||
context: Context,
|
||||
location4Login: TaxiLogoutReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
)
|
||||
fun queryDriverServiceStatus(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<DriverStatusQueryRespBean>?
|
||||
)
|
||||
}
|
||||
@@ -1,85 +0,0 @@
|
||||
package com.mogo.och.common.module.biz.network
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst.Companion.getBaseUrl
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||
import com.mogo.och.common.module.biz.network.interceptor.transformTry
|
||||
import io.reactivex.Observable
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
*/
|
||||
object OchCommonServiceManager {
|
||||
|
||||
private const val TAG = "OchCommonServiceManager"
|
||||
|
||||
private var loginDefaultManage: LoginDefaultManage?=null
|
||||
|
||||
fun setLoginDefaultManage(loginDefaultManage: LoginDefaultManage?){
|
||||
this.loginDefaultManage = loginDefaultManage
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取手机验证码
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun getPhoneCode(
|
||||
context: Context, phone: String?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
loginDefaultManage?.getPhoneCode(context,phone,callback)
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过验证码登录
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun gotoLoginBycode(
|
||||
context: Context, phone: String?, code: String?,
|
||||
location4Login: TaxiLoginReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<TaxiLoginRespBean>?
|
||||
) {
|
||||
loginDefaultManage?.gotoLoginBycode(context,phone,code,location4Login,callback)
|
||||
}
|
||||
|
||||
/**
|
||||
* 登出
|
||||
*/
|
||||
@JvmStatic
|
||||
fun logout(
|
||||
context: Context,
|
||||
location4Login: TaxiLogoutReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
loginDefaultManage?.logout(context,location4Login,callback)
|
||||
}
|
||||
|
||||
/**
|
||||
* 接单状态和登录状态查询
|
||||
*
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun queryDriverServiceStatus(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<DriverStatusQueryRespBean>?
|
||||
) {
|
||||
loginDefaultManage?.queryDriverServiceStatus(context,callback)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,8 +2,8 @@ package com.mogo.och.common.module.biz.network.interceptor
|
||||
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.constant.TaxiLoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.TaxiLoginStatusEnum
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.ObservableSource
|
||||
import io.reactivex.functions.Function
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
package com.mogo.och.common.module.biz.presenter
|
||||
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.LifecycleObserver
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import androidx.lifecycle.OnLifecycleEvent
|
||||
import com.mogo.och.common.module.biz.callback.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.callback.ILoginViewCallback
|
||||
import com.mogo.och.common.module.biz.model.OchCommonLoginStatusDefaultModel
|
||||
|
||||
/**
|
||||
* @author yangyakun
|
||||
* @since 2020-09-19
|
||||
*/
|
||||
class OchCommonLoginStatusDefaultPresenter : LifecycleObserver {
|
||||
private var isFirstShow = true
|
||||
|
||||
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
|
||||
fun onCreate(owner: LifecycleOwner) {
|
||||
OchCommonLoginStatusDefaultModel.init()
|
||||
}
|
||||
|
||||
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
|
||||
fun onResume(owner: LifecycleOwner) {
|
||||
if (isFirstShow) {
|
||||
isFirstShow = false
|
||||
} else {
|
||||
queryLoginStatus()
|
||||
}
|
||||
}
|
||||
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
|
||||
fun onDestory(owner: LifecycleOwner) {
|
||||
OchCommonLoginStatusDefaultModel.release()
|
||||
}
|
||||
|
||||
fun queryLoginStatus() {
|
||||
OchCommonLoginStatusDefaultModel.queryCarStatus()
|
||||
}
|
||||
|
||||
fun logOut(mLatitude:Double,mLongitude:Double){
|
||||
OchCommonLoginStatusDefaultModel.logout(mLatitude, mLongitude)
|
||||
}
|
||||
|
||||
fun setLoginCallback(loginCallback: ILoginCallback?,loginViewCallback: ILoginViewCallback?){
|
||||
OchCommonLoginStatusDefaultModel.loginCallback = loginCallback
|
||||
OchCommonLoginStatusDefaultModel.loginViewCallback = loginViewCallback
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.mogo.och.common.module.biz.provider
|
||||
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.alibaba.android.arouter.facade.template.IProvider
|
||||
|
||||
interface CommonService : IProvider {
|
||||
|
||||
fun getFragment():Fragment
|
||||
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
package com.mogo.och.common.module.biz.provider
|
||||
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.alibaba.android.arouter.facade.template.IProvider
|
||||
import com.mogo.och.common.module.biz.callback.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.network.LoginDefaultManage
|
||||
|
||||
interface LoginService : IProvider {
|
||||
/**
|
||||
* 注册页面
|
||||
* @param fragment 主页面
|
||||
* @param callback 回调
|
||||
*/
|
||||
fun registerFragment(fragment: Fragment?,loginCallback: ILoginCallback?,logindefaultmanage: LoginDefaultManage?)
|
||||
|
||||
fun unRegisterFragment()
|
||||
|
||||
/**
|
||||
* 查询登录状态
|
||||
*/
|
||||
fun queryLoginStatus():Boolean
|
||||
|
||||
fun queryLoginStatusByNet()
|
||||
|
||||
fun showUiModel(show:Boolean)
|
||||
|
||||
/**
|
||||
* 登出
|
||||
*/
|
||||
fun loginOut(mLatitude:Double,mLongitude:Double)
|
||||
|
||||
}
|
||||
@@ -1,139 +0,0 @@
|
||||
package com.mogo.och.common.module.biz.provider
|
||||
|
||||
import android.content.Context
|
||||
import android.content.DialogInterface
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
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.AppStateManager.currentActivity
|
||||
import com.mogo.eagle.core.utilcode.util.ClickUtils
|
||||
import com.mogo.och.common.module.biz.callback.ILoginCallback
|
||||
import com.mogo.och.common.module.biz.callback.ILoginViewCallback
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.biz.network.LoginDefaultManage
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceManager
|
||||
import com.mogo.och.common.module.biz.presenter.OchCommonLoginStatusDefaultPresenter
|
||||
import com.mogo.och.common.module.biz.ui.TaxiLoginDialogFragment
|
||||
import com.mogo.och.common.module.biz.ui.TaxiLoginDialogFragment.Companion.newInstance
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
@Route(path = OchCommonConst.LOGINSERVICE)
|
||||
class LoginServiceImpl : LoginService,ILoginViewCallback {
|
||||
|
||||
companion object{
|
||||
const val TAG = "LoginServiceImpl"
|
||||
}
|
||||
|
||||
private var fragment: Fragment?=null
|
||||
private var taxiLoginDialogFragment: WeakReference<TaxiLoginDialogFragment>? = null
|
||||
private var presenter: OchCommonLoginStatusDefaultPresenter?=null
|
||||
private var uiModel = true
|
||||
|
||||
override fun init(context: Context) {
|
||||
|
||||
}
|
||||
|
||||
override fun registerFragment(fragment: Fragment?,loginCallback: ILoginCallback?,logindefaultmanage: LoginDefaultManage?) {
|
||||
OchCommonServiceManager.setLoginDefaultManage(logindefaultmanage)
|
||||
presenter = OchCommonLoginStatusDefaultPresenter()
|
||||
this.fragment = fragment
|
||||
presenter?.let {
|
||||
it.setLoginCallback(loginCallback, this)
|
||||
this.fragment?.lifecycle?.addObserver(it)
|
||||
}
|
||||
}
|
||||
|
||||
override fun unRegisterFragment() {
|
||||
this.presenter?.let {
|
||||
it.setLoginCallback(null,null)
|
||||
this.fragment?.lifecycle?.removeObserver(it)
|
||||
}
|
||||
this.fragment = null
|
||||
}
|
||||
|
||||
|
||||
override fun showLoginDialogFragment() {
|
||||
if(uiModel) {
|
||||
fragment?.let {
|
||||
CallerHmiManager.hideToolsView()
|
||||
CallerHmiManager.hideSOPSettingView()
|
||||
val parentFragmentManager = it.childFragmentManager
|
||||
val fragmentByTag: Fragment? = parentFragmentManager.findFragmentByTag(TAG)
|
||||
if (fragmentByTag is DialogFragment) {
|
||||
if (fragmentByTag.dialog != null && fragmentByTag.dialog!!.isShowing) {
|
||||
return
|
||||
}
|
||||
if (fragmentByTag.dialog != null && fragmentByTag.isAdded) {
|
||||
if (currentActivity() == null) { // 没有在当前应用内 在启动页面关闭应用
|
||||
CallerLogger.d(SceneConstant.M_TAXI + TAG, "showLoginDialogFragment 权限验证")
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (taxiLoginDialogFragment?.get() == null) {
|
||||
taxiLoginDialogFragment = WeakReference(newInstance())
|
||||
}
|
||||
val taxiLoginDialog = taxiLoginDialogFragment?.get()
|
||||
if (taxiLoginDialog != null) {
|
||||
if (taxiLoginDialog.dialog != null && taxiLoginDialog.dialog!!.isShowing) {
|
||||
return
|
||||
}
|
||||
if (taxiLoginDialog.isAdded) { //解决方法就是添加这行代码,如果已经添加了,就移除掉然后再show,就不会出现Fragment already added的错误了。
|
||||
parentFragmentManager.beginTransaction().remove(taxiLoginDialog)
|
||||
.commitAllowingStateLoss()
|
||||
}
|
||||
if (isFastClick()) {
|
||||
taxiLoginDialog.show(parentFragmentManager, TAG)
|
||||
taxiLoginDialog.setOnDismissListener(DialogInterface.OnDismissListener { dialog: DialogInterface? ->
|
||||
taxiLoginDialogFragment?.clear()
|
||||
presenter?.queryLoginStatus()
|
||||
})
|
||||
CallerLogger.d(SceneConstant.M_TAXI + TAG, "showLoginDialogFragment 展示登录界面")
|
||||
}else{
|
||||
CallerLogger.d(SceneConstant.M_TAXI + TAG, "showLoginDialogFragment 展示登录界面 5s内执行一次")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 5s 还没有执行说明在anr了
|
||||
private val MIN_CLICK_DELAY_TIME = 5000
|
||||
private var lastClickTime: Long = 0
|
||||
|
||||
fun isFastClick(): Boolean {
|
||||
var flag = false
|
||||
val curClickTime = System.currentTimeMillis()
|
||||
if (curClickTime - lastClickTime >= MIN_CLICK_DELAY_TIME) {
|
||||
flag = true
|
||||
}
|
||||
lastClickTime = curClickTime
|
||||
return flag
|
||||
}
|
||||
|
||||
override fun hideLoginDialogFragment() {
|
||||
CallerLogger.d(SceneConstant.M_TAXI + TAG, "hideLoginDialogFragment 隐藏登录界面")
|
||||
if (taxiLoginDialogFragment?.get() != null) {
|
||||
taxiLoginDialogFragment?.get()?.dismissAllowingStateLoss()
|
||||
}
|
||||
}
|
||||
override fun queryLoginStatus():Boolean {
|
||||
return LoginStatusManager.isLogin()
|
||||
}
|
||||
|
||||
override fun queryLoginStatusByNet() {
|
||||
presenter?.queryLoginStatus()
|
||||
}
|
||||
|
||||
override fun showUiModel(show:Boolean) {
|
||||
uiModel = show;
|
||||
}
|
||||
|
||||
override fun loginOut(mLatitude:Double,mLongitude:Double) {
|
||||
presenter?.logOut(mLatitude,mLongitude)
|
||||
}
|
||||
}
|
||||
@@ -1,284 +0,0 @@
|
||||
package com.mogo.och.common.module.biz.ui
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.DialogInterface
|
||||
import android.graphics.Rect
|
||||
import android.os.Bundle
|
||||
import android.os.SystemClock
|
||||
import android.util.Log
|
||||
import android.view.*
|
||||
import androidx.appcompat.widget.AppCompatButton
|
||||
import androidx.appcompat.widget.AppCompatEditText
|
||||
import androidx.appcompat.widget.AppCompatImageView
|
||||
import androidx.appcompat.widget.AppCompatTextView
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.widget.addTextChangedListener
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.FragmentTransaction
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.mogo.commons.mvp.MvpDialogFragment
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
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.KeyboardUtils
|
||||
import com.mogo.och.common.module.R
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.biz.presenter.OchCommonLoginPresenter
|
||||
import com.mogo.och.common.module.biz.provider.LoginService
|
||||
|
||||
|
||||
/**
|
||||
* @author: yangyakun
|
||||
* @date: 2022/8/15
|
||||
*/
|
||||
class TaxiLoginDialogFragment :
|
||||
MvpDialogFragment<TaxiLoginDialogFragment?, OchCommonLoginPresenter?>(),
|
||||
DialogInterface.OnKeyListener {
|
||||
|
||||
lateinit var clMain: ConstraintLayout
|
||||
lateinit var acbtnLogin: AppCompatButton
|
||||
lateinit var actvLoginGetCode: AppCompatTextView
|
||||
lateinit var actvLoginShowSn: AppCompatTextView
|
||||
lateinit var aceLoginPhoneValue: AppCompatEditText
|
||||
lateinit var acetPhoneCodeValue: AppCompatEditText
|
||||
lateinit var actvWelcomeLoginTitle: AppCompatTextView
|
||||
lateinit var acivLoginBg: AppCompatImageView
|
||||
private var mOnClickListener: DialogInterface.OnDismissListener? = null
|
||||
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setStyle(STYLE_NO_TITLE, R.style.DialogFullScreen) //dialog全屏
|
||||
}
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
dialog?.setOnKeyListener(this)
|
||||
return super.onCreateView(inflater, container, savedInstanceState)
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.taxi_login_view
|
||||
}
|
||||
|
||||
override fun initViews() {
|
||||
clMain = mRootView.findViewById(R.id.cl_main)
|
||||
acbtnLogin = mRootView.findViewById(R.id.acbtn_login)
|
||||
actvLoginGetCode = mRootView.findViewById(R.id.actv_login_get_code)
|
||||
aceLoginPhoneValue = mRootView.findViewById(R.id.ace_login_phone_value)
|
||||
acetPhoneCodeValue = mRootView.findViewById(R.id.acet_phone_code_value)
|
||||
actvWelcomeLoginTitle = mRootView.findViewById(R.id.actv_welcome_login_title)
|
||||
actvLoginShowSn = mRootView.findViewById(R.id.actv_login_show_sn)
|
||||
acivLoginBg = mRootView.findViewById(R.id.aciv_login_bg)
|
||||
inputPhoneNormal()
|
||||
initBg()
|
||||
initListener()
|
||||
dialog?.window?.let {
|
||||
context?.let { _ ->
|
||||
CallerHmiManager.setStatusBarDarkOrLight(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun initBg() {
|
||||
if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode) &&
|
||||
AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
//出租车司机
|
||||
acivLoginBg.setImageResource(R.drawable.taxi_ic_login_bg)
|
||||
} else if ((AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)
|
||||
|| AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)
|
||||
|| AppIdentityModeUtils.isCharter(FunctionBuildConfig.appIdentityMode)) &&
|
||||
AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
//小巴车司机
|
||||
acivLoginBg.setImageResource(R.drawable.bus_ic_login_bg)
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
private fun initListener() {
|
||||
mRootView.isFocusable = true
|
||||
mRootView.isFocusableInTouchMode = true
|
||||
mRootView.setOnTouchListener { _, event ->
|
||||
when (event?.action) {
|
||||
MotionEvent.ACTION_DOWN -> {
|
||||
closeSoftInput()
|
||||
}
|
||||
}
|
||||
false
|
||||
}
|
||||
acbtnLogin.onClick {
|
||||
val phone = aceLoginPhoneValue.text.toString()
|
||||
val code = acetPhoneCodeValue.text.toString()
|
||||
mPresenter?.gotoLogin(phone, code)
|
||||
}
|
||||
actvWelcomeLoginTitle.setOnClickListener {
|
||||
continuousClick()
|
||||
}
|
||||
clMain.viewTreeObserver.addOnGlobalLayoutListener {
|
||||
val rect = Rect()
|
||||
clMain.getWindowVisibleDisplayFrame(rect)
|
||||
val mainInvisibleHeight = clMain.rootView.height - rect.bottom
|
||||
if (mainInvisibleHeight > 100) {
|
||||
val outLocation = IntArray(2)
|
||||
acbtnLogin.getLocationInWindow(outLocation)
|
||||
val srollHeight = (outLocation[1] + acbtnLogin.height) - rect.bottom
|
||||
if (srollHeight > 0) {
|
||||
clMain.scrollTo(0, srollHeight)
|
||||
}
|
||||
CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "滚动的距离:$srollHeight")
|
||||
} else {
|
||||
clMain.scrollTo(0, 0)
|
||||
}
|
||||
}
|
||||
actvLoginGetCode.onClick {
|
||||
mPresenter?.getPhoneCode(aceLoginPhoneValue.text.toString())
|
||||
}
|
||||
actvLoginShowSn.setOnLongClickListener {
|
||||
val loginService = ARouter.getInstance().build(OchCommonConst.LOGINSERVICE)
|
||||
.navigation() as LoginService
|
||||
loginService.showUiModel(false)
|
||||
dismissAllowingStateLoss()
|
||||
true
|
||||
}
|
||||
aceLoginPhoneValue.addTextChangedListener {
|
||||
it?.let { itEditable ->
|
||||
if (itEditable.isNotEmpty()) {
|
||||
inputPhoneNormal()
|
||||
}
|
||||
}
|
||||
}
|
||||
actvLoginShowSn.text = SharedPrefsMgr.getInstance().sn
|
||||
}
|
||||
|
||||
/**
|
||||
* 关闭键盘
|
||||
*/
|
||||
fun closeSoftInput() {
|
||||
mRootView.requestFocus()
|
||||
dialog?.window?.let {
|
||||
KeyboardUtils.hideSoftInput(it)
|
||||
}
|
||||
}
|
||||
|
||||
fun setCountDownText(text: String, enable: Boolean) {
|
||||
if (enable) {
|
||||
actvLoginGetCode.setText(R.string.module_och_taxi_login_get_code)
|
||||
actvLoginGetCode.isEnabled = true
|
||||
} else {
|
||||
actvLoginGetCode.text = text
|
||||
actvLoginGetCode.isEnabled = false
|
||||
}
|
||||
}
|
||||
|
||||
fun inputPhoneError() {
|
||||
aceLoginPhoneValue.text?.clear()
|
||||
aceLoginPhoneValue.setHint(R.string.module_och_taxi_login_phone_error)
|
||||
context?.let {
|
||||
aceLoginPhoneValue.setHintTextColor(ContextCompat.getColor(it, R.color.taxi_EF262C))
|
||||
aceLoginPhoneValue.setBackgroundResource(R.drawable.taxi_login_phone_error)
|
||||
}
|
||||
}
|
||||
|
||||
private fun inputPhoneNormal() {
|
||||
//aceLoginPhoneValue.setHint(R.string.module_och_taxi_login_phone_hint_text)
|
||||
context?.let {
|
||||
aceLoginPhoneValue.setHintTextColor(ContextCompat.getColor(it, R.color.taxi_878890))
|
||||
aceLoginPhoneValue.setBackgroundResource(R.drawable.taxi_login_phone_normal)
|
||||
}
|
||||
}
|
||||
|
||||
override fun createPresenter(): OchCommonLoginPresenter {
|
||||
return OchCommonLoginPresenter(this)
|
||||
}
|
||||
|
||||
override fun getTagName(): String {
|
||||
return TAG
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val COUNTS = 4 // 点击次数
|
||||
private const val DURATION: Long = 1000 // 规定有效时间
|
||||
val TAG = TaxiLoginDialogFragment::class.java.simpleName
|
||||
|
||||
@JvmStatic
|
||||
fun newInstance(): TaxiLoginDialogFragment {
|
||||
val args = Bundle()
|
||||
val fragment = TaxiLoginDialogFragment()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
private var mHits = LongArray(COUNTS)
|
||||
|
||||
private fun continuousClick() {
|
||||
//每次点击时,数组向前移动一位
|
||||
System.arraycopy(mHits, 1, mHits, 0, mHits.size - 1)
|
||||
//为数组最后一位赋值
|
||||
mHits[mHits.size - 1] = SystemClock.uptimeMillis()
|
||||
if (mHits[0] >= (SystemClock.uptimeMillis() - DURATION)) {
|
||||
mHits = LongArray(COUNTS) //重新初始化数组
|
||||
mPresenter?.gotoLogin("13288888888", "8888")
|
||||
}
|
||||
}
|
||||
|
||||
override fun onKey(dialog: DialogInterface, keyCode: Int, event: KeyEvent): Boolean {
|
||||
return keyCode == KeyEvent.KEYCODE_BACK
|
||||
}
|
||||
|
||||
fun loginSuccess() {
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
|
||||
fun setOnDismissListener(listener: DialogInterface.OnDismissListener?) {
|
||||
mOnClickListener = listener
|
||||
}
|
||||
|
||||
override fun onDismiss(dialog: DialogInterface) {
|
||||
super.onDismiss(dialog)
|
||||
mOnClickListener?.onDismiss(dialog)
|
||||
CallerHmiManager.setStatusBarDarkOrLight(false)
|
||||
}
|
||||
|
||||
/**
|
||||
* 重写父类show()方法
|
||||
* 避免出现java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
|
||||
*/
|
||||
override fun show(manager: FragmentManager, tag: String?) {
|
||||
try {
|
||||
var cls = this.javaClass.superclass ?: return
|
||||
while (cls != null) {
|
||||
if (cls.name == "java.lang.Object") {
|
||||
break
|
||||
}
|
||||
cls = cls.superclass!!
|
||||
if (cls == DialogFragment::class.java) {
|
||||
break
|
||||
}
|
||||
}
|
||||
val mDismissed = cls.getDeclaredField("mDismissed")
|
||||
val mShownByMe = cls.getDeclaredField("mShownByMe")
|
||||
mDismissed.isAccessible = true
|
||||
mShownByMe.isAccessible = true
|
||||
mDismissed.setBoolean(this, false)
|
||||
mShownByMe.setBoolean(this, true)
|
||||
if (isAdded) { //解决方法就是添加这行代码,如果已经添加了,就移除掉然后再show,就不会出现Fragment already added的错误了。
|
||||
return
|
||||
}
|
||||
val ft: FragmentTransaction = manager.beginTransaction()
|
||||
ft.add(this, tag)
|
||||
ft.commitAllowingStateLoss()
|
||||
} catch (e: Exception) {
|
||||
Log.e("DialogFragment", "show", e.fillInStackTrace())
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
1
OCH/facade/.gitignore
vendored
Normal file
1
OCH/facade/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/build
|
||||
61
OCH/facade/build.gradle
Normal file
61
OCH/facade/build.gradle
Normal file
@@ -0,0 +1,61 @@
|
||||
plugins {
|
||||
id 'com.android.library'
|
||||
id 'org.jetbrains.kotlin.android'
|
||||
id 'kotlin-kapt'
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion rootProject.ext.android.compileSdkVersion
|
||||
defaultConfig {
|
||||
minSdkVersion rootProject.ext.android.minSdkVersion
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
consumerProguardFiles "consumer-rules.pro"
|
||||
kapt {
|
||||
useBuildCache = false
|
||||
arguments {
|
||||
arg("AROUTER_MODULE_NAME", project.getName())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = '1.8'
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||
implementation rootProject.ext.dependencies.kotlinstdlib
|
||||
implementation rootProject.ext.dependencies.androidxccorektx
|
||||
implementation rootProject.ext.dependencies.androidxappcompat
|
||||
implementation rootProject.ext.dependencies.material
|
||||
implementation rootProject.ext.dependencies.rxandroid
|
||||
implementation rootProject.ext.dependencies.arouter
|
||||
kapt rootProject.ext.dependencies.aroutercompiler
|
||||
|
||||
apply from: "./script/och.gradle"
|
||||
|
||||
implementation project(":OCH:common:common")
|
||||
implementation project(":OCH:common:biz")
|
||||
|
||||
if (Boolean.valueOf(USE_MAVEN_PACKAGE)) {
|
||||
api rootProject.ext.dependencies.mogoutils
|
||||
}else {
|
||||
api project(":core:mogo-core-utils")
|
||||
}
|
||||
}
|
||||
0
OCH/facade/consumer-rules.pro
Normal file
0
OCH/facade/consumer-rules.pro
Normal file
21
OCH/facade/proguard-rules.pro
vendored
Normal file
21
OCH/facade/proguard-rules.pro
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# You can control the set of applied configuration files using the
|
||||
# proguardFiles setting in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
||||
60
OCH/facade/script/och.gradle
Normal file
60
OCH/facade/script/och.gradle
Normal file
@@ -0,0 +1,60 @@
|
||||
apply from: "./script/utils.gradle"
|
||||
// 网约车服务:仅小巴车、出租车渠道用
|
||||
project.dependencies {
|
||||
if (Boolean.valueOf(USE_MAVEN_PACKAGE)) {
|
||||
|
||||
} else {
|
||||
if (isCurrentDriver("ochFT")) {
|
||||
implementation project.project(':OCH:sweeper:driver')
|
||||
} else if (isCurrentDriver("ochJL")) {
|
||||
implementation project.project(':OCH:shuttle:driver')
|
||||
implementation project.project(':OCH:bus:driver')
|
||||
} else if (isCurrentPassenger("ochJL")) {
|
||||
implementation project.project(':OCH:bus:passenger')
|
||||
implementation project.project(':OCH:shuttle:passenger')
|
||||
} else if (isCurrentDriver("ochM1")) {
|
||||
println "utils.gradle------isDriverOchM1"
|
||||
implementation project.project(':OCH:charter:driver')
|
||||
} else if (isCurrentPassenger("ochM1")) {
|
||||
implementation project.project(':OCH:charter:passenger')
|
||||
println "utils.gradle------isPassengerM1"
|
||||
} else if (isCurrentDriver("ochM2")) {
|
||||
implementation project.project(':OCH:shuttle:driver')
|
||||
implementation project.project(':OCH:bus:driver')
|
||||
} else if (isCurrentPassenger("ochM2")) {
|
||||
implementation project.project(':OCH:bus:passenger')
|
||||
implementation project.project(':OCH:shuttle:passenger')
|
||||
} else if (isCurrentDriver("ochDFHQ")) {
|
||||
implementation project.project(':OCH:taxi:driver')
|
||||
implementation project.project(':OCH:taxi:unmanned-driver')
|
||||
} else if (isCurrentPassenger("ochDFHQ")) {
|
||||
implementation project.project(':OCH:taxi:passenger')
|
||||
implementation project.project(':OCH:taxi:unmanned-passenger')
|
||||
} else {
|
||||
implementation project.project(':OCH:bus:driver')
|
||||
implementation project.project(':OCH:bus:passenger')
|
||||
implementation project.project(':OCH:charter:driver')
|
||||
implementation project.project(':OCH:charter:passenger')
|
||||
implementation project.project(':OCH:shuttle:driver')
|
||||
implementation project.project(':OCH:shuttle:passenger')
|
||||
implementation project.project(':OCH:sweeper:driver')
|
||||
implementation project.project(':OCH:taxi:driver')
|
||||
implementation project.project(':OCH:taxi:passenger')
|
||||
implementation project.project(':OCH:taxi:unmanned-driver')
|
||||
implementation project.project(':OCH:taxi:unmanned-passenger')
|
||||
}
|
||||
|
||||
// 多屏幕-Bus司机端
|
||||
// fMultiDisplayOchBusImplementation (project(':OCH:mogo-och-bus'))
|
||||
// // 多屏幕-Bus乘客端
|
||||
// fMultiDisplayOchBusImplementation (project(':OCH:mogo-och-bus-passenger'))
|
||||
//
|
||||
// // taxi司机端
|
||||
// fMultiDisplayOchTaxiImplementation (project(':OCH:mogo-och-taxi'))
|
||||
// // 多屏幕-taxi乘客端
|
||||
// fMultiDisplayOchTaxiImplementation (project(':OCH:mogo-och-taxi-passenger'))
|
||||
//
|
||||
// // 清扫车-多屏幕
|
||||
// fMultiDisplaySweeperImplementation (project(':OCH:mogo-och-sweeper'))
|
||||
}
|
||||
}
|
||||
70
OCH/facade/script/utils.gradle
Normal file
70
OCH/facade/script/utils.gradle
Normal file
@@ -0,0 +1,70 @@
|
||||
boolean isCurrentDriver(String flavors) {
|
||||
if(isDriver() && isCurrentFlavors(flavors)){
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
boolean isCurrentPassenger(String flavors) {
|
||||
if(isPassenger() && isCurrentFlavors(flavors)){
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
boolean isDriver() {
|
||||
for (String s : gradle.startParameter.taskNames) {
|
||||
if (s.contains("Driver") | s.contains("driver")) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
boolean isPassenger() {
|
||||
for (String s : gradle.startParameter.taskNames) {
|
||||
if (s.contains("Passenger") | s.contains("passenger")) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
boolean isJL() {
|
||||
for (String s : gradle.startParameter.taskNames) {
|
||||
if (s.contains("OchJL") | s.contains("ochJL")) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
boolean isM2() {
|
||||
for (String s : gradle.startParameter.taskNames) {
|
||||
if (s.contains("OchM2") | s.contains("ochM2")) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
boolean isCurrentFlavors(String flavors){
|
||||
for (String s : gradle.startParameter.taskNames) {
|
||||
|
||||
def lowerCase = flavors.toLowerCase()
|
||||
if (s.toLowerCase().contains(lowerCase)) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
ext {
|
||||
isPassenger = this.&isPassenger
|
||||
isDriver = this.&isDriver
|
||||
isCurrentFlavors = this.&isCurrentFlavors
|
||||
isCurrentDriver = this.&isCurrentDriver
|
||||
isCurrentPassenger = this.&isCurrentPassenger
|
||||
isJL = this.&isJL
|
||||
isM2 = this.&isM2
|
||||
}
|
||||
5
OCH/facade/src/main/AndroidManifest.xml
Normal file
5
OCH/facade/src/main/AndroidManifest.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.mogo.och.facade">
|
||||
|
||||
</manifest>
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.mogo.och.facade.constant
|
||||
|
||||
/**
|
||||
* Created on 2021/12/6
|
||||
*/
|
||||
class FacadeConst {
|
||||
companion object {
|
||||
// OCH arouter 路由path
|
||||
const val DRIVER_PATH = "/driver/api"
|
||||
const val PASSENGER_PATH = "/passenger/api"
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
|
||||
package com.mogo.och.facade.route;
|
||||
|
||||
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
|
||||
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
|
||||
import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider;
|
||||
import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback;
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager;
|
||||
import com.mogo.och.common.module.biz.login.TaxiLoginStatusEnum;
|
||||
import com.mogo.och.facade.constant.FacadeConst;
|
||||
import com.mogo.och.taxi.ui.TaxiFragment;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* 网约车小巴业务实现入口
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
@Route(path = FacadeConst.DRIVER_PATH)
|
||||
public class FacadeDriverProvider implements IMoGoFunctionProvider, ILoginCallback {
|
||||
|
||||
private static final String TAG = "FacadeDriverProvider";
|
||||
|
||||
private int containerId;
|
||||
private FragmentActivity activity;
|
||||
|
||||
@Override
|
||||
public void init(Context context) {
|
||||
LoginStatusManager.INSTANCE.addListener(TAG,this);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String getFunctionName() {
|
||||
return TAG;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Fragment createCoverage(@Nullable FragmentActivity fragmentActivity, @Nullable Integer integer) {
|
||||
this.containerId = integer;
|
||||
this.activity = fragmentActivity;
|
||||
showFragment();
|
||||
return null;
|
||||
}
|
||||
|
||||
private void showFragment() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
//若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠
|
||||
if (activity == null) return;
|
||||
activity.finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStatusChange(TaxiLoginStatusEnum currentStatus) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
|
||||
package com.mogo.och.facade.route;
|
||||
|
||||
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider;
|
||||
import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.och.facade.constant.FacadeConst;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* 网约车小巴业务实现入口
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
@Route(path = FacadeConst.PASSENGER_PATH)
|
||||
public class FacadePassengerProvider implements IMoGoFunctionProvider {
|
||||
|
||||
private static final String TAG = "FacadePassengerProvider";
|
||||
|
||||
private int containerId;
|
||||
private FragmentActivity activity;
|
||||
|
||||
@Override
|
||||
public void init(Context context) {
|
||||
}
|
||||
|
||||
private void showFragment() {
|
||||
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String getFunctionName() {
|
||||
return TAG;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Fragment createCoverage(@Nullable FragmentActivity fragmentActivity, @Nullable Integer integer) {
|
||||
this.containerId = integer;
|
||||
this.activity = fragmentActivity;
|
||||
showFragment();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
//若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠
|
||||
if (activity == null) return;
|
||||
activity.finish();
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,7 @@ import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.och.bus.constant.BusConst;
|
||||
import com.mogo.och.bus.fragment.ShuttleFragment;
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -21,7 +22,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
@Route(path = BusConst.PATH)
|
||||
@Route(path = OchCommonConst.SHUTTLE_DRIVER)
|
||||
public class BusProvider implements IMoGoFunctionProvider {
|
||||
|
||||
private static final String TAG = "BusProvider";
|
||||
|
||||
@@ -32,13 +32,10 @@ import com.mogo.map.overlay.point.Point;
|
||||
import com.mogo.och.bus.R;
|
||||
import com.mogo.och.data.bean.BusStationBean;
|
||||
import com.mogo.och.bus.constant.BusConst;
|
||||
import com.mogo.och.bus.net.login.LoginBusImpl;
|
||||
import com.mogo.och.bus.presenter.BusPresenter;
|
||||
import com.mogo.och.bus.ui.BusStationCommonItem;
|
||||
import com.mogo.och.bus.ui.BusSwitchLineActivity;
|
||||
import com.mogo.och.bus.view.SlidePanelView;
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst;
|
||||
import com.mogo.och.common.module.biz.provider.LoginService;
|
||||
import com.mogo.och.common.module.utils.BlinkAnimationUtil;
|
||||
import com.mogo.och.common.module.utils.OCHThreadPoolManager;
|
||||
import com.mogo.och.common.module.utils.QRUtilsKt;
|
||||
@@ -76,7 +73,6 @@ public class ShuttleFragment extends BaseShuttleTabFragment<ShuttleFragment, Bus
|
||||
private BusStationCommonItem secondStationItem;
|
||||
private BusStationCommonItem thirdStationItem;
|
||||
|
||||
private LoginService loginService;
|
||||
|
||||
@Override
|
||||
public String getTagName() {
|
||||
@@ -86,16 +82,10 @@ public class ShuttleFragment extends BaseShuttleTabFragment<ShuttleFragment, Bus
|
||||
@Override
|
||||
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation();
|
||||
if(loginService!=null){
|
||||
loginService.registerFragment(this, getPresenter(),new LoginBusImpl());
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
loginService.unRegisterFragment();
|
||||
loginService = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -28,7 +28,7 @@ import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg;
|
||||
import com.mogo.och.common.module.bean.dpmsg.DPMsgType;
|
||||
import com.mogo.och.common.module.bean.dpmsg.LoginCacheStatus;
|
||||
import com.mogo.och.common.module.bean.dpmsg.TaskDetailsMsg;
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager;
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.autopilot.ArrivedStation;
|
||||
import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager;
|
||||
import com.mogo.och.common.module.utils.MultiRequestLimitChecker;
|
||||
@@ -60,7 +60,6 @@ import com.mogo.och.bus.util.BusSendTripInfoManager;
|
||||
import com.mogo.och.bus.util.BusTrajectoryManager;
|
||||
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager;
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback;
|
||||
import com.mogo.och.common.module.biz.provider.LoginService;
|
||||
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback;
|
||||
import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
|
||||
@@ -112,8 +111,6 @@ public class OrderModel {
|
||||
//0: 代表没有启动过 1代表是启动第一次,当>=1 代表是重试 每次到站/路线结束清空置为0
|
||||
private volatile int firstStartAutopilot = 0;
|
||||
|
||||
private LoginService loginService;
|
||||
|
||||
public static OrderModel getInstance() {
|
||||
if (sInstance == null) {
|
||||
synchronized (OrderModel.class) {
|
||||
@@ -131,7 +128,6 @@ public class OrderModel {
|
||||
|
||||
public void init() {
|
||||
mContext = AbsMogoApplication.getApp();
|
||||
loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation();
|
||||
// 定位监听
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG,5,mMapLocationListener);
|
||||
|
||||
@@ -265,8 +261,6 @@ public class OrderModel {
|
||||
// 注销定位监听
|
||||
CallerChassisLocationGCJ02ListenerManager.INSTANCE.removeListener(TAG);
|
||||
|
||||
loginService = null;
|
||||
|
||||
OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null);
|
||||
|
||||
OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener(
|
||||
@@ -1135,7 +1129,7 @@ public class OrderModel {
|
||||
// 登出
|
||||
public void logout() {
|
||||
MogoLocation gcj02 = CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02();
|
||||
loginService.loginOut(gcj02.getLatitude(), gcj02.getLongitude());
|
||||
LoginStatusManager.loginOut(gcj02.getLatitude(), gcj02.getLongitude());
|
||||
}
|
||||
|
||||
public void triggerStartServiceEvent(boolean isRestart, boolean send) {
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
package com.mogo.och.bus.net.login
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean
|
||||
import com.mogo.och.common.module.biz.network.LoginDefaultManage
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
|
||||
class LoginBusImpl: LoginDefaultManage {
|
||||
|
||||
override fun getPhoneCode(
|
||||
context: Context, phone: String?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
OchCommonServiceManager.getPhoneCode(context,phone,callback)
|
||||
}
|
||||
|
||||
override fun gotoLoginBycode(
|
||||
context: Context,
|
||||
phone: String?,
|
||||
code: String?,
|
||||
location4Login: TaxiLoginReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<TaxiLoginRespBean>?
|
||||
) {
|
||||
OchCommonServiceManager.gotoLoginBycode(context,phone,code,location4Login,callback)
|
||||
}
|
||||
|
||||
override fun logout(
|
||||
context: Context,
|
||||
location4Login: TaxiLogoutReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
OchCommonServiceManager.logout(context,location4Login,callback)
|
||||
}
|
||||
|
||||
override fun queryDriverServiceStatus(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<DriverStatusQueryRespBean>?
|
||||
) {
|
||||
OchCommonServiceManager.queryDriverServiceStatus(context,callback)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,108 +0,0 @@
|
||||
package com.mogo.och.bus.net.login
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl
|
||||
import com.mogo.och.common.module.biz.network.interceptor.transformTry
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
*/
|
||||
object OchCommonServiceManager {
|
||||
|
||||
private const val TAG = "OchCommonServiceManager"
|
||||
|
||||
private val mLoginServiceApi: OchLoginServiceApi =
|
||||
MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create(
|
||||
OchLoginServiceApi::class.java
|
||||
)
|
||||
|
||||
/**
|
||||
* 获取手机验证码
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun getPhoneCode(
|
||||
context: Context, phone: String?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
mLoginServiceApi.getPhoneCode(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
TaxiLoginSmsReqBean(phone)
|
||||
).transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "getPhoneCode"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过验证码登录
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun gotoLoginBycode(
|
||||
context: Context, phone: String?, code: String?,
|
||||
location4Login: TaxiLoginReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<TaxiLoginRespBean>?
|
||||
) {
|
||||
val sn = SharedPrefsMgr.getInstance().sn
|
||||
mLoginServiceApi.gotoLoginBycode4Bus(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
TaxiLoginReqBean(phone, code, sn, location4Login)
|
||||
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "gotoLoginBycode"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 登出
|
||||
*/
|
||||
@JvmStatic
|
||||
fun logout(
|
||||
context: Context,
|
||||
location4Login: TaxiLogoutReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
mLoginServiceApi.logout4Bus(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
TaxiLogoutReqBean(SharedPrefsMgr.getInstance().sn, location4Login)
|
||||
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 接单状态和登录状态查询
|
||||
*
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun queryDriverServiceStatus(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<DriverStatusQueryRespBean>?
|
||||
) {
|
||||
if (SharedPrefsMgr.getInstance().token.isEmpty()) {
|
||||
callback?.onFail(OchCommonConst.WAIT_TAKEN, "等待令牌中请稍等")
|
||||
MoGoAiCloudClient.getInstance().refreshToken()
|
||||
return
|
||||
}
|
||||
mLoginServiceApi.queryDriverServiceStatusAndLoginStatus(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
SharedPrefsMgr.getInstance().sn
|
||||
).transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus"))
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
package com.mogo.och.bus.net.login;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import retrofit2.http.Body;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Header;
|
||||
import retrofit2.http.Headers;
|
||||
import retrofit2.http.POST;
|
||||
import retrofit2.http.Path;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
* <p>
|
||||
* 网约车-出租车接口定义
|
||||
*/
|
||||
interface OchLoginServiceApi {
|
||||
/**
|
||||
* 获取手机验证码
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
@POST( "/och-shuttle-cabin/api/sms/v1/driver/sendSms" )
|
||||
Observable<DriverStatusQueryRespBean> getPhoneCode(@Header("appId") String appId
|
||||
, @Header("ticket") String ticket, @Body TaxiLoginSmsReqBean data);
|
||||
|
||||
/**
|
||||
* 通过验证码登录
|
||||
* @param appId
|
||||
* @param ticket
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
@POST( "/och-shuttle-cabin/api/flow/v1/driver/startOperation" )
|
||||
Observable<TaxiLoginRespBean> gotoLoginBycode4Bus(@Header("appId") String appId
|
||||
, @Header("ticket") String ticket, @Body TaxiLoginReqBean data);
|
||||
|
||||
/**
|
||||
* 登出接口
|
||||
*/
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
@POST("/och-shuttle-cabin/api/flow/v1/driver/endOperation")
|
||||
Observable<BaseData> logout4Bus(@Header("appId") String appId, @Header("ticket") String ticket,
|
||||
@Body TaxiLogoutReqBean data);
|
||||
|
||||
/**
|
||||
* 接单状态和登录状态查询 出租车司机端、小巴车司机端、小巴车乘客端
|
||||
* @param sn
|
||||
* @return
|
||||
*/
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
@GET( "/och-shuttle-cabin/api/business/v1/driver/loginStatus")
|
||||
Observable<DriverStatusQueryRespBean> queryDriverServiceStatusAndLoginStatus(@Header("appId") String appId
|
||||
, @Header("ticket") String ticket, @Query("sn") String sn);
|
||||
|
||||
}
|
||||
@@ -27,9 +27,8 @@ import com.mogo.och.bus.callback.ISlidePannelHideCallback;
|
||||
import com.mogo.och.bus.fragment.ShuttleFragment;
|
||||
import com.mogo.och.bus.model.OrderModel;
|
||||
import com.mogo.och.bus.util.BusTrajectoryManager;
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.common.module.biz.callback.ILoginCallback;
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager;
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback;
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
|
||||
import com.zhjt.mogo.adas.data.AdasConstants;
|
||||
|
||||
@@ -258,7 +257,7 @@ public class BusPresenter extends Presenter<ShuttleFragment>
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loginSuccess(DriverStatusQueryRespBean data) {
|
||||
public void loginSuccess() {
|
||||
CallerLogger.d(M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin());
|
||||
if(LoginStatusManager.isLogin()){
|
||||
// OrderModel.getInstance().queryBusRoutes();
|
||||
@@ -272,11 +271,6 @@ public class BusPresenter extends Presenter<ShuttleFragment>
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loginFail(boolean isLogin) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartAdasFailure() {
|
||||
runOnUIThread(() -> mView.stopAnimAndUpdateBtnStatus());
|
||||
|
||||
@@ -10,7 +10,7 @@ import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager;
|
||||
import com.mogo.och.data.bean.BusRoutesResult;
|
||||
import com.mogo.och.bus.constant.BusConst;
|
||||
import com.mogo.och.bus.model.OrderModel;
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager;
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.och.shuttle.passenger.constant.BusPassengerConst
|
||||
import com.mogo.och.common.module.wigets.media.MediaPlayerActivity
|
||||
import com.mogo.och.shuttle.passenger.model.TicketModel
|
||||
@@ -23,7 +24,7 @@ import com.mogo.och.shuttle.passenger.ui.PM2BaseFragment
|
||||
*
|
||||
* Created on 2022/3/29
|
||||
*/
|
||||
@Route(path = BusPassengerConst.PATH)
|
||||
@Route(path = OchCommonConst.SHUTTLE_PASSENGER)
|
||||
class MogoOCHShuttlePassenger : IMoGoFunctionProvider {
|
||||
private var mActivity: FragmentActivity? = null
|
||||
private var mContainerId = 0
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.mogo.eagle.core.utilcode.mogo.vehicle.SweeperVehicleConfigUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.AppUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst;
|
||||
import com.mogo.och.common.module.utils.ToastUtilsOch;
|
||||
import com.mogo.och.sweeper.cloud.fragment.SweeperCloudFragment;
|
||||
import com.mogo.och.sweeper.common.constant.SweeperConst;
|
||||
@@ -39,7 +40,7 @@ import io.reactivex.schedulers.Schedulers;
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
@Route(path = SweeperConst.PATH)
|
||||
@Route(path = OchCommonConst.SWEEPER_DRIVER)
|
||||
public class SweeperProvider implements IMogoOCH, IMoGoSweeperModeListener {
|
||||
|
||||
private static final String TAG = "SweeperProvider";
|
||||
|
||||
@@ -11,6 +11,7 @@ import androidx.fragment.app.FragmentManager;
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst;
|
||||
import com.mogo.och.taxi.constant.TaxiConst;
|
||||
import com.mogo.och.taxi.ui.TaxiFragment;
|
||||
|
||||
@@ -24,7 +25,7 @@ public
|
||||
* <p>
|
||||
* 网约车-出租车
|
||||
*/
|
||||
@Route( path = TaxiConst.PATH )
|
||||
@Route( path = OchCommonConst.TAXI_DRIVER )
|
||||
class TaxiProvider implements IMogoOCH {
|
||||
|
||||
private static final String TAG = "TaxiProvider";
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
package com.mogo.och.taxi.constant
|
||||
|
||||
object TaxtServingStatusManager {
|
||||
|
||||
/**
|
||||
* 接单状态
|
||||
*/
|
||||
private var openOrderStatus: TaxiOpenOrderStatusEnum = TaxiOpenOrderStatusEnum.None
|
||||
|
||||
// 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
|
||||
}
|
||||
@@ -42,10 +42,8 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager;
|
||||
import com.mogo.och.common.module.biz.common.socketmessage.data.OCHOperationalMessage;
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager;
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst;
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager;
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback;
|
||||
import com.mogo.och.common.module.biz.provider.LoginService;
|
||||
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback;
|
||||
import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
|
||||
@@ -79,7 +77,6 @@ import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback;
|
||||
import com.mogo.och.taxi.constant.TaxiConst;
|
||||
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum;
|
||||
import com.mogo.och.taxi.constant.TaxiOrderTypeEnum;
|
||||
import com.mogo.och.taxi.constant.TaxtServingStatusManager;
|
||||
import com.mogo.och.taxi.network.TaxiServiceManager;
|
||||
import com.mogo.och.taxi.utils.OrderUtil;
|
||||
import com.mogo.och.taxi.utils.TaxiAnalyticsManager;
|
||||
@@ -139,8 +136,6 @@ public class TaxiModel {
|
||||
private double mLongitude, mLatitude;
|
||||
private MogoLocation mLocation = null;
|
||||
|
||||
private LoginService loginService;
|
||||
|
||||
private TaxiModel() {
|
||||
}
|
||||
|
||||
@@ -168,7 +163,6 @@ public class TaxiModel {
|
||||
public void init(Context context) {
|
||||
mContext = context.getApplicationContext();
|
||||
initListeners();
|
||||
loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation();
|
||||
|
||||
// TODO: 2021/8/27 因需要通过此回调的location进行坐标上传,暂改为全程监听,退出后再反注册,
|
||||
// 待后续整体调整location获取来源
|
||||
@@ -214,7 +208,6 @@ public class TaxiModel {
|
||||
startOrStopOrderLoop(false);
|
||||
startOrStopCalculateRouteInfo(false);
|
||||
releaseListeners();
|
||||
loginService = null;
|
||||
}
|
||||
|
||||
private void initListeners() {
|
||||
@@ -291,10 +284,11 @@ public class TaxiModel {
|
||||
//更新接单状态
|
||||
public void updateCarStatus() {
|
||||
if (!LoginStatusManager.isLogin()) {
|
||||
loginService.queryLoginStatusByNet();
|
||||
LoginStatusManager.queryLoginStatusByNet();
|
||||
return;
|
||||
}
|
||||
boolean currentOrderStatus = TaxtServingStatusManager.isOpeningOrderStatus();
|
||||
boolean currentOrderStatus = LoginStatusManager.isLogin();
|
||||
|
||||
TaxiServiceManager.changeOrderServing(mContext, currentOrderStatus,
|
||||
new OchCommonServiceCallback<BaseData>() {
|
||||
@Override
|
||||
@@ -307,7 +301,7 @@ public class TaxiModel {
|
||||
// 上个状态是暂停接单 暂停成功
|
||||
VoiceNotice.showNotice("开始接单啦!");
|
||||
}
|
||||
loginService.queryLoginStatusByNet();
|
||||
LoginStatusManager.queryLoginStatusByNet();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1065,8 +1059,8 @@ public class TaxiModel {
|
||||
CallerLogger.d(M_TAXI + TAG, "onIntentReceived = %s", intentStr);
|
||||
if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intentStr)) {
|
||||
if (NetworkUtils.isConnected(mContext)) {
|
||||
startOrStopOrderLoop(LoginStatusManager.isLogin() && TaxtServingStatusManager.isOpeningOrderStatus());
|
||||
loginService.queryLoginStatusByNet();
|
||||
startOrStopOrderLoop(LoginStatusManager.isLogin());
|
||||
LoginStatusManager.queryLoginStatusByNet();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1735,7 +1729,7 @@ public class TaxiModel {
|
||||
|
||||
// 登出
|
||||
public void logout() {
|
||||
loginService.loginOut(mLatitude, mLongitude);
|
||||
LoginStatusManager.loginOut(mLatitude, mLongitude);
|
||||
}
|
||||
|
||||
//导航去订单终点目的地
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
package com.mogo.och.taxi.network
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean
|
||||
import com.mogo.och.common.module.biz.network.LoginDefaultManage
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
|
||||
class LoginBusImpl: LoginDefaultManage {
|
||||
|
||||
override fun getPhoneCode(
|
||||
context: Context, phone: String?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
OchCommonServiceManager.getPhoneCode(context,phone,callback)
|
||||
}
|
||||
|
||||
override fun gotoLoginBycode(
|
||||
context: Context,
|
||||
phone: String?,
|
||||
code: String?,
|
||||
location4Login: TaxiLoginReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<TaxiLoginRespBean>?
|
||||
) {
|
||||
OchCommonServiceManager.gotoLoginBycode(context,phone,code,location4Login,callback)
|
||||
}
|
||||
|
||||
override fun logout(
|
||||
context: Context,
|
||||
location4Login: TaxiLogoutReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
OchCommonServiceManager.logout(context,location4Login,callback)
|
||||
}
|
||||
|
||||
override fun queryDriverServiceStatus(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<DriverStatusQueryRespBean>?
|
||||
) {
|
||||
OchCommonServiceManager.queryDriverServiceStatus(context,callback)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,109 +0,0 @@
|
||||
package com.mogo.och.taxi.network
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst.Companion.getBaseUrl
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl
|
||||
import com.mogo.och.common.module.biz.network.interceptor.transformTry
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
*/
|
||||
object OchCommonServiceManager {
|
||||
|
||||
private const val TAG = "OchCommonServiceManager"
|
||||
|
||||
private val mOCHTaxiServiceApi: OchLoginServiceApi =
|
||||
MoGoRetrofitFactory.getInstance(getBaseUrl()).create(
|
||||
OchLoginServiceApi::class.java
|
||||
)
|
||||
|
||||
/**
|
||||
* 获取手机验证码
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun getPhoneCode(
|
||||
context: Context, phone: String?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
mOCHTaxiServiceApi.getPhoneCode(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
TaxiLoginSmsReqBean(phone)
|
||||
).transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "getPhoneCode"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过验证码登录
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun gotoLoginBycode(
|
||||
context: Context, phone: String?, code: String?,
|
||||
location4Login: TaxiLoginReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<TaxiLoginRespBean>?
|
||||
) {
|
||||
val sn = SharedPrefsMgr.getInstance().sn
|
||||
mOCHTaxiServiceApi.gotoLoginBycode4Taxi(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
TaxiLoginReqBean(phone, code, sn, location4Login)
|
||||
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "gotoLoginBycode"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 登出
|
||||
*/
|
||||
@JvmStatic
|
||||
fun logout(
|
||||
context: Context,
|
||||
location4Login: TaxiLogoutReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
mOCHTaxiServiceApi.logout4Taxi(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
TaxiLogoutReqBean(SharedPrefsMgr.getInstance().sn, location4Login)
|
||||
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 接单状态和登录状态查询
|
||||
*
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun queryDriverServiceStatus(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<DriverStatusQueryRespBean>?
|
||||
) {
|
||||
if (SharedPrefsMgr.getInstance().token.isEmpty()) {
|
||||
callback?.onFail(OchCommonConst.WAIT_TAKEN, "等待令牌中请稍等")
|
||||
MoGoAiCloudClient.getInstance().refreshToken()
|
||||
return
|
||||
}
|
||||
mOCHTaxiServiceApi.queryDriverServiceStatusAndLoginStatus(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
SharedPrefsMgr.getInstance().sn
|
||||
).transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus"))
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
package com.mogo.och.taxi.network;
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import retrofit2.http.Body;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Header;
|
||||
import retrofit2.http.Headers;
|
||||
import retrofit2.http.POST;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
*
|
||||
* 网约车-出租车接口定义
|
||||
*/
|
||||
interface OchLoginServiceApi {
|
||||
/**
|
||||
* 获取手机验证码
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
@POST( "/autopilot-car-hailing/driver/v2/driver/taxi/sendSms" )
|
||||
Observable<DriverStatusQueryRespBean> getPhoneCode(@Header("appId") String appId
|
||||
, @Header("ticket") String ticket, @Body TaxiLoginSmsReqBean data);
|
||||
/**
|
||||
* 通过验证码登录
|
||||
* @param appId
|
||||
* @param ticket
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
@POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/startOperation" )
|
||||
Observable<TaxiLoginRespBean> gotoLoginBycode4Taxi(@Header("appId") String appId
|
||||
, @Header("ticket") String ticket, @Body TaxiLoginReqBean data);
|
||||
|
||||
/**
|
||||
* 登出接口
|
||||
*/
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
@POST("/autopilot-car-hailing/cab/flow/v1/driver/taxi/endOperation")
|
||||
Observable<BaseData> logout4Taxi(@Header("appId") String appId, @Header("ticket") String ticket,
|
||||
@Body TaxiLogoutReqBean data);
|
||||
|
||||
/**
|
||||
* 接单状态和登录状态查询 出租车司机端、小巴车司机端、小巴车乘客端
|
||||
* @param sn
|
||||
* @return
|
||||
*/
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
@GET( "/autopilot-car-hailing/operation/v1/driver/taxi/loginStatus")
|
||||
Observable<DriverStatusQueryRespBean> queryDriverServiceStatusAndLoginStatus(@Header ("appId") String appId
|
||||
, @Header("ticket") String ticket, @Query("sn") String sn);
|
||||
|
||||
}
|
||||
@@ -11,15 +11,13 @@ import androidx.lifecycle.LifecycleOwner;
|
||||
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.commons.mvp.Presenter;
|
||||
import com.mogo.eagle.core.data.map.MogoLocation;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
|
||||
import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.common.module.biz.callback.ILoginCallback;
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager;
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback;
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.common.module.voice.VoiceNotice;
|
||||
import com.mogo.och.taxi.bean.OrderQueryRespBean;
|
||||
@@ -30,7 +28,6 @@ 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.TaxtServingStatusManager;
|
||||
import com.mogo.och.taxi.model.TaxiModel;
|
||||
import com.mogo.och.taxi.ui.TaxiFragment;
|
||||
|
||||
@@ -41,7 +38,7 @@ import java.util.List;
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2021/1/18
|
||||
*
|
||||
* <p>
|
||||
* 描述
|
||||
*/
|
||||
public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASStatusCallback,
|
||||
@@ -57,14 +54,14 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate( @NonNull LifecycleOwner owner ) {
|
||||
super.onCreate( owner );
|
||||
CallerLogger.d( M_TAXI + TAG, "网约车-出租车拿到订单" );
|
||||
public void onCreate(@NonNull LifecycleOwner owner) {
|
||||
super.onCreate(owner);
|
||||
CallerLogger.d(M_TAXI + TAG, "网约车-出租车拿到订单");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy( @NonNull LifecycleOwner owner ) {
|
||||
super.onDestroy( owner );
|
||||
public void onDestroy(@NonNull LifecycleOwner owner) {
|
||||
super.onDestroy(owner);
|
||||
|
||||
releaseListeners();
|
||||
TaxiModel.getInstance().release();
|
||||
@@ -84,12 +81,12 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
TaxiModel.getInstance().setMoGoAutopilotPlanningListener(null);
|
||||
}
|
||||
|
||||
private void runOnUIThread( Runnable executor ) {
|
||||
if ( executor == null ) {
|
||||
private void runOnUIThread(Runnable executor) {
|
||||
if (executor == null) {
|
||||
return;
|
||||
}
|
||||
if ( Looper.myLooper() != Looper.getMainLooper() ) {
|
||||
UiThreadHandler.post( executor );
|
||||
if (Looper.myLooper() != Looper.getMainLooper()) {
|
||||
UiThreadHandler.post(executor);
|
||||
} else {
|
||||
executor.run();
|
||||
}
|
||||
@@ -105,14 +102,14 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
/**
|
||||
* 人工模式
|
||||
*/
|
||||
public void startManualDrive(){
|
||||
public void startManualDrive() {
|
||||
TaxiModel.getInstance().startServicePilotDone();
|
||||
}
|
||||
|
||||
/**
|
||||
* 跳过乘客验证环节
|
||||
*/
|
||||
public void jumpPassengerCheckDone(){
|
||||
public void jumpPassengerCheckDone() {
|
||||
TaxiModel.getInstance().jumpPassengerCheckDone();
|
||||
}
|
||||
|
||||
@@ -170,15 +167,15 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
}
|
||||
|
||||
//导航去订单目的地
|
||||
public void startNaviToEndStation(boolean isShow){
|
||||
TaxiModel.getInstance().startNaviToEndStation(isShow);
|
||||
public void startNaviToEndStation(boolean isShow) {
|
||||
TaxiModel.getInstance().startNaviToEndStation(isShow);
|
||||
}
|
||||
|
||||
public void reportToEndDisAndTime(long lastSumLength, long duration){//米/秒
|
||||
TaxiModel.getInstance().reportOrderRemain(lastSumLength,duration);
|
||||
public void reportToEndDisAndTime(long lastSumLength, long duration) {//米/秒
|
||||
TaxiModel.getInstance().reportOrderRemain(lastSumLength, duration);
|
||||
}
|
||||
|
||||
public void closeOrderByMan(){
|
||||
public void closeOrderByMan() {
|
||||
TaxiModel.getInstance().arriveTerminal();
|
||||
}
|
||||
|
||||
@@ -202,7 +199,7 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
@Override
|
||||
public void onAutopilotRunning() {
|
||||
runOnUIThread(() -> mView.updateAutopilotStatus(
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING));
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING));
|
||||
}
|
||||
|
||||
|
||||
@@ -235,13 +232,13 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
@RequiresApi(api = Build.VERSION_CODES.P)
|
||||
@Override
|
||||
public void onCurrentOrderStatusChanged(OrderQueryRespBean.Result order) {
|
||||
CallerLogger.d(M_TAXI + TAG,"order = "+order.toString());
|
||||
if (TaxiOrderStatusEnum.UserArriveAtStart.getCode() == order.orderStatus){
|
||||
CallerLogger.d(M_TAXI + TAG, "order = " + order.toString());
|
||||
if (TaxiOrderStatusEnum.UserArriveAtStart.getCode() == order.orderStatus) {
|
||||
TaxiModel.getInstance().queryAutopilotStatus(true);
|
||||
TaxiModel.getInstance().setStation();
|
||||
}
|
||||
|
||||
if (TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == order.orderStatus){
|
||||
if (TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == order.orderStatus) {
|
||||
TaxiModel.getInstance().startDynamicCalculateRouteInfo();
|
||||
TaxiModel.getInstance().setStation();
|
||||
runOnUIThread(() -> {
|
||||
@@ -252,8 +249,8 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
}
|
||||
|
||||
if (TaxiOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus ||
|
||||
TaxiOrderStatusEnum.Cancel.getCode() == order.orderStatus ||
|
||||
TaxiOrderStatusEnum.JourneyCompleted.getCode() == order.orderStatus){
|
||||
TaxiOrderStatusEnum.Cancel.getCode() == order.orderStatus ||
|
||||
TaxiOrderStatusEnum.JourneyCompleted.getCode() == order.orderStatus) {
|
||||
TaxiModel.getInstance().startOrStopCalculateRouteInfo(false);
|
||||
TaxiModel.getInstance().cleanLineMarker();
|
||||
TaxiModel.getInstance().cleanStation();
|
||||
@@ -263,12 +260,12 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
*/
|
||||
mView.updateCtvAutopilotStatusTag(false);
|
||||
|
||||
if(TaxiOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus){
|
||||
if (TaxiOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus) {
|
||||
CallerOrderListenerManager.INSTANCE.invokeOrderStatus(false);
|
||||
}
|
||||
});
|
||||
}
|
||||
if(TaxiOrderStatusEnum.Cancel.getCode() == order.orderStatus){
|
||||
if (TaxiOrderStatusEnum.Cancel.getCode() == order.orderStatus) {
|
||||
VoiceNotice.showNotice("乘客已取消行程");
|
||||
}
|
||||
runOnUIThread(() -> mView.updateCurrentOrderStatusChanged(order));
|
||||
@@ -295,17 +292,17 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
|
||||
@Override
|
||||
public void onCurrentOrderDistToEndChanged(long meters, long timeInSecond) {
|
||||
runOnUIThread(() -> mView.onCurrentOrderDistToEndChanged(meters,timeInSecond));
|
||||
runOnUIThread(() -> mView.onCurrentOrderDistToEndChanged(meters, timeInSecond));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNewBookingOrderGot(OrderQueryRespBean.Result order) {
|
||||
runOnUIThread(() -> mView.onNewBookingOrderGot(order));
|
||||
runOnUIThread(() -> mView.onNewBookingOrderGot(order));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGrabOrderExecuteDone() {
|
||||
runOnUIThread(() -> mView.onGrabOrderExecuteDone());
|
||||
runOnUIThread(() -> mView.onGrabOrderExecuteDone());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -320,12 +317,12 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
|
||||
@Override
|
||||
public void onDriverHasCheckedPilotCondition(boolean isSafe) {
|
||||
runOnUIThread(() -> mView.onCheckPilotConditionSafe(isSafe));
|
||||
runOnUIThread(() -> mView.onCheckPilotConditionSafe(isSafe));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNaviToEnd(boolean isAmap, boolean isShow) {
|
||||
runOnUIThread( () -> mView.onNaviToEnd(isAmap,isShow));
|
||||
runOnUIThread(() -> mView.onNaviToEnd(isAmap, isShow));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -336,27 +333,21 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loginSuccess(DriverStatusQueryRespBean data) {
|
||||
//设置 接单状态
|
||||
TaxtServingStatusManager.setOpenOrderStatus(data.data.servingStatus);
|
||||
public void loginSuccess() {
|
||||
//设置 是否启动订单轮训
|
||||
TaxiModel.getInstance().startOrStopOrderLoop(LoginStatusManager.isLogin()&&TaxtServingStatusManager.isOpeningOrderStatus());
|
||||
TaxiModel.getInstance().startOrStopOrderLoop(LoginStatusManager.isLogin());
|
||||
|
||||
// 设置当前用户角色
|
||||
String role = "";
|
||||
if (TaxiDriverRoleEnum.DEMO.getCode() == data.data.purpose) {
|
||||
if (TaxiDriverRoleEnum.DEMO.getCode() == LoginStatusManager.getPurpose().getCode()) {
|
||||
role = TaxiConst.DEMO_USER;
|
||||
} else if (TaxiDriverRoleEnum.TEST.getCode() == data.data.purpose) {
|
||||
} else if (TaxiDriverRoleEnum.TEST.getCode() == LoginStatusManager.getPurpose().getCode()) {
|
||||
role = TaxiConst.TEST_USER;
|
||||
}
|
||||
String finalRole = role;
|
||||
runOnUIThread(() -> {
|
||||
mView.updateOperationStatus(TaxtServingStatusManager.isOpeningOrderStatus(), finalRole);
|
||||
mView.updateOperationStatus(LoginStatusManager.isLogin(), finalRole);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loginFail(boolean isLogin) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,18 +15,13 @@ import androidx.annotation.Nullable;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.mogo.commons.module.status.MogoStatusManager;
|
||||
import com.mogo.eagle.core.data.temp.EventLogout;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst;
|
||||
import com.mogo.och.common.module.biz.provider.LoginService;
|
||||
import com.mogo.och.taxi.R;
|
||||
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum;
|
||||
import com.mogo.och.taxi.bean.OrderQueryRespBean;
|
||||
import com.mogo.och.taxi.bean.OrderQueryRouteInfoRespBean;
|
||||
import com.mogo.och.taxi.model.TaxiModel;
|
||||
import com.mogo.och.taxi.network.LoginBusImpl;
|
||||
import com.mogo.och.taxi.presenter.TaxiPresenter;
|
||||
import com.mogo.och.taxi.utils.TPRouteDataTestUtils;
|
||||
|
||||
@@ -61,15 +56,10 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
|
||||
private WeakReference<TaxiGrabOrderFragment> grabOrderFragmentWR;
|
||||
private WeakReference<TaxiServerOrdersFragment> serverOrdersFragmentWR;
|
||||
private WeakReference<TaxiPersonalDialogFragment> personalDialogFragment = null;
|
||||
private LoginService loginService;
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation();
|
||||
if(loginService!=null){
|
||||
loginService.registerFragment(this, getPresenter(),new LoginBusImpl());
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -162,8 +152,6 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
loginService.unRegisterFragment();
|
||||
loginService = null;
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ import androidx.fragment.app.FragmentManager;
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst;
|
||||
import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst;
|
||||
import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment;
|
||||
|
||||
@@ -23,7 +24,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
* <p>
|
||||
* 网约车-出租车-乘客端
|
||||
*/
|
||||
@Route(path = TaxiPassengerConst.PATH)
|
||||
@Route(path = OchCommonConst.TAXI_PASSENGER)
|
||||
public class MogoOCHTaxiPassenger implements IMoGoFunctionProvider {
|
||||
|
||||
private static final String TAG = "MogoOCHTaxiPassenger";
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager.stepInNightMode
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst
|
||||
import com.mogo.och.taxi.ui.base.TaxiFragment
|
||||
|
||||
@@ -17,7 +18,7 @@ import com.mogo.och.taxi.ui.base.TaxiFragment
|
||||
*
|
||||
* 网约车-出租车
|
||||
*/
|
||||
@Route(path = TaxiUnmannedConst.PATH)
|
||||
@Route(path = OchCommonConst.TAXI_UNMANNED_DRIVER)
|
||||
class TaxiUnmannedProvider : IMogoOCH {
|
||||
private var ochTaxiFragment: TaxiFragment? = null
|
||||
private var mActivity: FragmentActivity? = null
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
package com.mogo.och.taxi.constant
|
||||
|
||||
/**
|
||||
* 车当前的 接单 状态管理类
|
||||
*/
|
||||
object TaxiCarServingStatusManager {
|
||||
|
||||
/**
|
||||
* 接单状态
|
||||
*/
|
||||
private var currentCarServingStatus: TaxiOpenOrderStatusEnum = TaxiOpenOrderStatusEnum.None
|
||||
|
||||
/**
|
||||
* 是否可接单状态
|
||||
*/
|
||||
@JvmStatic
|
||||
fun isCarServingStatus(): Boolean {
|
||||
if (currentCarServingStatus == TaxiOpenOrderStatusEnum.Ordering) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置当前的接单状态
|
||||
*/
|
||||
@JvmStatic
|
||||
fun setCarServingStatus(status: Int) {
|
||||
when (status) {
|
||||
0 -> {
|
||||
this.currentCarServingStatus = TaxiOpenOrderStatusEnum.UnOrdering
|
||||
}
|
||||
|
||||
1 -> {
|
||||
this.currentCarServingStatus = TaxiOpenOrderStatusEnum.Ordering
|
||||
}
|
||||
|
||||
else -> {
|
||||
this.currentCarServingStatus = TaxiOpenOrderStatusEnum.None
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getCurrentCarServingStatus(): TaxiOpenOrderStatusEnum {
|
||||
return currentCarServingStatus
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package com.mogo.och.taxi.constant
|
||||
|
||||
/**
|
||||
* Created on 2021/12/7
|
||||
* 1 运营, 2 测试, 3演示
|
||||
*/
|
||||
enum class TaxiDriverRoleEnum(val code: Int) {
|
||||
OPERATION( 1),
|
||||
TEST( 2),
|
||||
DEMO( 3);
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
package com.mogo.och.taxi.network
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean
|
||||
import com.mogo.och.common.module.biz.network.LoginDefaultManage
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
|
||||
class TaxiDriverLoginImpl : LoginDefaultManage {
|
||||
|
||||
override fun getPhoneCode(
|
||||
context: Context, phone: String?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
TaxiDriverLoginServiceManager.getPhoneCode(context, phone, callback)
|
||||
}
|
||||
|
||||
override fun gotoLoginBycode(
|
||||
context: Context,
|
||||
phone: String?,
|
||||
code: String?,
|
||||
location4Login: TaxiLoginReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<TaxiLoginRespBean>?
|
||||
) {
|
||||
TaxiDriverLoginServiceManager.gotoLoginBycode(context, phone, code, location4Login, callback)
|
||||
}
|
||||
|
||||
override fun logout(
|
||||
context: Context,
|
||||
location4Login: TaxiLogoutReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
TaxiDriverLoginServiceManager.logout(context, location4Login, callback)
|
||||
}
|
||||
|
||||
override fun queryDriverServiceStatus(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<DriverStatusQueryRespBean>?
|
||||
) {
|
||||
TaxiDriverLoginServiceManager.queryDriverServiceStatus(context, callback)
|
||||
}
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
package com.mogo.och.taxi.network;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean;
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean;
|
||||
import com.mogo.och.taxi.bean.UnmannedLoginReqBean;
|
||||
import com.mogo.och.taxi.bean.UnmannedLogoutReqBean;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import retrofit2.http.Body;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Header;
|
||||
import retrofit2.http.Headers;
|
||||
import retrofit2.http.POST;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
* <p>
|
||||
* 网约车-出租车接口定义
|
||||
*/
|
||||
interface TaxiDriverLoginServiceApi {
|
||||
/**
|
||||
* 获取手机验证码
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
@POST("/och-taxi-cabin/api/sms/v1/sendSms")
|
||||
Observable<DriverStatusQueryRespBean> getPhoneCode(@Header("appId") String appId
|
||||
, @Header("ticket") String ticket, @Body TaxiLoginSmsReqBean data);
|
||||
|
||||
/**
|
||||
* 通过验证码登录
|
||||
*
|
||||
* @param appId
|
||||
* @param ticket
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
@POST("/och-taxi-cabin/api/flow/v1/startOperation")
|
||||
Observable<TaxiLoginRespBean> gotoLoginBycode4Taxi(@Header("appId") String appId
|
||||
, @Header("ticket") String ticket, @Body UnmannedLoginReqBean data);
|
||||
|
||||
/**
|
||||
* 登出接口
|
||||
*/
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
@POST("/och-taxi-cabin/api/flow/v1/endOperation")
|
||||
Observable<BaseData> logout4Taxi(@Header("appId") String appId, @Header("ticket") String ticket,
|
||||
@Body UnmannedLogoutReqBean data);
|
||||
|
||||
/**
|
||||
* 接单状态和登录状态查询 出租车司机端、小巴车司机端、小巴车乘客端
|
||||
*
|
||||
* @param sn
|
||||
* @return
|
||||
*/
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
@GET("/och-taxi-cabin/api/business/v1/loginStatus")
|
||||
Observable<DriverStatusQueryRespBean> queryDriverServiceStatusAndLoginStatus(@Header("appId") String appId
|
||||
, @Header("ticket") String ticket, @Query("sn") String sn);
|
||||
|
||||
}
|
||||
@@ -1,129 +0,0 @@
|
||||
package com.mogo.och.taxi.network
|
||||
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst.Companion.getBaseUrl
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean
|
||||
import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||
import com.mogo.eagle.core.network.utils.GsonUtil
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl
|
||||
import com.mogo.och.common.module.biz.network.interceptor.transformTry
|
||||
import com.mogo.och.taxi.bean.GcjLatLon
|
||||
import com.mogo.och.taxi.bean.UnmannedLoginReqBean
|
||||
import com.mogo.och.taxi.bean.UnmannedLogoutReqBean
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
*/
|
||||
object TaxiDriverLoginServiceManager {
|
||||
|
||||
private const val TAG = "OchCommonServiceManager"
|
||||
|
||||
private val mOCHTaxiServiceApi: TaxiDriverLoginServiceApi =
|
||||
MoGoRetrofitFactory.getInstance(getBaseUrl()).create(
|
||||
TaxiDriverLoginServiceApi::class.java
|
||||
)
|
||||
|
||||
/**
|
||||
* 获取手机验证码
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun getPhoneCode(
|
||||
context: Context, phone: String?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
mOCHTaxiServiceApi.getPhoneCode(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
TaxiLoginSmsReqBean(phone)
|
||||
).transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "getPhoneCode"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过验证码登录
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun gotoLoginBycode(
|
||||
context: Context, phone: String?, code: String?,
|
||||
location4Login: TaxiLoginReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<TaxiLoginRespBean>?
|
||||
) {
|
||||
//新saas 接口变换, 参数变换, 重新组装
|
||||
val unmannedLocation4Login = location4Login?.let {
|
||||
GcjLatLon(
|
||||
it.lat,it.lon
|
||||
)
|
||||
}
|
||||
Log.d("taxiUnmanned-request = " , GsonUtil.jsonFromObject(mOCHTaxiServiceApi))
|
||||
val sn = SharedPrefsMgr.getInstance().sn
|
||||
mOCHTaxiServiceApi.gotoLoginBycode4Taxi(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
UnmannedLoginReqBean(phone, code, sn, unmannedLocation4Login)
|
||||
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "gotoLoginBycode"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 登出
|
||||
*/
|
||||
@JvmStatic
|
||||
fun logout(
|
||||
context: Context,
|
||||
location4Login: TaxiLogoutReqBean.Location4Login?,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
//新saas 接口变换, 参数变换, 重新组装
|
||||
val unmannedLocation4Login = location4Login?.let {
|
||||
GcjLatLon(
|
||||
it.lat,it.lon
|
||||
)
|
||||
}
|
||||
Log.d("taxiUnmanned-request = " , GsonUtil.jsonFromObject(mOCHTaxiServiceApi))
|
||||
|
||||
mOCHTaxiServiceApi.logout4Taxi(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
UnmannedLogoutReqBean(SharedPrefsMgr.getInstance().sn, unmannedLocation4Login)
|
||||
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 接单状态和登录状态查询
|
||||
*
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun queryDriverServiceStatus(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<DriverStatusQueryRespBean>?
|
||||
) {
|
||||
if (SharedPrefsMgr.getInstance().token.isEmpty()) {
|
||||
callback?.onFail(OchCommonConst.WAIT_TAKEN, "等待令牌中请稍等")
|
||||
MoGoAiCloudClient.getInstance().refreshToken()
|
||||
return
|
||||
}
|
||||
mOCHTaxiServiceApi.queryDriverServiceStatusAndLoginStatus(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
SharedPrefsMgr.getInstance().sn
|
||||
).transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus"))
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,7 +6,6 @@ import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.FragmentTransaction
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.mogo.commons.module.status.MogoStatusManager
|
||||
import com.mogo.commons.module.status.StatusDescriptor
|
||||
import com.mogo.eagle.core.data.temp.EventLogout
|
||||
@@ -15,13 +14,10 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.biz.provider.LoginService
|
||||
import com.mogo.och.common.module.utils.FlowBus
|
||||
import com.mogo.och.taxi.R
|
||||
import com.mogo.och.taxi.constant.TaxiDriverEventConst
|
||||
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum
|
||||
import com.mogo.och.taxi.network.TaxiDriverLoginImpl
|
||||
import com.mogo.och.taxi.ui.operational.TaxiOperationalDialogFragment
|
||||
import com.mogo.och.taxi.ui.routing.TaxiRoutingFragment
|
||||
import com.mogo.och.taxi.ui.task.TaxiTaskModel
|
||||
@@ -49,7 +45,6 @@ class TaxiFragment : BaseTaxiTabFragment<TaxiFragment, TaxiPresenter>(),
|
||||
private var taskTabFragment: WeakReference<TaxiTaskTabFragment>? = null
|
||||
private var personalDialogFragment: WeakReference<TaxiOperationalDialogFragment>? = null
|
||||
private var routingVerifyFragment: WeakReference<TaxiRoutingFragment>? = null
|
||||
private var loginService: LoginService? = null
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun changeOverview(eventLogout: EventLogout) {
|
||||
@@ -83,9 +78,6 @@ class TaxiFragment : BaseTaxiTabFragment<TaxiFragment, TaxiPresenter>(),
|
||||
|
||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||
super.onActivityCreated(savedInstanceState)
|
||||
loginService =
|
||||
ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation() as LoginService
|
||||
loginService?.registerFragment(this, presenter, TaxiDriverLoginImpl())
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
@@ -225,8 +217,6 @@ class TaxiFragment : BaseTaxiTabFragment<TaxiFragment, TaxiPresenter>(),
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
loginService!!.unRegisterFragment()
|
||||
loginService = null
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
|
||||
@@ -12,14 +12,13 @@ import com.mogo.eagle.core.data.map.MogoLocation;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
|
||||
import com.mogo.och.common.module.biz.callback.ILoginCallback;
|
||||
import com.mogo.och.common.module.biz.login.ILoginCallback;
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager;
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
|
||||
import com.mogo.och.taxi.callback.ITaxiADASStatusCallback;
|
||||
import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback;
|
||||
import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback;
|
||||
import com.mogo.och.taxi.constant.TaxiCarServingStatusManager;
|
||||
import com.mogo.och.taxi.constant.TaxiDriverRoleEnum;
|
||||
import com.mogo.och.common.module.biz.login.TaxiDriverRoleEnum;
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst;
|
||||
import com.mogo.och.taxi.ui.routing.TaxiRoutingModel;
|
||||
import com.mogo.och.taxi.ui.task.TaxiTaskModel;
|
||||
@@ -200,20 +199,18 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
|
||||
|
||||
@Override
|
||||
public void loginSuccess(DriverStatusQueryRespBean data) {
|
||||
//设置 接单状态
|
||||
TaxiCarServingStatusManager.setCarServingStatus(data.data.servingStatus);
|
||||
public void loginSuccess() {
|
||||
|
||||
// 设置当前用户角色
|
||||
String role = "";
|
||||
if (TaxiDriverRoleEnum.DEMO.getCode() == data.data.purpose) {
|
||||
if (TaxiDriverRoleEnum.DEMO == LoginStatusManager.getPurpose()) {
|
||||
role = TaxiUnmannedConst.DEMO_USER;
|
||||
} else if (TaxiDriverRoleEnum.TEST.getCode() == data.data.purpose) {
|
||||
} else if (TaxiDriverRoleEnum.TEST == LoginStatusManager.getPurpose()) {
|
||||
role = TaxiUnmannedConst.TEST_USER;
|
||||
}
|
||||
String finalRole = role;
|
||||
runOnUIThread(() -> {
|
||||
mView.updateOperationStatus(TaxiCarServingStatusManager.isCarServingStatus(), finalRole);
|
||||
mView.updateOperationStatus(LoginStatusManager.isLogin(), finalRole);
|
||||
});
|
||||
|
||||
if (!TaxiTaskModel.INSTANCE.checkCurrentTaskCondition()) {
|
||||
@@ -223,10 +220,6 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
TaxiTaskModel.INSTANCE.updatePrepareTaskDelayUI();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loginFail(boolean isLogin) {
|
||||
}
|
||||
|
||||
public void stopAutoStartAutopilot() {
|
||||
TaxiTaskModel.INSTANCE.stopAutoStartAutopilot();
|
||||
}
|
||||
|
||||
@@ -40,10 +40,10 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager
|
||||
import com.mogo.och.common.module.biz.common.socketmessage.data.OCHOperationalMessage
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.biz.provider.LoginService
|
||||
import com.mogo.och.common.module.biz.login.LoginService
|
||||
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback
|
||||
import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager
|
||||
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
|
||||
@@ -68,7 +68,6 @@ import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback
|
||||
import com.mogo.och.taxi.callback.ITaxiTaskWithOrderCallback
|
||||
import com.mogo.och.taxi.constant.TaskStatusEnum
|
||||
import com.mogo.och.taxi.constant.TaskTypeEnum
|
||||
import com.mogo.och.taxi.constant.TaxiCarServingStatusManager
|
||||
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.BUSINESSTYPE
|
||||
@@ -201,15 +200,12 @@ object TaxiTaskModel {
|
||||
}
|
||||
|
||||
fun init() {
|
||||
loginService =
|
||||
ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation() as LoginService
|
||||
initListeners()
|
||||
RxJavaUtils.setErrorHandler(TAG)
|
||||
}
|
||||
|
||||
fun release() {
|
||||
releaseListeners()
|
||||
loginService = null
|
||||
}
|
||||
|
||||
private fun initListeners() {
|
||||
@@ -513,7 +509,7 @@ object TaxiTaskModel {
|
||||
d(TAG, "mNetWorkIntentListener: onIntentReceived=$intentStr")
|
||||
if ((ConnectivityManager.CONNECTIVITY_ACTION == intentStr)) {
|
||||
if (NetworkUtils.isConnected(mContext)) {
|
||||
loginService?.queryLoginStatusByNet()
|
||||
LoginStatusManager.queryLoginStatusByNet()
|
||||
DebugView.printInfoMsg("[网络状态变化] isConnected=true")
|
||||
} else {
|
||||
DebugView.printErrorMsg("[网络状态变化] isConnected=false")
|
||||
@@ -996,7 +992,7 @@ object TaxiTaskModel {
|
||||
d(
|
||||
TAG,
|
||||
"prepareNextTask onSuccess:${GsonUtil.jsonFromObject(data)}, " +
|
||||
"isCarServingStatus = ${TaxiCarServingStatusManager.isCarServingStatus()}"
|
||||
"isCarServingStatus = ${LoginStatusManager.isLogin()}"
|
||||
)
|
||||
DebugView.printInfoMsg("[PrepareNextTask] 请求success")
|
||||
isPrepareingNextTask = false
|
||||
@@ -1006,7 +1002,7 @@ object TaxiTaskModel {
|
||||
DebugView.printErrorMsg("[PrepareNextTask] 请求fail, code=$code ,msg=$msg")
|
||||
d(TAG, "prepareNextTask onFail: code=$code ,msg=$msg")
|
||||
isPrepareingNextTask = false
|
||||
if (LoginStatusManager.isLogin() && TaxiCarServingStatusManager.isCarServingStatus()
|
||||
if (LoginStatusManager.isLogin()
|
||||
&& QueryCurrentTaskRespBean.isTaskCompleteTaskType(mCurrentTaskWithOrder)) {
|
||||
mCurrentTaskWithOrder?.endSite?.siteId?.also {
|
||||
startPrepareTaskDelay(TaxiUnmannedConst.START_PREPARE_TASK_RETRY_INTERVAL,it)
|
||||
@@ -1020,7 +1016,7 @@ object TaxiTaskModel {
|
||||
"net = ${NetworkUtils.isConnected(mContext)}")
|
||||
d(TAG, "prepareNextTask onError, , net = ${NetworkUtils.isConnected(mContext)}")
|
||||
isPrepareingNextTask = false
|
||||
if (LoginStatusManager.isLogin() && TaxiCarServingStatusManager.isCarServingStatus()
|
||||
if (LoginStatusManager.isLogin()
|
||||
&& QueryCurrentTaskRespBean.isTaskCompleteTaskType(mCurrentTaskWithOrder)) {
|
||||
mCurrentTaskWithOrder?.endSite?.siteId?.also {
|
||||
startPrepareTaskDelay(TaxiUnmannedConst.START_PREPARE_TASK_RETRY_INTERVAL,it)
|
||||
@@ -1106,17 +1102,17 @@ object TaxiTaskModel {
|
||||
|
||||
fun updateCarServingStatus() {
|
||||
if (!LoginStatusManager.isLogin()) {
|
||||
loginService?.queryLoginStatusByNet()
|
||||
LoginStatusManager.queryLoginStatusByNet()
|
||||
return
|
||||
}
|
||||
if (TaxiCarServingStatusManager.isCarServingStatus()) {//接单状态下,去结束
|
||||
if (LoginStatusManager.isLogin()) {//接单状态下,去结束
|
||||
DebugView.printInfoMsg("[暂停接单] 准备发送请求")
|
||||
TaxiTaskWithOrderServiceManager.endService(
|
||||
mContext,
|
||||
object : OchCommonServiceCallback<BaseData> {
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
DebugView.printInfoMsg("[暂停接单] 请求success")
|
||||
loginService?.queryLoginStatusByNet()
|
||||
LoginStatusManager.queryLoginStatusByNet()
|
||||
//需要将虚拟任务停掉, 虚拟任务会再开始接单后获取新的
|
||||
mDriveToNearestStationTask = null
|
||||
mTaxiCarServiceCallback?.onCarEndServiceSuccess(
|
||||
@@ -1146,7 +1142,7 @@ object TaxiTaskModel {
|
||||
if (data == null) return
|
||||
DebugView.printInfoMsg("[开始接单] 请求success")
|
||||
d(TAG, "data.data=" + GsonUtil.jsonFromObject(data.data))
|
||||
loginService?.queryLoginStatusByNet()
|
||||
LoginStatusManager.queryLoginStatusByNet()
|
||||
mCurrentTaskWithOrder?.apply {
|
||||
if (endSite != null) {
|
||||
when {
|
||||
@@ -1450,7 +1446,7 @@ object TaxiTaskModel {
|
||||
|
||||
// 登出
|
||||
fun logout() {
|
||||
loginService?.loginOut(
|
||||
LoginStatusManager.loginOut(
|
||||
getChassisLocationGCJ02().latitude,
|
||||
getChassisLocationGCJ02().longitude
|
||||
)
|
||||
@@ -1539,7 +1535,7 @@ object TaxiTaskModel {
|
||||
}
|
||||
|
||||
fun updatePrepareTaskDelayUI() {
|
||||
if (!TaxiCarServingStatusManager.isCarServingStatus()){
|
||||
if (!LoginStatusManager.isLogin()){
|
||||
mTaxiTaskWithOrderCallbackMap.forEach {
|
||||
val listener = it.value
|
||||
listener.onStartPrepareTaskUI(0, false)
|
||||
|
||||
@@ -11,6 +11,7 @@ import androidx.fragment.app.FragmentManager;
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst;
|
||||
import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst;
|
||||
import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment;
|
||||
|
||||
@@ -23,7 +24,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
* <p>
|
||||
* 网约车-出租车-乘客端
|
||||
*/
|
||||
@Route(path = TaxiPassengerConst.PATH)
|
||||
@Route(path = OchCommonConst.TAXI_UNMANNED_PASSENGER)
|
||||
public class MogoOCHTaxiPassenger implements IMoGoFunctionProvider {
|
||||
|
||||
private static final String TAG = "MogoOCHTaxiPassenger";
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user