[6.4.0][merge] 解决冲突

This commit is contained in:
renwj
2024-04-16 19:14:04 +08:00
422 changed files with 4757 additions and 5533 deletions

View File

@@ -1,6 +1,7 @@
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion
@@ -15,9 +16,10 @@ android {
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
kapt {
useBuildCache = false
arguments {
arg("AROUTER_MODULE_NAME", "bus"+project.getName())
}
}
}
@@ -42,21 +44,6 @@ android {
}
}
flavorDimensions "vehicle"
productFlavors {
// 车型:金旅星辰、开沃 小巴业务
jinlvvan {
dimension "vehicle"
buildConfigField 'int', 'NEW_TEST', '0'
}
// 车型金旅m2 小巴业务
m2 {
dimension "vehicle"
buildConfigField 'int', 'NEW_TEST', '1'
}
}
}
dependencies {
@@ -64,7 +51,7 @@ dependencies {
implementation rootProject.ext.dependencies.kotlinstdlib
implementation rootProject.ext.dependencies.androidxappcompat
implementation rootProject.ext.dependencies.arouter
annotationProcessor rootProject.ext.dependencies.aroutercompiler
kapt rootProject.ext.dependencies.aroutercompiler
implementation rootProject.ext.dependencies.androidxconstraintlayout
implementation rootProject.ext.dependencies.amapnavi3dmap

View File

@@ -0,0 +1,31 @@
package com.mogo.och.bus
import android.content.Context
import androidx.fragment.app.Fragment
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.bus.fragment.BusFragment
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.CommonService
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
/**
* 网约车小巴业务实现入口
*
* @author tongchenfei
*/
@Route(path = OchCommonConst.BUS_DRIVER)
class BusDriverProvider : CommonServiceImpl() {
private val tag = BusDriverProvider::class.java.simpleName
private lateinit var busFragment: BusFragment
override fun getFragment(): Fragment {
return busFragment
}
override fun init(context: Context) {
CallerLogger.d(tag, "准备show fragment")
busFragment = BusFragment()
}
}

View File

@@ -1,100 +0,0 @@
package com.mogo.och.bus;
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 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.bus.constant.BusConst;
import com.mogo.och.bus.fragment.BusFragment;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* 网约车小巴业务实现入口
*
* @author tongchenfei
*/
@Route(path = BusConst.PATH)
public class BusProvider implements IMogoOCH {
private static final String TAG = "BusProvider";
private BusFragment busFragment;
private int containerId;
private FragmentActivity activity;
/**
* 进入鹰眼模式,设置手势缩放地图失效
*/
private void stepIntoVrMode() {
CallerLogger.d(M_BUS + TAG, "进入vr模式");
CallerMoGoUiSettingManager.INSTANCE.stepInNightMode();//夜间模式 状态栏字体颜色变黑
}
@Override
public void init(Context context) {
}
private void showFragment() {
FragmentManager supportFragmentManager = activity.getSupportFragmentManager();
if (busFragment == null) {
CallerLogger.d(TAG, "准备add fragment======");
Fragment fragmentByTag = supportFragmentManager.findFragmentByTag(BusFragment.TAG);
if (fragmentByTag instanceof BusFragment) {
busFragment = (BusFragment) fragmentByTag;
} else {
busFragment = new BusFragment();
}
if(!busFragment.isAdded()) {
supportFragmentManager.beginTransaction().add(containerId, busFragment, BusFragment.TAG).commitAllowingStateLoss();
}
return;
}
CallerLogger.d(TAG, "准备show fragment");
supportFragmentManager.beginTransaction().show(busFragment).commitAllowingStateLoss();
}
private void hideFragment() {
if (busFragment != null) {
CallerLogger.d(TAG, "准备hide fragment");
activity.getSupportFragmentManager().beginTransaction().hide(busFragment).commitAllowingStateLoss();
}
}
@Override
public void createCoverage(FragmentActivity activity, int containerId) {
}
@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();
}
}

View File

@@ -1,24 +0,0 @@
package com.mogo.och.bus;
import androidx.annotation.IdRes;
import androidx.fragment.app.FragmentActivity;
import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider;
public
/**
* @author congtaowang
* @since 2021/1/15
*
* 网约车抽象接口
*/
interface IMogoOCH extends IMoGoFunctionProvider {
/**
* 初始化网约车容器
*
* @param activity
* @param containerId 容器ID
*/
void createCoverage(FragmentActivity activity, @IdRes int containerId);
}

View File

@@ -15,7 +15,6 @@ import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.Group;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.storage.SharedPrefsMgr;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.data.temp.EventLogout;
@@ -32,13 +31,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 +71,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 +79,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
@@ -410,7 +398,7 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
@Override
public int getStationPanelViewId() {
return R.layout.fragment_och_bus;
return R.layout.bug_fragment_och;
}
@Override

View File

@@ -13,8 +13,8 @@ import com.mogo.och.bus.bean.BusRoutesResponse;
import com.mogo.och.bus.callback.IBusLinesCallback;
import com.mogo.och.bus.net.OrderServiceManager;
import com.mogo.och.bus.ui.BusSwitchLineActivity;
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback;
import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager;
import com.mogo.och.common.module.network.OchCommonServiceCallback;
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager;
/**
* @author: wangmingjun

View File

@@ -12,7 +12,6 @@ import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.alibaba.android.arouter.launcher.ARouter;
import com.elegant.network.utils.GsonUtil;
import com.mogo.aicloud.services.socket.IMogoOnMessageListener;
import com.mogo.commons.AbsMogoApplication;
@@ -55,21 +54,22 @@ import com.mogo.och.bus.util.BusAnalyticsManager;
import com.mogo.och.bus.util.BusSendTripInfoManager;
import com.mogo.och.bus.util.BusTrajectoryManager;
import com.mogo.och.bus.util.BusVoiceManager;
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.network.OchCommonServiceCallback;
import com.mogo.och.common.module.biz.provider.LoginService;
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager;
import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg;
import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager;
import com.mogo.och.common.module.manager.socket.cloud.data.OCHOperationalMessage;
import com.mogo.och.common.module.constant.OchCommonConst;
import com.mogo.och.common.module.biz.login.LoginStatusManager;
import com.mogo.och.common.module.network.OchCommonServiceCallback;
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;
import com.mogo.och.common.module.manager.autopilotmanager.autopilot.ArrivedStation;
import com.mogo.och.common.module.manager.autopilotmanager.trajectory.ITrajectoryListListener;
import com.mogo.och.common.module.manager.autopilotmanager.trajectory.TrajectoryManager;
import com.mogo.och.common.module.manager.distancemamager.ITrajectoryListener;
import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager;
import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager;
import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager;
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager;
import com.mogo.och.common.module.manager.autopilot.autopilot.ArrivedStation;
import com.mogo.och.common.module.manager.autopilot.trajectory.ITrajectoryListListener;
import com.mogo.och.common.module.manager.autopilot.trajectory.TrajectoryManager;
import com.mogo.och.common.module.manager.distance.ITrajectoryListener;
import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager;
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager;
import com.mogo.och.common.module.utils.DateTimeUtil;
import com.mogo.och.common.module.utils.MultiRequestLimitChecker;
import com.mogo.och.common.module.utils.NumberFormatUtil;
@@ -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);
@@ -1136,9 +1132,7 @@ public class OrderModel {
public void sendWriteOffNumToClient(String msg){
AppConnectMsg passengerMsg = new AppConnectMsg(false,true,msg,-1);
CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING,
GsonUtils.toJson(passengerMsg).getBytes());
LanSocketManager.sendMsgToClient(passengerMsg);
}
// 车机端上传心跳数据(只在出车状态时上传)
@@ -1172,7 +1166,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) {

View File

@@ -8,10 +8,10 @@ import com.mogo.eagle.core.network.MoGoRetrofitFactory
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.och.bus.bean.*
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
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.network.OchCommonSubscribeImpl
import com.mogo.och.common.module.network.interceptor.transformTry
/**
* @author: wangmingjun

View File

@@ -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)
}
}

View File

@@ -27,13 +27,12 @@ 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.manager.autopilotmanager.OCHAdasAbilityManager;
import com.mogo.och.common.module.manager.autopilotmanager.autopilot.ArrivedStation;
import com.mogo.och.common.module.manager.autopilotmanager.autopilot.IOchAutopilotStatusListener;
import com.mogo.och.common.module.manager.autopilotmanager.autopilot.OchAutoPilotStatusListenerManager;
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.autopilot.OCHAdasAbilityManager;
import com.mogo.och.common.module.manager.autopilot.autopilot.ArrivedStation;
import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener;
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager;
import com.zhjt.mogo.adas.data.AdasConstants;
import java.util.ArrayList;
@@ -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;

View File

@@ -42,7 +42,7 @@ class BusSwitchLineActivity : MvpActivity<BusSwitchLineView?, BusLinePresenter?>
private lateinit var linearLayoutManager:LinearLayoutManager
private val mData: MutableList<BusQueryLinesResponse.Result> = ArrayList()
override fun getLayoutId(): Int {
return R.layout.activity_bus_switch_line
return R.layout.bus_switch_line
}
override fun createPresenter(): BusLinePresenter {

View File

@@ -11,7 +11,7 @@ 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.DateTimeUtils
import com.mogo.och.bus.constant.BusConst
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
import com.mogo.och.common.module.utils.RxUtils
import io.reactivex.disposables.Disposable

View File

@@ -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.manager.orderlogmanager.OchChainLogManager;
import com.zhidao.socket.utils.LoginStatusUtil;
import com.mogo.och.common.module.biz.login.LoginStatusManager;
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager;
import java.util.concurrent.TimeUnit;

View File

@@ -21,7 +21,7 @@ object BusVoiceManager {
}
fun arrivedStationBus(siteNameCN: String?, siteNameKR: String?) {
if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) {
if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
return
}
val context = AbsMogoApplication.getApp()

View File

@@ -20,9 +20,9 @@ class BizMapView @JvmOverloads constructor(
private lateinit var mapBizView: MapBizView
init {
if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) {
if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
LayoutInflater.from(context).inflate(R.layout.bus_m2_bizmap_map, this, true)
}else if(AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)){
}else if(AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)){
LayoutInflater.from(context).inflate(R.layout.bus_jl_bizmap_map, this, true)
}else{
LayoutInflater.from(context).inflate(R.layout.bus_jl_bizmap_map, this, true)

View File

@@ -27,7 +27,7 @@ import com.mogo.eagle.core.utilcode.util.ConvertUtils;
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.och.bus.R;
import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager;
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager;
import me.jessyan.autosize.AutoSizeConfig;
import me.jessyan.autosize.utils.AutoSizeUtils;

View File

@@ -19,7 +19,7 @@ android {
kapt {
useBuildCache = false
arguments {
arg("AROUTER_MODULE_NAME", project.getName())
arg("AROUTER_MODULE_NAME", "bus"+project.getName())
}
}
}
@@ -58,20 +58,6 @@ android {
]
}
}
flavorDimensions "vehicle"
productFlavors {
// 车型:金旅星辰、开沃 小巴业务
jinlvvan {
dimension "vehicle"
buildConfigField 'int', 'NEW_TEST', '0'
}
// 车型金旅m1 小巴业务
m2 {
dimension "vehicle"
buildConfigField 'int', 'NEW_TEST', '1'
}
}
}
dependencies {

View File

@@ -0,0 +1,65 @@
package com.mogo.och.bus.passenger
import android.content.Context
import android.view.View
import androidx.fragment.app.Fragment
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView
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.MultiDisplayUtils
import com.mogo.och.bus.passenger.passenger.ui.PM2BaseFragment
import com.mogo.och.bus.passenger.passenger.ui.widget.M2StatusBarView
import com.mogo.och.bus.passenger.ui.BusPStatusBarView
import com.mogo.och.bus.passenger.ui.BusPassengerRouteFragment
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
import com.mogo.och.common.module.wigets.media.MediaPlayerActivity
/**
* 网约车-Bus-乘客端
*
* Created on 2022/3/29
*/
@Route(path = OchCommonConst.BUS_PASSENGER)
class BusPassengerProvider : CommonServiceImpl() {
private val tag = BusPassengerProvider::class.java.simpleName
private lateinit var mPM2Fragment: Fragment
override fun getFragment(): Fragment {
if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) {
MultiDisplayUtils.startActWithSecond(ActivityUtils.getTopActivity(), MediaPlayerActivity::class.java)
}
return mPM2Fragment
}
override fun getStatusBarView(context: Context): View {
if(statusBarView==null) {
statusBarView = if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
M2StatusBarView(context)
} else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) {
BusPStatusBarView(context)
} else{
StatusBarView(context)
}
}
return statusBarView!!
}
override fun init(context: Context) {
CallerLogger.d(SceneConstant.M_TAXI_P + tag, "init")
mPM2Fragment = if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
PM2BaseFragment()
} else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) {
BusPassengerRouteFragment()
} else {
BusPassengerRouteFragment()
}
}
}

