diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusManager.kt index c99de1fb1f..e9a493ec6b 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusManager.kt @@ -100,10 +100,6 @@ object LoginStatusManager : CallerBase() { @JvmStatic fun setLoginStatus(loginStatus: LoginStatusEnum) { - if(FunctionBuildConfig.isOffLine){ - loginService?.setLoginStatus(LoginStatusEnum.Login) - return - } loginService?.setLoginStatus(loginStatus) } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/network/interceptor/FRetryWithTime.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/interceptor/FRetryWithTime.kt index 9323b8cb1a..4c8aa34024 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/network/interceptor/FRetryWithTime.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/network/interceptor/FRetryWithTime.kt @@ -18,8 +18,10 @@ class FRetryWithTime : Function> { MoGoAiCloudClient.getInstance().refreshToken() return Observable.error(OchCommonRetryException()) }else if(it.code == 1003){ - if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { - LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout) + if(!FunctionBuildConfig.isOffLine){ + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout) + } } } } diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/BusLineModel.kt b/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/BusLineModel.kt index 6d9990f107..adf135aca1 100644 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/BusLineModel.kt +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/BusLineModel.kt @@ -1,92 +1,105 @@ -package com.mogo.och.offline.model; +package com.mogo.och.offline.model -import android.content.Context; - -import com.mogo.commons.AbsMogoApplication; -import com.mogo.commons.storage.SharedPrefsMgr; -import com.mogo.eagle.core.utilcode.util.GsonUtils; -import com.mogo.eagle.core.utilcode.util.JsonUtils; -import com.mogo.eagle.core.utilcode.util.NetworkUtils; -import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.och.offline.R; -import com.mogo.och.offline.bean.BindLineListResponse; -import com.mogo.och.offline.callback.IBusLinesCallback; -import com.mogo.och.offline.net.OrderServiceManager; -import com.mogo.och.common.module.network.OchCommonServiceCallback; +import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.utilcode.util.GsonUtils +import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.common.module.manager.loop.LoopInfo +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.offline.bean.BindLineListResponse +import com.mogo.och.offline.callback.IBusLinesCallback +import com.mogo.och.offline.net.OrderServiceManager +import io.reactivex.schedulers.Schedulers /** * @author: wangmingjun * @date: 2022/2/9 */ -public class BusLineModel { - private static volatile BusLineModel sInstance; - private Context mContext; - private IBusLinesCallback mBusLinesCallback; - private static final String Catche4AllLines = "Catche4AllLines"; - public static BusLineModel getInstance() { - if ( sInstance == null ) { - synchronized ( BusLineModel.class ) { - if ( sInstance == null ) { - sInstance = new BusLineModel(); - } - } - } - return sInstance; - } - private BusLineModel() { +object BusLineModel { + private var mBusLinesCallback: IBusLinesCallback? = null + private const val Catche4AllLines = "Catche4AllLines" + private const val TAG = "BusLineModel" + + private var lastAllLinesJson = "" + + @JvmStatic + fun setBusLinesCallback(callback: IBusLinesCallback?) { + mBusLinesCallback = callback } - public void init() { - mContext = AbsMogoApplication.getApp(); - } - public void setBusLinesCallback(IBusLinesCallback callback){ - mBusLinesCallback = callback; - } - public void queryBusLines(){ - String catche4AllLines = SharedPrefsMgr.getInstance().getString(Catche4AllLines); - BindLineListResponse bindLineListResponse = GsonUtils.fromJson(catche4AllLines, BindLineListResponse.class); - if(bindLineListResponse!=null){ - mBusLinesCallback.onBusLinesChange(bindLineListResponse); + + @JvmStatic + fun queryBusLines() { + val catche4AllLines = SharedPrefsMgr.getInstance().getString(Catche4AllLines) + val bindLineListResponse = + GsonUtils.fromJson(catche4AllLines, BindLineListResponse::class.java) + if (bindLineListResponse != null && mBusLinesCallback != null) { + mBusLinesCallback!!.onBusLinesChange(bindLineListResponse) } - OrderServiceManager.queryBindLineListBySn(new OchCommonServiceCallback() { - @Override - public void onSuccess(BindLineListResponse data) { + lastAllLinesJson = catche4AllLines + OrderServiceManager.queryBindLineListBySn(object : OchCommonServiceCallback { + override fun onSuccess(data: BindLineListResponse) { if (null == data && mBusLinesCallback != null) { - mBusLinesCallback.onBusLinesChange(null); - return; + mBusLinesCallback?.onBusLinesChange(null) + return } - - if (mBusLinesCallback != null){ - mBusLinesCallback.onBusLinesChange(data); - SharedPrefsMgr.getInstance().putString(Catche4AllLines, GsonUtils.toJson(data)); + mBusLinesCallback?.onBusLinesChange(data) + val toJson = GsonUtils.toJson(data) + if(lastAllLinesJson==toJson){ + return + }else{ + lastAllLinesJson = toJson + SharedPrefsMgr.getInstance().putString(Catche4AllLines, toJson) } } - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); + override fun onError() { + } + + override fun onFail(code: Int, failMsg: String) { + } + }) + + } + @JvmStatic + fun queryBusLinesByIo() { + OrderServiceManager.queryBindLineListBySn(object : OchCommonServiceCallback { + override fun onSuccess(data: BindLineListResponse) { + if (null == data) { + return + } + + val toJson = GsonUtils.toJson(data) + if(lastAllLinesJson==toJson){ + return + }else{ + lastAllLinesJson = toJson + SharedPrefsMgr.getInstance().putString(Catche4AllLines, toJson) } } - @Override - public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else { - ToastUtils.showShort("查询所有绑定路线失败:"+failMsg); - } + override fun onError() { } - }); + + override fun onFail(code: Int, failMsg: String) { + } + }) } - public void commitSwitchLineId(BindLineListResponse.Result checkLineInfo){ - if (mBusLinesCallback != null){ - mBusLinesCallback.onChangeLineIdSuccess(checkLineInfo); + @JvmStatic + fun commitSwitchLineId(checkLineInfo: BindLineListResponse.Result?) { + if (mBusLinesCallback != null) { + mBusLinesCallback!!.onChangeLineIdSuccess(checkLineInfo) } } + @JvmStatic + fun startLoopAllLine() { + BizLoopManager.setLoopFunction(TAG, LoopInfo(60,::queryBusLinesByIo, scheduler = Schedulers.io())) + } + @JvmStatic + fun stopLoopAllLine() { + BizLoopManager.removeLoopFunction(TAG) + } + } diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/net/OrderServiceManager.kt b/OCH/offline/driver/src/main/java/com/mogo/och/offline/net/OrderServiceManager.kt index d101523eac..748da2798d 100644 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/net/OrderServiceManager.kt +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/net/OrderServiceManager.kt @@ -30,6 +30,6 @@ object OrderServiceManager { SharedPrefsMgr.getInstance().sn ) .transformIoTry() - .subscribe(OchCommonSubscribeImpl(AbsMogoApplication.getApp(), callback, "writeOffCount")) + .subscribe(OchCommonSubscribeImpl(AbsMogoApplication.getApp(), callback, "queryBindLineListBySn")) } } \ No newline at end of file diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/presenter/BusLinePresenter.java b/OCH/offline/driver/src/main/java/com/mogo/och/offline/presenter/BusLinePresenter.java index 78fee6b9e7..efa414e901 100644 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/presenter/BusLinePresenter.java +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/presenter/BusLinePresenter.java @@ -19,7 +19,6 @@ public class BusLinePresenter extends Presenter implements IB public BusLinePresenter(BusSwitchLineView view) { super(view); - BusLineModel.getInstance().init(); OrderModel.getInstance().init(); } @@ -30,7 +29,7 @@ public class BusLinePresenter extends Presenter implements IB } private void initListener() { - BusLineModel.getInstance().setBusLinesCallback(this); + BusLineModel.setBusLinesCallback(this); } @Override @@ -60,15 +59,15 @@ public class BusLinePresenter extends Presenter implements IB } public void queryBusLines(){ - BusLineModel.getInstance().queryBusLines(); + BusLineModel.queryBusLines(); } public void commitSwitchLineId(BindLineListResponse.Result checkLineInfo){ - BusLineModel.getInstance().commitSwitchLineId(checkLineInfo); + BusLineModel.commitSwitchLineId(checkLineInfo); } public void removeListener(){ - BusLineModel.getInstance().setBusLinesCallback(null); + BusLineModel.setBusLinesCallback(null); } public void queryBusRoutes(){ diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/presenter/BusPresenter.java b/OCH/offline/driver/src/main/java/com/mogo/och/offline/presenter/BusPresenter.java index 8279c98ea7..c7cafccc66 100644 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/presenter/BusPresenter.java +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/presenter/BusPresenter.java @@ -26,6 +26,7 @@ import com.mogo.och.offline.callback.IBusControllerStatusCallback; import com.mogo.och.offline.callback.IRefreshBusStationsCallback; import com.mogo.och.offline.callback.ISlidePannelHideCallback; import com.mogo.och.offline.fragment.ShuttleFragment; +import com.mogo.och.offline.model.BusLineModel; import com.mogo.och.offline.model.OrderModel; import com.mogo.och.offline.util.BusTrajectoryManager; import com.mogo.och.common.module.biz.login.ILoginCallback; @@ -288,7 +289,9 @@ public class BusPresenter extends Presenter if(LoginStatusManager.isLogin()){ // OrderModel.getInstance().queryBusRoutes(); OrderModel.getInstance().queryBusCacheRoutes(); + BusLineModel.startLoopAllLine(); }else { + BusLineModel.stopLoopAllLine(); BusTrajectoryManager.getInstance().stopTrajReqLoop(); BusTrajectoryManager.getInstance().stopTrajReqLoop(); clearBusStationsMarkers(); diff --git a/OCH/offline/driver/src/main/res/layout/offline_base_fragment.xml b/OCH/offline/driver/src/main/res/layout/offline_base_fragment.xml index cc1cdff580..7b275ee30e 100644 --- a/OCH/offline/driver/src/main/res/layout/offline_base_fragment.xml +++ b/OCH/offline/driver/src/main/res/layout/offline_base_fragment.xml @@ -251,6 +251,18 @@ android:layout_width="@dimen/dp_142" android:layout_height="@dimen/dp_142"/> + + 确认 取消 + 离线\n模式 + 暂无任务 本站核销成功:%1$d人 本站核销成功:0人