[业务分发]
This commit is contained in:
yangyakun
2024-04-09 16:49:26 +08:00
parent 223e5b3a03
commit a055a942cd
52 changed files with 901 additions and 761 deletions

View File

@@ -3,10 +3,11 @@ 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.d
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.bus.fragment.BusFragment
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.CommonService
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
/**
* 网约车小巴业务实现入口
@@ -14,15 +15,17 @@ import com.mogo.och.common.module.biz.provider.CommonService
* @author tongchenfei
*/
@Route(path = OchCommonConst.BUS_DRIVER)
class BusProvider : CommonService {
private val TAG = "BusProvider"
private var busFragment: BusFragment? = null
class BusDriverProvider : CommonServiceImpl() {
private val tag = BusDriverProvider::class.java.simpleName
private lateinit var busFragment: BusFragment
override fun getFragment(): Fragment {
return busFragment!!
return busFragment
}
override fun init(context: Context) {
d(TAG, "准备show fragment")
CallerLogger.d(tag, "准备show fragment")
busFragment = BusFragment()
}
}

View File

@@ -1,23 +1,23 @@
package com.mogo.och.bus.passenger
import android.content.Context
import android.view.View
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.function.hmi.ui.widget.StatusBarView
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.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.constant.BusPassengerConst
import com.mogo.och.bus.passenger.ui.BusPassengerRouteFragment
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.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.CommonService
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
import com.mogo.och.common.module.wigets.media.MediaPlayerActivity
/**
@@ -26,10 +26,12 @@ import com.mogo.och.common.module.wigets.media.MediaPlayerActivity
* Created on 2022/3/29
*/
@Route(path = OchCommonConst.BUS_PASSENGER)
class MogoOCHBusPassenger : CommonService {
class BusPassengerProvider : CommonServiceImpl() {
private val tag = BusPassengerProvider::class.java.simpleName
private lateinit var mPM2Fragment: Fragment
private val TAG = MogoOCHBusPassenger::class.java.simpleName
override fun getFragment(): Fragment {
if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) {
MultiDisplayUtils.startActWithSecond(ActivityUtils.getTopActivity(), MediaPlayerActivity::class.java)
@@ -37,8 +39,21 @@ class MogoOCHBusPassenger : CommonService {
return mPM2Fragment
}
override fun getStatusBarView(context: Context): View {
if(statusBarView==null) {
statusBarView = if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) {
M2StatusBarView(context)
} else if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) {
BusPStatusBarView(context)
} else{
StatusBarView(context)
}
}
return statusBarView!!
}
override fun init(context: Context) {
d(SceneConstant.M_TAXI_P + TAG, "init")
CallerLogger.d(SceneConstant.M_TAXI_P + tag, "init")
mPM2Fragment = if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) {
PM2BaseFragment()
} else if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) {

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

@@ -4,10 +4,11 @@ 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.d
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.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.CommonService
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
/**
@@ -15,18 +16,18 @@ import com.mogo.och.common.module.biz.provider.CommonService
* @date: 2023/2/22
*/
@Route(path = OchCommonConst.CHARTER_DRIVER)
class CharterProvider : CommonService {
class CharterDriverProvider : CommonServiceImpl() {
private lateinit var driverM1Fragment: Fragment
private val TAG = CharterProvider::class.java.simpleName
private val tag = CharterDriverProvider::class.java.simpleName
private lateinit var fragment: Fragment
override fun getFragment(): Fragment {
return driverM1Fragment
return fragment
}
override fun init(context: Context?) {
d(SceneConstant.M_TAXI + TAG, "init")
driverM1Fragment = DriverM1Fragment()
override fun init(context: Context) {
CallerLogger.d(SceneConstant.M_TAXI + tag, "init")
fragment = DriverM1Fragment()
}
}

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.biz.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,37 +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
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.CommonService
/**
* 网约车-Bus-乘客端
*
* Created on 2022/3/29
*/
@Route(path = OchCommonConst.CHARTER_PASSENGER)
class MogoOCHBusPassenger : CommonService {
private lateinit var mPassengerFragment: MainFragment
private val TAG = MogoOCHBusPassenger::class.java.simpleName
override fun getFragment(): Fragment {
return mPassengerFragment
}
override fun init(context: Context) {
d(SceneConstant.M_TAXI_P + TAG, "init")
mPassengerFragment = MainFragment()
}
}

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

@@ -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.biz.constant.OchCommonConst
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
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

@@ -20,6 +20,9 @@ android {
}
}
resourcePrefix "biz_"
buildTypes {
release {
minifyEnabled false

View File

@@ -0,0 +1,55 @@
package com.mogo.och.biz.login
import com.mogo.eagle.core.data.config.FunctionBuildConfig
/**
* Created on 2021/12/6
*/
class LoginConst {
companion object {
@JvmStatic
fun getBaseUrl(): String {
return FunctionBuildConfig.urlJson.ochUrl
}
@JvmStatic
fun getShuttleUrl(): String {
return FunctionBuildConfig.urlJson.shuttleUrl
}
@JvmStatic
fun getSweeperUrl(): String {
return FunctionBuildConfig.urlJson.sweeperUrl
}
@JvmStatic
fun getEagleMisUrl(): String {
return FunctionBuildConfig.urlJson.eagleMisUrl
}
// token 失效 重新获取token
const val WAIT_TAKEN = 100046
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
// 自动驾驶自动规划的最大距离
const val AUTOMATIC_PLANNING_MAX_DISTANCE = 15
}
}

View File

@@ -1,12 +1,15 @@
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.model.OchCommonLoginStatusDefaultModel
import com.mogo.och.biz.login.model.LoginStatusDefaultModel
import com.mogo.och.biz.login.ui.LoginFragment
import com.mogo.och.biz.login.ui.SimpleFragment
import com.mogo.och.biz.login.ui.LoginPassengerFragment
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.login.LoginInfo
import com.mogo.och.common.module.biz.login.LoginService
@@ -21,25 +24,34 @@ import com.mogo.och.common.module.biz.login.TaxiLoginStatusEnum
*/
@Route(path = OchCommonConst.BIZ_LOGIN)
class LoginProvider : LoginService {
private val tag = LoginProvider::class.java.simpleName
private lateinit var loginFragment: Fragment
private var uiModel = true
private var loginStatus: TaxiLoginStatusEnum = TaxiLoginStatusEnum.None
private var loginInfo: LoginInfo?=null
private val TAG = "LoginProvider"
override fun init(context: Context) {
CallerLogger.d(TAG,"init")
loginFragment = LoginFragment()
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 ${Thread.currentThread().name}")
return SimpleFragment()
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}")
CallerLogger.d(tag,"setLoginStatus:${status}")
when (status) {
0 -> {
setLoginStatus(TaxiLoginStatusEnum.Logout)
@@ -54,53 +66,47 @@ class LoginProvider : LoginService {
}
override fun queryLoginStatusByNet() {
CallerLogger.d(TAG,"queryLoginStatusByNet")
OchCommonLoginStatusDefaultModel.queryCarStatus()
}
override fun showUiModel(show: Boolean) {
CallerLogger.d(TAG,"showUiModel${show}")
uiModel = show;
CallerLogger.d(tag,"queryLoginStatusByNet")
LoginStatusDefaultModel.queryCarStatus()
}
override fun loginOut(mLatitude: Double, mLongitude: Double) {
CallerLogger.d(TAG,"loginOut mLatitude:${mLatitude}--mLongitude:${mLongitude}")
OchCommonLoginStatusDefaultModel.logout(mLatitude, mLongitude)
CallerLogger.d(tag,"loginOut mLatitude:${mLatitude}--mLongitude:${mLongitude}")
LoginStatusDefaultModel.logout(mLatitude, mLongitude)
}
override fun setLoginInfo(loginInfo: LoginInfo) {
CallerLogger.d(TAG,"setLoginInfo:${loginInfo}")
CallerLogger.d(tag,"setLoginInfo:${loginInfo}")
this.loginInfo = loginInfo
}
override fun getLoginInfo(): LoginInfo? {
CallerLogger.d(TAG,"getLoginInfo")
CallerLogger.d(tag,"getLoginInfo")
return loginInfo
}
override fun getPurpose(): TaxiDriverRoleEnum {
CallerLogger.d(TAG,"getPurpose")
CallerLogger.d(tag,"getPurpose")
return TaxiDriverRoleEnum.valueOf(loginInfo?.purpose)
}
override fun isLogin(): Boolean {
CallerLogger.d(TAG,"isLogin")
CallerLogger.d(tag,"isLogin")
return loginStatus == TaxiLoginStatusEnum.Login
}
override fun getLoginStatus(): TaxiLoginStatusEnum {
CallerLogger.d(TAG,"getLoginStatus:${loginStatus}")
CallerLogger.d(tag,"getLoginStatus:${loginStatus}")
return loginStatus
}
override fun setLoginStatus(loginStatus: TaxiLoginStatusEnum) {
CallerLogger.d(TAG,"setLoginStatus:${loginStatus}")
CallerLogger.d(tag,"setLoginStatus:${loginStatus}")
if(loginStatus!=this.loginStatus){
this.loginStatus = loginStatus
LoginStatusManager.invokeLoginStatusChange(loginStatus)
}
}
companion object {
private const val TAG = "LoginProvider"
}
}

View File

@@ -24,7 +24,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 +45,7 @@ object OchCommonLoginModel {
}
fun setiTaxiLoginCallback(iTaxiLoginCallback: ITaxiLoginCallback?) {
OchCommonLoginModel.iTaxiLoginCallback = iTaxiLoginCallback
LoginModel.iTaxiLoginCallback = iTaxiLoginCallback
}
fun release() {

View File

@@ -9,13 +9,12 @@ import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.och.biz.login.bean.DriverStatusQueryRespBean
import com.mogo.och.common.module.bean.dpmsg.BusCacheKey
import com.mogo.och.common.module.bean.dpmsg.LoginCacheStatus
import com.mogo.och.common.module.biz.login.ILoginCallback
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.data.manager.cache.CacheDataManager
@SuppressLint("StaticFieldLeak")
object OchCommonLoginStatusDefaultModel : OchCommonLoginStatusModel() {
object LoginStatusDefaultModel : LoginStatusModel() {
const val TAG = "OchCommonLoginStatusDefaultModel"

View File

@@ -4,7 +4,6 @@ import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAX
import android.content.Context;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.NetworkUtils;
@@ -23,7 +22,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";

View File

@@ -17,15 +17,24 @@ 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.utils.ProjectUtils
object OchCommonServiceManager {
private const val TAG = "OchCommonServiceManager"
private val loginDefaultManage: OchLoginServiceApi =
private val ochLoginServiceSaasEh: OchLoginServiceSaasEhApi by lazy {
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(
OchLoginServiceApi::class.java
OchLoginServiceSaasEhApi::class.java
)
}
private val ochLoginServiceMogo: OchLoginServiceMogoApi by lazy {
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(
OchLoginServiceMogoApi::class.java
)
}
private var draiverSnCacher = ""
/**
* 获取Bus司机端的sn
@@ -50,12 +59,22 @@ object OchCommonServiceManager {
context: Context, phone: String?,
callback: OchCommonServiceCallback<BaseData>?
) {
loginDefaultManage.getPhoneCode(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
TaxiLoginSmsReqBean(phone)
).transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "getPhoneCode"))
if (ProjectUtils.isMogo()) {
ochLoginServiceMogo.getPhoneCode(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
TaxiLoginSmsReqBean(phone)
).transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "sendSms"))
}else{
ochLoginServiceSaasEh.getPhoneCode(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
TaxiLoginSmsReqBean(phone)
).transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "sendSms"))
}
}
/**
@@ -70,11 +89,19 @@ object OchCommonServiceManager {
callback: OchCommonServiceCallback<TaxiLoginRespBean>?
) {
val sn = SharedPrefsMgr.getInstance().sn
loginDefaultManage.gotoLoginBycode(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
TaxiLoginReqBean(phone, code, sn, location4Login)
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "gotoLoginBycode"))
if (ProjectUtils.isMogo()) {
ochLoginServiceMogo.gotoLoginBycode(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
TaxiLoginReqBean(phone, code, sn, location4Login)
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "login"))
}else{
ochLoginServiceSaasEh.gotoLoginBycode(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
TaxiLoginReqBean(phone, code, sn, location4Login)
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "login"))
}
}
/**
@@ -86,13 +113,25 @@ object OchCommonServiceManager {
location4Login: TaxiLogoutReqBean.Location4Login?,
callback: OchCommonServiceCallback<BaseData>?
) {
loginDefaultManage.logout(MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
TaxiLogoutReqBean(
SharedPrefsMgr.getInstance().sn,
location4Login
)
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout"))
if (ProjectUtils.isMogo()) {
ochLoginServiceMogo.logout(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
TaxiLogoutReqBean(
SharedPrefsMgr.getInstance().sn,
location4Login
)
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout"))
}else {
ochLoginServiceSaasEh.logout(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
TaxiLogoutReqBean(
SharedPrefsMgr.getInstance().sn,
location4Login
)
).transformTry().subscribe(OchCommonSubscribeImpl(context, callback, "logout"))
}
}
/**
@@ -112,12 +151,21 @@ object OchCommonServiceManager {
} else{
draiverSn
}
loginDefaultManage.queryDriverServiceStatusAndLoginStatus(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
sn
).transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceStatus"))
if (ProjectUtils.isMogo()) {
ochLoginServiceMogo.queryDriverServiceStatusAndLoginStatus(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
sn
).transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "loginStatus"))
}else{
ochLoginServiceSaasEh.queryDriverServiceStatusAndLoginStatus(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
sn
).transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "loginStatus"))
}
}
}

View File

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

@@ -0,0 +1,66 @@
package com.mogo.och.biz.login.net;
import com.mogo.eagle.core.data.BaseData;
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;
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 OchLoginServiceSaasEhApi {
/**
* 获取手机验证码
*
* @return
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@POST("/och-vehicle/cabin/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-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-vehicle/cabin/logout")
Observable<BaseData> logout(@Header("appId") String appId, @Header("ticket") String ticket,
@Body TaxiLogoutReqBean data);
/**
* 接单状态和登录状态查询 出租车司机端、小巴车司机端、小巴车乘客端
*
* @param sn
* @return
*/
@Headers({"Content-type:application/json;charset=UTF-8"})
@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,50 @@
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() {
}
override fun loginSuccess() {
}
}

View File

@@ -9,7 +9,7 @@ import com.mogo.eagle.core.utilcode.util.RegexUtils
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.OchCommonLoginModel
import com.mogo.och.biz.login.model.LoginModel
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
@@ -23,11 +23,11 @@ import java.util.concurrent.TimeUnit
*
* 描述
*/
class OchCommonLoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(view), ITaxiLoginCallback {
class LoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(view), ITaxiLoginCallback {
private var countDownDisposable: Disposable? = null
private val TAG = OchCommonLoginPresenter::class.java.simpleName
private val TAG = LoginPresenter::class.java.simpleName
init {
initListeners()
@@ -35,12 +35,12 @@ class OchCommonLoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(
}
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)) {
@@ -48,7 +48,7 @@ class OchCommonLoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(
mView?.inputPhoneError()
return
}
OchCommonLoginModel.getPhoneCode(phone)
LoginModel.getPhoneCode(phone)
}
override fun onCreate(owner: LifecycleOwner) {
@@ -60,7 +60,7 @@ class OchCommonLoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(
override fun onDestroy(owner: LifecycleOwner) {
super.onDestroy(owner)
OchCommonLoginModel.release()
LoginModel.release()
countDownDisposable?.let {
if (!it.isDisposed) {
it.dispose()
@@ -92,7 +92,7 @@ class OchCommonLoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(
}
fun gotoLogin(phone: String, code: String) {
if(!OchCommonLoginModel.hasInit()){
if(!LoginModel.hasInit()){
initListeners()
}
if (!RegexUtils.isMobileExact(phone)) {
@@ -105,6 +105,6 @@ class OchCommonLoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(
return
}
mView?.closeSoftInput()
OchCommonLoginModel.gotoLogin(phone,code)
LoginModel.gotoLogin(phone,code)
}
}

View File

@@ -5,39 +5,33 @@ import android.os.SystemClock
import android.view.*
import androidx.core.content.ContextCompat
import androidx.core.widget.addTextChangedListener
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.commons.mvp.MvpFragment
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.eagle.core.utilcode.util.KeyboardUtils
import com.mogo.och.biz.R
import com.mogo.och.biz.login.presenter.OchCommonLoginPresenter
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.login.LoginService
import com.mogo.och.biz.login.presenter.LoginPresenter
import com.mogo.och.common.module.utils.RxUtils
import kotlinx.android.synthetic.main.taxi_login_view.acbtn_login
import kotlinx.android.synthetic.main.taxi_login_view.ace_login_phone_value
import kotlinx.android.synthetic.main.taxi_login_view.acet_phone_code_value
import kotlinx.android.synthetic.main.taxi_login_view.aciv_login_bg
import kotlinx.android.synthetic.main.taxi_login_view.actv_login_get_code
import kotlinx.android.synthetic.main.taxi_login_view.actv_login_show_sn
import kotlinx.android.synthetic.main.taxi_login_view.actv_welcome_login_title
import kotlinx.android.synthetic.main.taxi_login_view.cl_main
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
/**
* @author: yangyakun
* @date: 2022/8/15
*/
class LoginFragment : MvpFragment<LoginFragment?, OchCommonLoginPresenter?>(){
class LoginFragment : MvpFragment<LoginFragment?, LoginPresenter?>(){
override fun getLayoutId(): Int {
return R.layout.taxi_login_view
return R.layout.biz_login_view
}
override fun initViews() {
@@ -48,17 +42,7 @@ class LoginFragment : MvpFragment<LoginFragment?, OchCommonLoginPresenter?>(){
}
private fun initBg() {
if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode) &&
AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
//出租车司机
aciv_login_bg.setImageResource(R.drawable.taxi_ic_login_bg)
} else if ((AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)
|| AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)
|| AppIdentityModeUtils.isCharter(FunctionBuildConfig.appIdentityMode)) &&
AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
//小巴车司机
aciv_login_bg.setImageResource(R.drawable.bus_ic_login_bg)
}
}
private fun initListener() {
@@ -73,49 +57,44 @@ class LoginFragment : MvpFragment<LoginFragment?, OchCommonLoginPresenter?>(){
}
false
}
acbtn_login.onClick {
val phone = ace_login_phone_value.text.toString()
val code = acet_phone_code_value.text.toString()
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)
}
actv_welcome_login_title.setOnClickListener {
biz_actv_welcome_login_title.setOnClickListener {
continuousClick()
}
cl_main.viewTreeObserver.addOnGlobalLayoutListener {
biz_cl_driver_main.viewTreeObserver.addOnGlobalLayoutListener {
val rect = Rect()
cl_main.getWindowVisibleDisplayFrame(rect)
val mainInvisibleHeight = cl_main.rootView.height - rect.bottom
biz_cl_driver_main.getWindowVisibleDisplayFrame(rect)
val mainInvisibleHeight = biz_cl_driver_main.rootView.height - rect.bottom
if (mainInvisibleHeight > 100) {
val outLocation = IntArray(2)
acbtn_login.getLocationInWindow(outLocation)
val srollHeight = (outLocation[1] + acbtn_login.height) - rect.bottom
biz_acbtn_login.getLocationInWindow(outLocation)
val srollHeight = (outLocation[1] + biz_acbtn_login.height) - rect.bottom
if (srollHeight > 0) {
cl_main.scrollTo(0, srollHeight)
biz_cl_driver_main.scrollTo(0, srollHeight)
}
CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "滚动的距离:$srollHeight")
} else {
cl_main.scrollTo(0, 0)
biz_cl_driver_main.scrollTo(0, 0)
}
}
actv_login_get_code.onClick {
mPresenter?.getPhoneCode(ace_login_phone_value.text.toString())
biz_actv_login_get_code.onClick {
mPresenter?.getPhoneCode(biz_ace_login_phone_value.text.toString())
}
actv_login_show_sn.setOnLongClickListener {
val loginService = ARouter.getInstance().build(OchCommonConst.BIZ_LOGIN)
.navigation() as LoginService
loginService.showUiModel(false)
true
}
ace_login_phone_value.addTextChangedListener {
biz_ace_login_phone_value.addTextChangedListener {
it?.let { itEditable ->
if (itEditable.isNotEmpty()) {
inputPhoneNormal()
}
}
}
actv_login_show_sn.text = SharedPrefsMgr.getInstance().sn
biz_actv_login_show_sn.text = SharedPrefsMgr.getInstance().sn
RxUtils.createSubscribe(10_000) {
CallerLogger.d(TAG,"宽度${cl_main.width}----${cl_main.height}----${cl_main.visibility}")
CallerLogger.d(TAG,"宽度${biz_cl_driver_main.width}----${biz_cl_driver_main.height}----${biz_cl_driver_main.visibility}")
}
}
@@ -129,32 +108,32 @@ class LoginFragment : MvpFragment<LoginFragment?, OchCommonLoginPresenter?>(){
fun setCountDownText(text: String, enable: Boolean) {
if (enable) {
actv_login_get_code.setText(R.string.module_och_taxi_login_get_code)
actv_login_get_code.isEnabled = true
biz_actv_login_get_code.setText(R.string.module_och_taxi_login_get_code)
biz_actv_login_get_code.isEnabled = true
} else {
actv_login_get_code.text = text
actv_login_get_code.isEnabled = false
biz_actv_login_get_code.text = text
biz_actv_login_get_code.isEnabled = false
}
}
fun inputPhoneError() {
ace_login_phone_value.text?.clear()
ace_login_phone_value.setHint(R.string.module_och_taxi_login_phone_error)
biz_ace_login_phone_value.text?.clear()
biz_ace_login_phone_value.setHint(R.string.module_och_taxi_login_phone_error)
context?.let {
ace_login_phone_value.setHintTextColor(ContextCompat.getColor(it, R.color.taxi_EF262C))
ace_login_phone_value.setBackgroundResource(R.drawable.taxi_login_phone_error)
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 {
ace_login_phone_value.setHintTextColor(ContextCompat.getColor(it, R.color.taxi_878890))
ace_login_phone_value.setBackgroundResource(R.drawable.taxi_login_phone_normal)
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(): OchCommonLoginPresenter {
return OchCommonLoginPresenter(this)
override fun createPresenter(): LoginPresenter {
return LoginPresenter(this)
}
override fun getTagName(): String {

View File

@@ -0,0 +1,60 @@
package com.mogo.och.biz.login.ui
import com.mogo.commons.mvp.MvpFragment
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.presenter.LoginPassengerPresenter
import kotlinx.android.synthetic.main.biz_login_passenger_view.biz_cl_passenger_main
/**
* @author: yangyakun
* @date: 2022/8/15
*/
class LoginPassengerFragment : MvpFragment<LoginPassengerFragment?, LoginPassengerPresenter?>(){
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.isM2(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)
}
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 onResume() {
super.onResume()
CallerLogger.d(TAG,"onResume")
}
override fun onPause() {
super.onPause()
CallerLogger.d(TAG,"onPause")
}
}

View File

@@ -1,40 +0,0 @@
package com.mogo.och.biz.login.ui
import com.mogo.commons.mvp.BaseFragment
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.biz.R
/**
* @author: yangyakun
* @date: 2022/8/15
*/
class SimpleFragment : BaseFragment() {
override fun getLayoutId(): Int {
return R.layout.taxi_login_view_1
}
override fun initViews() {
CallerLogger.d(TAG,"init")
}
override fun getTagName(): String {
return TAG
}
companion object {
val TAG = SimpleFragment::class.java.simpleName
}
override fun onResume() {
super.onResume()
CallerLogger.d(TAG,"onResume")
}
override fun onPause() {
super.onPause()
CallerLogger.d(TAG,"onPause")
}
}

View File

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

View File

@@ -1,9 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/cl_main"
android:id="@+id/biz_cl_passenger_main"
xmlns:tools="http://schemas.android.com/tools"
android:background="@drawable/icon_car_red"
android:layout_width="match_parent"
android:layout_height="match_parent">

View File

@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/cl_main"
android:id="@+id/biz_cl_driver_main"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/aciv_login_bg"
android:src="@drawable/taxi_ic_login_bg"
android:src="@drawable/biz_login_bg"
android:scaleType="fitXY"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_welcome_login_title"
android:id="@+id/biz_actv_welcome_login_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="149dp"
@@ -37,7 +37,7 @@
app:layout_constraintTop_toBottomOf="@+id/actv_welcome_login_title" />
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/ace_login_phone_value"
android:id="@+id/biz_ace_login_phone_value"
android:layout_width="760dp"
android:layout_height="136dp"
android:layout_marginTop="40dp"
@@ -75,7 +75,7 @@
android:layout_marginTop="40dp"/>
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/acet_phone_code_value"
android:id="@+id/biz_acet_phone_code_value"
app:layout_constraintTop_toTopOf="@+id/v_phone_code_bg"
app:layout_constraintBottom_toBottomOf="@+id/v_phone_code_bg"
app:layout_constraintStart_toStartOf="@+id/v_phone_code_bg"
@@ -92,7 +92,7 @@
android:layout_height="136dp"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_login_get_code"
android:id="@+id/biz_actv_login_get_code"
app:layout_constraintTop_toTopOf="@+id/v_phone_code_bg"
app:layout_constraintBottom_toBottomOf="@+id/v_phone_code_bg"
app:layout_constraintEnd_toEndOf="@+id/v_phone_code_bg"
@@ -105,7 +105,7 @@
android:layout_height="136dp"/>
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/acbtn_login"
android:id="@+id/biz_acbtn_login"
app:layout_constraintTop_toBottomOf="@+id/v_phone_code_bg"
app:layout_constraintStart_toStartOf="@+id/ace_login_phone_value"
android:background="@drawable/taxi_login_bg_selector"
@@ -118,7 +118,7 @@
android:layout_height="136dp"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_login_show_sn"
android:id="@+id/biz_actv_login_show_sn"
android:textSize="@dimen/dp_30"
android:textColor="@android:color/white"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -2,7 +2,7 @@ package com.mogo.och.common.module.biz.login
import com.mogo.och.common.module.biz.provider.CommonService
interface LoginService : CommonService {
interface LoginService :CommonService {
fun setLoginInfo(loginInfo: LoginInfo)
fun getLoginInfo():LoginInfo?
@@ -15,8 +15,6 @@ interface LoginService : CommonService {
fun queryLoginStatusByNet()
fun showUiModel(show:Boolean)
/**
* 登出
*/

View File

@@ -1,10 +1,14 @@
package com.mogo.och.common.module.biz.provider
import android.content.Context
import android.view.View
import androidx.fragment.app.Fragment
import com.alibaba.android.arouter.facade.template.IProvider
interface CommonService : IProvider {
fun getFragment():Fragment
fun getFragment(): Fragment
fun getStatusBarView(context: Context): View
}

View File

@@ -0,0 +1,18 @@
package com.mogo.och.common.module.biz.provider
import android.content.Context
import android.view.View
import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView
abstract class CommonServiceImpl : CommonService {
var statusBarView: View?= null
override fun getStatusBarView(context: Context): View {
if (statusBarView == null) {
statusBarView = StatusBarView(context)
}
return statusBarView!!
}
}

View File

@@ -0,0 +1,50 @@
package com.mogo.och.common.module.utils
import com.mogo.commons.debug.DebugConfig
object ProjectUtils {
fun isSaas(): Boolean {
return DebugConfig.getProjectFlavor() == Project.SAAS.value
}
fun isDali(): Boolean {
return DebugConfig.getProjectFlavor() == Project.DALI.value
}
fun isMogo(): Boolean {
return DebugConfig.getProjectFlavor() == Project.MOGO.value
}
fun isYantai(): Boolean {
return DebugConfig.getProjectFlavor() == Project.YANTAI.value
}
fun getProjectType(): Project {
when (DebugConfig.getProjectFlavor()) {
Project.DALI.value -> {
return Project.DALI
}
Project.SAAS.value -> {
return Project.SAAS
}
Project.MOGO.value -> {
return Project.MOGO
}
Project.YANTAI.value -> {
return Project.YANTAI
}
}
return Project.MOGO
}
}
enum class Project(val value: String) {
SAAS("saas"),
DALI("dali"),
MOGO("mogo"),
YANTAI("yantai")
}

View File

@@ -1,6 +1,10 @@
package com.mogo.och.facade.route
import android.content.Context
import android.view.Gravity
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import androidx.fragment.app.FragmentManager
@@ -8,6 +12,7 @@ import com.alibaba.android.arouter.facade.annotation.Route
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider
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.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
@@ -26,85 +31,10 @@ import com.mogo.och.facade.constant.FacadeConst
* @author tongchenfei
*/
@Route(path = FacadeConst.DRIVER_PATH)
class FacadeDriverProvider : IMoGoFunctionProvider, ILoginCallback {
private var containerId = 0
private var activity: FragmentActivity? = null
class FacadeDriverProvider : FacadeProvider() {
private val TAG = "FacadeDriverProvider"
override fun init(context: Context) {
d(TAG, "init")
LoginStatusManager.addListener(TAG, this)
queryLoginStatusByNet()
}
override fun createCoverage(fragmentActivity: FragmentActivity?, integer: Int?): Fragment? {
containerId = integer!!
activity = fragmentActivity
showFragment()
return null
}
override val functionName: String
get() = TAG
private fun showFragment() {
val supportFragmentManager: FragmentManager? = activity?.supportFragmentManager
val fragment= if(LoginStatusManager.isLogin()){
getFragment()
}else{
LoginStatusManager.getFragment()
}
d(SceneConstant.M_TAXI_P + TAG, "准备add fragment======")
if(supportFragmentManager!=null){
val back = supportFragmentManager.beginTransaction()
back.replace(containerId,fragment,fragment.tag)
back.commit()
}
}
private fun getFragment(): Fragment {
if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
return getFragmentByServeName(OchCommonConst.BUS_DRIVER)
} else if (AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
return getFragmentByServeName(OchCommonConst.SHUTTLE_DRIVER)
} else if (AppIdentityModeUtils.isCharter(FunctionBuildConfig.appIdentityMode)) {
return getFragmentByServeName(OchCommonConst.CHARTER_DRIVER)
} else if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) {
return getFragmentByServeName(OchCommonConst.TAXI_DRIVER)
} else if (AppIdentityModeUtils.isSweeper(FunctionBuildConfig.appIdentityMode)) {
return getFragmentByServeName(OchCommonConst.SWEEPER_DRIVER)
}
return LoginStatusManager.getFragment()
}
private fun getFragmentByServeName(serviceName: String): Fragment {
val bizService = ARouter.getInstance().build(serviceName).navigation() as CommonService?
if (bizService == null) {
try {
return LoginStatusManager.getFragment()
} catch (e: ClassNotFoundException) {
OchChainLogManager.writeChainLog(
"Init",
"没有找到登录Fragment",
eventID = OchChainLogManager.EVENT_KEY_INFE_ERROR
)
return Fragment()
}
} else {
return bizService.getFragment()
}
}
override fun onDestroy() {
//若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠
if (activity == null) return
activity!!.finish()
}
override fun onStatusChange(currentStatus: TaxiLoginStatusEnum) {
d(TAG, "登录状态发生改变 ${currentStatus}")
//showFragment()
}
}

View File

@@ -1,62 +0,0 @@
package com.mogo.och.facade.route;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
import android.content.Context;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider;
import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.och.facade.constant.FacadeConst;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* 网约车小巴业务实现入口
*
* @author tongchenfei
*/
@Route(path = FacadeConst.PASSENGER_PATH)
public class FacadePassengerProvider implements IMoGoFunctionProvider {
private static final String TAG = "FacadePassengerProvider";
private int containerId;
private FragmentActivity activity;
@Override
public void init(Context context) {
}
private void showFragment() {
}
@NotNull
@Override
public String getFunctionName() {
return TAG;
}
@Nullable
@Override
public Fragment createCoverage(@Nullable FragmentActivity fragmentActivity, @Nullable Integer integer) {
this.containerId = integer;
this.activity = fragmentActivity;
showFragment();
return null;
}
@Override
public void onDestroy() {
//若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠
if (activity == null) return;
activity.finish();
}
}

View File

@@ -0,0 +1,19 @@
package com.mogo.och.facade.route
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.och.facade.constant.FacadeConst
/**
* 网约车小巴业务实现入口
*
* @author tongchenfei
*/
@Route(path = FacadeConst.PASSENGER_PATH)
class FacadePassengerProvider : FacadeProvider() {
private val TAG = FacadePassengerProvider::class.java.simpleName
override val functionName: String
get() = TAG
}

View File

@@ -0,0 +1,144 @@
package com.mogo.och.facade.route
import android.content.Context
import android.view.Gravity
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
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.alibaba.android.arouter.launcher.ARouter
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider
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.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.login.ILoginCallback
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.biz.login.LoginStatusManager.queryLoginStatusByNet
import com.mogo.och.common.module.biz.login.TaxiLoginStatusEnum
import com.mogo.och.common.module.biz.provider.CommonService
import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager
import com.mogo.och.facade.constant.FacadeConst
/**
* 网约车小巴业务实现入口
*
* @author tongchenfei
*/
abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
private var containerId = 0
private var activity: FragmentActivity? = null
private val TAG = "FacadeProvider"
private var commonService: CommonService? = null
override fun init(context: Context) {
d(TAG, "FacadeProvider:init")
LoginStatusManager.addListener(TAG, this)
queryLoginStatusByNet()
}
override fun createCoverage(fragmentActivity: FragmentActivity?, integer: Int?): Fragment? {
containerId = integer!!
activity = fragmentActivity
showFragment()
return null
}
private fun showFragment() {
val supportFragmentManager: FragmentManager? = activity?.supportFragmentManager
val fragment = if (LoginStatusManager.isLogin()) {
getFragment()
} else {
LoginStatusManager.getFragment()
}
d(TAG, "切换 fragment:${fragment}")
if (supportFragmentManager != null) {
val back = supportFragmentManager.beginTransaction()
back.replace(containerId, fragment, fragment.tag)
back.commit()
}
}
private fun getFragment(): Fragment {
if (AppIdentityModeUtils.isBusDriver(FunctionBuildConfig.appIdentityMode)) {
return getFragmentByServeName(OchCommonConst.BUS_DRIVER)
} else if (AppIdentityModeUtils.isShuttleDriver(FunctionBuildConfig.appIdentityMode)) {
return getFragmentByServeName(OchCommonConst.SHUTTLE_DRIVER)
} else if (AppIdentityModeUtils.isCharterDriver(FunctionBuildConfig.appIdentityMode)) {
return getFragmentByServeName(OchCommonConst.CHARTER_DRIVER)
} else if (AppIdentityModeUtils.isTaxiDriver(FunctionBuildConfig.appIdentityMode)) {
return getFragmentByServeName(OchCommonConst.TAXI_DRIVER)
} else if (AppIdentityModeUtils.isSweeper(FunctionBuildConfig.appIdentityMode)) {
return getFragmentByServeName(OchCommonConst.SWEEPER_DRIVER)
} else if (AppIdentityModeUtils.isBusPassenger(FunctionBuildConfig.appIdentityMode)) {
return getFragmentByServeName(OchCommonConst.BUS_DRIVER)
} else if (AppIdentityModeUtils.isShuttlePassenger(FunctionBuildConfig.appIdentityMode)) {
return getFragmentByServeName(OchCommonConst.SHUTTLE_DRIVER)
} else if (AppIdentityModeUtils.isCharterPassenger(FunctionBuildConfig.appIdentityMode)) {
return getFragmentByServeName(OchCommonConst.CHARTER_DRIVER)
} else if (AppIdentityModeUtils.isTaxiPassenger(FunctionBuildConfig.appIdentityMode)) {
return getFragmentByServeName(OchCommonConst.TAXI_DRIVER)
}
return LoginStatusManager.getFragment()
}
private fun getFragmentByServeName(serviceName: String): Fragment {
commonService = ARouter.getInstance().build(serviceName).navigation() as CommonService?
return if (commonService == null) {
try {
LoginStatusManager.getFragment()
} catch (e: ClassNotFoundException) {
OchChainLogManager.writeChainLog(
"Init",
"没有找到登录Fragment",
eventID = OchChainLogManager.EVENT_KEY_INFE_ERROR
)
Fragment()
}
} else {
commonService!!.getFragment()
}
}
override fun onDestroy() {
//若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠
if (activity == null) return
activity!!.finish()
}
override fun onStatusChange(currentStatus: TaxiLoginStatusEnum) {
d(TAG, "登录状态发生改变 ${currentStatus}")
showFragment()
}
private fun injectStatusBar() {
activity?.let {
val decorView = it.window.decorView as? FrameLayout ?: return
val contentView =
(decorView.findViewById<View>(android.R.id.content) as? ViewGroup)?.getChildAt(0)
?: return
contentView.fitsSystemWindows = false
decorView.clipToPadding = false
var statusBarView = decorView.findViewWithTag<View>("status_bar")
val statusBar = commonService?.getStatusBarView(it)
statusBarView = statusBar ?: StatusBarView(it)
statusBarView.tag = "status_bar"
val statusBarLP = FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
)
statusBarLP.topMargin = 0
statusBarLP.gravity = Gravity.TOP
decorView.addView(statusBarView, statusBarLP)
}
}
}

View File

@@ -8,6 +8,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.och.bus.fragment.ShuttleFragment
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.CommonService
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
/**
* 网约车小巴业务实现入口
@@ -15,18 +16,18 @@ import com.mogo.och.common.module.biz.provider.CommonService
* @author tongchenfei
*/
@Route(path = OchCommonConst.SHUTTLE_DRIVER)
class BusProvider : CommonService {
private var busFragment: ShuttleFragment? = null
class ShuttleDriverProvider : CommonServiceImpl() {
private val TAG = ShuttleDriverProvider::class.java.simpleName
private lateinit var busFragment: ShuttleFragment
override fun init(context: Context) {
d(SceneConstant.M_TAXI + TAG, "init")
busFragment = ShuttleFragment()
}
override fun getFragment(): Fragment {
return busFragment!!
return busFragment
}
companion object {
private const val TAG = "BusProvider"
}
}

View File

@@ -1,25 +1,22 @@
package com.mogo.och.shuttle.passenger
import android.content.Context
import android.view.View
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.ActivityUtils
import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.CommonService
import com.mogo.och.shuttle.passenger.constant.BusPassengerConst
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
import com.mogo.och.common.module.wigets.media.MediaPlayerActivity
import com.mogo.och.shuttle.passenger.model.TicketModel
import com.mogo.och.shuttle.passenger.ui.BusPStatusBarView
import com.mogo.och.shuttle.passenger.ui.BusPassengerRouteFragment
import com.mogo.och.shuttle.passenger.ui.PM2BaseFragment
import com.mogo.och.shuttle.passenger.ui.widget.M2StatusBarView
/**
* 网约车-Bus-乘客端
@@ -27,7 +24,9 @@ import com.mogo.och.shuttle.passenger.ui.PM2BaseFragment
* Created on 2022/3/29
*/
@Route(path = OchCommonConst.SHUTTLE_PASSENGER)
class MogoOCHShuttlePassenger : CommonService {
class ShuttlePassengerProvider : CommonServiceImpl() {
private val tag = ShuttlePassengerProvider::class.java.simpleName
private lateinit var mPM2Fragment: Fragment
override fun init(context: Context) {
@@ -41,6 +40,19 @@ class MogoOCHShuttlePassenger : CommonService {
}
}
override fun getStatusBarView(context: Context): View {
if(statusBarView==null){
statusBarView = if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) {
M2StatusBarView(context);
} else if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) {
BusPStatusBarView(context);
}else{
BusPStatusBarView(context);
}
}
return statusBarView!!
}
override fun getFragment(): Fragment {
if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) {
MultiDisplayUtils.startActWithSecond(ActivityUtils.getTopActivity(), MediaPlayerActivity::class.java)
@@ -48,8 +60,4 @@ class MogoOCHShuttlePassenger : CommonService {
return mPM2Fragment
}
companion object {
private val TAG = MogoOCHShuttlePassenger::class.java.simpleName
}
}

View File

@@ -1,39 +0,0 @@
package com.mogo.och.shuttle.passenger.provider;
import android.content.Context;
import android.view.View;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils;
import com.mogo.och.shuttle.passenger.ui.BusPStatusBarView;
import com.mogo.och.shuttle.passenger.ui.widget.M2StatusBarView;
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;
/**
* @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

@@ -7,6 +7,7 @@ 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.CommonService
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
import com.mogo.och.taxi.ui.TaxiFragment
/**
@@ -17,12 +18,13 @@ import com.mogo.och.taxi.ui.TaxiFragment
* 网约车-出租车
*/
@Route(path = OchCommonConst.TAXI_DRIVER)
class TaxiProvider : CommonService {
class TaxiDriverProvider : CommonServiceImpl() {
private val TAG = "TaxiProvider"
private val tag = TaxiDriverProvider::class.java.simpleName
private lateinit var ochTaxiFragment: TaxiFragment
override fun init(context: Context) {
d(SceneConstant.M_TAXI + TAG, "init")
d(SceneConstant.M_TAXI + tag, "init")
ochTaxiFragment = TaxiFragment()
}

View File

@@ -1,13 +1,16 @@
package com.mogo.och.taxi.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.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.CommonService
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment
import com.mogo.och.taxi.passenger.ui.statusview.StatusBarView
/**
* @author congtaowang
@@ -17,15 +20,22 @@ import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment
* 网约车-出租车-乘客端
*/
@Route(path = OchCommonConst.TAXI_PASSENGER)
class MogoOCHTaxiPassenger : CommonService {
class TaxiPassengerProvider : CommonServiceImpl() {
private val tag = TaxiPassengerProvider::class.java.simpleName
private lateinit var ochTaxiPassengerFragment: TaxiPassengerBaseFragment
private val TAG = "MogoOCHTaxiPassenger"
override fun init(context: Context) {
d(SceneConstant.M_TAXI_P + TAG, "init")
d(SceneConstant.M_TAXI_P + tag, "init")
ochTaxiPassengerFragment = TaxiPassengerBaseFragment()
}
override fun getStatusBarView(context: Context): View {
if (statusBarView == null) {
statusBarView = StatusBarView(context)
}
return statusBarView!!
}
override fun getFragment(): Fragment {
return ochTaxiPassengerFragment
}

View File

@@ -1,33 +0,0 @@
package com.mogo.och.taxi.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.constants.MogoServicePaths;
import com.mogo.eagle.core.function.api.hmi.view.IStatusViewLayout;
import com.mogo.och.taxi.passenger.ui.statusview.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

@@ -1,24 +0,0 @@
package com.mogo.och.taxi;
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

@@ -2,13 +2,12 @@ package com.mogo.och.taxi
import android.content.Context
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager.stepInNightMode
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
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.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.CommonService
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
import com.mogo.och.taxi.ui.base.TaxiFragment
/**
@@ -19,12 +18,13 @@ import com.mogo.och.taxi.ui.base.TaxiFragment
* 网约车-出租车
*/
@Route(path = OchCommonConst.TAXI_UNMANNED_DRIVER)
class TaxiUnmannedProvider : CommonService {
class TaxiUnmannedDriverProvider : CommonServiceImpl() {
private val tag = TaxiUnmannedDriverProvider::class.java.simpleName
private lateinit var ochTaxiFragment: TaxiFragment
private val TAG = "TaxiProvider"
override fun init(context: Context) {
d(SceneConstant.M_TAXI + TAG, "init")
CallerLogger.d(SceneConstant.M_TAXI + tag, "init")
ochTaxiFragment = TaxiFragment()
}

View File

@@ -1,46 +0,0 @@
package com.mogo.och.taxi.passenger;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P;
import android.content.Context;
import androidx.annotation.NonNull;
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;
import com.mogo.och.common.module.biz.constant.OchCommonConst;
import com.mogo.och.common.module.biz.provider.CommonService;
import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst;
import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* @author congtaowang
* @since 2021/1/15
* <p>
* 网约车-出租车-乘客端
*/
@Route(path = OchCommonConst.TAXI_UNMANNED_PASSENGER)
public class MogoOCHTaxiPassenger implements CommonService {
private static final String TAG = "MogoOCHTaxiPassenger";
private TaxiPassengerBaseFragment ochTaxiPassengerFragment;
@Override
public void init(Context context) {
CallerLogger.d(M_TAXI_P + TAG, "init");
ochTaxiPassengerFragment = new TaxiPassengerBaseFragment();
}
@NonNull
@Override
public Fragment getFragment() {
return ochTaxiPassengerFragment;
}
}

View File

@@ -0,0 +1,44 @@
package com.mogo.och.taxi.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.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.CommonService
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment
import com.mogo.och.taxi.passenger.ui.statusview.StatusBarView
/**
* @author congtaowang
* @since 2021/1/15
*
*
* 网约车-出租车-乘客端
*/
@Route(path = OchCommonConst.TAXI_UNMANNED_PASSENGER)
class TaxiUnmannedPassengerProvider : CommonServiceImpl() {
private val tag = TaxiUnmannedPassengerProvider::class.java.simpleName
private lateinit var ochTaxiPassengerFragment: TaxiPassengerBaseFragment
override fun init(context: Context) {
d(SceneConstant.M_TAXI_P + tag, "init")
ochTaxiPassengerFragment = TaxiPassengerBaseFragment()
statusBarView = StatusBarView(context)
}
override fun getStatusBarView(context: Context): View {
if (statusBarView == null) {
statusBarView = StatusBarView(context)
}
return statusBarView!!
}
override fun getFragment(): Fragment {
return ochTaxiPassengerFragment
}
}

View File

@@ -1,33 +0,0 @@
package com.mogo.och.taxi.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.constants.MogoServicePaths;
import com.mogo.eagle.core.function.api.hmi.view.IStatusViewLayout;
import com.mogo.och.taxi.passenger.ui.statusview.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

@@ -82,7 +82,6 @@ open class MainActivity : MvpActivity<MainView?, MainPresenter?>(), MainView,
override fun initViews() {
injectFloatView()
injectStatusBar()
window.setBackgroundDrawable(null)
initConnectInfoRV()
CallerHmiManager.init(this)
@@ -95,28 +94,6 @@ open class MainActivity : MvpActivity<MainView?, MainPresenter?>(), MainView,
PermissionsDialogUtils.openAppDetails(this, "显示悬浮窗", REQUEST_CODE_DIALOG)
}
private fun injectStatusBar() {
val decorView = this.window.decorView as? FrameLayout ?: return
val contentView =
(decorView.findViewById<View>(android.R.id.content) as? ViewGroup)?.getChildAt(0)
?: return
contentView.fitsSystemWindows = false
decorView.clipToPadding = false
var statusBarView = decorView.findViewWithTag<View>("status_bar")
if (statusBarView == null) {
val statusBar = CallerHmiFloatViewManager.getView(this)
statusBarView = statusBar ?: StatusBarView(this)
statusBarView.tag = "status_bar"
}
val statusBarLP = FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
)
statusBarLP.topMargin = 0
statusBarLP.gravity = Gravity.TOP
decorView.addView(statusBarView, statusBarLP)
}
// todo 优化 车聊聊
private fun injectFloatView() {
val decorView = this.window.decorView as? FrameLayout ?: return

View File

@@ -4,10 +4,7 @@ import android.content.Context
import android.view.View
import android.widget.FrameLayout
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.commons.debug.DebugConfig
import com.mogo.eagle.core.data.constants.MogoServicePaths.PATH_FLOAT_VIEW_MANAGER
import com.mogo.eagle.core.data.constants.MogoServicePaths.PATH_STATUS_VIEW_MANAGER
import com.mogo.eagle.core.function.api.hmi.view.IStatusViewLayout
import com.mogo.eagle.core.function.api.hmi.view.IViewLayoutSet
/**
@@ -18,9 +15,6 @@ object CallerHmiFloatViewManager {
private val floatViewProviderApi
get() = ARouter.getInstance().build(PATH_FLOAT_VIEW_MANAGER)
.navigation() as? IViewLayoutSet
private val statusViewProviderApi
get() = ARouter.getInstance().build(PATH_STATUS_VIEW_MANAGER)
.navigation() as? IStatusViewLayout
fun addView(view: View, params: FrameLayout.LayoutParams, movable: Boolean) {
floatViewProviderApi?.addView(view, params, movable)
@@ -30,11 +24,4 @@ object CallerHmiFloatViewManager {
floatViewProviderApi?.removeView(view)
}
fun getView(context:Context):View?{
return if (DebugConfig.isReplaceStatusview()){
statusViewProviderApi?.getStatusView(context)
}else{
null
}
}
}

View File

@@ -44,6 +44,8 @@ object AppIdentityModeUtils {
private const val M1 = "M1"
private const val M2 = "M2"
private const val JL = "JL"
private const val DFHQ = "DFHQ"
private const val FT = "FT"
private fun getInfo(appIdentityMode: String): Array<String> {
@@ -121,6 +123,11 @@ object AppIdentityModeUtils {
}
return false
}
@JvmStatic
fun isShuttleDriver(appIdentityMode: String): Boolean {
return isShuttle(appIdentityMode) && isDriver(appIdentityMode)
}
/**
* 是否是 接驳车(这里不细分具体是:司机、乘客等类型)
@@ -133,25 +140,6 @@ object AppIdentityModeUtils {
return isShuttle(appIdentityMode) && isPassenger(appIdentityMode)
}
@JvmStatic
fun isM2(appIdentityMode: String): Boolean {
val (_, _, model) = getInfo(appIdentityMode)
if (model.isNotEmpty()) {
return model == M2
}
return false
}
@JvmStatic
fun isJL(appIdentityMode: String): Boolean {
val (_, _, model) = getInfo(appIdentityMode)
if (model.isNotEmpty()) {
return model == JL
}
return false
}
/**
* 是否是 清扫车(这里不细分具体是:司机、乘客等类型)
*
@@ -227,11 +215,6 @@ object AppIdentityModeUtils {
return isTaxi(appIdentityMode) && isPassenger(appIdentityMode)
}
fun isBusPassengerM1(appIdentityMode: String): Boolean {
return isBus(appIdentityMode) && isPassenger(appIdentityMode) && isM1(appIdentityMode)
}
/**
* 是否包车
*/
@@ -244,11 +227,45 @@ object AppIdentityModeUtils {
return false
}
@JvmStatic
fun isCharterDriver(appIdentityMode: String): Boolean {
return isCharter(appIdentityMode) && isDriver(appIdentityMode)
}
@JvmStatic
fun isCharterPassenger(appIdentityMode: String): Boolean {
return isCharter(appIdentityMode) && isPassenger(appIdentityMode)
}
@JvmStatic
fun isDFHQ(appIdentityMode: String): Boolean {
val (_, _, model) = getInfo(appIdentityMode)
if (model.isNotEmpty()) {
return model == DFHQ
}
return false
}
@JvmStatic
fun isFT(appIdentityMode: String): Boolean {
val (_, _, model) = getInfo(appIdentityMode)
if (model.isNotEmpty()) {
return model == FT
}
return false
}
@JvmStatic
fun isJL(appIdentityMode: String): Boolean {
val (_, _, model) = getInfo(appIdentityMode)
if (model.isNotEmpty()) {
return model == JL
}
return false
}
@JvmStatic
fun isM1(appIdentityMode: String): Boolean {
val (_, _, model) = getInfo(appIdentityMode)
@@ -258,6 +275,19 @@ object AppIdentityModeUtils {
return false
}
@JvmStatic
fun isM2(appIdentityMode: String): Boolean {
val (_, _, model) = getInfo(appIdentityMode)
if (model.isNotEmpty()) {
return model == M2
}
return false
}
fun getProduct(appIdentityMode: String): Product {
val (bussness, _, _) = getInfo(appIdentityMode)
return when (bussness) {