From 71a056d02f9084af82bd6fe3962e5b46d5628e4f Mon Sep 17 00:00:00 2001 From: liugl <liugl@sinata.cn> Date: 星期二, 11 八月 2020 21:56:10 +0800 Subject: [PATCH] 8.11 --- app/src/main/java/com/okgoincar/base/MyApplication.kt | 96 ++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 77 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/okgoincar/base/MyApplication.kt b/app/src/main/java/com/okgoincar/base/MyApplication.kt index dd2a56c..2506495 100644 --- a/app/src/main/java/com/okgoincar/base/MyApplication.kt +++ b/app/src/main/java/com/okgoincar/base/MyApplication.kt @@ -3,31 +3,32 @@ import android.app.Activity import android.app.Application import android.content.Context -import android.location.Location -import android.os.Build import android.os.Bundle import android.os.Handler import android.os.Looper import android.util.Log -import androidx.annotation.RequiresApi import androidx.multidex.MultiDex +import cn.sinata.rxnetty.Cache.CacheUtil import cn.sinata.rxnetty.NettyClient import cn.sinata.xldutils.BaseApplication import cn.sinata.xldutils.utils.sysErr import com.amap.api.location.AMapLocation import com.amap.api.track.AMapTrackClient import com.amap.api.track.ErrorCode -import com.amap.api.track.OnTrackLifecycleListener import com.amap.api.track.TrackParam -import com.amap.api.track.query.model.* -import com.okgoincar.netUtls.getUserId -import com.okgoincar.utils.Cache.CacheKey +import com.amap.api.track.query.model.AddTerminalRequest +import com.amap.api.track.query.model.QueryTerminalRequest +import com.amap.api.track.query.model.QueryTerminalResponse import com.google.gson.Gson +import com.okgoincar.base.gpsnav.util.TTSController import com.okgoincar.bean.CarLocationBean +import com.okgoincar.bean.OrderResData import com.okgoincar.bean.OrderSimpleData import com.okgoincar.bean.websocket.HeartBean import com.okgoincar.netUtls.Api +import com.okgoincar.netUtls.getUserId import com.okgoincar.slab.MySlabBaseActivity +import com.okgoincar.utils.Cache.CacheKey import org.jetbrains.anko.toast import org.json.JSONObject import java.security.SecureRandom @@ -70,10 +71,12 @@ // LogUtils.OpenLog(true) initUpPoint() initSocket() - } private fun initSocket() { + Handler(Looper.getMainLooper()).post { + toast("websocket初始化") + } NettyClient.getInstance().init(this, Api.SOCKET_SERVER, Api.SOCKET_PORT, true) NettyClient.getInstance() .addOnMessageListener { message: String? -> @@ -83,15 +86,26 @@ currentTime = System.currentTimeMillis() val json = JSONObject(message) val method = json.optString("method") -// Handler(Looper.getMainLooper()).post { -// toast("收到websocket=$method") -// } + Handler(Looper.getMainLooper()).post { + toast("收到websocket=$method") + } val data = json.optString("data") val code = json.optInt("code", -1) if (code == 200) { when (method) { Const.SOCKET_METHOD.OK -> { testReceiveNum++ + } + Const.SOCKET_METHOD.OFFLINE -> { +// CacheUtil.get().clear() +// NettyClient.getInstance().stopService() +// var intent = Intent() +// intent.setClass(this, SlabLoginActivity::class.java) +// intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) +// startActivity(intent) +// Handler(Looper.getMainLooper()).post { +// toast("您的账号已在其他平台登录") +// } } Const.SOCKET_METHOD.ORDER_STATUS -> { val orderSimpleData = @@ -106,7 +120,9 @@ val act = activities[activities.size - 1] (act as MySlabBaseActivity).showOrder( orderSimpleData.orderId.toString(), - orderSimpleData.orderType.toString() + orderSimpleData.orderType.toString(), + orderSimpleData.time, + 1 ) } if (orderSimpleData.status == 2) { @@ -116,6 +132,21 @@ orderSimpleData.orderType.toString() ) } + } + + Const.SOCKET_METHOD.REASSIGN -> { + val orderSimpleData = + Gson().fromJson( + data, + OrderResData::class.java + ) + val act = activities[activities.size - 1] + (act as MySlabBaseActivity).showOrder( + orderSimpleData.orderId.toString(), + orderSimpleData.orderType.toString(), + 30, + 2 + ) } } } else { @@ -129,6 +160,7 @@ .setOnConnectListener { sendHeart() } + sendHeart() } override fun attachBaseContext(base: Context?) { @@ -229,14 +261,14 @@ bean.data = dataBean NettyClient.getInstance() .sendMessage(Gson().toJson(bean)) - Handler(Looper.getMainLooper()).post { - toast("发送location --> $dataBean") - } +// Handler(Looper.getMainLooper()).post { +// toast("发送location --> $dataBean") +// } sysErr(dataBean.toString()) } } - private fun sendHeart() { + open fun sendHeart() { if (getUserId() != -1) { Log.i(TAG, "sendHeart: userId === " + getUserId()) val bean = HeartBean() @@ -252,7 +284,13 @@ if ((System.currentTimeMillis() - currentTime) / 1000 > 30) { sysErr("sendHeart_websocket 重新连接") currentTime = System.currentTimeMillis() - NettyClient.getInstance().checkNettyState() +// var s = CacheUtil.get().getAsString("reConnect") +// s = "$s###初始化重连" +// CacheUtil.get().put("reConnect", s) +// NettyClient.getInstance().checkNettyState() + NettyClient.getInstance().checkNettyStateNull() //reconnect + +// initSocket() heartHandler!!.postDelayed({ sendHeart() }, 5000) } else { sysErr("sendHeart_websocket 发送心跳") @@ -268,12 +306,21 @@ companion object { private const val TAG = "MyApplication" public var appContext: MyApplication? = null + protected var mTtsManager: TTSController? = null fun getInstance(): MyApplication? { if (appContext == null) { appContext = MyApplication() } return appContext + } + + fun getTTsManager(): TTSController { + if (mTtsManager == null) { + mTtsManager = TTSController.getInstance(getInstance()) + mTtsManager?.init() + } + return mTtsManager!! } fun getLocation(): AMapLocation { @@ -283,8 +330,8 @@ return Gson().fromJson(locationStr, AMapLocation::class.java) } else { val amap = AMapLocation("") - amap.latitude = -1.0 - amap.longitude = -1.0 + amap.latitude = 0.0 + amap.longitude = 0.0 return amap } } else { @@ -339,6 +386,7 @@ } private val activities = ArrayList<Activity?>() + private var showNum = 0 override fun onActivityPaused(activity: Activity?) { } @@ -347,6 +395,7 @@ } override fun onActivityStarted(activity: Activity?) { + showNum++ } override fun onActivityDestroyed(activity: Activity?) { @@ -357,9 +406,18 @@ } override fun onActivityStopped(activity: Activity?) { + showNum-- + Handler(Looper.getMainLooper()).postDelayed({ + if (showNum == 0) { + getTTsManager().setVideoText("OK出行司机已置于后台,可能会导致听单异常,里程计费差异,请勿切换。") + } + }, 600) + } override fun onActivityCreated(activity: Activity?, savedInstanceState: Bundle?) { activities.add(activity) } + + } \ No newline at end of file -- Gitblit v1.7.1