View File

@@ -1,22 +0,0 @@
package com.mogo.och.bus.passenger;
import androidx.annotation.IdRes;
import androidx.fragment.app.FragmentActivity;
import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider;
/**
* 网约车抽象接口
*
* Created on 2022/3/29
*/
interface IMogoOCH extends IMoGoFunctionProvider {
/**
* 初始化网约车容器
*
* @param activity
* @param containerId 容器ID
*/
void createCoverage(FragmentActivity activity, @IdRes int containerId);
}

View File

@@ -1,105 +0,0 @@
package com.mogo.och.bus.passenger
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.stepInDayMode
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.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.wigets.media.MediaPlayerActivity
/**
* 网约车-Bus-乘客端
*
* Created on 2022/3/29
*/
@Route(path = BusPassengerConst.PATH)
class MogoOCHBusPassenger : IMoGoFunctionProvider {
private var mActivity: FragmentActivity? = null
private var mContainerId = 0
private var mPM2Fragment: Fragment? = null
override fun createCoverage(activity: FragmentActivity?, containerId: Int?): Fragment? {
mActivity = activity
mContainerId = containerId!!
showFragment()
if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) {
mActivity?.let {
MultiDisplayUtils.startActWithSecond(it, MediaPlayerActivity::class.java)
}
}
return null
}
override val functionName: String
get() = "och-bus-passenger-m2"
override fun onDestroy() {
// 若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠
mActivity?.finish()
}
override fun init(context: Context) {
}
/**
* 进入鹰眼模式,设置手势缩放地图失效
*/
private fun stepIntoVrMode() {
d(SceneConstant.M_TAXI_P + TAG, "进入vr模式")
stepInDayMode() //白天模式 状态栏字体颜色变黑
}
private fun showFragment() {
val supportFragmentManager: FragmentManager? = mActivity?.supportFragmentManager
if (mPM2Fragment == null) {
d(SceneConstant.M_TAXI_P + TAG, "准备add fragment======")
val fragmentByTag: Fragment? = supportFragmentManager?.findFragmentByTag(PM2BaseFragment.TAG)
mPM2Fragment = if (fragmentByTag is Fragment){
fragmentByTag
}else{
if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) {
PM2BaseFragment()
}else if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) {
BusPassengerRouteFragment()
}else{
BusPassengerRouteFragment()
}
}
if (!mPM2Fragment?.isAdded!!){
supportFragmentManager?.beginTransaction()
?.add(mContainerId, mPM2Fragment!!, PM2BaseFragment.TAG)?.commitAllowingStateLoss()
}
return
}
d(SceneConstant.M_TAXI_P + TAG, "准备show fragment")
supportFragmentManager?.beginTransaction()?.show(mPM2Fragment!!)
?.commitAllowingStateLoss()
}
private fun hideFragment() {
if (mPM2Fragment != null) {
mActivity?.supportFragmentManager?.beginTransaction()?.hide(mPM2Fragment!!)
?.commitAllowingStateLoss()
}
}
companion object {
private val TAG = MogoOCHBusPassenger::class.java.simpleName
}
}

View File

@@ -9,10 +9,10 @@ import com.mogo.och.bus.passenger.bean.BusPassengerQueryLineRequest
import com.mogo.och.bus.passenger.bean.BusPassengerOperationStatusResponse
import com.mogo.eagle.core.network.MoGoRetrofitFactory
import com.mogo.commons.storage.SharedPrefsMgr
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
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.network.OchCommonSubscribeImpl
import com.mogo.och.common.module.network.interceptor.transformTry
/**
* Created on 2022/3/31

View File

@@ -1,41 +0,0 @@
package com.mogo.och.bus.passenger.provider;
import android.content.Context;
import android.view.View;
import androidx.annotation.NonNull;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.data.constants.MogoServicePaths;
import com.mogo.eagle.core.function.api.hmi.view.IStatusViewLayout;
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils;
import com.mogo.och.bus.passenger.passenger.ui.widget.M2StatusBarView;
import com.mogo.och.bus.passenger.ui.BusPStatusBarView;
/**
* @author congtaowang
* @since 2020-01-06
* <p>
* 根据优先级控制显示 window view.
*/
@Route( path = MogoServicePaths.PATH_STATUS_VIEW_MANAGER )
public class StatusViewManager implements IStatusViewLayout {
@NonNull
@Override
public View getStatusView(Context context) {
if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) {
return new M2StatusBarView(context);
} else if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) {
return new BusPStatusBarView(context);
}
return new BusPStatusBarView(context);
}
@Override
public void init(Context context) {
}
}

View File

@@ -19,20 +19,17 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener
import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener
import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager.addListener
import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager
import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager
import com.mogo.eagle.core.network.utils.GsonUtil
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils.isPassenger
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.core.utilcode.util.NetworkUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
@@ -43,23 +40,23 @@ import com.mogo.och.bus.passenger.callback.*
import com.mogo.och.bus.passenger.constant.BusPassengerConst
import com.mogo.och.bus.passenger.network.BusPassengerServiceManager
import com.mogo.och.bus.passenger.network.BusPassengerServiceManager.driverAppSn
import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg
import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg
import com.mogo.och.common.module.bean.dpmsg.DPMsgType
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.pushAppOperationalMsgBox
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager.startLoopAbnormalFactors
import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager.stopLoopAbnormalFactors
import com.mogo.och.common.module.manager.distancemamager.IDistanceListener
import com.mogo.och.common.module.manager.distancemamager.ITrajectoryListener
import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager.addDistanceListener
import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager.addTrajectoryListener
import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager.setStationPoint
import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager.suspendCalculate
import com.mogo.och.common.module.manager.loopmanager.BizLoopManager
import com.mogo.och.common.module.manager.loopmanager.LoopInfo
import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg
import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager
import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.pushAppOperationalMsgBox
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager.startLoopAbnormalFactors
import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager.stopLoopAbnormalFactors
import com.mogo.och.common.module.manager.distance.IDistanceListener
import com.mogo.och.common.module.manager.distance.ITrajectoryListener
import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager.addDistanceListener
import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager.addTrajectoryListener
import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager.setStationPoint
import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager.suspendCalculate
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.manager.loop.LoopInfo
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.OCHThreadPoolManager
import com.mogo.och.common.module.utils.PinYinUtil

View File

