|
@@ -1,12 +1,72 @@
|
|
|
package com.wdkl.ncs.android.middleware.logic.presenter.home
|
|
|
|
|
|
+import com.enation.javashop.net.engine.model.NetState
|
|
|
+import com.enation.javashop.net.engine.plugin.connection.ConnectionQuality
|
|
|
+import com.enation.javashop.net.engine.plugin.exception.ExceptionHandle
|
|
|
+import com.enation.javashop.net.engine.utils.ThreadFromUtils
|
|
|
+import com.google.gson.FieldNamingPolicy
|
|
|
+import com.google.gson.GsonBuilder
|
|
|
import com.wdkl.ncs.android.lib.base.RxPresenter
|
|
|
+import com.wdkl.ncs.android.lib.utils.ConnectionObserver
|
|
|
+import com.wdkl.ncs.android.lib.utils.getEventCenter
|
|
|
+import com.wdkl.ncs.android.lib.utils.getJsonString
|
|
|
+import com.wdkl.ncs.android.lib.vo.NetStateEvent
|
|
|
+import com.wdkl.ncs.android.middleware.api.WatchManageDeviceApi
|
|
|
import com.wdkl.ncs.android.middleware.di.MiddlewareDaggerComponent
|
|
|
import com.wdkl.ncs.android.middleware.logic.contract.home.AppUpdateContract
|
|
|
+import com.wdkl.ncs.android.middleware.model.dos.AppVersionDO
|
|
|
+import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
|
|
|
+import com.wdkl.ncs.android.middleware.model.dto.TcpSeverDTO
|
|
|
+import com.wdkl.ncs.android.middleware.model.vo.DeviceVO
|
|
|
+import io.reactivex.disposables.Disposable
|
|
|
import javax.inject.Inject
|
|
|
|
|
|
class AppUpdatePresenter @Inject constructor() : RxPresenter<AppUpdateContract.View>(), AppUpdateContract.Presenter {
|
|
|
override fun bindDagger() {
|
|
|
MiddlewareDaggerComponent.component.inject(this)
|
|
|
}
|
|
|
+
|
|
|
+ @Inject
|
|
|
+ protected lateinit var watchManageDeviceApi: WatchManageDeviceApi
|
|
|
+
|
|
|
+ private val observer = object : ConnectionObserver<Any>(){
|
|
|
+ override fun onStartWithConnection() {
|
|
|
+ providerView().start()
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onNextWithConnection(result: Any, connectionQuality: ConnectionQuality) {
|
|
|
+ providerView().complete()
|
|
|
+ when (result) {
|
|
|
+ is AppVersionDO -> {
|
|
|
+ //版本信息
|
|
|
+ providerView().complete("")
|
|
|
+ providerView().handleAppVersion(result as AppVersionDO)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onErrorWithConnection(error: ExceptionHandle.ResponeThrowable, connectionQuality: ConnectionQuality) {
|
|
|
+ providerView().onError(error.customMessage)
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun attachSubscribe(var1: Disposable) {
|
|
|
+ addDisposable(var1)
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onNoneNet() {
|
|
|
+ getEventCenter().post(NetStateEvent(NetState.NONE))
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun getAppVersion(partId: Int, deviceType: Int) {
|
|
|
+ watchManageDeviceApi.getAppVersion(partId, deviceType)
|
|
|
+ .map {
|
|
|
+ val gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
|
|
|
+ val appVersion = gson.fromJson(it.getJsonString(), AppVersionDO::class.java)
|
|
|
+
|
|
|
+ return@map appVersion
|
|
|
+ }
|
|
|
+ .compose(ThreadFromUtils.defaultSchedulers())
|
|
|
+ .subscribe(observer)
|
|
|
+ }
|
|
|
}
|