From 7804ce8edeba51418b5fde2d306e5f476dfb5993 Mon Sep 17 00:00:00 2001
From: 18034727885 <973609879@qq.com>
Date: 星期三, 18 三月 2026 10:03:22 +0800
Subject: [PATCH] 合并最新代码
---
app/src/main/java/com/driver/igotrip/base/MyApplication.kt | 299 +++++++++++++++++++++++++++++++++--------------------------
1 files changed, 165 insertions(+), 134 deletions(-)
diff --git a/app/src/main/java/com/driver/igotrip/base/MyApplication.kt b/app/src/main/java/com/driver/igotrip/base/MyApplication.kt
index 94d16c1..5db1c8f 100644
--- a/app/src/main/java/com/driver/igotrip/base/MyApplication.kt
+++ b/app/src/main/java/com/driver/igotrip/base/MyApplication.kt
@@ -1,6 +1,5 @@
package com.driver.igotrip.base
-import android.R.id.message
import android.annotation.SuppressLint
import android.app.Activity
import android.app.Application
@@ -8,31 +7,29 @@
import android.content.Intent
import android.os.*
import android.util.Log
-import androidx.annotation.RequiresApi
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentManager
import cn.jpush.android.api.JPushInterface
import cn.jpush.android.api.TagAliasCallback
+import cn.sinata.rxnetty.LogHelper.initLogs
+import cn.sinata.rxnetty.LogHelper.logRecord
import cn.sinata.rxnetty.NettyClient
import cn.sinata.xldutils.BaseApplication
import cn.sinata.xldutils.utils.SPUtils
import cn.sinata.xldutils.utils.sysErr
-import com.driver.igotrip.BuildConfig
import com.driver.igotrip.R
-import com.driver.igotrip.base.BaseEvent.REFREASH_ORDERLIST
import com.driver.igotrip.bean.OrderBean
import com.driver.igotrip.bean.OrderResData
import com.driver.igotrip.bean.OrderSimpleData
import com.driver.igotrip.bean.websocket.HeartBean
import com.driver.igotrip.netUtls.*
-import com.driver.igotrip.netUtls.Api.getDriverOrderMessage
import com.driver.igotrip.ui.main.TripActivity
import com.driver.igotrip.ui.main.small_cargo.SmallCargoActivity
import com.driver.igotrip.ui.pub.LoginActivity
import com.driver.igotrip.utils.AudioRecoderUtils
import com.driver.igotrip.utils.Cache.CacheKey
import com.driver.igotrip.utils.Cache.CacheUtil
-import com.driver.igotrip.utils.DES
import com.driver.igotrip.utils.LanguageManager
-import com.driver.igotrip.utils.LanguageUtil
import com.driver.igotrip.utils.LogUtils
import com.google.android.gms.maps.model.LatLng
import com.google.cloud.texttospeech.v1.*
@@ -41,11 +38,7 @@
import com.tencent.bugly.crashreport.CrashReport
import com.umeng.commonsdk.UMConfigure
import com.umeng.socialize.PlatformConfig
-import com.umeng.socialize.utils.DeviceConfigInternal.context
import com.xuexiang.xui.XUI
-import kotlinx.coroutines.MainScope
-import kotlinx.coroutines.delay
-import kotlinx.coroutines.launch
import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.toast
@@ -74,7 +67,6 @@
return "MyApplication"
}
- @RequiresApi(api = Build.VERSION_CODES.DONUT)
override fun onCreate() {
super.onCreate()
appContext = this
@@ -94,6 +86,7 @@
PlatformConfig.setQQZone("1111276329", "JuAotVjQcUiesxgp") //qq互联
CrashReport.initCrashReport(this, "163c95c374", true);
LogUtils.OpenLog(true)
+ initLogs()
initSocket()
JPushInterface.setDebugMode(true)
JPushInterface.init(this)
@@ -103,7 +96,7 @@
override fun attachBaseContext(base: Context?) {
var language = SPUtils.getString("language")
- // super.attachBaseContext(LanguageUtil.changeAppLanguage(base, language, ""))
+ // super.attachBaseContext(LanguageUtil.changeAppLanguage(base, language, ""))
super.attachBaseContext(LanguageManager.wrapContext(base))
}
@@ -212,53 +205,48 @@
}
private fun initSocket() {
- Log.e("sendLocation: ","开始链接" )
+ Log.e("sendLocation: ", "开始链接")
NettyClient.getInstance().init(this, Api.SOCKET_SERVER, Api.SOCKET_PORT, true)
- NettyClient.getInstance()
- .addOnMessageListener { message: String ->
- initnetdata(message)
- }
- NettyClient.getInstance()
- .setOnConnectListener {
- sendHeart()
- }
- if(frist){
- /* MainScope().launch {
- while (true){
- delay(5000)
- var map = getMapByAny()
- if (getDriverOrderMessage.startsWith("api")) {
- map["appid"] = getAppId()
- var sign = DES.getSign(map)
- map["sign"] = sign
- }
- HttpManager.getInstance().post(getDriverOrderMessage, map, object : MyNoMsgObserver(this@MyApplication) {
- override fun success(responseString: String?) {
- Log.e("长连接接口消息: ",responseString.toString() )
- initnetdata(responseString.toString())
+ NettyClient.getInstance().addOnMessageListener { message: String ->
+ initnetdata(message)
+ }
+ NettyClient.getInstance().setOnConnectListener {
+ sendHeart()
+ }
+ if (frist) {
+ /* MainScope().launch {
+ while (true){
+ delay(5000)
+ var map = getMapByAny()
+ if (getDriverOrderMessage.startsWith("api")) {
+ map["appid"] = getAppId()
+ var sign = DES.getSign(map)
+ map["sign"] = sign
}
- })
- }
- }*/
- frist=false
- }
+ HttpManager.getInstance().post(getDriverOrderMessage, map, object : MyNoMsgObserver(this@MyApplication) {
+ override fun success(responseString: String?) {
+ Log.e("长连接接口消息: ",responseString.toString() )
+ initnetdata(responseString.toString())
+ }
+ })
+ }
+ }*/
+ frist = false
+ }
}
- fun initnetdata(message:String,isnet: Boolean?=false){
+ fun initnetdata(message: String, isnet: Boolean? = false) {
try {
- Log.e("socket_message_by", message)
- Log.d("zmc-stock", message)
-// sysErr("收到websocket消息")
- if (!isLogin&&isnet==false) {
+ if (!isLogin && isnet == false) {
return
}
currentTime = System.currentTimeMillis()
val json = JSONObject(message)
val method = json.optString("method")
- Handler(Looper.getMainLooper()).post {
- // ToastUtils.showShortToast(this, "收到websocket=$method")
+ if (method != "OK") {
+ Log.d("zmc-socket", message)
}
val data = json.optString("data")
val code = json.optInt("code", -1)
@@ -279,7 +267,7 @@
CacheKey.putKeyStr("isAgreen", "1")
NettyClient.getInstance().stopService()
isLogin = false
- var intent = Intent()
+ val intent = Intent()
intent.setClass(this, LoginActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)
@@ -294,7 +282,10 @@
)
EventBus.getDefault().post(BaseEvent(BaseEvent.FORCED_OFFLINE))
val act = activities[activities.size - 1]
- (act as PublicServiceActivity).forceOffline(simpleData.audioUrl, simpleData.msg)
+ (act as PublicServiceActivity).forceOffline(
+ simpleData.audioUrl,
+ simpleData.msg
+ )
if (act is PublicServiceDialogActivity) act.finish()
}
@@ -354,9 +345,14 @@
)
if (act is PublicServiceDialogActivity) act.finish()
}
- 4,5->{
- act?.startActivity<SmallCargoActivity>("orderId" to orderSimpleData.orderId.toString(), "orderType" to orderSimpleData.orderType.toString())
+
+ 4, 5 -> {
+ act?.startActivity<SmallCargoActivity>(
+ "orderId" to orderSimpleData.orderId.toString(),
+ "orderType" to orderSimpleData.orderType.toString()
+ )
}
+
3 -> {
}
@@ -397,32 +393,43 @@
}
Const.SOCKET_METHOD.REASSIGN -> {
+ Log.e(
+ "zmc-socket",
+ "EventBus.getDefault().post(BaseEvent(BaseEvent.REFREASH_MAIN))"
+ )
EventBus.getDefault().post(BaseEvent(BaseEvent.REFREASH_MAIN))
- val orderSimpleData =
- Gson().fromJson(
- data,
- OrderResData::class.java
- )
- val act = activities[activities.size - 1]
- when (orderSimpleData.orderType) {
-// 1, 2, 4 -> {
-// (act as PublicServiceActivity).showOrder(
-// orderSimpleData.audioUrl,
-// orderSimpleData.orderId.toString(),
-// orderSimpleData.orderType.toString(),
-// 30,
-// 2
-// )
-// if (act is PublicServiceDialogActivity) act.finish()
-// }
- 4,5->{
- act?.startActivity<SmallCargoActivity>("orderId" to orderSimpleData.orderId.toString(), "orderType" to orderSimpleData.orderType.toString())
- }
- else->{
- act?.startActivity<TripActivity>("orderId" to orderSimpleData.orderId.toString(), "orderType" to orderSimpleData.orderType.toString())
- }
- }
+// val orderSimpleData =
+// Gson().fromJson(
+// data,
+// OrderResData::class.java
+// )
+// val act = activities[activities.size - 1]
+// when (orderSimpleData.orderType) {
+//// 1, 2, 4 -> {
+//// (act as PublicServiceActivity).showOrder(
+//// orderSimpleData.audioUrl,
+//// orderSimpleData.orderId.toString(),
+//// orderSimpleData.orderType.toString(),
+//// 30,
+//// 2
+//// )
+//// if (act is PublicServiceDialogActivity) act.finish()
+//// }
+// 4, 5 -> {
+// act?.startActivity<SmallCargoActivity>(
+// "orderId" to orderSimpleData.orderId.toString(),
+// "orderType" to orderSimpleData.orderType.toString()
+// )
+// }
+//
+// else -> {
+// act?.startActivity<TripActivity>(
+// "orderId" to orderSimpleData.orderId.toString(),
+// "orderType" to orderSimpleData.orderType.toString()
+// )
+// }
+// }
}
@@ -509,62 +516,76 @@
}
}
+ private fun getOrderWhenNoSocket(){
+ Log.e("sendLocation: ", "定时获取司机订单数据" + (getUserId() != -1).toString())
+ if (getUserId() != -1) {
+ val map = getMapByAny()
+ callNet1(this, Api.getDriverOrderMessage, map, clickAction = {
+ logRecord(TAG, "getOrderWhenNoSocket 获取订单成功 $it")
+ initnetdata(it ?: "")
+ }, {
+ logRecord(TAG, "getOrderWhenNoSocket 获取订单失败")
+ }, false)
+ }
+ }
private fun sendLocation() {
- Log.e("sendLocation: ","发送定位"+(getUserId() != -1).toString() )
- Log.e("sendLocation: ","发送定位"+(aMapLocation != null).toString() )
+ Log.e("sendLocation: ", "发送定位 userId = ${getUserId()}, aMapLocation = ${Gson().toJson(aMapLocation)}")
if (getUserId() != -1 && aMapLocation != null) {
-// val bean = CarLocationBean()
-// val dataBean = CarLocationBean.DataBean(
-// getUserId(),
-// currentOrderId,
-// currentOrderType,
-// aMapLocation!!.longitude,
-// aMapLocation!!.latitude,
-// 0.0,
-// 0.0
-// )
-// bean.data = dataBean
-// NettyClient.getInstance()
-// .sendMessage(Gson().toJson(bean))
-// sysErr(dataBean.toString())
-
-
val map = getMapByAny()
map["orderId"] = currentOrderId
map["orderType"] = currentOrderType
map["driverId"] = getUserId()
map["lon"] = aMapLocation!!.longitude
map["lat"] = aMapLocation!!.latitude
- Log.e("sendLocation: ","发送定位参数"+Gson().toJson(map) )
- callNet1(this, Api.saveOrderPosition, map,clickAction={
- },{
- Log.e("sendLocation: ","发送定位成功" )
- },false)
+ logRecord(TAG, "sendLocation 发送定位参数" + Gson().toJson(map))
+ callNet1(this, Api.saveOrderPosition, map, clickAction = {
+ logRecord(TAG, "sendLocation 发送定位成功")
+ }, {
+ logRecord(TAG, "sendLocation 发送定位失败")
+ }, false)
+
+ val map1 = getMapByAny()
+ map1["orderId"] = currentOrderId
+ map1["orderType"] = currentOrderType
+ map1["driverId"] = getUserId()
+ map1["lon"] = aMapLocation!!.longitude
+ map1["lat"] = aMapLocation!!.latitude
+ map1["altitude"] = 0
+ map1["directionAngle"] = 0
+
+ callNet1(this, Api.positionSocket, map1, clickAction = {
+ logRecord(TAG, "positionSocket 发送定位成功")
+ }, {
+ logRecord(TAG, "positionSocket 发送定位失败")
+ }, false)
}
}
+ val TAG = "MyApplication"
private fun sendHeart() {
- Log.e("sendLocation: ","sendHeart" )
if (getUserId() != -1) {
- Log.i(TAG, "sendHeart: userId === " + getUserId())
+ logRecord(TAG, "sendHeart: userId = " + getUserId())
val bean = HeartBean()
bean.data = HeartBean.DataBean()
- NettyClient.getInstance()
- .sendMessage(Gson().toJson(bean))
+ NettyClient.getInstance().sendMessage(Gson().toJson(bean))
sendLocation()
if (heartHandler == null) {
heartHandler = Handler(mainLooper)
}
heartHandler!!.removeCallbacksAndMessages(null)
testHeartNunm++
- if ((System.currentTimeMillis() - currentTime) / 1000 > 30) {
- sysErr("sendHeart_websocket 重新连接")
- currentTime = System.currentTimeMillis()
- NettyClient.getInstance().checkNettyState()
- } else {
- sysErr("sendHeart_websocket 发送心跳")
+// if ((System.currentTimeMillis() - currentTime) / 1000 > 3) {
+ // sysErr("sendHeart_websocket 重新连接")
+ logRecord(TAG, "sendHeart check socket status")
+ currentTime = System.currentTimeMillis()
+ val nettyState = NettyClient.getInstance().checkNettyState()
+ if (!nettyState) {
+ getOrderWhenNoSocket()
}
+// } else {
+// sysErr("sendHeart_websocket 发送心跳")
+// }
}
heartHandler!!.postDelayed({ sendHeart() }, 5000)
}
@@ -575,7 +596,7 @@
companion object {
- var frist=true
+ var frist = true
private const val TAG = "MyApplication"
public var appContext: MyApplication? = null
var mTtsManager: AudioRecoderUtils? = null
@@ -687,7 +708,7 @@
}
}
- val activities = ArrayList<Activity?>()
+ val activities = ArrayList<Activity?>()
private var showNum = 0
fun finishAll() {
@@ -705,36 +726,45 @@
return act
}
- override fun onActivityPaused(activity: Activity) {
- if (BuildConfig.DEBUG)
- Log.e("zmc-App", "onActivityPaused: " + activity?.javaClass?.name)
- }
- override fun onActivityResumed(activity: Activity) {
- if (BuildConfig.DEBUG)
- Log.i("zmc-App", "onActivityResumed: " + activity?.javaClass?.name)
+ override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
+ activities.add(activity)
+ Log.i("zmc-pageA", "onActivityCreated: " + activity.javaClass.name)
+ if (activity is MyBaseActivity) {
+ activity.supportFragmentManager.registerFragmentLifecycleCallbacks(object :
+ FragmentManager.FragmentLifecycleCallbacks() {
+ override fun onFragmentCreated(
+ fm: FragmentManager,
+ f: Fragment,
+ savedInstanceState: Bundle?
+ ) {
+ super.onFragmentCreated(fm, f, savedInstanceState)
+ Log.i("zmc-pageF", "onFragmentCreated: " + f.javaClass.name)
+ }
+
+ override fun onFragmentDestroyed(fm: FragmentManager, f: Fragment) {
+ super.onFragmentDestroyed(fm, f)
+ Log.e("zmc-pageF", "onFragmentDestroyed: " + f.javaClass.name)
+ }
+ }, true)
+ }
}
override fun onActivityStarted(activity: Activity) {
showNum++
- if (BuildConfig.DEBUG)
- Log.d("zmc-App", "onActivityStarted: " + activity?.javaClass?.name)
+ Log.d("zmc-pageA", "onActivityStarted: " + activity.javaClass.name)
}
- override fun onActivityDestroyed(activity: Activity) {
- if (BuildConfig.DEBUG)
- Log.d("zmc-App", "onActivityDestroyed: " + activity?.javaClass?.name)
- activities.remove(activity)
+ override fun onActivityResumed(activity: Activity) {
+// Log.i("zmc-pageA", "onActivityResumed: " + activity.javaClass.name)
}
- override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {
- if (BuildConfig.DEBUG)
- Log.d("zmc-App", "onActivitySaveInstanceState: " + activity?.javaClass?.name)
+ override fun onActivityPaused(activity: Activity) {
+// Log.e("zmc-pageA", "onActivityPaused: " + activity.javaClass.name)
}
override fun onActivityStopped(activity: Activity) {
- if (BuildConfig.DEBUG)
- Log.e("zmc-App", "onActivityStopped: " + activity?.javaClass?.name)
+ Log.e("zmc-pageA", "onActivityStopped: " + activity.javaClass.name)
showNum--
Handler(Looper.getMainLooper()).postDelayed({
if (showNum == 0 && isPlayVoice) {
@@ -745,14 +775,15 @@
}
isPlayVoice = true
}, 600)
-
}
- override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
- activities.add(activity)
- if (BuildConfig.DEBUG)
- Log.i("zmc-App", "onActivityCreated: " + activity?.javaClass?.name)
+ override fun onActivityDestroyed(activity: Activity) {
+ Log.d("zmc-pageA", "onActivityDestroyed: " + activity.javaClass.name)
+ activities.remove(activity)
}
+ override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {
+// Log.d("zmc-pageA", "onActivitySaveInstanceState: " + activity.javaClass.name)
+ }
}
\ No newline at end of file
--
Gitblit v1.7.1