@@ -20,7 +20,6 @@ import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager.sendMsgToServer
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
@@ -32,20 +31,24 @@ import com.mogo.och.bus.passenger.bean.BusPassengerOperationStatusResponse
import com.mogo.och.bus.passenger.constant.BusPassengerConst
import com.mogo.och.bus.passenger.passenger.callback.AutoPilotStatusCallback
import com.mogo.och.bus.passenger.passenger.callback.DrivingInfoCallback
import com.mogo.och.common.module.bean.dpmsg.*
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.pushAppOperationalMsgBox
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.pushAppOperationalMsgBox
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.data.bean.BusRoutesResult
import com.mogo.och.data.bean.BusStationBean
import com.mogo.och.data.bean.BusTransferData
import com.mogo.och.bus.passenger.bean.PM2RoutesResponse
import com.mogo.och.bus.passenger.network.BusPassengerServiceManager
import com.mogo.och.common.module.manager.distancemamager.IDistanceListener
import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager
import com.mogo.och.common.module.manager.loopmanager.BizLoopManager
import com.mogo.och.common.module.manager.loopmanager.LoopInfo
import com.mogo.och.common.module.manager.distance.IDistanceListener
import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.manager.loop.LoopInfo
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg
import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
import com.mogo.och.common.module.manager.socket.lan.bean.TaskDetailsMsg
import com.mogo.och.common.module.utils.OCHThreadPoolManager
import kotlin.math.abs
@@ -101,7 +104,7 @@ class PM2DrivingModel private constructor() {
private fun queryDriverByLocalDriver() {
//本地去请求司机端
val msg = TaskDetailsMsg("task")
sendMsgToServer(GsonUtils.toJson(msg))
LanSocketManager.sendMsgToServer(msg)
}
private fun initListener() {
@@ -121,13 +124,6 @@ class PM2DrivingModel private constructor() {
TrajectoryAndDistanceManager.addDistanceListener(TAG, trajectoryListener)
}
private fun sendMsgToServer(msg: String) {
sendMsgToServer(
OchCommonConst.BUSINESS_STRING,
GsonUtils.toJson(msg).toByteArray()
)
}
fun releaseListener() {
//自动驾驶状态监听
CallerAutoPilotStatusListenerManager.removeListener(TAG)

View File

@@ -15,7 +15,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLamplightListene
import com.mogo.eagle.core.function.call.v2x.CallerTurnLightListenerManager
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.bus.passenger.R
import com.mogo.och.common.module.manager.lightmanager.TurnLightManager
import com.mogo.och.common.module.manager.light.TurnLightManager
import kotlinx.android.synthetic.main.bus_p_m2_turn_light_status.view.left_nor_image
import kotlinx.android.synthetic.main.bus_p_m2_turn_light_status.view.left_select_image
import kotlinx.android.synthetic.main.bus_p_m2_turn_light_status.view.right_nor_image

View File

@@ -137,7 +137,7 @@
android:layout_height="@dimen/dp_30"/>
<com.mogo.och.common.module.manager.xiaozhimanager.ZhiView
<com.mogo.och.common.module.manager.xiaozhi.ZhiView
android:id="@+id/zv_msg_pop_bottom"
android:layout_width="@dimen/dp_240"
android:layout_height="@dimen/dp_240"

View File

@@ -18,7 +18,7 @@ android {
kapt {
useBuildCache = false
arguments {
arg("AROUTER_MODULE_NAME", project.getName())
arg("AROUTER_MODULE_NAME", "charter"+project.getName())
}
}
}

View File

@@ -0,0 +1,33 @@
package com.magic.mogo.och.charter
import android.content.Context
import androidx.fragment.app.Fragment
import com.alibaba.android.arouter.facade.annotation.Route
import com.magic.mogo.och.charter.fragment.DriverM1Fragment
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.CommonService
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
/**
* @author: wangmingjun
* @date: 2023/2/22
*/
@Route(path = OchCommonConst.CHARTER_DRIVER)
class CharterDriverProvider : CommonServiceImpl() {
private val tag = CharterDriverProvider::class.java.simpleName
private lateinit var fragment: Fragment
override fun getFragment(): Fragment {
return fragment
}
override fun init(context: Context) {
CallerLogger.d(SceneConstant.M_TAXI + tag, "init")
fragment = DriverM1Fragment()
}
}

View File

@@ -1,70 +0,0 @@
package com.magic.mogo.och.charter
import android.content.Context
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import com.alibaba.android.arouter.facade.annotation.Route
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
/**
* @author: wangmingjun
* @date: 2023/2/22
*/
@Route(path = CharterConst.PATH)
class CharterProvider: IMoGoFunctionProvider{
private var mActivity: FragmentActivity? = null
private var mContainerId: Int? = 0
private var driverM1Fragment: Fragment? = null
override fun createCoverage(fragmentActivity: FragmentActivity?, integer: Int?): Fragment? {
this.mContainerId = integer
this.mActivity = fragmentActivity
showFragment()
return null
}
private fun showFragment() {
val supportFragmentManager = mActivity?.supportFragmentManager
if (driverM1Fragment == null) {
d(TAG, "准备add fragment======")
val fragmentByTag = supportFragmentManager?.findFragmentByTag(DriverM1Fragment.TAG)
driverM1Fragment = if (fragmentByTag is DriverM1Fragment) {
fragmentByTag
} else {
DriverM1Fragment()
}
if (!driverM1Fragment?.isAdded!!) {
mContainerId?.let {
supportFragmentManager?.beginTransaction()
?.add(it, driverM1Fragment!!, DriverM1Fragment.TAG)?.commitAllowingStateLoss()
}
}
return
}
d(TAG, "准备show fragment")
supportFragmentManager?.beginTransaction()?.show(driverM1Fragment!!)?.commitAllowingStateLoss()
}
override fun init(context: Context?) {
}
override val functionName: String
get() = ""
override fun onDestroy() {
// 若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠
mActivity?.finish()
}
companion object {
private val TAG = CharterProvider::class.java.simpleName
}
}

View File

@@ -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)

View File

@@ -14,7 +14,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.DateTimeUtils;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager;
import java.util.HashMap;

View File

@@ -14,8 +14,8 @@ 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.manager.orderlogmanager.OchChainLogManager
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.utils.SoundPoolHelper
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers

View File

@@ -2,7 +2,6 @@ package com.magic.mogo.och.charter.model
import android.content.Context
import android.net.ConnectivityManager
import com.alibaba.android.arouter.launcher.ARouter
import com.alibaba.android.arouter.utils.TextUtils
import com.amap.api.maps.model.LatLng
import com.elegant.network.utils.GsonUtil
@@ -33,32 +32,38 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager.sendMsgToAllClients
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.*
import com.mogo.och.common.module.bean.dpmsg.*
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.pushAppOperationalMsgBox
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.registerSocketMessageListener
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.releaseSocketMessageListener
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.manager.socket.cloud.OCHSocketMessageManager
import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.pushAppOperationalMsgBox
import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.registerSocketMessageListener
import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.releaseSocketMessageListener
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.network.OchCommonServiceCallback
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
import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager.startLoopAbnormalFactors
import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager.stopLoopAbnormalFactors
import com.mogo.och.common.module.manager.CharterSendTripInfoManager
import com.mogo.och.common.module.manager.CharterSendTripInfoManager.ARRIVE_STATION
import com.mogo.och.common.module.manager.CharterSendTripInfoManager.END_TRIP
import com.mogo.och.common.module.manager.CharterSendTripInfoManager.START_TRIP
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager
import com.mogo.och.common.module.manager.device.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.manager.socket.cloud.data.OperateDoorMsg
import com.mogo.och.common.module.manager.socket.cloud.data.OrderCloseMsg
import com.mogo.och.common.module.manager.socket.cloud.data.SystemMsg
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg
import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg
import com.mogo.och.common.module.manager.socket.lan.bean.ChangeDestMsg
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
import com.mogo.och.common.module.manager.socket.lan.bean.DPOrderClosedMsg
import com.mogo.och.common.module.manager.stopside.StopSideManager
import com.mogo.och.common.module.utils.*
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.data.bean.*
@@ -95,7 +100,6 @@ class DriverM1Model {
//0: 代表没有启动过 1代表是启动第一次当>=1 代表是重试 每次到站/路线结束清空置为0
private var loginService: LoginService? = null
companion object {
val TAG = DriverM1Model::class.java.simpleName
@@ -147,8 +151,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 +174,6 @@ class DriverM1Model {
// 注销定位监听
CallerChassisLocationGCJ02ListenerManager.removeListener(TAG)
loginService = null
OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null)
releaseSocketMessageListener(
OCHSocketMessageManager.msgMonitorType
@@ -292,7 +293,7 @@ class DriverM1Model {
override fun onMsgReceived(obj: OrderCloseMsg) {
//订单结束
pushOperationalToMsgBox(DateTimeUtil.getCurrentTimeStamp(), obj.message
,OCHSocketMessageManager.OPERATION_ORDER_TYPE)
, OCHSocketMessageManager.OPERATION_ORDER_TYPE)
sendMsgToClient(DPOrderClosedMsg())
queryCurrentServiceStatus()
}
@@ -350,7 +351,7 @@ class DriverM1Model {
d(SceneConstant.M_TAXI + TAG, "onIntentReceived = %s", intentStr)
if (ConnectivityManager.CONNECTIVITY_ACTION == intentStr) {
if (NetworkUtils.isConnected(mContext)) {
loginService!!.queryLoginStatusByNet()
LoginStatusManager.queryLoginStatusByNet()
}
}
}
@@ -406,7 +407,8 @@ class DriverM1Model {
mContext?.let {
mCurrentOrder?.lineId?.let { it1 ->
DriverM1ServiceManager.arriveDest(
it, it1.toLong(),DateTimeUtil.getCurrentTimeStamp(),object :OchCommonServiceCallback<BaseData>{
it, it1.toLong(),DateTimeUtil.getCurrentTimeStamp(),object :
OchCommonServiceCallback<BaseData> {
override fun onSuccess(data: BaseData?) {
d(SceneConstant.M_CHARTER_D + TAG, "onArriveAt = " + GsonUtil.jsonFromObject(data))
if (data?.code == 0){
@@ -517,7 +519,7 @@ class DriverM1Model {
// 登出
fun logout() {
loginService!!.loginOut(mLatitude, mLongitude)
LoginStatusManager.loginOut(mLatitude, mLongitude)
}
fun triggerStartServiceEvent(isRestart: Boolean, send: Boolean) {
@@ -622,14 +624,11 @@ class DriverM1Model {
private fun sendMsgToClient(msg: BaseDPMsg?){
d(SceneConstant.M_CHARTER_D + TAG, "sendMsgToClient" + GsonUtils.toJson(msg))
sendMsgToAllClients(
OchCommonConst.BUSINESS_STRING,
GsonUtils.toJson(msg).toByteArray()
)
LanSocketManager.sendMsgToClient(msg)
}
fun driverEndLease() {
DriverM1ServiceManager.driverEndLease(mContext,object : OchCommonServiceCallback<BaseData>{
DriverM1ServiceManager.driverEndLease(mContext,object : OchCommonServiceCallback<BaseData> {
override fun onSuccess(data: BaseData?) {
if (data != null && data.code == 0){
mOrderCallback?.updateReturnCarStatus(true)
@@ -647,7 +646,7 @@ class DriverM1Model {
fun queryCurrentServiceStatus() {
DriverM1ServiceManager.queryCurrentServiceStatus(mContext
,object: OchCommonServiceCallback<QueryBusinessStatusResponse>{
,object: OchCommonServiceCallback<QueryBusinessStatusResponse> {
override fun onSuccess(data: QueryBusinessStatusResponse?) {
if (data == null || data.code != 0 || data.data.equals(mCurrentBusinessStatus)){
d(SceneConstant.M_CHARTER_D + TAG, "data is null or data not change" )
@@ -689,7 +688,7 @@ class DriverM1Model {
fun queryCurrentOrder(){
DriverM1ServiceManager.queryCurrentOrder(mContext
,object: OchCommonServiceCallback<QueryCurrentOrderResponse>{
,object: OchCommonServiceCallback<QueryCurrentOrderResponse> {
override fun onSuccess(data: QueryCurrentOrderResponse?) {
if (data == null || data.code != 0){
isArrivedStation = false
@@ -753,7 +752,7 @@ class DriverM1Model {
fun checkOrderCountDown() {
DriverM1ServiceManager.checkOrderCountDown(mContext,
object: OchCommonServiceCallback<CheckOrderCountDownResponse>{
object: OchCommonServiceCallback<CheckOrderCountDownResponse> {
override fun onSuccess(data: CheckOrderCountDownResponse?) {
if (data?.data == null || data.code != 0){
return
@@ -782,7 +781,7 @@ class DriverM1Model {
currentChangeDestMsg!!.startSiteId,
currentChangeDestMsg!!.destSiteId,
writeVersion,
object : OchCommonServiceCallback<BaseData>{
object : OchCommonServiceCallback<BaseData> {
override fun onSuccess(data: BaseData?) {
if (data != null && data.code == 0){
d(SceneConstant.M_CHARTER_D + TAG, "confirmed station .")
@@ -817,7 +816,7 @@ class DriverM1Model {
fun checkoutContrail(){
if (mCurrentOrder == null) return
DriverM1ServiceManager.checkoutContrail(mContext,mCurrentOrder!!.lineId,
object : OchCommonServiceCallback<QueryRoutesResponse>{
object : OchCommonServiceCallback<QueryRoutesResponse> {
override fun onSuccess(data: QueryRoutesResponse?) {
if (data == null || data.code != 0) return
d(SceneConstant.M_CHARTER_D + TAG, "checkoutContrail-=="

View File

@@ -3,13 +3,13 @@ package com.magic.mogo.och.charter.net
import android.content.Context
import com.magic.mogo.och.charter.bean.*
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.constant.OchCommonConst
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
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.network.OchCommonSubscribeImpl
import com.mogo.och.common.module.network.interceptor.transformTry
/**
* Created by pangfan on 2021/8/19

View File

@@ -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)
}
}

View File

@@ -1,108 +0,0 @@
package com.magic.mogo.och.charter.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.getBaseUrl()).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"))
}
}

View File

@@ -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);
}

View File

@@ -5,28 +5,24 @@ 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.common.socketmessage.OCHSocketMessageManager.OPERATION_ROAD_SIDE_TYPE
import com.mogo.och.common.module.biz.constant.LoginStatusManager.isLogin
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
import com.mogo.och.common.module.biz.login.ILoginCallback
import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.OPERATION_ROAD_SIDE_TYPE
import com.mogo.och.common.module.biz.login.LoginStatusManager.isLogin
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.beautifymode.BeautifyManager
import com.mogo.och.common.module.manager.stopsidemanager.OCHPlanningActionsCallback
import com.mogo.och.common.module.manager.stopsidemanager.StopSideStatus
import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager
import com.mogo.och.common.module.manager.stopside.OCHPlanningActionsCallback
import com.mogo.och.common.module.manager.stopside.StopSideStatus
import com.mogo.och.common.module.manager.stopside.StopSideManager
import com.mogo.och.common.module.utils.DateTimeUtil
import mogo.telematics.pad.MessagePad
import mogo_msg.MogoReportMsg
@@ -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()
}

View File

@@ -8,7 +8,7 @@ import com.magic.mogo.och.charter.R
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.och.common.module.manager.DriverMoFangFunctionManager
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager
import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager
import com.mogo.och.common.module.utils.SoundPoolHelper
import kotlinx.android.synthetic.main.driver_mofang_function_view.view.*

View File

@@ -19,11 +19,10 @@ import android.view.View
import android.view.animation.DecelerateInterpolator
import com.magic.mogo.och.charter.R
import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.ConvertUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import me.jessyan.autosize.AutoSizeConfig
import me.jessyan.autosize.utils.AutoSizeUtils

View File

@@ -2,11 +2,9 @@ package com.magic.mogo.och.charter.view.autopilot
import androidx.lifecycle.ViewModel
import com.magic.mogo.och.charter.bean.QueryCurrentOrderResponse.Result.Companion.ARRIVED
import com.magic.mogo.och.charter.bean.QueryCurrentOrderResponse.Result.Companion.ARRIVING
import com.magic.mogo.och.charter.callback.IDriverM1ControllerStatusCallback
import com.magic.mogo.och.charter.constant.CharterConst
import com.magic.mogo.och.charter.model.DriverM1Model
import com.mogo.commons.voice.AIAssist
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
@@ -17,9 +15,9 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.manager.beautifymode.BeautifyManager
import com.mogo.och.common.module.manager.beautifymode.IBeautifyModeCallback
import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager
import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager
import com.mogo.och.common.module.manager.stopsidemanager.StopSideStatus
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.manager.stopside.StopSideManager
import com.mogo.och.common.module.manager.stopside.StopSideStatus
import com.mogo.och.common.module.utils.RxUtils
import java.util.concurrent.atomic.AtomicBoolean

View File

@@ -19,7 +19,7 @@ android {
kapt {
useBuildCache = false
arguments {
arg("AROUTER_MODULE_NAME", project.getName())
arg("AROUTER_MODULE_NAME", "charter"+project.getName())
}
}
}

View File

@@ -0,0 +1,42 @@
package com.mogo.och.charter.passenger
import android.content.Context
import android.view.View
import androidx.fragment.app.Fragment
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.och.charter.passenger.ui.MainFragment
import com.mogo.och.charter.passenger.ui.statusbar.StatusBarView
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.CommonService
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
/**
* 网约车-Bus-乘客端
*
* Created on 2022/3/29
*/
@Route(path = OchCommonConst.CHARTER_PASSENGER)
class CharterPassengerProvider : CommonServiceImpl() {
private val tag = CharterPassengerProvider::class.java.simpleName
private lateinit var fragment: MainFragment
override fun getFragment(): Fragment {
return fragment
}
override fun getStatusBarView(context: Context): View {
if(statusBarView==null){
statusBarView = StatusBarView(context)
}
return statusBarView!!
}
override fun init(context: Context) {
CallerLogger.d(SceneConstant.M_TAXI_P + tag, "init")
fragment = MainFragment()
}
}

View File

@@ -1,76 +0,0 @@
package com.mogo.och.charter.passenger
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.function.api.base.IMoGoFunctionProvider
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
/**
* 网约车-Bus-乘客端
*
* Created on 2022/3/29
*/
@Route(path = CharterPassengerConst.PATH)
class MogoOCHBusPassenger : IMoGoFunctionProvider {
private var mActivity: FragmentActivity? = null
private var mContainerId = 0
private var mPassengerFragment: MainFragment? = null
override fun createCoverage(activity: FragmentActivity?, containerId: Int?): Fragment? {
mActivity = activity
mContainerId = containerId!!
showFragment()
return null
}
override val functionName: String
get() = "och-bus-passenger-m1"
override fun onDestroy() {
// 若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠
mActivity?.finish()
}
override fun init(context: Context) {
}
private fun showFragment() {
val supportFragmentManager: FragmentManager? = mActivity?.supportFragmentManager
if (mPassengerFragment == null) {
d(SceneConstant.M_TAXI_P + TAG, "准备add fragment======")
val fragmentByTag: Fragment? = supportFragmentManager?.findFragmentByTag(MainFragment.TAG)
mPassengerFragment = if (fragmentByTag is MainFragment){
fragmentByTag
}else{
MainFragment()
}
if (!mPassengerFragment?.isAdded!!){
supportFragmentManager?.beginTransaction()
?.add(mContainerId, mPassengerFragment!!, MainFragment.TAG)?.commitAllowingStateLoss()
}
return
}
d(SceneConstant.M_TAXI_P + TAG, "准备show fragment")
supportFragmentManager?.beginTransaction()?.show(mPassengerFragment!!)
?.commitAllowingStateLoss()
}
private fun hideFragment() {
if (mPassengerFragment != null) {
mActivity!!.supportFragmentManager.beginTransaction().hide(mPassengerFragment!!)
.commitAllowingStateLoss()
}
}
companion object {
private val TAG = MogoOCHBusPassenger::class.java.simpleName
}
}

View File

@@ -1,8 +1,7 @@
package com.mogo.och.charter.passenger.bean.response
import com.mogo.eagle.core.data.BaseData
import com.mogo.och.common.module.bean.dpmsg.LineSite
import java.util.*
import com.mogo.och.common.module.manager.socket.lan.bean.LineSite
/**
*

View File

@@ -25,31 +25,32 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.utilcode.util.*
import com.mogo.och.charter.passenger.R
import com.mogo.och.common.module.manager.loopmanager.LoopInfo
import com.mogo.och.common.module.manager.loop.LoopInfo
import com.mogo.och.charter.passenger.bean.response.*
import com.mogo.och.charter.passenger.callback.*
import com.mogo.och.charter.passenger.constant.CharterPassengerConst
import com.mogo.och.common.module.manager.loopmanager.BizLoopManager
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.charter.passenger.net.BusPassengerServiceManager
import com.mogo.och.charter.passenger.utils.CharterVoiceManager
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
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.constant.OchCommonConst
import com.mogo.och.common.module.biz.constant.TaxiLoginStatusEnum
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg
import com.mogo.och.common.module.manager.socket.lan.bean.ChangeDestMsg
import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.biz.login.ILoginCallback
import com.mogo.och.common.module.biz.login.LoginStatusEnum
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.CharterSendTripInfoManager
import com.mogo.och.common.module.manager.CharterSendTripInfoManager.LEAVE_STATION
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.beautifymode.BeautifyManager
import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
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 +164,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: LoginStatusEnum?) {
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 +291,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()
}
//监听网络变化,避免启动机器时无网导致无法更新订单信息
@@ -1001,10 +982,7 @@ object CharterPassengerModel {
OrderInfoResponse.ARRIVED,
currentTimeStamp
)
CallerTelematicManager.sendMsgToServer(
OchCommonConst.BUSINESS_STRING,
GsonUtils.toJson(msg).toByteArray()
)
LanSocketManager.sendMsgToServer(msg)
d(M_BUS_P + BaseDPMsg.TAG, "到站发送数据${msg}")
}
@@ -1050,7 +1028,8 @@ object CharterPassengerModel {
if(size>3){
return
}
BusPassengerServiceManager.queryLineSiteList(mContext,"$lineId",object :OchCommonServiceCallback<SiteInfoResponse>{
BusPassengerServiceManager.queryLineSiteList(mContext,"$lineId",object :
OchCommonServiceCallback<SiteInfoResponse> {
override fun onSuccess(data: SiteInfoResponse?) {
data?.data?.forEach {
if (it.siteId==siteId) {

View File

@@ -4,8 +4,8 @@ import com.mogo.commons.storage.SharedPrefsMgr
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.TAG
import com.mogo.och.common.module.manager.auditionmanager.AuditionManager
import com.mogo.och.common.module.manager.auditionmanager.PlayState
import com.mogo.och.common.module.manager.audition.AuditionManager
import com.mogo.och.common.module.manager.audition.PlayState
import com.mogo.och.common.module.utils.RxUtils
import io.reactivex.disposables.Disposable

View File

@@ -8,11 +8,11 @@ import com.mogo.och.charter.passenger.bean.request.ArriveDestRequest
import com.mogo.och.charter.passenger.bean.request.EndOrderRequest
import com.mogo.och.charter.passenger.bean.response.*
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
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.transformIoTry
import com.mogo.och.common.module.biz.network.interceptor.transformTry
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.network.OchCommonSubscribeImpl
import com.mogo.och.common.module.network.interceptor.transformIoTry
import com.mogo.och.common.module.network.interceptor.transformTry
/**
* Created on 2022/3/31

View File

@@ -31,13 +31,13 @@ import com.mogo.och.charter.passenger.receive.DriverMessage
import com.mogo.och.charter.passenger.ui.MainFragment
import com.mogo.och.charter.passenger.ui.overmapview.MakerWithSiteName
import com.mogo.och.charter.passenger.ui.overmapview.MakerWithSiteNamewithCheck
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.beautifymode.BeautifyManager
import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager
import com.mogo.och.common.module.manager.devicemanage.callback.LightAirconditionDoorCallback
import com.mogo.och.common.module.manager.stopsidemanager.OCHPlanningActionsCallback
import com.mogo.och.common.module.manager.stopsidemanager.StopSideStatus
import com.mogo.och.common.module.manager.stopside.StopSideManager
import com.mogo.och.common.module.manager.device.callback.LightAirconditionDoorCallback
import com.mogo.och.common.module.manager.stopside.OCHPlanningActionsCallback
import com.mogo.och.common.module.manager.stopside.StopSideStatus
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils

View File

@@ -1,36 +0,0 @@
package com.mogo.och.charter.passenger.provider;
import android.content.Context;
import android.view.View;
import com.mogo.och.charter.passenger.ui.statusbar.StatusBarView;
import androidx.annotation.NonNull;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.eagle.core.data.constants.MogoServicePaths;
import com.mogo.eagle.core.function.api.hmi.view.IStatusViewLayout;
import com.mogo.och.charter.passenger.ui.statusbar.StatusBarView;
/**
* @author congtaowang
* @since 2020-01-06
* <p>
* 根据优先级控制显示 window view.
*/
@Route( path = MogoServicePaths.PATH_STATUS_VIEW_MANAGER )
public class StatusViewManager implements IStatusViewLayout {
private StatusBarView statusBarView;
@NonNull
@Override
public View getStatusView(Context context) {
return statusBarView;
}
@Override
public void init(Context context) {
statusBarView = new StatusBarView(context);
}
}

View File

@@ -11,11 +11,14 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.charter.passenger.R
import com.mogo.och.charter.passenger.bean.response.OrderInfoResponse
import com.mogo.och.charter.passenger.model.CharterPassengerModel
import com.mogo.och.common.module.bean.dpmsg.*
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager
import com.mogo.och.common.module.manager.device.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg
import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg
import com.mogo.och.common.module.manager.socket.lan.bean.ChangeDestMsg
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.SoundPoolHelper
import com.mogo.och.common.module.voice.VoiceNotice

View File

@@ -31,8 +31,10 @@ import com.mogo.och.charter.passenger.ui.dialogfragment.M1CarUserNoOrderFragment
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.constant.OchCommonConst
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 com.mogo.och.common.module.biz.provider.CommonService
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
@@ -80,13 +82,16 @@ class MainFragment : MvpFragment<MainFragment?, BusPassengerPresenter?>(), IMogo
private var statusBarView: StatusBarView? = null
override fun getLayoutId(): Int {
(ARouter.getInstance().build(MogoServicePaths.PATH_STATUS_VIEW_MANAGER)
.navigation() as? IStatusViewLayout)?.apply {
val statusView = getStatusView(requireContext())
if (statusView is StatusBarView) {
statusBarView = statusView
(ARouter.getInstance().build(OchCommonConst.CHARTER_PASSENGER)
.navigation() as? CommonService)?.apply {
context?.let {
val statusView = getStatusBarView(it)
if (statusView is StatusBarView) {
statusBarView = statusView
}
}
}
return R.layout.charter_p_main_fragment
}
@@ -138,6 +143,7 @@ class MainFragment : MvpFragment<MainFragment?, BusPassengerPresenter?>(), IMogo
}
showBizView(orderinfo = true)
}
BottomBar.SelectView.SETTING -> showBizView(softControl = true)
BottomBar.SelectView.LINE -> showBizView(selectLine = true)
BottomBar.SelectView.VIDEO -> showBizView(showVideo = true)
@@ -207,10 +213,10 @@ class MainFragment : MvpFragment<MainFragment?, BusPassengerPresenter?>(), IMogo
} else {
biz_video.visibility = View.GONE
}
if(showMusic) {
if (showMusic) {
mcv_play_music.visibility = View.VISIBLE
statusBarView?.setBackgroudColor(R.color.charter_p_40ffffff)
}else{
} else {
mcv_play_music.visibility = View.GONE
}
}
@@ -290,7 +296,7 @@ class MainFragment : MvpFragment<MainFragment?, BusPassengerPresenter?>(), IMogo
)
}
fun showOvermapPoint(){
fun showOvermapPoint() {
omvOverMap.setDebugMode(true)
}
@@ -348,7 +354,7 @@ class MainFragment : MvpFragment<MainFragment?, BusPassengerPresenter?>(), IMogo
omvOverMap?.drawSitePolyline(coordinates, lineTrajectory)
}
fun includePoint(coordinates: List<LatLng>){
fun includePoint(coordinates: List<LatLng>) {
omvOverMap?.includeSitePointsAndUpdateCamera(coordinates)
}

View File

@@ -5,7 +5,7 @@ import android.util.AttributeSet
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.och.charter.passenger.R
import com.mogo.och.charter.passenger.ui.bottom.BottomClickView
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager
import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager
import com.mogo.och.common.module.utils.SoundPoolHelper
class CloseDoorView @JvmOverloads constructor(

View File

@@ -9,7 +9,6 @@ import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
@@ -20,8 +19,8 @@ import com.mogo.och.charter.passenger.R
import com.mogo.och.charter.passenger.callback.ICharterPassengerAutoStatusChangeCallback
import com.mogo.och.charter.passenger.model.CharterPassengerModel
import com.mogo.och.charter.passenger.ui.bottom.BottomClickView
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager
import com.mogo.och.common.module.manager.device.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.manager.stopside.StopSideManager
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.common.module.utils.SoundPoolHelper
import io.reactivex.disposables.Disposable

View File

@@ -14,9 +14,9 @@ import com.bumptech.glide.request.RequestOptions
import com.bumptech.glide.request.target.SimpleTarget
import com.bumptech.glide.request.transition.Transition
import com.mogo.och.charter.passenger.R
import com.mogo.och.common.module.manager.auditionmanager.AuditionManager
import com.mogo.och.common.module.manager.auditionmanager.MusicData
import com.mogo.och.common.module.manager.auditionmanager.PlayState
import com.mogo.och.common.module.manager.audition.AuditionManager
import com.mogo.och.common.module.manager.audition.MusicData
import com.mogo.och.common.module.manager.audition.PlayState
import kotlinx.android.synthetic.main.charter_p_bottom_music.view.aciv_center_image
import kotlinx.android.synthetic.main.charter_p_bottom_music.view.actv_title
import kotlinx.android.synthetic.main.charter_p_bottom_music.view.aciv_playing

View File

@@ -5,7 +5,7 @@ import android.util.AttributeSet
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.och.charter.passenger.R
import com.mogo.och.charter.passenger.ui.bottom.BottomClickView
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager
import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager
import com.mogo.och.common.module.utils.SoundPoolHelper
class OpenDoorView @JvmOverloads constructor(

View File

@@ -3,13 +3,12 @@ package com.mogo.och.charter.passenger.ui.bottom.impl
import android.content.Context
import android.util.AttributeSet
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
import com.mogo.och.charter.passenger.R
import com.mogo.och.charter.passenger.ui.bottom.BottomClickView
import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager
import com.mogo.och.common.module.manager.stopside.StopSideManager
import com.mogo.och.common.module.utils.SoundPoolHelper
class StopSiteView @JvmOverloads constructor(

View File

@@ -18,7 +18,7 @@ import com.mogo.eagle.core.utilcode.util.ClickUtils
import com.mogo.och.charter.passenger.R
import com.mogo.och.charter.passenger.presenter.BusPassengerCarUseAndNoOrderPresenter
import com.mogo.och.charter.passenger.utils.CharterVoiceManager
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager
import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager
import kotlinx.android.synthetic.main.charter_p_order_end.iv_end_order_closedoor
import kotlinx.android.synthetic.main.charter_p_order_end.iv_end_order_opendoor

View File

@@ -8,7 +8,7 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.mogo.och.charter.passenger.R
import com.mogo.och.charter.passenger.ui.music.list.MusicListView
import com.mogo.och.common.module.manager.auditionmanager.MusicData
import com.mogo.och.common.module.manager.audition.MusicData
import kotlinx.android.synthetic.main.charter_p_music.view.mlv_list
import kotlinx.android.synthetic.main.charter_p_music.view.mpv_music_info

View File

@@ -13,8 +13,8 @@ import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.charter.passenger.R
import com.mogo.och.common.module.manager.auditionmanager.MusicData
import com.mogo.och.common.module.manager.auditionmanager.PlayState
import com.mogo.och.common.module.manager.audition.MusicData
import com.mogo.och.common.module.manager.audition.PlayState
import me.jessyan.autosize.AutoSizeCompat
/**

View File

@@ -9,7 +9,7 @@ import androidx.lifecycle.findViewTreeViewModelStoreOwner
import androidx.recyclerview.widget.LinearLayoutManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.charter.passenger.R
import com.mogo.och.common.module.manager.auditionmanager.MusicData
import com.mogo.och.common.module.manager.audition.MusicData
import kotlinx.android.synthetic.main.charter_p_music_list.view.rv_music_list
class MusicListView : ConstraintLayout, MusicListViewModel.IMusicListViewCaLillback,

View File

@@ -3,8 +3,8 @@ package com.mogo.och.charter.passenger.ui.music.list
import androidx.lifecycle.ViewModel
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.manager.auditionmanager.AuditionManager
import com.mogo.och.common.module.manager.auditionmanager.MusicData
import com.mogo.och.common.module.manager.audition.AuditionManager
import com.mogo.och.common.module.manager.audition.MusicData
class MusicListViewModel : ViewModel(),
AuditionManager.MusicDataChangeListener {

View File

@@ -13,13 +13,12 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.TimeTransformUtils
import com.mogo.och.charter.passenger.R
import com.mogo.och.charter.passenger.ui.music.list.MusicListViewModel
import com.mogo.och.common.module.manager.auditionmanager.MusicData
import com.mogo.och.common.module.manager.auditionmanager.PlayState
import com.mogo.och.common.module.manager.audition.MusicData
import com.mogo.och.common.module.manager.audition.PlayState
import com.mogo.och.common.module.utils.DateTimeUtil
import kotlinx.android.synthetic.main.charter_p_music_playing.view.iv_music_cover
import kotlinx.android.synthetic.main.charter_p_music_playing.view.iv_music_cover_bg

View File

@@ -3,8 +3,8 @@ package com.mogo.och.charter.passenger.ui.music.playing
import androidx.lifecycle.ViewModel
import com.elegant.utils.UiThreadHandler
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.common.module.manager.auditionmanager.AuditionManager
import com.mogo.och.common.module.manager.auditionmanager.MusicData
import com.mogo.och.common.module.manager.audition.AuditionManager
import com.mogo.och.common.module.manager.audition.MusicData
class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListener {

View File

@@ -2,18 +2,16 @@ package com.mogo.och.charter.passenger.ui.orderinfo
import androidx.lifecycle.ViewModel
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
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.GsonUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.charter.passenger.callback.ITimeCallback
import com.mogo.och.charter.passenger.model.CharterPassengerModel
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg
import com.mogo.och.common.module.bean.dpmsg.EndOrderMsg
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg
import com.mogo.och.common.module.manager.socket.lan.bean.EndOrderMsg
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.utils.DateTimeUtil
class OrderInfoViewModel: ViewModel(), ITimeCallback {
@@ -74,10 +72,7 @@ class OrderInfoViewModel: ViewModel(), ITimeCallback {
val msg = EndOrderMsg(
CharterPassengerModel.getCurrentOrderInfo()?.orderNo?:"",
)
CallerTelematicManager.sendMsgToServer(
OchCommonConst.BUSINESS_STRING,
GsonUtils.toJson(msg).toByteArray()
)
LanSocketManager.sendMsgToServer(msg)
CallerLogger.d(SceneConstant.M_BUS_P + BaseDPMsg.TAG, "发送数据:结束订单${msg}")
}
}

View File

@@ -21,16 +21,17 @@ import com.mogo.och.charter.passenger.model.IOrderStatusChangeListener
import com.mogo.och.charter.passenger.model.OrderStatusEnum
import com.mogo.och.charter.passenger.net.BusPassengerServiceManager
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg
import com.mogo.och.common.module.bean.dpmsg.ChangeDestMsg
import com.mogo.och.common.module.bean.dpmsg.DPMsgType
import com.mogo.och.common.module.bean.dpmsg.LineSite
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager
import com.mogo.och.common.module.manager.loopmanager.BizLoopManager
import com.mogo.och.common.module.manager.loopmanager.LoopInfo
import com.mogo.och.common.module.manager.stopsidemanager.StopSideStatus
import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg
import com.mogo.och.common.module.manager.socket.lan.bean.ChangeDestMsg
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
import com.mogo.och.common.module.manager.socket.lan.bean.LineSite
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.stopside.StopSideManager
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.manager.loop.LoopInfo
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
import com.mogo.och.common.module.manager.stopside.StopSideStatus
import com.mogo.och.common.module.utils.RxUtils
import io.reactivex.disposables.Disposable
import org.greenrobot.eventbus.EventBus
@@ -242,10 +243,7 @@ class SelectLineViewModel : ViewModel(), IOrderStatusChangeListener {
0,
sentDataSite
)
CallerTelematicManager.sendMsgToServer(
OchCommonConst.BUSINESS_STRING,
GsonUtils.toJson(msg).toByteArray()
)
LanSocketManager.sendMsgToServer(msg)
CallerLogger.d(SceneConstant.M_BUS_P + BaseDPMsg.TAG, "发送数据:切换站点${msg}")
}
viewCallback?.hideDataWaitDriverMsg()

View File

@@ -6,11 +6,11 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
import com.mogo.och.common.module.manager.devicemanage.callback.LightAirconditionDoorCallback
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.manager.devicemanage.data.AirconditionStatus
import com.mogo.och.common.module.manager.devicemanage.data.HeaterStatue
import com.mogo.och.common.module.manager.devicemanage.data.LightStatus
import com.mogo.och.common.module.manager.device.callback.LightAirconditionDoorCallback
import com.mogo.och.common.module.manager.device.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.manager.device.data.AirconditionStatus
import com.mogo.och.common.module.manager.device.data.HeaterStatue
import com.mogo.och.common.module.manager.device.data.LightStatus
import com.mogo.och.common.module.utils.RxUtils
import io.reactivex.disposables.Disposable

View File

@@ -27,10 +27,10 @@ import com.mogo.och.charter.passenger.model.OrderStatusEnum
import com.mogo.och.charter.passenger.ui.debugview.DebugEvent
import com.mogo.och.common.module.manager.beautifymode.BeautifyManager
import com.mogo.och.common.module.manager.beautifymode.IBeautifyModeCallback
import com.mogo.och.common.module.manager.loopmanager.BizLoopManager
import com.mogo.och.common.module.manager.loopmanager.LoopInfo
import com.mogo.och.common.module.manager.stopsidemanager.StopSideManager
import com.mogo.och.common.module.manager.stopsidemanager.StopSideStatus
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.manager.loop.LoopInfo
import com.mogo.och.common.module.manager.stopside.StopSideManager
import com.mogo.och.common.module.manager.stopside.StopSideStatus
import kotlinx.android.synthetic.main.charter_p_statusview_datetime.view.aciv_connect_driver_status
import kotlinx.android.synthetic.main.charter_p_statusview_datetime.view.actv_auto_status
import kotlinx.android.synthetic.main.charter_p_statusview_datetime.view.bizz_view

View File

@@ -23,7 +23,7 @@ import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider
import com.mogo.och.charter.passenger.R
import com.mogo.och.charter.passenger.utils.FullVideoUtils
import com.mogo.och.common.module.manager.audiofocusmanager.AudioFocusManager
import com.mogo.och.common.module.manager.audiofocus.AudioFocusManager
import com.mogo.och.common.module.wigets.media.MediaItem
import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack
import com.shuyu.gsyvideoplayer.utils.GSYVideoType

View File

@@ -130,7 +130,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<com.mogo.och.common.module.manager.xiaozhimanager.ZhiView
<com.mogo.och.common.module.manager.xiaozhi.ZhiView
android:id="@+id/zv_msg_pop_bottom"
android:layout_width="@dimen/dp_240"
android:layout_height="@dimen/dp_240"

1
OCH/common/biz/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/build

View File

@@ -0,0 +1,66 @@
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())
}
}
}
resourcePrefix "biz_"
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")
}
}

View File

21
OCH/common/biz/proguard-rules.pro vendored Normal file
View 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

View 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>

View File

@@ -1,11 +1,11 @@
package com.mogo.och.common.module.biz.constant
package com.mogo.och.biz.login
import com.mogo.eagle.core.data.config.FunctionBuildConfig
/**
* Created on 2021/12/6
*/
class OchCommonConst {
class LoginConst {
companion object {
@JvmStatic
fun getBaseUrl(): String {
@@ -28,7 +28,24 @@ class OchCommonConst {
// token 失效 重新获取token
const val WAIT_TAKEN = 100046
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

View File

@@ -0,0 +1,174 @@
package com.mogo.och.biz.login
import android.content.Context
import android.view.View
import androidx.fragment.app.Fragment
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.biz.login.callback.ILoginViewCallback
import com.mogo.och.biz.login.callback.ITaxiLoginCallback
import com.mogo.och.biz.login.model.LoginStatusDefaultModel
import com.mogo.och.biz.login.ui.LoginFragment
import com.mogo.och.biz.login.ui.LoginPassengerFragment
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.biz.login.BusinessEnum
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.RoleEnum
import com.mogo.och.common.module.biz.login.LoginStatusEnum
/**
* 网约车小巴业务实现入口
*
* @author tongchenfei
*/
@Route(path = OchCommonConst.BIZ_LOGIN)
class LoginProvider : LoginService {
private val tag = LoginProvider::class.java.simpleName
private lateinit var loginFragment: Fragment
private var loginStatus: LoginStatusEnum = LoginStatusEnum.None
private var businessEnum: BusinessEnum = BusinessEnum.None
private var loginInfo: LoginInfo? = null
override fun init(context: Context) {
CallerLogger.d(tag, "LoginProvider init")
loginFragment = if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
LoginFragment()
} else if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
LoginPassengerFragment()
} else {
LoginFragment()
}
}
override fun getFragment(): Fragment {
CallerLogger.d(tag, "getFragment:${loginFragment}")
return loginFragment
}
override fun getStatusBarView(context: Context): View {
return View(context)
}
override fun setLoginStatus(status: Int) {
CallerLogger.d(tag, "setLoginStatus:${status}")
when (status) {
0 -> {
setLoginStatus(LoginStatusEnum.Logout)
}
1 -> {
setLoginStatus(LoginStatusEnum.Login)
}
else -> {
setLoginStatus(LoginStatusEnum.None)
}
}
}
override fun queryLoginStatusByNet() {
CallerLogger.d(tag, "queryLoginStatusByNet")
LoginStatusDefaultModel.queryCarStatus()
}
override fun loginOut(mLatitude: Double, mLongitude: Double) {
CallerLogger.d(tag, "loginOut mLatitude:${mLatitude}--mLongitude:${mLongitude}")
LoginStatusDefaultModel.logout(mLatitude, mLongitude)
}
override fun checkBusiness(businessType: Int): Boolean {
val businessEnum = BusinessEnum.valueOf(businessType)
FunctionBuildConfig.supportBusiness.forEach {
when (it) {
"shuttle" -> {
val isSupply = businessEnum == BusinessEnum.Shuttle
if (isSupply) {
return isSupply
}
}
"bus" -> {
val isSupply = businessEnum == BusinessEnum.Bus
if (isSupply) {
return isSupply
}
}
"taxi" -> {
val isSupply = businessEnum == BusinessEnum.Taxi
if (isSupply) {
return isSupply
}
}
"charter" -> {
val isSupply = businessEnum == BusinessEnum.Charter
if (isSupply) {
return isSupply
}
}
else -> {}
}
}
if (loginFragment is ILoginViewCallback) {
(loginFragment as ILoginViewCallback).showErrorInfo("业务模式不支持")
}
return false
}
override fun setLoginInfo(loginInfo: LoginInfo) {
CallerLogger.d(tag, "setLoginInfo:${loginInfo}")
this.loginInfo = loginInfo
}
override fun getLoginInfo(): LoginInfo? {
CallerLogger.d(tag, "getLoginInfo")
return loginInfo
}
override fun getPurpose(): RoleEnum {
CallerLogger.d(tag, "getPurpose")
return RoleEnum.valueOf(loginInfo?.purpose)
}
override fun isLogin(): Boolean {
CallerLogger.d(tag, "isLogin:${loginStatus == LoginStatusEnum.Login}")
return loginStatus == LoginStatusEnum.Login
}
override fun getLoginStatus(): LoginStatusEnum {
CallerLogger.d(tag, "getLoginStatus:${loginStatus}")
return loginStatus
}
override fun setLoginStatus(loginStatus: LoginStatusEnum) {
CallerLogger.d(tag, "setLoginStatus:${loginStatus}----old${this.loginStatus}")
if (loginStatus != this.loginStatus) {
this.loginStatus = loginStatus
LoginStatusManager.invokeLoginStatusChange(loginStatus)
}
}
override fun setBusinessType(type: Int) {
CallerLogger.d(tag, "setBusinessType:${type}")
if (businessEnum.code != type) {
this.businessEnum = BusinessEnum.valueOf(type)
LoginStatusManager.invokeLBusinessTypeChange(this.businessEnum)
}
}
override fun getBusinessType(): BusinessEnum {
CallerLogger.d(tag, "getBusinessType")
return businessEnum
}
}

View File

@@ -0,0 +1,20 @@
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;
@Override
public String toString() {
return "DriverStatusQueryRespBean{" +
"data=" + data +
'}';
}
}

View File

@@ -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

View File

@@ -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;

View File

@@ -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

View File

@@ -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

View File

@@ -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);

View File

@@ -0,0 +1,5 @@
package com.mogo.och.biz.login.callback
interface ILoginViewCallback {
fun showErrorInfo(errorInfo: String)
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.biz.callback;
package com.mogo.och.biz.login.callback;
/**
* Created on 2021/9/8
@@ -7,5 +7,4 @@ package com.mogo.och.common.module.biz.callback;
*/
public interface ITaxiLoginCallback {
void getPhoneCodeSuccess();
void loginSuccess();
}

View File

@@ -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,12 @@ 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.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.biz.network.OchCommonServiceManager
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.network.OchCommonServiceCallback
import com.mogo.och.common.module.utils.ToastUtilsOch
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
@@ -24,7 +22,7 @@ import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
* 网约车 - 出租车业务逻辑处理
*/
@SuppressLint("StaticFieldLeak")
object OchCommonLoginModel {
object LoginModel {
private val TAG = "TaxiLoginModel"
private var mContext: Context? = null
@@ -45,7 +43,7 @@ object OchCommonLoginModel {
}
fun setiTaxiLoginCallback(iTaxiLoginCallback: ITaxiLoginCallback?) {
this.iTaxiLoginCallback = iTaxiLoginCallback
LoginModel.iTaxiLoginCallback = iTaxiLoginCallback
}
fun release() {
@@ -98,11 +96,10 @@ object OchCommonLoginModel {
if (null != data && 0 == data.code) {
// 获取验证码成功
ToastCharterUtils.showToastShort(mContext?.getString(R.string.module_och_taxi_login_login_success))
LoginStatusManager.setLoginStatus(TaxiLoginStatusEnum.Login)
LoginStatusDefaultModel.queryCarStatus()
mContext?.let { c ->
SharedPrefsMgr.getInstance().putString("och_account", phone)
}
iTaxiLoginCallback?.loginSuccess()
} else {
if (data != null) {
ToastCharterUtils.showToastShort(data.code.toString())

View File

@@ -1,39 +1,36 @@
package com.mogo.och.common.module.biz.model
package com.mogo.och.biz.login.model
import android.annotation.SuppressLint
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.storage.SharedPrefsMgr
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.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.biz.login.bean.DriverStatusQueryRespBean
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.manager.socket.lan.bean.BusCacheKey
import com.mogo.och.common.module.manager.socket.lan.bean.LoginCacheStatus
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.data.manager.cache.CacheDataManager
@SuppressLint("StaticFieldLeak")
object OchCommonLoginStatusDefaultModel : OchCommonLoginStatusModel() {
object LoginStatusDefaultModel : LoginStatusModel() {
const val TAG = "OchCommonLoginStatusDefaultModel"
var loginCallback: ILoginCallback? = null
var loginViewCallback: ILoginViewCallback? = null
init {
mContext = AbsMogoApplication.getApp();
}
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)
data?.data?.driverStatus?.let { updateLoginLocalStatus(it) }
@@ -45,15 +42,9 @@ 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)
updateLoginLocalStatus(0)
}

View File

@@ -1,21 +1,21 @@
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;
import android.content.Context;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager;
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.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.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.LoginStatusEnum;
import com.mogo.och.common.module.biz.login.LoginStatusManager;
import com.mogo.och.common.module.constant.OchCommonConst;
import com.mogo.och.common.module.network.OchCommonServiceCallback;
import com.mogo.och.common.module.utils.ToastUtilsOch;
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils;
@@ -24,7 +24,7 @@ import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.disposables.Disposable;
public abstract class OchCommonLoginStatusModel {
public abstract class LoginStatusModel {
private static final String TAG = "OchCommonLoginStatusModel";
@@ -33,11 +33,6 @@ public abstract class OchCommonLoginStatusModel {
private Disposable subscribe;
public void init() {
mContext = AbsMogoApplication.getApp();
queryCarStatus();
}
protected abstract void loginSuccess(DriverStatusQueryRespBean data);
protected abstract void loginFail(boolean isLogin);
@@ -59,8 +54,21 @@ public abstract class OchCommonLoginStatusModel {
@Override
public void onSuccess(DriverStatusQueryRespBean data) {
if (null != data && 0 == data.code) {
// 不用登录也可以获得支持的业务模式
LoginStatusManager.setBusinessType(data.data.businessType);
// 后台已登录
if (LoginStatusEnum.valueOf(data.data.driverStatus)==LoginStatusEnum.Login) {
// 业务不支持 去退出登录
if (!LoginStatusManager.checkBusiness(data.data.businessType)) {
double mLatitude = CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLatitude();
double mLongitude =CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLongitude();
LoginStatusManager.loginOut(mLatitude,mLongitude);
return;
}
}
LoginStatusManager.setLoginStatus(data.data.driverStatus);
CallerLogger.d(M_TAXI + TAG, "changeCarStatus:" + LoginStatusManager.getLoginStatus());
LoginStatusManager.setLoginInfo(data.data);
CallerLogger.d(M_TAXI + TAG, "登录信息:" + data);
loginSuccess(data);
}
}

View File

@@ -1,38 +1,54 @@
package com.mogo.och.bus.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.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
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.eagle.core.utilcode.mogo.logger.CallerLogger
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.constant.OchCommonConst
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.network.OchCommonSubscribeImpl
import com.mogo.och.common.module.network.interceptor.transformTry
import com.mogo.och.common.module.utils.ProjectUtils
/**
* Created by pangfan on 2021/8/19
*/
object OchCommonServiceManager {
private const val TAG = "OchCommonServiceManager"
private val mLoginServiceApi: OchLoginServiceApi =
private val ochLoginServiceSaasEh: OchLoginServiceSaasEhApi by lazy {
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(
OchLoginServiceApi::class.java
OchLoginServiceSaasEhApi::class.java
)
}
private val mLoginSaasServiceApi: OchSAASLoginServiceApi =
private val ochLoginServiceMogo: OchLoginServiceMogoApi by lazy {
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(
OchSAASLoginServiceApi::class.java
OchLoginServiceMogoApi::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
}
/**
* 获取手机验证码
@@ -44,21 +60,22 @@ object OchCommonServiceManager {
context: Context, phone: String?,
callback: OchCommonServiceCallback<BaseData>?
) {
if (DebugConfig.getProjectFlavor().contains("saas")){
mLoginSaasServiceApi.getPhoneCode(
if (ProjectUtils.isMogo()) {
ochLoginServiceMogo.getPhoneCode(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
TaxiLoginSmsReqBean(phone)
).transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "getPhoneCode"))
.subscribe(OchCommonSubscribeImpl(context, callback, "sendSms"))
}else{
mLoginServiceApi.getPhoneCode(
ochLoginServiceSaasEh.getPhoneCode(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
TaxiLoginSmsReqBean(phone)
).transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "getPhoneCode"))
.subscribe(OchCommonSubscribeImpl(context, callback, "sendSms"))
}
}
/**
@@ -69,23 +86,23 @@ object OchCommonServiceManager {
@JvmStatic
fun gotoLoginBycode(
context: Context, phone: String?, code: String?,
location4Login: TaxiLoginReqBean.Location4Login?,
location4Login: TaxiLoginReqBean.Location4Login,
callback: OchCommonServiceCallback<TaxiLoginRespBean>?
) {
CallerLogger.d(TAG, "gotoLoginBycode:通过手机验证码登录:${phone}---${code}");
val sn = SharedPrefsMgr.getInstance().sn
if (DebugConfig.getProjectFlavor().contains("saas")){
mLoginSaasServiceApi.gotoLoginBycode4Bus(
if (ProjectUtils.isMogo()) {
ochLoginServiceMogo.gotoLoginBycode(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
TaxiLoginReqBean(phone, code, sn, location4Login)
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "gotoLoginBycode"))
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "login"))
}else{
mLoginServiceApi.gotoLoginBycode4Bus(
ochLoginServiceSaasEh.gotoLoginBycode(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
TaxiLoginReqBean(phone, code, sn, location4Login)
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "gotoLoginBycode"))
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "login"))
}
}
@@ -98,17 +115,24 @@ object OchCommonServiceManager {
location4Login: TaxiLogoutReqBean.Location4Login?,
callback: OchCommonServiceCallback<BaseData>?
) {
if (DebugConfig.getProjectFlavor().contains("saas")){
mLoginSaasServiceApi.logout4Bus(
CallerLogger.d(TAG, "logout:登出");
if (ProjectUtils.isMogo()) {
ochLoginServiceMogo.logout(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
TaxiLogoutReqBean(SharedPrefsMgr.getInstance().sn, location4Login)
TaxiLogoutReqBean(
SharedPrefsMgr.getInstance().sn,
location4Login
)
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout"))
}else{
mLoginServiceApi.logout4Bus(
}else {
ochLoginServiceSaasEh.logout(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
TaxiLogoutReqBean(SharedPrefsMgr.getInstance().sn, location4Login)
TaxiLogoutReqBean(
SharedPrefsMgr.getInstance().sn,
location4Login
)
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout"))
}
}
@@ -124,27 +148,28 @@ object OchCommonServiceManager {
context: Context,
callback: OchCommonServiceCallback<DriverStatusQueryRespBean>?
) {
if (SharedPrefsMgr.getInstance().token.isEmpty()) {
callback?.onFail(OchCommonConst.WAIT_TAKEN, "等待令牌中请稍等")
MoGoAiCloudClient.getInstance().refreshToken()
return
CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态");
val sn =
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
SharedPrefsMgr.getInstance().sn
} else{
draiverSn
}
if (DebugConfig.getProjectFlavor().contains("saas")){
mLoginSaasServiceApi.queryDriverServiceStatusAndLoginStatus(
if (ProjectUtils.isMogo()) {
ochLoginServiceMogo.queryDriverServiceStatusAndLoginStatus(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
SharedPrefsMgr.getInstance().sn
sn
).transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus"))
.subscribe(OchCommonSubscribeImpl(context, callback, "loginStatus"))
}else{
mLoginServiceApi.queryDriverServiceStatusAndLoginStatus(
ochLoginServiceSaasEh.queryDriverServiceStatusAndLoginStatus(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
SharedPrefsMgr.getInstance().sn
sn
).transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus"))
.subscribe(OchCommonSubscribeImpl(context, callback, "loginStatus"))
}
}
}

View File

@@ -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;
/**
@@ -21,7 +20,7 @@ import retrofit2.http.Query;
* <p>
* 网约车-出租车接口定义
*/
interface OchLoginServiceApi {
interface OchLoginServiceMogoApi {
/**
* 获取手机验证码
*
@@ -41,16 +40,16 @@ interface OchLoginServiceApi {
* @return
*/
@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
@POST("/autopilot-car-hailing/cab/flow/v1/driver/login")
Observable<TaxiLoginRespBean> gotoLoginBycode(@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/bus/driver/bus/endOperation")
Observable<BaseData> logout4Bus(@Header("appId") String appId, @Header("ticket") String ticket,
@POST("/autopilot-car-hailing/cab/flow/v1/driver/logout")
Observable<BaseData> logout(@Header("appId") String appId, @Header("ticket") String ticket,
@Body TaxiLogoutReqBean data);
/**
@@ -60,7 +59,7 @@ interface OchLoginServiceApi {
* @return
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@GET("/autopilot-car-hailing/operation/v1/driver/bus/loginStatus")
@GET("/autopilot-car-hailing/cab/flow/v1/driver/loginStatus")
Observable<DriverStatusQueryRespBean> queryDriverServiceStatusAndLoginStatus(@Header("appId") String appId
, @Header("ticket") String ticket, @Query("sn") String sn);

View File

@@ -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;
@@ -20,14 +20,14 @@ import retrofit2.http.Query;
* <p>
* 网约车-出租车接口定义
*/
interface OchSAASLoginServiceApi {
interface OchLoginServiceSaasEhApi {
/**
* 获取手机验证码
*
* @return
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@POST("/och-bus-cabin/api/sms/v1/driver/sendSms")
@POST("/och-vehicle/cabin/sendSms")
Observable<DriverStatusQueryRespBean> getPhoneCode(@Header("appId") String appId
, @Header("ticket") String ticket, @Body TaxiLoginSmsReqBean data);
@@ -40,16 +40,16 @@ interface OchSAASLoginServiceApi {
* @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
@POST("/och-vehicle/cabin/login")
Observable<TaxiLoginRespBean> gotoLoginBycode(@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,
@POST("/och-vehicle/cabin/logout")
Observable<BaseData> logout(@Header("appId") String appId, @Header("ticket") String ticket,
@Body TaxiLogoutReqBean data);
/**
@@ -59,7 +59,7 @@ interface OchSAASLoginServiceApi {
* @return
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@GET("/och-bus-cabin/api/business/v1/loginStatus")
@GET("/och-vehicle/cabin/loginStatus")
Observable<DriverStatusQueryRespBean> queryDriverServiceStatusAndLoginStatus(@Header("appId") String appId
, @Header("ticket") String ticket, @Query("sn") String sn);

View File

@@ -0,0 +1,46 @@
package com.mogo.och.biz.login.presenter
import androidx.lifecycle.LifecycleOwner
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.mvp.Presenter
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.biz.login.callback.ITaxiLoginCallback
import com.mogo.och.biz.login.model.LoginModel
import com.mogo.och.biz.login.ui.LoginPassengerFragment
/**
* @author congtaowang
* @since 2021/1/18
*
* 描述
*/
class LoginPassengerPresenter(view: LoginPassengerFragment?) : Presenter<LoginPassengerFragment?>(view), ITaxiLoginCallback {
private val TAG = LoginPassengerPresenter::class.java.simpleName
init {
initListeners()
CallerLogger.d(TAG, "乘客屏-登录-Init")
}
private fun initListeners() {
LoginModel.init(AbsMogoApplication.getApp())
LoginModel.setiTaxiLoginCallback(this)
}
override fun onCreate(owner: LifecycleOwner) {
super.onCreate(owner)
CallerLogger.d(TAG, "乘客屏-登录-登陆")
}
override fun onDestroy(owner: LifecycleOwner) {
super.onDestroy(owner)
}
override fun getPhoneCodeSuccess() {
}
}

View File

@@ -1,15 +1,19 @@
package com.mogo.och.common.module.biz.presenter
package com.mogo.och.biz.login.presenter
import androidx.lifecycle.LifecycleOwner
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.mvp.Presenter
import com.mogo.eagle.core.data.config.FunctionBuildConfig
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.LoginFragment
import com.mogo.och.biz.login.model.LoginModel
import com.mogo.och.biz.login.model.LoginStatusDefaultModel
import com.mogo.och.common.module.biz.login.BusinessEnum
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
@@ -23,22 +27,24 @@ import java.util.concurrent.TimeUnit
*
* 描述
*/
class OchCommonLoginPresenter(view: TaxiLoginDialogFragment?) :
Presenter<TaxiLoginDialogFragment?>(view), ITaxiLoginCallback {
class LoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(view), ITaxiLoginCallback {
private var countDownDisposable: Disposable? = null
private val TAG = LoginPresenter::class.java.simpleName
init {
initListeners()
CallerLogger.d(SceneConstant.M_TAXI + TAG, "网约车-Init")
}
private fun initListeners() {
OchCommonLoginModel.init(AbsMogoApplication.getApp())
OchCommonLoginModel.setiTaxiLoginCallback(this)
LoginModel.init(AbsMogoApplication.getApp())
LoginModel.setiTaxiLoginCallback(this)
}
fun getPhoneCode(phone:String){
if(!OchCommonLoginModel.hasInit()){
if(!LoginModel.hasInit()){
initListeners()
}
if (!RegexUtils.isMobileExact(phone)) {
@@ -46,7 +52,7 @@ class OchCommonLoginPresenter(view: TaxiLoginDialogFragment?) :
mView?.inputPhoneError()
return
}
OchCommonLoginModel.getPhoneCode(phone)
LoginModel.getPhoneCode(phone)
}
override fun onCreate(owner: LifecycleOwner) {
@@ -58,7 +64,7 @@ class OchCommonLoginPresenter(view: TaxiLoginDialogFragment?) :
override fun onDestroy(owner: LifecycleOwner) {
super.onDestroy(owner)
OchCommonLoginModel.release()
LoginModel.release()
countDownDisposable?.let {
if (!it.isDisposed) {
it.dispose()
@@ -66,10 +72,6 @@ class OchCommonLoginPresenter(view: TaxiLoginDialogFragment?) :
}
}
companion object {
private val TAG = OchCommonLoginPresenter::class.java.simpleName
}
override fun getPhoneCodeSuccess() {
val countDownSeconds = 60L;
countDownDisposable = Observable.intervalRange(0, countDownSeconds, 0, 1, TimeUnit.SECONDS)
@@ -89,12 +91,8 @@ class OchCommonLoginPresenter(view: TaxiLoginDialogFragment?) :
})
}
override fun loginSuccess() {
mView?.loginSuccess()
}
fun gotoLogin(phone: String, code: String) {
if(!OchCommonLoginModel.hasInit()){
if(!LoginModel.hasInit()){
initListeners()
}
if (!RegexUtils.isMobileExact(phone)) {
@@ -106,7 +104,12 @@ class OchCommonLoginPresenter(view: TaxiLoginDialogFragment?) :
ToastCharterUtils.showToastShort(R.string.module_och_taxi_login_code_error)
return
}
if(!LoginStatusManager.checkBusiness(LoginStatusManager.getBusInessType().code)){
mView?.showErrorInfo("不支持的类型")
LoginStatusDefaultModel.queryCarStatus()
return
}
mView?.closeSoftInput()
OchCommonLoginModel.gotoLogin(phone,code)
LoginModel.gotoLogin(phone,code)
}
}

View File

@@ -0,0 +1,197 @@
package com.mogo.och.biz.login.ui
import android.graphics.Rect
import android.os.SystemClock
import android.view.*
import android.view.ViewTreeObserver.OnGlobalLayoutListener
import androidx.core.content.ContextCompat
import androidx.core.widget.addTextChangedListener
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.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.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.biz.R
import com.mogo.och.biz.login.callback.ILoginViewCallback
import com.mogo.och.biz.login.presenter.LoginPresenter
import com.mogo.och.common.module.biz.login.BusinessEnum
import com.mogo.och.common.module.utils.RxUtils
import kotlinx.android.synthetic.main.biz_login_view.biz_acbtn_login
import kotlinx.android.synthetic.main.biz_login_view.biz_ace_login_phone_value
import kotlinx.android.synthetic.main.biz_login_view.biz_acet_phone_code_value
import kotlinx.android.synthetic.main.biz_login_view.biz_actv_login_get_code
import kotlinx.android.synthetic.main.biz_login_view.biz_actv_login_show_sn
import kotlinx.android.synthetic.main.biz_login_view.biz_actv_welcome_login_title
import kotlinx.android.synthetic.main.biz_login_view.biz_cl_driver_main
import kotlinx.android.synthetic.main.biz_login_view.bv_switch_business
import kotlinx.android.synthetic.main.biz_login_view.eiv_Info
/**
* @author: yangyakun
* @date: 2022/8/15
*/
class LoginFragment : MvpFragment<LoginFragment?, LoginPresenter?>(), ILoginViewCallback {
override fun getLayoutId(): Int {
return R.layout.biz_login_view
}
override fun initViews() {
CallerLogger.d(TAG,"init")
inputPhoneNormal()
initBg()
initListener()
}
private fun initBg() {
}
private fun initListener() {
CallerLogger.d(TAG,"initListener")
mRootView.isFocusable = true
mRootView.isFocusableInTouchMode = true
mRootView.setOnTouchListener { _, event ->
when (event?.action) {
MotionEvent.ACTION_DOWN -> {
closeSoftInput()
}
}
false
}
biz_acbtn_login.onClick {
val phone = biz_ace_login_phone_value.text.toString()
val code = biz_acet_phone_code_value.text.toString()
mPresenter?.gotoLogin(phone, code)
}
biz_actv_welcome_login_title.setOnClickListener {
continuousClick()
}
biz_cl_driver_main.viewTreeObserver.addOnGlobalLayoutListener(object :OnGlobalLayoutListener{
override fun onGlobalLayout() {
try {
if (biz_cl_driver_main==null) {
biz_cl_driver_main.viewTreeObserver.removeOnGlobalLayoutListener(this)
}else{
val rect = Rect()
biz_cl_driver_main.getWindowVisibleDisplayFrame(rect)
val mainInvisibleHeight = biz_cl_driver_main.rootView.height - rect.bottom
if (mainInvisibleHeight > 100) {
val outLocation = IntArray(2)
biz_acbtn_login.getLocationInWindow(outLocation)
val srollHeight = (outLocation[1] + biz_acbtn_login.height) - rect.bottom
if (srollHeight > 0) {
biz_cl_driver_main.scrollTo(0, srollHeight)
}
CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "滚动的距离:$srollHeight")
} else {
biz_cl_driver_main.scrollTo(0, 0)
}
}
}catch (e:Exception){
e.printStackTrace()
}
}
})
biz_actv_login_get_code.onClick {
mPresenter?.getPhoneCode(biz_ace_login_phone_value.text.toString())
}
biz_ace_login_phone_value.addTextChangedListener {
it?.let { itEditable ->
if (itEditable.isNotEmpty()) {
inputPhoneNormal()
}
}
}
biz_actv_login_show_sn.text = SharedPrefsMgr.getInstance().sn
biz_actv_login_show_sn.setOnLongClickListener {
bv_switch_business.selectBusniess()
true
}
RxUtils.createSubscribe(10_000) {
CallerLogger.d(TAG,"宽度${biz_cl_driver_main.width}----${biz_cl_driver_main.height}----${biz_cl_driver_main.visibility}")
}
}
/**
* 关闭键盘
*/
fun closeSoftInput() {
mRootView.requestFocus()
KeyboardUtils.hideSoftInput(ActivityUtils.getTopActivity())
}
fun setCountDownText(text: String, enable: Boolean) {
if (enable) {
biz_actv_login_get_code.setText(R.string.module_och_taxi_login_get_code)
biz_actv_login_get_code.isEnabled = true
} else {
biz_actv_login_get_code.text = text
biz_actv_login_get_code.isEnabled = false
}
}
fun inputPhoneError() {
biz_ace_login_phone_value.text?.clear()
biz_ace_login_phone_value.setHint(R.string.module_och_taxi_login_phone_error)
context?.let {
biz_ace_login_phone_value.setHintTextColor(ContextCompat.getColor(it, R.color.taxi_EF262C))
biz_ace_login_phone_value.setBackgroundResource(R.drawable.taxi_login_phone_error)
}
}
private fun inputPhoneNormal() {
context?.let {
biz_ace_login_phone_value.setHintTextColor(ContextCompat.getColor(it, R.color.taxi_878890))
biz_ace_login_phone_value.setBackgroundResource(R.drawable.taxi_login_phone_normal)
}
}
override fun createPresenter(): LoginPresenter {
return LoginPresenter(this)
}
override fun getTagName(): String {
return TAG
}
companion object {
private const val COUNTS = 4 // 点击次数
private const val DURATION: Long = 1000 // 规定有效时间
val TAG = LoginFragment::class.java.simpleName
}
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 showErrorInfo(errorInfo: String) {
ToastUtils.showLong(errorInfo)
eiv_Info.visibility = View.VISIBLE
}
override fun onResume() {
super.onResume()
CallerLogger.d(TAG,"onResume")
}
override fun onPause() {
super.onPause()
CallerLogger.d(TAG,"onPause")
}
}

View File

@@ -0,0 +1,74 @@
package com.mogo.och.biz.login.ui
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.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.biz.R
import com.mogo.och.biz.login.callback.ILoginViewCallback
import com.mogo.och.biz.login.presenter.LoginPassengerPresenter
import kotlinx.android.synthetic.main.biz_login_passenger_view.biz_actv_login_show_sn
import kotlinx.android.synthetic.main.biz_login_passenger_view.biz_cl_passenger_main
import kotlinx.android.synthetic.main.biz_login_passenger_view.bv_switch_business
/**
* @author: yangyakun
* @date: 2022/8/15
*/
class LoginPassengerFragment : MvpFragment<LoginPassengerFragment?, LoginPassengerPresenter?>(),
ILoginViewCallback {
override fun getLayoutId(): Int {
return R.layout.biz_login_passenger_view
}
override fun initViews() {
if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode) &&
AppIdentityModeUtils.isPassenger((FunctionBuildConfig.appIdentityMode))
) {
biz_cl_passenger_main.setBackgroundResource(R.drawable.biz_login_passenger_1920x1080)
} else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode) &&
AppIdentityModeUtils.isPassenger((FunctionBuildConfig.appIdentityMode))
) {
biz_cl_passenger_main.setBackgroundResource(R.drawable.biz_login_passenger_1080x1920)
} else {
biz_cl_passenger_main.setBackgroundResource(R.drawable.biz_login_passenger_2560x1600)
}
biz_actv_login_show_sn.text = SharedPrefsMgr.getInstance().sn
biz_actv_login_show_sn.setOnLongClickListener {
bv_switch_business.selectBusniess()
true
}
CallerLogger.d(TAG,"init")
}
override fun createPresenter(): LoginPassengerPresenter {
return LoginPassengerPresenter(this)
}
override fun getTagName(): String {
return TAG
}
companion object {
val TAG = LoginPassengerFragment::class.java.simpleName
}
override fun showErrorInfo(errorInfo: String) {
}
override fun onResume() {
super.onResume()
CallerLogger.d(TAG,"onResume")
}
override fun onPause() {
super.onPause()
CallerLogger.d(TAG,"onPause")
}
}

View File

@@ -0,0 +1,130 @@
package com.mogo.och.biz.login.ui.debugview
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.och.biz.R
import com.mogo.och.common.module.biz.login.BusinessEnum
import com.mogo.och.common.module.biz.login.LoginStatusManager
import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_bus
import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_charter
import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_shuttle
import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_taxi
import kotlinx.android.synthetic.main.biz_login_errorinfo_view.view.actv_countdown
class BusinessView : ConstraintLayout, BusinessViewModel.IErrorInfoViewCallback {
private val TAG = "ItineraryView"
constructor(context: Context) : super(context)
constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr)
constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
private var viewModel: BusinessViewModel? = null
private fun initView() {
LayoutInflater.from(context).inflate(R.layout.biz_login_business_view, this, true)
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
viewModel = findViewTreeViewModelStoreOwner()?.let {
ViewModelProvider(it).get(BusinessViewModel::class.java)
}
viewModel?.setDistanceCallback(this)
actv_business_shuttle.onClick { swtichBusiness(BusinessEnum.Shuttle) }
actv_business_bus.onClick { swtichBusiness(BusinessEnum.Bus) }
actv_business_taxi.onClick { swtichBusiness(BusinessEnum.Taxi) }
actv_business_charter.onClick { swtichBusiness(BusinessEnum.Charter) }
}
private fun swtichBusiness(businessEnum: BusinessEnum){
LoginStatusManager.invokeLBusinessTypeChangeDebug(businessEnum)
visibility = GONE
}
override fun onVisibilityAggregated(isVisible: Boolean) {
super.onVisibilityAggregated(isVisible)
if(isVisible){
}else{
}
}
fun selectBusniess(){
if(FunctionBuildConfig.supportBusiness.size==1){
FunctionBuildConfig.supportBusiness.forEach {
when (it) {
"shuttle" -> {
swtichBusiness(BusinessEnum.Shuttle)
}
"bus" -> {
swtichBusiness(BusinessEnum.Bus)
}
"taxi" -> {
swtichBusiness(BusinessEnum.Taxi)
}
"charter" -> {
swtichBusiness(BusinessEnum.Charter)
}
else -> {}
}
}
}else {
visibility = VISIBLE
actv_business_shuttle.visibility = GONE
actv_business_bus.visibility = GONE
actv_business_taxi.visibility = GONE
actv_business_charter.visibility = GONE
FunctionBuildConfig.supportBusiness.forEach {
when (it) {
"shuttle" -> {
actv_business_shuttle.visibility = VISIBLE
}
"bus" -> {
actv_business_bus.visibility = VISIBLE
}
"taxi" -> {
actv_business_taxi.visibility = VISIBLE
}
"charter" -> {
actv_business_charter.visibility = VISIBLE
}
else -> {}
}
}
}
}
init {
try {
initView()
} catch (e: Exception) {
e.printStackTrace()
}
}
}

View File

@@ -0,0 +1,42 @@
package com.mogo.och.biz.login.ui.debugview
import androidx.lifecycle.ViewModel
import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.och.biz.R
import com.mogo.och.common.module.utils.RxUtils
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
import java.util.concurrent.TimeUnit
class BusinessViewModel : ViewModel() {
private val TAG = BusinessViewModel::class.java.simpleName
private var viewCallback: IErrorInfoViewCallback? = null
init {
}
fun setDistanceCallback(viewCallback: IErrorInfoViewCallback) {
this.viewCallback = viewCallback
}
override fun onCleared() {
super.onCleared()
this.viewCallback = null
}
interface IErrorInfoViewCallback {
}
}

View File

@@ -0,0 +1,68 @@
package com.mogo.och.biz.login.ui.errorview
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.mogo.och.biz.R
import com.mogo.och.biz.login.ui.debugview.BusinessViewModel
import kotlinx.android.synthetic.main.biz_login_errorinfo_view.view.actv_countdown
class ErrorInfoView : ConstraintLayout, ErrorInfoViewModel.IErrorInfoViewCallback {
private val TAG = "ItineraryView"
constructor(context: Context) : super(context)
constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr)
constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
private var viewModel: ErrorInfoViewModel? = null
private fun initView() {
LayoutInflater.from(context).inflate(R.layout.biz_login_errorinfo_view, this, true)
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
viewModel = findViewTreeViewModelStoreOwner()?.let {
ViewModelProvider(it).get(ErrorInfoViewModel::class.java)
}
viewModel?.setDistanceCallback(this)
}
override fun onVisibilityAggregated(isVisible: Boolean) {
super.onVisibilityAggregated(isVisible)
if(isVisible){
viewModel?.showCountDown()
}else{
}
}
init {
try {
initView()
} catch (e: Exception) {
e.printStackTrace()
}
}
override fun setCountDownText(countDown: String, isEnd: Boolean) {
if(isEnd){
visibility = GONE
}else{
actv_countdown.text = countDown
}
}
}

Some files were not shown because too many files have changed in this diff Show More