[fea]
[添加offline 模式]
This commit is contained in:
yangyakun
2024-07-16 11:04:09 +08:00
parent df1220b12c
commit 5020ebbbf3
347 changed files with 14966 additions and 13 deletions

View File

@@ -8,6 +8,7 @@ import com.mogo.commons.module.intent.IMogoIntentListener
import com.mogo.commons.module.intent.IntentManager
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
@@ -176,17 +177,19 @@ object LoginModel {
LoginStatusManager.setBusinessType(data.data.businessType)
iTaxiLoginCallback?.searchStatusSuccess()
// 后台已登录
if (valueOf(data.data.driverStatus) == LoginStatusEnum.Login) {
// 业务不支持 去退出登录
if (!LoginStatusManager.checkBusiness(data.data.businessType)) {
val mLatitude = getChassisLocationGCJ02().latitude
val mLongitude = getChassisLocationGCJ02().longitude
LoginStatusManager.loginOut(mLatitude, mLongitude)
return
if(!FunctionBuildConfig.isOffLine){
if (valueOf(data.data.driverStatus) == LoginStatusEnum.Login) {
// 业务不支持 去退出登录
if (!LoginStatusManager.checkBusiness(data.data.businessType)) {
val mLatitude = getChassisLocationGCJ02().latitude
val mLongitude = getChassisLocationGCJ02().longitude
LoginStatusManager.loginOut(mLatitude, mLongitude)
return
}
}
LoginStatusManager.setLoginStatus(data.data.driverStatus)
}
LoginStatusManager.setOpenOrderType(data.data.servingStatus)
LoginStatusManager.setLoginStatus(data.data.driverStatus)
LoginStatusManager.setLoginInfo(data.data)
d(SceneConstant.M_TAXI + TAG, "登录信息:$data")
loginSuccess(data)
@@ -222,6 +225,10 @@ object LoginModel {
// 登出
fun logout(mLatitude: Double, mLongitude: Double) {
val location4Login = TaxiLogoutReqBean.Location4Login(mLatitude, mLongitude)
if (FunctionBuildConfig.isOffLine) {
LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout)
return
}
OchCommonServiceManager.logout(
mContext!!, location4Login,
object : OchCommonServiceCallback<BaseData> {
@@ -275,4 +282,9 @@ object LoginModel {
updateLoginLocalStatus(0)
}
fun gotoOfflineMode() {
FunctionBuildConfig.isOffLine = true
LoginStatusManager.setLoginStatus(LoginStatusEnum.Login)
}
}

View File

@@ -127,4 +127,8 @@ class LoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(view), IT
this.code = null
}
fun gotoOfflineMode() {
LoginModel.gotoOfflineMode()
}
}

View File

@@ -35,6 +35,7 @@ import kotlinx.android.synthetic.main.biz_login_view.biz_actv_welcome_login_titl
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
import kotlinx.android.synthetic.main.biz_login_view.iv_login_offline
/**
@@ -109,6 +110,9 @@ class LoginFragment : MvpFragment<LoginFragment?, LoginPresenter?>(), ILoginView
biz_actv_login_get_code.onClick {
mPresenter?.getPhoneCode(biz_ace_login_phone_value.text.toString())
}
iv_login_offline.setOnClickListener {
mPresenter?.gotoOfflineMode()
}
biz_ace_login_phone_value.addTextChangedListener {
it?.let { itEditable ->

View File

@@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M17,7h-4v1.9h4c1.71,0 3.1,1.39 3.1,3.1 0,1.43 -0.98,2.63 -2.31,2.98l1.46,1.46C20.88,15.61 22,13.95 22,12c0,-2.76 -2.24,-5 -5,-5zM16,11h-2.19l2,2L16,13zM2,4.27l3.11,3.11C3.29,8.12 2,9.91 2,12c0,2.76 2.24,5 5,5h4v-1.9L7,15.1c-1.71,0 -3.1,-1.39 -3.1,-3.1 0,-1.59 1.21,-2.9 2.76,-3.07L8.73,11L8,11v2h2.73L13,15.27L13,17h1.73l4.01,4L20,19.74 3.27,3 2,4.27z"/>
</vector>

View File

@@ -159,5 +159,16 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/iv_login_offline"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="@dimen/dp_24"
android:layout_marginEnd="@dimen/dp_24"
android:src="@drawable/baseline_link_off_24"
android:padding="@dimen/dp_23"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1,5 +1,6 @@
package com.mogo.och.common.module.biz.lansocket
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.och.common.module.BuildConfig
import com.mogo.och.common.module.biz.login.ILoginCallback
import com.mogo.och.common.module.biz.login.LoginStatusEnum

View File

@@ -3,6 +3,7 @@ package com.mogo.och.common.module.biz.login
import androidx.fragment.app.Fragment
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.manager.loop.LoopInfo
@@ -99,6 +100,10 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
@JvmStatic
fun setLoginStatus(loginStatus: LoginStatusEnum) {
if(FunctionBuildConfig.isOffLine){
loginService?.setLoginStatus(LoginStatusEnum.Login)
return
}
loginService?.setLoginStatus(loginStatus)
}
@@ -119,10 +124,12 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
}
fun invokeLoginStatusChange(currentStatus: LoginStatusEnum) {
if(currentStatus==LoginStatusEnum.Login){
BizLoopManager.setLoopFunction(TAGLoopStatus, LoopInfo(60*2, ::queryLoginStatusByNet,immediately = true, scheduler = Schedulers.io()))
}else{
BizLoopManager.removeLoopFunction(TAGLoopStatus)
if(!FunctionBuildConfig.isOffLine){
if(currentStatus==LoginStatusEnum.Login){
BizLoopManager.setLoopFunction(TAGLoopStatus, LoopInfo(60*2, ::queryLoginStatusByNet,immediately = true, scheduler = Schedulers.io()))
}else{
BizLoopManager.removeLoopFunction(TAGLoopStatus)
}
}
M_LISTENERS.forEach {
val listener = it.value

View File

@@ -47,6 +47,10 @@ class OchCommonConst {
const val TAXI_UNMANNED_DRIVER = "/taxiunman/taxiunmandriver"
const val TAXI_UNMANNED_PASSENGER = "/taxiunman/taxiunmanpassenger"
const val OFFLINE_DRIVER = "/offline/offlinedriver"
const val OFFLINE_PASSENGER = "/offline/offlinepassenger"
const val BUSINESS_STRING = 100
// 自动驾驶自动规划的最大距离