From bbc64160643c4ed818eb574831dc303b0a979089 Mon Sep 17 00:00:00 2001
From: 18034727885 <973609879@qq.com>
Date: 星期五, 07 八月 2026 14:23:15 +0800
Subject: [PATCH] 修复问题 升级版本号
---
app/src/main/java/com/driver/igotrip/ui/main/DriverPayFragment.kt | 2
app/src/main/java/com/driver/igotrip/ui/main/small_cargo/SmallCargoActivity.kt | 281 ++-----
app/src/main/java/com/driver/igotrip/utils/crash/CrashHandler.kt | 160 +++++
app/src/main/java/com/driver/igotrip/ui/main/GoOrderTipsFragment.kt | 2
app/src/main/java/com/driver/igotrip/ui/main/ModifyAddressFragment.kt | 13
app/src/main/java/com/driver/igotrip/ui/main/major/MajorSureMoney2Activity.kt | 28
app/src/main/java/com/driver/igotrip/ui/mine/FeedbackRemarkActivity.kt | 3
app/src/main/java/com/driver/igotrip/ui/main/TipsFragment.kt | 3
app/src/main/java/com/driver/igotrip/ui/main/ReassignActivity.kt | 102 +-
app/src/main/java/com/driver/igotrip/ui/mine/ChangeEmailActivity.kt | 2
app/src/main/java/com/driver/igotrip/netUtls/HttpManager.java | 70 +-
app/src/main/res/layout/activity_mine.xml | 6
app/src/main/java/com/driver/igotrip/ui/pub/BecomeDriverActivity.kt | 39
app/src/main/java/com/driver/igotrip/ui/main/MediaOperationActivity.kt | 2
app/src/main/java/com/driver/igotrip/base/BaseRecyclerActivity.kt | 4
app/src/main/java/com/driver/igotrip/netUtls/LoggingInterceptor.java | 15
app/src/main/java/com/driver/igotrip/ui/main/major/MajorSureMoneyActivity.kt | 34
app/src/main/java/com/driver/igotrip/netUtls/Api.java | 1
app/src/main/java/com/driver/igotrip/ui/mine/money_bag/ApplyMoneyActivity.kt | 13
rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java | 19
app/build.gradle | 4
app/src/main/java/com/driver/igotrip/ui/main/MainActivity.kt | 28
app/src/main/java/com/driver/igotrip/utils/view/SlidingButton.kt | 1
app/src/main/java/com/driver/igotrip/utils/UtilKt.kt | 4
app/src/main/java/com/driver/igotrip/ui/card/VerifyCardPwdActivity.kt | 16
rxnetty/src/main/java/cn/sinata/rxnetty/LogHelper.java | 13
rxnetty/src/main/java/cn/sinata/rxnetty/NettyClient.java | 4
app/src/main/java/com/driver/igotrip/base/gaode/AMapKit.kt | 44
app/src/main/java/com/driver/igotrip/utils/crash/CrashInfo.kt | 39 +
app/src/main/java/com/driver/igotrip/ui/main/ChangPhoneActivity.kt | 58 -
app/src/main/java/com/driver/igotrip/base/MyApplication.kt | 312 ++-------
app/src/main/java/com/driver/igotrip/base/local/BasePhotoActivity.kt | 4
/dev/null | 159 ----
app/src/main/java/com/driver/igotrip/ui/main/OrderOverActivity.kt | 2
app/src/main/java/com/driver/igotrip/ui/main/GetOrderFragment.kt | 19
app/src/main/java/com/driver/igotrip/base/gaode/NaviGoogleActivity.kt | 2
app/src/main/java/com/driver/igotrip/ui/main/TripActivity.kt | 226 ++----
app/src/main/java/com/driver/igotrip/utils/crash/LogUploader.kt | 141 ++++
app/src/main/java/com/driver/igotrip/netUtls/NetKit.kt | 33
app/src/main/java/com/driver/igotrip/ui/mine/DriverAttestationActivity.kt | 2
40 files changed, 875 insertions(+), 1,035 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 6ec3f68..da72a1b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -29,8 +29,8 @@
applicationId "com.driver.goposttrip"
minSdkVersion 23
targetSdkVersion 35
- versionCode 51
- versionName "1.7.2"
+ versionCode 52
+ versionName "1.7.3"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/app/src/main/java/com/driver/igotrip/base/BaseRecyclerActivity.kt b/app/src/main/java/com/driver/igotrip/base/BaseRecyclerActivity.kt
index 1e5a99b..556bb8c 100644
--- a/app/src/main/java/com/driver/igotrip/base/BaseRecyclerActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/base/BaseRecyclerActivity.kt
@@ -123,7 +123,7 @@
}
adapters!!.notifyDataSetChanged()
noShowNothing()
- },{
+ },{_, _ ->
noShowNothing()
dismissDialog()
})
@@ -160,7 +160,7 @@
}
adapters!!.notifyDataSetChanged()
noShowNothing()
- }) {
+ }) {_, _ ->
dismissDialog()
noShowNothing()
}
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 d2959b1..9ac11c8 100644
--- a/app/src/main/java/com/driver/igotrip/base/MyApplication.kt
+++ b/app/src/main/java/com/driver/igotrip/base/MyApplication.kt
@@ -18,7 +18,6 @@
import cn.sinata.rxnetty.LogHelper.logRecord
import cn.sinata.rxnetty.NettyClient
import cn.sinata.xldutils.BaseApplication
-import cn.sinata.xldutils.utils.sysErr
import com.driver.igotrip.R
import com.driver.igotrip.bean.OrderBean
import com.driver.igotrip.bean.OrderResData
@@ -31,23 +30,16 @@
import com.driver.igotrip.utils.Cache.CacheKey
import com.driver.igotrip.utils.Cache.CacheUtil
import com.driver.igotrip.utils.LogUtils
+import com.driver.igotrip.utils.crash.CrashHandler
import com.google.android.gms.maps.model.LatLng
import com.google.cloud.texttospeech.v1.*
import com.google.gson.Gson
-import com.google.protobuf.ByteString
import com.xuexiang.xui.XUI
import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.toast
import org.json.JSONObject
-import java.io.FileOutputStream
-import java.security.SecureRandom
-import java.security.cert.X509Certificate
import java.util.*
-import javax.net.ssl.HttpsURLConnection
-import javax.net.ssl.SSLContext
-import javax.net.ssl.TrustManager
-import javax.net.ssl.X509TrustManager
//MD5: A6:19:B7:92:10:27:61:22:BC:37:1B:98:9B:9E:1A:82
//SHA1: B9:D3:9B:10:B1:25:77:FF:62:D2:56:83:CC:14:1B:EA:DB:BC:97:74
@@ -55,10 +47,8 @@
* Created by Administrator on 2018/1/17.
*/
open class MyApplication : BaseApplication(), Application.ActivityLifecycleCallbacks {
- //设置debug模式
- var isDebug = false
- var heartHandler: Handler? = null
- var currentTime = System.currentTimeMillis()
+ private val heartHandler = Handler(Looper.getMainLooper())
+ private var currentTime = System.currentTimeMillis()
override fun setSharedPreferencesName(): String {
return "MyApplication"
@@ -83,17 +73,17 @@
// PlatformConfig.setQQZone("1111276329", "JuAotVjQcUiesxgp") //qq互联
// CrashReport.initCrashReport(this, "163c95c374", true);
LogUtils.OpenLog(true)
- initLogs()
+ initLogs(this)
initSocket()
// JPushInterface.setDebugMode(true)
// JPushInterface.init(this)
setAlisa()
+ CrashHandler.init(this)
}
public fun setAlisa() {
if (CacheKey.getUserId().isNotEmpty()) {
- var alisa = "DRIVER" + CacheKey.getUserId()
- sysErr(alisa)
+ val alisa = "DRIVER" + CacheKey.getUserId()
mHandler.sendMessage(mHandler.obtainMessage(MSG_SET_ALIAS, alisa))
}
}
@@ -120,8 +110,9 @@
MSG_ORDER_CANCEL -> {
val pair = msg.obj as Pair<String, OrderSimpleData>
val orderBean = Gson().fromJson(pair.first, OrderBean::class.java)
- val act = activities[activities.size - 1]
+ val act = getTopActivity()
if (orderBean.data.cancelMidway == 1) {
+ logRecord("订单被中途取消")
(act as PublicServiceActivity).cancelOrder(
pair.second.audioUrl,
pair.second.orderId.toString(),
@@ -131,15 +122,17 @@
)
if (act is PublicServiceDialogActivity) act.finish()
} else if (pair.second.status == 12) { //取消待乘客支付弹窗
+ logRecord("订单取消待支付")
(act as PublicServiceActivity).cancelOrder(
- pair.second.audioUrl,
- "${orderBean.data.cancelPayMoney}"
+ pair.second.audioUrl, "${orderBean.data.cancelPayMoney}"
)
if (act is PublicServiceDialogActivity) act.finish()
} else {
if (pair.second.status == 10 && orderBean.data.cancelPayMoney != 0.0) {
//乘客已支付的取消,不做处理
+ logRecord("乘客已支付的取消")
} else if (orderBean.data.timeOutCancel < System.currentTimeMillis()) { //已超时弹窗
+ logRecord("订单已超时")
(act as PublicServiceActivity).cancelOrder(
pair.second.from,
pair.second.audioUrl,
@@ -154,9 +147,8 @@
// "orderId" to pair.second.orderId.toString(),
// "orderType" to pair.second.orderType.toString()
// )
- Handler(mainLooper).post {
- getTTsManager().setVideoText(pair.second.audioUrl)
- }
+ logRecord("司机没超时,用户也无取消费用,只播语音 不做处理")
+ getTTsManager().setVideoText(pair.second.audioUrl)
}
}
}
@@ -193,7 +185,6 @@
// }
private fun initSocket() {
- Log.e("sendLocation: ", "开始链接")
NettyClient.getInstance().init(this, Api.SOCKET_SERVER, Api.SOCKET_PORT, true)
NettyClient.getInstance().addOnMessageListener { message: String ->
initnetdata(message)
@@ -201,27 +192,6 @@
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())
- }
- })
- }
- }*/
- frist = false
- }
-
}
@@ -234,24 +204,19 @@
val json = JSONObject(message)
val method = json.optString("method")
if (method != "OK") {
- Log.d("zmc-socket", message)
+ Log.d(TAG, message)
}
val data = json.optString("data")
val code = json.optInt("code", -1)
if (code == 200) {
- Log.e(" 订单: ", method)
+ Log.e(TAG, "method: $method")
when (method) {
Const.SOCKET_METHOD.OK -> {
- testReceiveNum++
+
}
Const.SOCKET_METHOD.OFFLINE -> {
logRecord("socket==>账号被挤下线:$data")
- val simpleData =
- Gson().fromJson(
- data,
- OrderSimpleData::class.java
- )
CacheUtil.get().clear()
CacheKey.putKeyStr("isAgreen", "1")
NettyClient.getInstance().stopService()
@@ -265,42 +230,31 @@
Const.SOCKET_METHOD.AFTER_WORK -> {
logRecord("socket==>强制下线:$data")
- val simpleData =
- Gson().fromJson(
- data,
- OrderSimpleData::class.java
- )
+ val simpleData = Gson().fromJson(
+ data, OrderSimpleData::class.java
+ )
EventBus.getDefault().post(BaseEvent(BaseEvent.FORCED_OFFLINE))
- val act = activities[activities.size - 1]
+ val act = getTopActivity()
(act as PublicServiceActivity).forceOffline(
- simpleData.audioUrl,
- simpleData.msg
+ simpleData.audioUrl, simpleData.msg
)
if (act is PublicServiceDialogActivity) act.finish()
}
Const.SOCKET_METHOD.ORDER_STATUS -> {
logRecord("socket==>订单状态改变:$data")
- val orderSimpleData =
- Gson().fromJson(
- data,
- OrderSimpleData::class.java
- )
-
- OrderTimeOutManager.instance.checkOrderManager(
- "${orderSimpleData.orderId}",
- "${orderSimpleData.orderType}",
- orderSimpleData.status
+ val orderSimpleData = Gson().fromJson(
+ data, OrderSimpleData::class.java
)
for (view in orderStatueViews.asReversed().indices) {
orderStatueViews[view].orderInfo(orderSimpleData)
}
if (orderSimpleData.status == 1) {
- val act = activities[activities.size - 1]
-// MyApplication.getTTsManager().setVideoText("收到新的订单")
+ val act = getTopActivity()
+// MyApplication.getTTsManager().setVideoText("收到新的订单")
- Log.e(" 订单: ", "showOrder")
+ logRecord("socket==>收到新的订单")
when (orderSimpleData.orderType) {
1, 2 -> {
@@ -327,20 +281,19 @@
}
}
if (orderSimpleData.status == 2) {
- val act = activities[activities.size - 1]
+ logRecord("socket==>处理订单")
+ val act = getTopActivity()
when (orderSimpleData.orderType) {
1, 2 -> {
(act as PublicServiceActivity).toDorderAct(
- orderSimpleData.orderId.toString(),
- orderSimpleData.orderType.toString()
+ orderSimpleData.orderId.toString(), orderSimpleData.orderType.toString()
)
if (act is PublicServiceDialogActivity) act.finish()
}
4, 5 -> {
act?.startActivity<SmallCargoActivity>(
- "orderId" to orderSimpleData.orderId.toString(),
- "orderType" to orderSimpleData.orderType.toString()
+ "orderId" to orderSimpleData.orderId.toString(), "orderType" to orderSimpleData.orderType.toString()
)
}
@@ -350,32 +303,30 @@
}
}
if (orderSimpleData.status == 10 || orderSimpleData.status == 12) {
+ logRecord("socket==>订单被取消")
val map = getMapByAny()
map["orderId"] = orderSimpleData.orderId
map["orderType"] = orderSimpleData.orderType
EventBus.getDefault().post(BaseEvent(BaseEvent.ORDER_CANCEL))
- callNet(this, Api.queryOrderInfo, map) {
+ callNet1(this, Api.queryOrderInfo, map, clickAction = {
+ logRecord("socket==>订单被取消获取订单详情成功data:$it")
val message = Message().apply {
what = MSG_ORDER_CANCEL
obj = Pair(it, orderSimpleData)
}
mHandler.sendMessage(message)
- }
+ }, errorAction = { code, msg ->
+ logRecord("socket==>订单被取消获取订单详情失败code:${code} msg:${msg}")
+ }, showError = false)
}
}
Const.SOCKET_METHOD.OFFLINE_PAYMENT -> {
logRecord("socket==>离线支付:$data")
- val orderSimpleData =
- Gson().fromJson(
- data,
- OrderResData::class.java
- )
- val act = activities[activities.size - 1]
+ val orderSimpleData = Gson().fromJson(data, OrderResData::class.java)
+ val act = getTopActivity()
(act as PublicServiceActivity).showDriverPayDialog(
- orderSimpleData.audioUrl,
- orderSimpleData.orderId.toString(),
- orderSimpleData.orderType.toString(), orderSimpleData.money
+ orderSimpleData.audioUrl, orderSimpleData.orderId.toString(), orderSimpleData.orderType.toString(), orderSimpleData.money
)
if (act is PublicServiceDialogActivity) act.finish()
}
@@ -387,10 +338,6 @@
Const.SOCKET_METHOD.REASSIGN -> {
logRecord("socket==>改派:$data")
- Log.e(
- "zmc-socket",
- "EventBus.getDefault().post(BaseEvent(BaseEvent.REFREASH_MAIN))"
- )
EventBus.getDefault().post(BaseEvent(BaseEvent.REFREASH_MAIN))
// val orderSimpleData =
@@ -398,7 +345,7 @@
// data,
// OrderResData::class.java
// )
-// val act = activities[activities.size - 1]
+// val act = getTopActivity()
// when (orderSimpleData.orderType) {
//// 1, 2, 4 -> {
//// (act as PublicServiceActivity).showOrder(
@@ -431,11 +378,9 @@
val jsob = JSONObject(data)
// if (jsob.optString("status") == "1") { // 只处理 申请订单消息
logRecord("socket==>修改目的地:$jsob")
- val act = activities[activities.size - 1]
+ val act = getTopActivity()
(act as PublicServiceActivity).modifyAddress(
- jsob.optString("audioUrl"),
- jsob.optString("orderId"),
- jsob.optString("orderType")
+ jsob.optString("audioUrl"), jsob.optString("orderId"), jsob.optString("orderType")
)
// }
if (act is PublicServiceDialogActivity) act.finish()
@@ -444,7 +389,7 @@
Const.SOCKET_METHOD.ORDER_TIME_OUT -> {
val jsob = JSONObject(data)
logRecord("socket==>订单超时:$jsob")
- val act = activities[activities.size - 1]
+ val act = getTopActivity()
/**
* 司机超时推送
@@ -465,10 +410,7 @@
if (act is PublicServiceDialogActivity) act.finish()
} else if (timeOutType == "2") { // 提示并查看订单详情
(act as PublicServiceActivity).goOrderTips(
- orderId,
- orderType,
- audioUrl,
- describe
+ orderId, orderType, audioUrl, describe
)
if (act is PublicServiceDialogActivity) act.finish()
}
@@ -480,12 +422,11 @@
when (jsob.optString("status")) { // status 1=申请,2=同意,3=拒绝
"1" -> {}
"2" -> {
- EventBus.getDefault()
- .post(BaseEvent(BaseEvent.DIFF_PRICE_AGREE))
+ EventBus.getDefault().post(BaseEvent(BaseEvent.DIFF_PRICE_AGREE))
}
"3" -> {
- val act = activities[activities.size - 1]
+ val act = getTopActivity()
val tips = "${act!!.getString(R.string.您的包裹订单)}${
jsob.optString("orderId")
}\n${
@@ -493,11 +434,9 @@
} ${act.getString(R.string.money)} ${jsob.optString("money")} ${
act.getString(R.string.补差价被拒)
}"
- EventBus.getDefault()
- .post(BaseEvent(BaseEvent.DIFF_PRICE_REFUSE))
+ EventBus.getDefault().post(BaseEvent(BaseEvent.DIFF_PRICE_REFUSE))
(act as PublicServiceActivity).onlyTips(
- jsob.optString("audioUrl"),
- tips
+ jsob.optString("audioUrl"), tips
)
if (act is PublicServiceDialogActivity) act.finish()
}
@@ -506,7 +445,7 @@
}
} else {
- sysErr("socket return code ===$code")
+ Log.e(TAG, "socket return code ===$code")
}
} catch (e: Exception) {
e.printStackTrace()
@@ -514,22 +453,20 @@
}
private fun getOrderWhenNoSocket() {
- Log.e("sendLocation: ", "定时获取司机订单数据" + (getUserId() != -1).toString())
+ Log.e(TAG, "定时获取socket数据" + (getUserId() != -1).toString())
if (getUserId() != -1) {
val map = getMapByAny()
callNet1(this, Api.getDriverOrderMessage, map, clickAction = {
- logRecord("getOrderWhenNoSocket 获取订单成功 $it")
initnetdata(it ?: "")
- }, {
- logRecord("getOrderWhenNoSocket 获取订单失败")
+ }, { code, msg ->
+ Log.e(TAG, "定时获取socket数据: code:${code} msg:${msg}")
}, false)
}
}
private fun sendLocation() {
Log.e(
- "sendLocation: ",
- "发送定位 userId = ${getUserId()}, aMapLocation = ${Gson().toJson(aMapLocation)}"
+ TAG, "发送定位 userId = ${getUserId()}, latitude = ${aMapLocation?.latitude},longitude = ${aMapLocation?.longitude}"
)
if (getUserId() != -1 && aMapLocation != null) {
val map = getMapByAny()
@@ -538,11 +475,8 @@
map["driverId"] = getUserId()
map["lon"] = aMapLocation!!.longitude
map["lat"] = aMapLocation!!.latitude
- logRecord("sendLocation 发送定位参数" + Gson().toJson(map))
- callNet1(this, Api.saveOrderPosition, map, clickAction = {
- logRecord("sendLocation 发送定位成功")
- }, {
- logRecord("sendLocation 发送定位失败")
+ callNet1(this, Api.saveOrderPosition, map, clickAction = {}, { code, msg ->
+ Log.e(TAG, "saveOrderPosition失败: code:${code} msg:${msg}")
}, false)
val map1 = getMapByAny()
@@ -554,30 +488,22 @@
map1["altitude"] = 0
map1["directionAngle"] = 0
- callNet1(this, Api.positionSocket, map1, clickAction = {
- logRecord("positionSocket 发送定位成功")
- }, {
- logRecord("positionSocket 发送定位失败")
+ callNet1(this, Api.positionSocket, map1, clickAction = {}, { code, msg ->
+ Log.e(TAG, "positionSocket失败: code:${code} msg:${msg}")
}, false)
}
}
- val TAG = "MyApplication"
+ private val TAG = "MyApplication"
private fun sendHeart() {
if (getUserId() != -1) {
- logRecord("sendHeart: userId = " + getUserId())
val bean = HeartBean()
bean.data = HeartBean.DataBean()
NettyClient.getInstance().sendMessage(Gson().toJson(bean))
sendLocation()
- if (heartHandler == null) {
- heartHandler = Handler(mainLooper)
- }
- heartHandler!!.removeCallbacksAndMessages(null)
- testHeartNunm++
+ heartHandler.removeCallbacksAndMessages(null)
// if ((System.currentTimeMillis() - currentTime) / 1000 > 3) {
// sysErr("sendHeart_websocket 重新连接")
- logRecord("sendHeart check socket status")
currentTime = System.currentTimeMillis()
val nettyState = NettyClient.getInstance().checkNettyState()
if (!nettyState) {
@@ -587,7 +513,7 @@
// sysErr("sendHeart_websocket 发送心跳")
// }
}
- heartHandler!!.postDelayed({ sendHeart() }, 5000)
+ heartHandler.postDelayed({ sendHeart() }, 5000)
}
interface OrderStatueView {
@@ -596,14 +522,12 @@
companion object {
- var frist = true
- private const val TAG = "MyApplication"
- public var appContext: MyApplication? = null
+ var appContext: MyApplication? = null
var mTtsManager: AudioRecoderUtils? = null
var isPlayVoice = true
var lastPlayTime = 0L //上次提示播放时间
var hasAutoGoTripping = false //true 本次启动已经自动跳转过
- public var isLogin: Boolean = true
+ var isLogin: Boolean = true
fun getInstance(): MyApplication? {
if (appContext == null) {
appContext = MyApplication()
@@ -619,82 +543,22 @@
}
fun getLocation(): LatLng? {
- if (aMapLocation == null) {
- return null
- } else {
- return aMapLocation!!
- }
+ return aMapLocation
}
- fun tts(content: String) {
- Thread {
-
- TextToSpeechClient.create().use { textToSpeechClient ->
- // Set the text input to be synthesized
- val input: SynthesisInput =
- SynthesisInput.newBuilder().setText(content).build()
-
- // Build the voice request, select the language code ("en-US") and the ssml voice gender
- // ("neutral")
- val voice: VoiceSelectionParams = VoiceSelectionParams.newBuilder()
- .setLanguageCode("en-US")
- .setSsmlGender(SsmlVoiceGender.NEUTRAL)
- .build()
-
- // Select the type of audio file you want returned
- val audioConfig: AudioConfig =
- AudioConfig.newBuilder().setAudioEncoding(AudioEncoding.MP3).build()
-
- // Perform the text-to-speech request on the text input with the selected voice parameters and
- // audio file type
- val response: SynthesizeSpeechResponse =
- textToSpeechClient.synthesizeSpeech(input, voice, audioConfig)
-
- // Get the audio contents from the response
- val audioContents: ByteString = response.getAudioContent()
-
- FileOutputStream("output.mp3").use { out ->
- out.write(audioContents.toByteArray())
- println("Audio content written to file \"output.mp3\"")
- }
- }
-
- }.start()
- }
-
- var aMapLocation: LatLng? = null
+ private var aMapLocation: LatLng? = null
var currentOrderId: String = ""
var currentOrderType: String = ""
- var orderStatueViews: MutableList<OrderStatueView> =
- mutableListOf()
- var testHeartNunm = 0
- var testReceiveNum = 0
- fun handleSSLHandshake() {
- try {
- val trustAllCerts = arrayOf<TrustManager>(object : X509TrustManager {
- override fun getAcceptedIssuers(): Array<X509Certificate?> {
- return arrayOfNulls(0)
- }
+ var orderStatueViews: MutableList<OrderStatueView> = mutableListOf()
- override fun checkClientTrusted(
- certs: Array<X509Certificate>,
- authType: String,
- ) {
- }
+ //设置定位
+ fun setLocation(latLng: LatLng) {
+ setLocation(latLng.latitude, latLng.longitude)
+ }
- override fun checkServerTrusted(
- certs: Array<X509Certificate>,
- authType: String,
- ) {
- }
- })
- val sc = SSLContext.getInstance("TLS")
- // trustAllCerts信任所有的证书
- sc.init(null, trustAllCerts, SecureRandom())
- HttpsURLConnection.setDefaultSSLSocketFactory(sc.socketFactory)
- HttpsURLConnection.setDefaultHostnameVerifier { hostname, session -> true }
- } catch (ignored: Exception) {
- }
+ //设置定位
+ fun setLocation(latitude: Double, longitude: Double) {
+ this.aMapLocation = LatLng(latitude, longitude)
}
fun addOrderView(view: OrderStatueView) {
@@ -708,7 +572,13 @@
}
}
- val activities = ArrayList<Activity?>()
+ private val activities = ArrayList<Activity?>()
+
+ //获取顶部activity
+ private fun getTopActivity(): Activity? {
+ return activities.lastOrNull()
+ }
+
private var showNum = 0
fun finishAll() {
@@ -717,36 +587,20 @@
}
}
- fun getCurrentActivity(): Activity? {
- var act: Activity? = try {
- activities[activities.size - 1]
- } catch (e: Exception) {
- null
- }
- return act
- }
-
-
override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
activities.add(activity)
logRecord("onActivityCreated: " + activity.javaClass.name)
if (activity is MyBaseActivity) {
- activity.supportFragmentManager.registerFragmentLifecycleCallbacks(object :
- FragmentManager.FragmentLifecycleCallbacks() {
+ activity.supportFragmentManager.registerFragmentLifecycleCallbacks(object : FragmentManager.FragmentLifecycleCallbacks() {
override fun onFragmentCreated(
- fm: FragmentManager,
- f: Fragment,
- savedInstanceState: Bundle?
+ fm: FragmentManager, f: Fragment, savedInstanceState: Bundle?
) {
super.onFragmentCreated(fm, f, savedInstanceState)
logRecord("onFragmentCreated: " + f.javaClass.name)
}
override fun onFragmentViewCreated(
- fm: FragmentManager,
- f: Fragment,
- v: View,
- savedInstanceState: Bundle?
+ fm: FragmentManager, f: Fragment, v: View, savedInstanceState: Bundle?
) {
super.onFragmentViewCreated(fm, f, v, savedInstanceState)
logRecord("onFragmentViewCreated: " + f.javaClass.name)
diff --git a/app/src/main/java/com/driver/igotrip/base/OrderTimeOutManager.kt b/app/src/main/java/com/driver/igotrip/base/OrderTimeOutManager.kt
deleted file mode 100644
index f792d45..0000000
--- a/app/src/main/java/com/driver/igotrip/base/OrderTimeOutManager.kt
+++ /dev/null
@@ -1,159 +0,0 @@
-package com.driver.igotrip.base
-
-import android.os.CountDownTimer
-import android.util.ArrayMap
-import cn.sinata.xldutils.utils.SPUtils
-import com.driver.igotrip.R
-import com.driver.igotrip.base.Const.language
-import com.driver.igotrip.base.MyApplication.Companion.appContext
-import com.driver.igotrip.bean.OrderBean
-import com.driver.igotrip.bean.OrderListBean
-import com.driver.igotrip.bean.StringBean
-import com.driver.igotrip.netUtls.Api
-import com.driver.igotrip.netUtls.callNet
-import com.driver.igotrip.netUtls.getMapByAny
-import com.google.gson.Gson
-import java.text.SimpleDateFormat
-
-
-class OrderTimeOutManager {
-
- companion object {
-
- @Volatile
- var manager: OrderTimeOutManager? = null
-
- @JvmStatic
- val instance: OrderTimeOutManager
- get() {
- if (manager == null) {
- synchronized(OrderTimeOutManager::class.java) {
- if (manager == null) {
- manager = OrderTimeOutManager()
- }
- }
- }
- return manager!!
- }
- }
-
- // 创建日期时间格式器
- val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
-
- @Volatile
- var orderMap: MutableMap<String, Pair<OrderBean.DataBean, CountDownTimer>> = ArrayMap()
-
- @Synchronized
- fun getSyncOrderMap() = orderMap
-
- /**
- * 需求改动 通过服务器消息去做超时处理 本地处理屏蔽掉
- */
- fun init() {
-// val map = getMapByAny()
-// map["state"] = 1
-// map["size"] = 10
-// map["pageNum"] = 1
-// callNet(appContext!!, Api.queryOrderList, map) {
-// val data = Gson().fromJson<OrderListBean>(it, OrderListBean::class.java)
-// data.data.forEach {
-// checkOrderManager("${it.id}", "${it.type}", it.state)
-// }
-// }
- }
-
- /*目前只对订单类型是 1 4 的添加倒计时*/
- fun checkOrderManager(orderId: String, orderType: String, orderStatus: Int) {
-// if (orderType == "1" || orderType == "4") {
-// if (orderStatus == 2 || orderStatus == 3) { // 待出发
-// if (getSyncOrderMap()[orderId] == null) {
-// val map = getMapByAny()
-// map["orderId"] = orderId
-// map["orderType"] = orderType
-// callNet(appContext!!, Api.queryOrderInfo, map) {
-// val data = Gson().fromJson<OrderBean>(it, OrderBean::class.java).data
-// if (data.orderState == 2 || data.orderState == 3) { // 走流程那儿传的是上次状态 所以获取到订单详情后 在判断一次状态
-// try {
-// // 解析时间字符串为 Date 对象
-// val date = formatter.parse(data.snatchOrderTime)
-// val orderTimeOut = (date?.time ?: 0) + data.timeOutCancel * 60 * 1000
-// val currentTime = System.currentTimeMillis()
-// if (orderTimeOut > currentTime) { // 未超时
-// val time =
-// object : CountDownTimer(orderTimeOut - currentTime, 1000) {
-// override fun onTick(millisUntilFinished: Long) {}
-// override fun onFinish() {
-// timeOutTips(orderType,data)
-// }
-// }
-// time.start()
-// getSyncOrderMap()[orderId] = Pair(data, time)
-// } else {
-// timeOutTips(orderType,data)
-// }
-// } catch (e: Exception) {
-// e.printStackTrace()
-// }
-// } else {
-// removeItem(orderId)
-// }
-// }
-// }
-// } else {
-// removeItem(orderId)
-// }
-// }
- }
-
-// private fun timeOutTips(orderType:String,order: OrderBean.DataBean) {
- // 订单超时提示
-// appContext?.getCurrentActivity()?.let {
-// val tips ="${getString(R.string.您已超时)} ${order.timeOutCancel} ${getString(R.string.免费取消订单)}"
-// (it as MyBaseActivity).onlyTips("",tips)
-// val map = getMapByAny()
-// map["fileName"] = "timeout_${order.orderId}_${orderType}"
-// map["text"] = tips
-// map["languageCode"] = getTypeByLanguage()
-// callNet(appContext!!, Api.queryOrderInfo, map) {
-// val data = Gson().fromJson<StringBean>(it, StringBean::class.java).data
-// MyApplication.getTTsManager().setVideoText(data)
-// }
-// }
-// removeItem("${order.orderId}")
-// // 修改逻辑 一分钟一次 直到状态改变
-// val time = object : CountDownTimer(60 * 1000L, 1000) {
-// override fun onTick(millisUntilFinished: Long) {}
-// override fun onFinish() {
-// checkOrderManager("${order.orderId}", order.type, order.orderState)
-// }
-// }
-// time.start()
-// }
-
-// fun getTypeByLanguage(): String {
-// val lang = SPUtils.getString(Const.language)
-// var type = 0
-// if (lang == null || lang.isEmpty() || lang == Const.Language.CHINESE || lang == "zh") {
-// type = 1
-// }
-// if (lang == Const.Language.ENGLISH) {
-// type = 2
-// }
-// if (lang == Const.Language.FRENCH) {
-// type = 3
-// }
-// return if (type == 1) "cmn-CN" else if (type == 2) "en-US" else "fr-FR"
-// }
-
-// private fun getString(id: Int): String {
-// return appContext?.getString(id) ?: ""
-// }
-
-// private fun removeItem(orderId: String) {
-// getSyncOrderMap()[orderId]?.let { pair ->
-// pair.second.cancel()
-// getSyncOrderMap().remove(orderId)
-// }
-// }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/driver/igotrip/base/gaode/AMapKit.kt b/app/src/main/java/com/driver/igotrip/base/gaode/AMapKit.kt
index def1da1..fc39134 100644
--- a/app/src/main/java/com/driver/igotrip/base/gaode/AMapKit.kt
+++ b/app/src/main/java/com/driver/igotrip/base/gaode/AMapKit.kt
@@ -43,6 +43,7 @@
import com.google.android.gms.maps.model.Polyline
import com.google.android.gms.maps.model.PolylineOptions
import com.google.gson.Gson
+import com.tbruyelle.rxpermissions2.RxPermissions
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.OkHttpClient
import okhttp3.Request
@@ -90,24 +91,31 @@
fun initMap(mapView: SupportMapFragment, function: (GoogleMap) -> Unit) {
- mapView.getMapAsync { p0 ->
- val mMyLocationStyle = GoogleMapOptions()
- p0.uiSettings.isMyLocationButtonEnabled = false
- p0.setMinZoomPreference(6.0f);
- p0.setMaxZoomPreference(16.0f);
- // mMyLocationStyle.interval(5000)
- // mMyLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER)
- // mMyLocationStyle.myLocationIcon(BitmapDescriptorFactory.fromResource(R.mipmap.gps_point))
- // p0.setLocationSource() = mMyLocationStyle
- // p0.isMyLocationEnabled = false
- // p0.animateCamera(CameraUpdateFactory.zoomTo(aMap.maxZoomLevel - 3))
- // 设置定位的类型为定位模式,有定位、跟随或地图根据面向方向旋转几种
- // p0.setMyLocationType(GoogleMap.LOCATION_TYPE_LOCATE)
- // val uiSettings: UiSettings = aMap.uiSettings
- // uiSettings.isZoomControlsEnabled = false
- function(p0)
- }
-
+ val subscribe =
+ RxPermissions(mapView.requireActivity()).request(Manifest.permission.ACCESS_FINE_LOCATION)
+ .subscribe {
+ if (it) {
+ mapView.getMapAsync { p0 ->
+ val mMyLocationStyle = GoogleMapOptions()
+ p0.uiSettings.isMyLocationButtonEnabled = false
+ p0.setMinZoomPreference(6.0f);
+ p0.setMaxZoomPreference(16.0f);
+ // mMyLocationStyle.interval(5000)
+ // mMyLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER)
+ // mMyLocationStyle.myLocationIcon(BitmapDescriptorFactory.fromResource(R.mipmap.gps_point))
+ // p0.setLocationSource() = mMyLocationStyle
+ // p0.isMyLocationEnabled = false
+ // p0.animateCamera(CameraUpdateFactory.zoomTo(aMap.maxZoomLevel - 3))
+ // 设置定位的类型为定位模式,有定位、跟随或地图根据面向方向旋转几种
+ // p0.setMyLocationType(GoogleMap.LOCATION_TYPE_LOCATE)
+ // val uiSettings: UiSettings = aMap.uiSettings
+ // uiSettings.isZoomControlsEnabled = false
+ function(p0)
+ }
+ } else {
+ Log.e("map", "没有权限")
+ }
+ }
}
/**
diff --git a/app/src/main/java/com/driver/igotrip/base/gaode/NaviGoogleActivity.kt b/app/src/main/java/com/driver/igotrip/base/gaode/NaviGoogleActivity.kt
index 42b94a0..f9d227b 100644
--- a/app/src/main/java/com/driver/igotrip/base/gaode/NaviGoogleActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/base/gaode/NaviGoogleActivity.kt
@@ -213,6 +213,6 @@
}
private val listener = RoadSnappedLocationProvider.LocationListener {
- MyApplication.aMapLocation = LatLng(it.latitude, it.longitude)
+ MyApplication.setLocation(it.latitude, it.longitude)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/driver/igotrip/base/local/BasePhotoActivity.kt b/app/src/main/java/com/driver/igotrip/base/local/BasePhotoActivity.kt
index f94e515..e6453cf 100644
--- a/app/src/main/java/com/driver/igotrip/base/local/BasePhotoActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/base/local/BasePhotoActivity.kt
@@ -24,7 +24,6 @@
import android.widget.TextView
import androidx.activity.ComponentActivity
import androidx.loader.content.CursorLoader
-import cn.sinata.xldutils.utils.sysErr
import com.driver.igotrip.R
import com.driver.igotrip.bean.StringBean
import com.driver.igotrip.netUtls.Api
@@ -212,7 +211,7 @@
}*/
println("上传开始:"+filePath)
Log.e( "文件是否存在: 上传开始",File(filePath).exists().toString() )
- HttpManager.getInstance().post<BaseBean<String>>(Api.upImage, File(filePath),object :MyObserver(this){
+ HttpManager.getInstance().post(Api.upImage, File(filePath),object :MyObserver(this){
override fun success(responseString: String?) {
val fromJson = gson.fromJson<StringBean>(responseString, StringBean::class.java)
var url = fromJson.data
@@ -221,7 +220,6 @@
showNum--
Handler(mainLooper).post {
Log.d("showNum==", "showNum==========" + showNum.toString())
- sysErr(url)
if (showNum <= 0)
dismissDialog()
getPhoneUrl(url!!, type, copyFile)
diff --git a/app/src/main/java/com/driver/igotrip/netUtls/Api.java b/app/src/main/java/com/driver/igotrip/netUtls/Api.java
index 8154b0c..2446c5f 100644
--- a/app/src/main/java/com/driver/igotrip/netUtls/Api.java
+++ b/app/src/main/java/com/driver/igotrip/netUtls/Api.java
@@ -165,6 +165,7 @@
public static String completeOrder ="api/order/completeOrder";//手动确认订单完成
public static String companyList ="base/driver/companyList";//获取运营公司列表
+ public static String saveLog ="api/appLog/save";//手机端日志记录
diff --git a/app/src/main/java/com/driver/igotrip/netUtls/HttpManager.java b/app/src/main/java/com/driver/igotrip/netUtls/HttpManager.java
index 74a5e36..c1a3106 100644
--- a/app/src/main/java/com/driver/igotrip/netUtls/HttpManager.java
+++ b/app/src/main/java/com/driver/igotrip/netUtls/HttpManager.java
@@ -17,12 +17,12 @@
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import cn.sinata.xldutils.utils.SPUtils;
+import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
@@ -132,9 +132,9 @@
httpLoggingInterceptor.level(HttpLoggingInterceptor.Level.BODY);
builder.addInterceptor(httpLoggingInterceptor);
- LoggingInterceptor loggingInterceptor = new LoggingInterceptor();
- loggingInterceptor.setLevel(BuildConfig.DEBUG ? LoggingInterceptor.Level.BODY : LoggingInterceptor.Level.NONE);
- builder.addInterceptor(loggingInterceptor);
+ if (BuildConfig.DEBUG) {
+ builder.addInterceptor(new LoggingInterceptor());
+ }
Retrofit.Builder builder1 = new Retrofit.Builder()
.client(builder.build()) // 配置监听请求
@@ -197,32 +197,27 @@
// public <T extends BaseBean> void post(final String action, Map<String, Object> params,
public void post(final String action, Map<String, Object> params,
Observer<ResponseBody> observer) {
+ post(action, params)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(observer);
+ }
+
+ /**
+ * Post请求
+ *
+ * @param action 请求接口的尾址
+ * @param params 请求参数
+ */
+ public Observable<ResponseBody> post(final String action, Map<String, Object> params) {
if (params == null) {
params = new HashMap<>();
}
int type = getTypeByLanguage();
params.put(Const.language, type); // 1 中文 2 英文 3 法文
- StringBuilder pwd = new StringBuilder();
- pwd.append(action);
- if (params.size() != 0) {
- pwd.append("?");
- }
- Iterator<Map.Entry<String, Object>> iterator = params.entrySet().iterator();
- while (iterator.hasNext()) {
- Map.Entry<String, Object> entry = iterator.next();
- pwd.append(entry.getKey()).append("=").append(entry.getValue());
- if (iterator.hasNext()) {
- pwd.append("&");
- }
- }
-
- Map<String, Object> par = new HashMap<>();
ApiServics jsonService = initBaseData(action).create(ApiServics.class);
LogUtils.d("post", params.toString());
- jsonService.postResult(action, headerParams, params)
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(observer);
+ return jsonService.postResult(action, headerParams, params);
}
/**
@@ -242,28 +237,31 @@
* @param action 请求接口的尾址
* @param fileName 文件名
*/
- public <T extends BaseBean> void post(final String action, File fileName,
- Observer<ResponseBody> observer) {
+ public void post(final String action, File fileName, Observer<ResponseBody> observer) {
+ post(action, fileName)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(observer);
+ }
-
+ /**
+ * Post请求
+ *
+ * @param action 请求接口的尾址
+ * @param file 文件
+ */
+ public Observable<ResponseBody> post(final String action, File file) {
ApiServics service = initBaseData(action).create(ApiServics.class);
// https://github.com/iPaulPro/aFileChooser/blob/master/aFileChooser/src/com/ipaulpro/afilechooser/utils/FileUtils.java
// use the FileUtils to get the actual file by uri
- File file = fileName;
// create RequestBody instance from file
- RequestBody requestFile =
- RequestBody.create(MediaType.parse("multipart/form-data"), file);
+ RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
// MultipartBody.Part is used to send also the actual file name
- MultipartBody.Part body =
- MultipartBody.Part.createFormData("file", file.getName(), requestFile);
- service.upload(action, body)
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(observer);
-
+ MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), requestFile);
+ return service.upload(action, body);
}
diff --git a/app/src/main/java/com/driver/igotrip/netUtls/LoggingInterceptor.java b/app/src/main/java/com/driver/igotrip/netUtls/LoggingInterceptor.java
index 038af8b..32a724a 100644
--- a/app/src/main/java/com/driver/igotrip/netUtls/LoggingInterceptor.java
+++ b/app/src/main/java/com/driver/igotrip/netUtls/LoggingInterceptor.java
@@ -18,21 +18,6 @@
private static final String TAG = "zmc-Log";
- private volatile Level level = Level.NONE;
-
- public Level getLevel() {
- return level;
- }
-
- public void setLevel(Level l) {
- level = l;
- }
-
- public enum Level {
- NONE,
- BODY
- }
-
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
diff --git a/app/src/main/java/com/driver/igotrip/netUtls/NetKit.kt b/app/src/main/java/com/driver/igotrip/netUtls/NetKit.kt
index 61b5b5c..0832726 100644
--- a/app/src/main/java/com/driver/igotrip/netUtls/NetKit.kt
+++ b/app/src/main/java/com/driver/igotrip/netUtls/NetKit.kt
@@ -7,12 +7,10 @@
import android.view.LayoutInflater
import android.view.View
import cn.sinata.xldutils.activitys.BaseActivity
-import cn.sinata.xldutils.utils.Base64
import com.driver.igotrip.base.MyBaseActivity
import com.driver.igotrip.base.MyBaseFragment
import com.driver.igotrip.utils.Cache.CacheKey
import com.driver.igotrip.utils.DES
-import kotlin.collections.HashMap
fun delayTo(time: Long, clickAction: () -> Unit) {
Handler(Looper.getMainLooper()).postDelayed({
@@ -34,6 +32,16 @@
map: HashMap<String?, Any?>,
clickAction: (responseString: String?) -> Unit
) {
+ callNet(showDialog, api, map, clickAction) { _, _ -> }
+}
+
+fun BaseActivity.callNet(
+ showDialog: Boolean,
+ api: String,
+ map: HashMap<String?, Any?>,
+ clickAction: (responseString: String?) -> Unit,
+ clickActionError: (code: Int, errorString: String?) -> Unit
+) {
if (showDialog)
showDialog()
if (api.startsWith("api")) {
@@ -48,6 +56,10 @@
clickAction(responseString)
}
+ override fun onError(code: Int, msg: String?, resposeString: String?) {
+ super.onError(code, msg, resposeString)
+ clickActionError(code, msg)
+ }
})
}
@@ -73,9 +85,9 @@
fun getAppId(): String {
var appid = CacheKey.getKeyStr("appid")
- if (appid.isEmpty()){
+ if (appid.isEmpty()) {
return ""
- } else{
+ } else {
return appid
}
}
@@ -92,17 +104,16 @@
return CacheKey.getKeyStr("token")
}
-
fun MyBaseActivity.callNet(
api: String,
map: HashMap<String?, Any?>,
clickAction: (responseString: String?) -> Unit,
- clickActionError: (errorString: String?) -> Unit
+ clickActionError: (code: Int, msg: String?) -> Unit
) {
this.showDialog()
if (api.startsWith("api")) {
map["appid"] = getAppId()
- var sign = DES.getSign(map)
+ val sign = DES.getSign(map)
map["sign"] = sign
}
HttpManager.getInstance().post(api, map, object : MyObserver(this) {
@@ -113,7 +124,7 @@
override fun onError(code: Int, msg: String?, resposeString: String?) {
super.onError(code, msg, resposeString)
- clickActionError(msg)
+ clickActionError(code, msg)
}
})
@@ -195,7 +206,7 @@
api: String,
map: HashMap<String?, Any?>,
clickAction: (responseString: String?) -> Unit,
- errorAction: () -> Unit,showError:Boolean = true
+ errorAction: (code: Int, msg: String?) -> Unit, showError: Boolean = true
) {
if (api.startsWith("api")) {
map["appid"] = getAppId()
@@ -210,7 +221,7 @@
override fun onError(code: Int, msg: String?, resposeString: String?) {
if (showError)
super.onError(code, msg, resposeString)
- errorAction()
+ errorAction(code, msg)
}
})
}
@@ -263,7 +274,7 @@
}
-fun timeOver(timeDown:Long,click: (mill: Int) -> Unit): CountDownTimer {
+fun timeOver(timeDown: Long, click: (mill: Int) -> Unit): CountDownTimer {
val timer by lazy {
object : CountDownTimer(timeDown, 1000) {
override fun onFinish() {
diff --git a/app/src/main/java/com/driver/igotrip/ui/card/VerifyCardPwdActivity.kt b/app/src/main/java/com/driver/igotrip/ui/card/VerifyCardPwdActivity.kt
index ef99df5..030cf89 100644
--- a/app/src/main/java/com/driver/igotrip/ui/card/VerifyCardPwdActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/card/VerifyCardPwdActivity.kt
@@ -2,6 +2,7 @@
import android.widget.EditText
import android.widget.TextView
+import cn.sinata.rxnetty.LogHelper
import cn.sinata.xldutils.utils.setDrawableNull
import cn.sinata.xldutils.utils.setTextChange
import com.driver.igotrip.R
@@ -43,28 +44,33 @@
tv_four.text = ""
tv_fif.text = ""
tv_six.text = ""
- var str = it.toCharArray()
+ val str = it.toCharArray()
for (position in str.indices) {
when (position) {
0 -> {
tv_one.text = "*"
}
+
1 -> {
tv_two.text = "*"
}
+
2 -> {
tv_three.text = "*"
}
+
3 -> {
tv_four.text = "*"
}
+
4 -> {
tv_fif.text = "*"
}
+
5 -> {
tv_six.text = "*"
}
@@ -72,13 +78,15 @@
}
}
if (str.size == 6) {
- var map = getMapByAny()
+ val map = getMapByAny()
map["withdrawPassword"] = it
- callNet(Api.verificationWithdrawPassword, map,{
+ callNet(Api.verificationWithdrawPassword, map, {
+ LogHelper.logRecord("申请提现提现密码验证成功type:${intent.getStringExtra("type")}")
toast(getString(R.string.验证成功))
startActivity<ApplyMoneyActivity>("type" to intent.getStringExtra("type"))
finish()
- }) {
+ }) { code, msg ->
+ LogHelper.logRecord("申请提现提现密码验证失败type:${intent.getStringExtra("type")} code:${code} msg:${msg}")
onBackPressed()
}
}
diff --git a/app/src/main/java/com/driver/igotrip/ui/main/ChangPhoneActivity.kt b/app/src/main/java/com/driver/igotrip/ui/main/ChangPhoneActivity.kt
index 1eaeda0..907d0f7 100644
--- a/app/src/main/java/com/driver/igotrip/ui/main/ChangPhoneActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/main/ChangPhoneActivity.kt
@@ -1,95 +1,37 @@
package com.driver.igotrip.ui.main
-import android.Manifest
import android.annotation.SuppressLint
import android.app.Activity
-import android.content.ActivityNotFoundException
import android.content.Intent
-import android.os.Bundle
-import android.os.Handler
-import android.os.Looper
-import android.os.Message
-import android.provider.Settings
-import android.util.Log
import android.util.TypedValue
-import android.view.Gravity
-import android.view.View
import android.widget.EditText
-import android.widget.ImageView
-import android.widget.LinearLayout
import android.widget.TextView
-import android.widget.Toast
import androidx.lifecycle.lifecycleScope
-import cn.sinata.rxnetty.NettyClient
import cn.sinata.xldutils.utils.SPUtils
-import cn.sinata.xldutils.utils.Utils
import cn.sinata.xldutils.utils.clickDelay
-import cn.sinata.xldutils.utils.doubleOne
import cn.sinata.xldutils.utils.getAreaCode
import cn.sinata.xldutils.utils.getContent
-import cn.sinata.xldutils.utils.gone
-import cn.sinata.xldutils.utils.setDrawableLeft
-import cn.sinata.xldutils.utils.textColor
import com.driver.igotrip.R
import com.driver.igotrip.base.BaseEvent
import com.driver.igotrip.base.Const
-import com.driver.igotrip.base.MyApplication
import com.driver.igotrip.base.MyBaseActivity
-import com.driver.igotrip.base.OrderTimeOutManager
-import com.driver.igotrip.base.gaode.AMapKit
-import com.driver.igotrip.bean.BooleanBean
-import com.driver.igotrip.bean.HomeDataBean
-import com.driver.igotrip.bean.MyCarBean
-import com.driver.igotrip.bean.OrderSimpleData
-import com.driver.igotrip.bean.SelectServerModeBean
-import com.driver.igotrip.bean.TimeBean
-import com.driver.igotrip.bean.UpCarInfo
-import com.driver.igotrip.bean.VersionBean
import com.driver.igotrip.netUtls.Api
import com.driver.igotrip.netUtls.callNet
import com.driver.igotrip.netUtls.getMapByAny
-import com.driver.igotrip.ui.DialogUtil
-import com.driver.igotrip.ui.DialogUtil.getDelAndSureDialog
-import com.driver.igotrip.ui.main.event.MineEventActivity
-import com.driver.igotrip.ui.mine.ChangeCarActivity
-import com.driver.igotrip.ui.mine.DriverAttestationActivity
-import com.driver.igotrip.ui.mine.MineActivity
-import com.driver.igotrip.ui.mine.MsgActivity
-import com.driver.igotrip.ui.mine.OfflinePayActivity
-import com.driver.igotrip.ui.mine.SafeVerifyActivity.Companion.BASE_URL
-import com.driver.igotrip.ui.mine.SafeVerifyActivity.Companion.WEB_SITE_KEY
import com.driver.igotrip.ui.pub.AreaCodeActivity
import com.driver.igotrip.ui.pub.LoginActivity
import com.driver.igotrip.utils.Cache.CacheKey
import com.driver.igotrip.utils.Cache.CacheUtil
-import com.driver.igotrip.utils.DateUtil
import com.driver.igotrip.utils.PhoneCheckUtil
-import com.driver.mask_talk.utils.toTime
-import com.driver.mask_talk.utils.toTimeEnglish
-import com.driver.mask_talk.utils.toTimeFrench
-import com.google.android.gms.maps.GoogleMap
-import com.google.android.gms.maps.SupportMapFragment
-import com.google.android.gms.maps.model.LatLng
-import com.google.gson.Gson
-import com.google.recaptcha.sample.RecaptchaVisual
import com.google.recaptcha.sample.RecaptchaVisualException
import com.lljjcoder.style.citylist.Toast.ToastUtils
-import com.lzf.easyfloat.EasyFloat
-import com.lzf.easyfloat.enums.ShowPattern
-import com.lzf.easyfloat.enums.SidePattern
-import com.lzf.easyfloat.interfaces.OnInvokeView
-import com.tbruyelle.rxpermissions2.RxPermissions
import com.trello.rxlifecycle3.android.ActivityEvent
-import com.wang.avi.AVLoadingIndicatorView
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
import kotlinx.coroutines.launch
import org.greenrobot.eventbus.EventBus
-import org.greenrobot.eventbus.Subscribe
-import org.jetbrains.anko.browse
-import org.jetbrains.anko.dip
import org.jetbrains.anko.find
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.startActivityForResult
diff --git a/app/src/main/java/com/driver/igotrip/ui/main/DriverPayFragment.kt b/app/src/main/java/com/driver/igotrip/ui/main/DriverPayFragment.kt
index d84f354..8e9c7e5 100644
--- a/app/src/main/java/com/driver/igotrip/ui/main/DriverPayFragment.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/main/DriverPayFragment.kt
@@ -1,6 +1,7 @@
package com.driver.igotrip.ui.main
import android.widget.TextView
+import cn.sinata.rxnetty.LogHelper.logRecord
import com.driver.igotrip.R
import com.driver.igotrip.base.PublicServiceDialogActivity
import org.jetbrains.anko.find
@@ -23,6 +24,7 @@
private val close by lazy { find<TextView>(R.id.tv_close_base) }
override fun initView() {
+ logRecord("确认已收到费用弹窗orderId:${orderId} orderType:${orderType}")
price.text = getString(R.string.确认现金金额).format(money).replace(",",".")
close.setOnClickListener { finish() }
sure.setOnClickListener { finish() }
diff --git a/app/src/main/java/com/driver/igotrip/ui/main/GetOrderFragment.kt b/app/src/main/java/com/driver/igotrip/ui/main/GetOrderFragment.kt
index 220cc96..1a3feb7 100644
--- a/app/src/main/java/com/driver/igotrip/ui/main/GetOrderFragment.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/main/GetOrderFragment.kt
@@ -6,11 +6,11 @@
import android.view.View
import android.widget.ImageView
import android.widget.TextView
+import cn.sinata.rxnetty.LogHelper
import cn.sinata.xldutils.utils.Toast
import cn.sinata.xldutils.utils.clickDelay
import cn.sinata.xldutils.utils.doubleTwo
import cn.sinata.xldutils.utils.gone
-import cn.sinata.xldutils.utils.sysErr
import cn.sinata.xldutils.utils.visible
import com.blankj.utilcode.util.ScreenUtils
import com.driver.igotrip.R
@@ -83,6 +83,7 @@
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
+ LogHelper.logRecord("新的订单orderId:${orderId} orderType:${orderType}")
//实例化语音引擎
window.setLayout(ScreenUtils.getScreenWidth(), ScreenUtils.getScreenHeight())
rl_parent.setOnClickListener { }
@@ -93,6 +94,7 @@
supportFragmentManager.findFragmentById(R.id.map_view) as SupportMapFragment?
mapFragment?.getMapAsync(this)
MyApplication.getTTsManager().setVideoText(audioUrl)
+ LogHelper.logRecord("抢单弹窗orderId:${orderId} orderType:${orderType}")
}
override fun onPause() {
@@ -110,7 +112,7 @@
}
private fun callOrderDetail() {
- var map = getMapByAny()
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
map["lat"] = MyApplication.getLocation()?.latitude ?: 0.0
@@ -118,7 +120,7 @@
callNet(this, Api.queryPushOrder, map) {
ll_order.visible()
val data = Gson().fromJson<OrderBean>(it, OrderBean::class.java).data
- sysErr(data)
+ LogHelper.logRecord("新的订单orderId:${orderId} orderType:${orderType} data:${Gson().toJson(data)}")
val startView = createView(R.layout.item_map_market, this)
val endView = createView(R.layout.item_map_market, this)
startView.find<ImageView>(R.id.iv_img).setImageResource(UiUtil.getLangStartBitmap())
@@ -142,7 +144,7 @@
tv_cargo_num.visible()
tv_cargo_money.visible()
tv_name.text = data.nickName + "-" + data.phone
- var cargoStrType =
+ val cargoStrType =
if (data.cargoType == "1") getString(R.string.普通小件X) else getString(R.string.贵重物品X)
tv_cargo_num.text = cargoStrType + data.peopleNumber
if (data.tipMoney != null && data.tipMoney > 0.0) {
@@ -204,11 +206,13 @@
lateinit var aMap: GoogleMap
fun showGetOrder() {
+ LogHelper.logRecord("开始抢单orderId:${orderId} orderType:${orderType}")
tv_sure.isEnabled = false
- var map = getMapByAny()
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
callNet1(this, Api.grabOrder, map, {
+ LogHelper.logRecord("抢单成功orderId:${orderId} orderType:${orderType}")
Toast.create(this).show(getString(R.string.抢单成功))
// onBackPressed()
when (orderType) {
@@ -233,7 +237,8 @@
}
// 上面 onBackPressed 会报错 改到下面finish
finish()
- }, {
+ }, {code,msg->
+ LogHelper.logRecord("抢单失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
tv_sure.isEnabled = true
finish()
})
@@ -257,6 +262,7 @@
}
}
tv_close.clickDelay {
+ LogHelper.logRecord("不抢新的订单orderId:${orderId} orderType:${orderType}")
finish()
}
tv_sure.setOnClickListener {
@@ -265,6 +271,7 @@
} else if (type == 2) {
onBackPressed()
this.startActivity<TripActivity>("orderId" to orderId, "orderType" to orderType)
+ LogHelper.logRecord("抢单成功orderId:${orderId} orderType:${orderType}")
}
}
diff --git a/app/src/main/java/com/driver/igotrip/ui/main/GoOrderTipsFragment.kt b/app/src/main/java/com/driver/igotrip/ui/main/GoOrderTipsFragment.kt
index 1d2b1f6..bc2bca6 100644
--- a/app/src/main/java/com/driver/igotrip/ui/main/GoOrderTipsFragment.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/main/GoOrderTipsFragment.kt
@@ -2,6 +2,7 @@
import android.annotation.SuppressLint
import android.widget.TextView
+import cn.sinata.rxnetty.LogHelper.logRecord
import cn.sinata.xldutils.utils.clickDelay
import com.driver.igotrip.R
import com.driver.igotrip.base.PublicServiceDialogActivity
@@ -41,6 +42,7 @@
finish()
}
desc.text = describe
+ logRecord("订单提示弹窗orderId:${orderId} orderType:${orderType}")
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/driver/igotrip/ui/main/MainActivity.kt b/app/src/main/java/com/driver/igotrip/ui/main/MainActivity.kt
index 8afe0d7..861dc44 100644
--- a/app/src/main/java/com/driver/igotrip/ui/main/MainActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/main/MainActivity.kt
@@ -28,7 +28,6 @@
import com.driver.igotrip.base.Const
import com.driver.igotrip.base.MyApplication
import com.driver.igotrip.base.MyBaseActivity
-import com.driver.igotrip.base.OrderTimeOutManager
import com.driver.igotrip.base.gaode.AMapKit
import com.driver.igotrip.bean.BooleanBean
import com.driver.igotrip.bean.HomeDataBean
@@ -58,7 +57,6 @@
import com.driver.mask_talk.utils.toTimeFrench
import com.google.android.gms.maps.GoogleMap
import com.google.android.gms.maps.SupportMapFragment
-import com.google.android.gms.maps.model.LatLng
import com.google.gson.Gson
import com.tbruyelle.rxpermissions2.RxPermissions
import com.wang.avi.AVLoadingIndicatorView
@@ -232,7 +230,6 @@
}
private fun callTime(type: String) {
- OrderTimeOutManager.instance.init()
var map = getMapByAny()
callNet(Api.getDriverOnlineTime, map) {
var bean = gson.fromJson<TimeBean>(it, TimeBean::class.java)
@@ -408,21 +405,17 @@
@SuppressLint("MissingPermission", "CheckResult")
private fun initLocation() {
val fragment = map_view as SupportMapFragment
- AMapKit.initMap(fragment) {
+ AMapKit.initMap(fragment) { it ->
// zmc-remark 测试代码 给个初始位置
// MyApplication.aMapLocation = LatLng(30.659221715540937,104.06676612263988)
-
aMap = it
- RxPermissions(this).request(Manifest.permission.ACCESS_FINE_LOCATION).subscribe {
- if (it) {
- aMap.isMyLocationEnabled = true
- aMap.setOnMyLocationChangeListener {
- it.let { latlon ->
- Log.e("定位==============》", "${it.latitude},${it.longitude}")
- MyApplication.aMapLocation = LatLng(it.latitude, it.longitude)
- }
- }
-
+ aMap.isMyLocationEnabled = true
+ aMap.setOnMyLocationChangeListener {
+ it?.let {
+ Log.e("定位==============》", "${it.latitude},${it.longitude}")
+ MyApplication.setLocation(it.latitude, it.longitude)
+ }
+ }
// val fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)
// val locationRequest = LocationRequest.create().apply {
@@ -438,11 +431,6 @@
// }
// }, Looper.getMainLooper()
// )
-
- } else {
-
- }
- }
}
}
diff --git a/app/src/main/java/com/driver/igotrip/ui/main/MediaOperationActivity.kt b/app/src/main/java/com/driver/igotrip/ui/main/MediaOperationActivity.kt
index 1fe22c4..d5e68a9 100644
--- a/app/src/main/java/com/driver/igotrip/ui/main/MediaOperationActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/main/MediaOperationActivity.kt
@@ -201,7 +201,7 @@
*/
private fun saveMedia(filePath: String, block: (url: String) -> Unit) {
HttpManager.getInstance()
- .post<BaseBean<String>>(
+ .post(
Api.upImage,
File(filePath),
object : MyObserver(this@MediaOperationActivity) {
diff --git a/app/src/main/java/com/driver/igotrip/ui/main/ModifyAddressFragment.kt b/app/src/main/java/com/driver/igotrip/ui/main/ModifyAddressFragment.kt
index a035143..80dfc0d 100644
--- a/app/src/main/java/com/driver/igotrip/ui/main/ModifyAddressFragment.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/main/ModifyAddressFragment.kt
@@ -1,12 +1,13 @@
package com.driver.igotrip.ui.main
import android.view.View
+import cn.sinata.rxnetty.LogHelper.logRecord
import cn.sinata.xldutils.utils.clickDelay
import com.driver.igotrip.R
import com.driver.igotrip.base.BaseEvent
import com.driver.igotrip.base.PublicServiceDialogActivity
import com.driver.igotrip.netUtls.Api
-import com.driver.igotrip.netUtls.callNet
+import com.driver.igotrip.netUtls.callNet1
import com.driver.igotrip.netUtls.getMapByAny
import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.find
@@ -30,6 +31,7 @@
find<View>(R.id.agree).clickDelay {
updateEndAddress(2)
}
+ logRecord("修改目的地弹窗orderId:${orderId} orderType:${orderType}")
}
/**
@@ -40,11 +42,14 @@
map["orderId"] = orderId
map["orderType"] = orderType
map["status"] = status
- callNet(this, Api.updateEndAddress, map) {
- if(status == 2){
+ callNet1(this, Api.updateEndAddress, map, clickAction = {
+ logRecord("修改目的地操作成功orderId:${orderId} orderType:${orderType}")
+ if (status == 2) {
EventBus.getDefault().post(BaseEvent(BaseEvent.MODIFY_ADDRESS_SUC))
}
finish()
- }
+ }, errorAction = { code, msg ->
+ logRecord("修改目的地操作失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
+ })
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/driver/igotrip/ui/main/OrderOverActivity.kt b/app/src/main/java/com/driver/igotrip/ui/main/OrderOverActivity.kt
index 6b931c4..c8cbc45 100644
--- a/app/src/main/java/com/driver/igotrip/ui/main/OrderOverActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/main/OrderOverActivity.kt
@@ -10,6 +10,7 @@
import android.widget.LinearLayout
import android.widget.TextView
import androidx.core.view.isVisible
+import cn.sinata.rxnetty.LogHelper
import cn.sinata.xldutils.utils.clickDelay
import cn.sinata.xldutils.utils.doubleOne
import cn.sinata.xldutils.utils.gone
@@ -93,6 +94,7 @@
MyApplication.currentOrderId = ""
ll_pay_result.gone()
tv_show_pay_over.gone()
+ LogHelper.logRecord("订单已结束orderId:${orderId} orderType:${orderType}")
}
override fun initView() {
diff --git a/app/src/main/java/com/driver/igotrip/ui/main/ReassignActivity.kt b/app/src/main/java/com/driver/igotrip/ui/main/ReassignActivity.kt
index d923838..99aabc2 100644
--- a/app/src/main/java/com/driver/igotrip/ui/main/ReassignActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/main/ReassignActivity.kt
@@ -4,6 +4,7 @@
import android.widget.EditText
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
+import cn.sinata.rxnetty.LogHelper
import cn.sinata.xldutils.utils.clickDelay
import cn.sinata.xldutils.utils.getContent
import com.driver.emanagercar.ui.base.BaseWebActivity
@@ -11,8 +12,8 @@
import com.driver.igotrip.base.BaseAlipayActivity
import com.driver.igotrip.base.BaseEvent
import com.driver.igotrip.bean.AgreeBean
-import com.driver.igotrip.bean.StringBean
import com.driver.igotrip.bean.OrderBean
+import com.driver.igotrip.bean.StringBean
import com.driver.igotrip.netUtls.Api
import com.driver.igotrip.netUtls.callNet
import com.driver.igotrip.netUtls.getMapByAny
@@ -57,9 +58,9 @@
adapter.array.add(getString(R.string.car_problom))
adapter.array.add(getString(R.string.ther))
tv_Right.text = getString(R.string.改派说明)
- if (orderType == "4" || orderType == "5"){
+ if (orderType == "4" || orderType == "5") {
adapter.array.removeAt(0)
- adapter.array.add(0,getString(R.string.客户原因))
+ adapter.array.add(0, getString(R.string.客户原因))
}
recycler_view.layoutManager = LinearLayoutManager(this) as RecyclerView.LayoutManager?
recycler_view.adapter = adapter
@@ -76,7 +77,9 @@
toast(getString(R.string.请选择改派原因))
return@setOnClickListener
}
- if (adapter.selectPosition != -1 && adapter.array[adapter.selectPosition] == getString(R.string.其他) && et_content.getContent().isNullOrEmpty()){
+ if (adapter.selectPosition != -1 && adapter.array[adapter.selectPosition] == getString(R.string.其他) && et_content.getContent()
+ .isNullOrEmpty()
+ ) {
toast(getString(R.string.请输入详细描述))
return@setOnClickListener
}
@@ -89,13 +92,13 @@
tv_Right.clickDelay {
callHtml {
- BaseWebActivity.to(mContext,it,getString(R.string.改派说明),"1")
+ BaseWebActivity.to(mContext, it, getString(R.string.改派说明), "1")
}
}
}
fun callHtml(click: (s: String) -> Unit) {
- var map = getMapByAny()
+ val map = getMapByAny()
map["type"] = 10
callNet(Api.queryByType, map) {
var data = gson.fromJson<AgreeBean>(it, AgreeBean::class.java)
@@ -104,7 +107,7 @@
}
private fun showPat(payType: String) {
- if (orderType == "3"){
+ if (orderType == "3") {
callGp(payType)
return
}
@@ -112,55 +115,63 @@
map["orderId"] = orderId
map["orderType"] = orderType
map["reason"] = adapter.array[adapter.selectPosition]
- if (!et_content.getContent().isNullOrEmpty()){
+ if (!et_content.getContent().isNullOrEmpty()) {
map["remark"] = et_content.getContent()
}
if (!money.isNullOrEmpty()) {
map["payType"] = payType
map["money"] = money
}
- callNet(Api.reassign, map) {
+ callNet(Api.reassign, map, clickAction = {
if (payType == "2") {
- var data = gson.fromJson<StringBean>(it, StringBean::class.java)
+ LogHelper.logRecord("订单改派支付宝支付订单成功orderId:${orderId} orderType:${orderType} data:${it}")
+ val data = gson.fromJson<StringBean>(it, StringBean::class.java)
payV2(data.data)
}
- if (payType == "1"){
+ if (payType == "1") {
}
if (payType == "3" || payType.isEmpty()) {
+ LogHelper.logRecord("订单改派余额支付成功申请已提交orderId:${orderId} orderType:${orderType}")
toast(getString(R.string.改派申请已提交))
- EventBus.getDefault().post(BaseEvent(BaseEvent.REAGASSIGN_SUCCESS,orderId!!.toString(),orderId!!.toString()))
+ EventBus.getDefault().post(BaseEvent(BaseEvent.REAGASSIGN_SUCCESS, orderId, orderType))
finish()
}
- }
+ }, clickActionError = { code, msg ->
+ LogHelper.logRecord("订单改派创建支付订单失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
+ })
}
private fun callGp(payType: String) {
var map = getMapByAny()
map["orderIds"] = orderId
map["reason"] = adapter.array[adapter.selectPosition]
- if (!et_content.getContent().isNullOrEmpty()){
+ if (!et_content.getContent().isNullOrEmpty()) {
map["remark"] = et_content.getContent()
}
if (!money.isNullOrEmpty()) {
map["payType"] = payType
map["money"] = money
}
- callNet(Api.reassignOrderCrossCityReassign,map){
+ callNet(Api.reassignOrderCrossCityReassign, map, clickAction = {
if (payType == "2") {
- var data = gson.fromJson<StringBean>(it, StringBean::class.java)
+ LogHelper.logRecord("订单改派支付宝支付订单成功orderId:${orderId} orderType:${orderType} data:${it}")
+ val data = gson.fromJson<StringBean>(it, StringBean::class.java)
payV2(data.data)
}
- if (payType == "1"){
+ if (payType == "1") {
}
if (payType == "3" || payType.isEmpty()) {
+ LogHelper.logRecord("订单改派余额支付成功申请已提交orderId:${orderId} orderType:${orderType}")
toast(getString(R.string.改派申请已提交))
- EventBus.getDefault().post(BaseEvent(BaseEvent.REAGASSIGN_SUCCESS,orderId!!.toString(),orderId!!.toString()))
+ EventBus.getDefault().post(BaseEvent(BaseEvent.REAGASSIGN_SUCCESS, orderId, orderType))
finish()
}
- }
+ }, clickActionError = { code, msg ->
+ LogHelper.logRecord("订单改派创建支付订单失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
+ })
}
@@ -168,6 +179,7 @@
var pop = DialogUtil.getPopupwindow(this, R.layout.pop_pay)
pop.showDown(window.decorView)
pop.contentView.find<View>(R.id.btn_money).clickDelay {
+ LogHelper.logRecord("订单改派余额支付orderId:${orderId} orderType:${orderType}")
showPat("3")
pop.dismiss()
}
@@ -177,19 +189,22 @@
pop.contentView.find<View>(R.id.btn_album).clickDelay {
// showPat("1")
- val content = RemarkData("改派原因啊","这个是备注",com.driver.igotrip.utils.Cache.CacheKey.getUserId())
- val path = "pages/appPay/appPay?orderId=$orderId&orderType=$orderType&type=3&content="+gson.toJson(content)+"&uid="+com.driver.igotrip.utils.Cache.CacheKey.getUserId()+"&userType=2"
- WXPayEntryActivity.toWx(this,intent,path)
+ LogHelper.logRecord("订单改派跳转小程序支付orderId:${orderId} orderType:${orderType}")
+ val content = RemarkData("改派原因啊", "这个是备注", com.driver.igotrip.utils.Cache.CacheKey.getUserId())
+ val path =
+ "pages/appPay/appPay?orderId=$orderId&orderType=$orderType&type=3&content=" + gson.toJson(content) + "&uid=" + com.driver.igotrip.utils.Cache.CacheKey.getUserId() + "&userType=2"
+ WXPayEntryActivity.toWx(this, intent, path)
pop.dismiss()
}
pop.contentView.find<View>(R.id.btn_alipay).clickDelay {
+ LogHelper.logRecord("订单改派支付宝支付orderId:${orderId} orderType:${orderType}")
showPat("2")
pop.dismiss()
}
}
- public class RemarkData(reason:String,remark:String,uid:String){
+ public class RemarkData(reason: String, remark: String, uid: String) {
// ="+"改派原因啊"+"&remark="+"这个是备注
var reason = reason
var remark = remark
@@ -199,39 +214,26 @@
override fun aliPaySuccess() {
super.aliPaySuccess()
toast(getString(R.string.改派申请已提交))
- EventBus.getDefault().post(BaseEvent(BaseEvent.REAGASSIGN_SUCCESS,orderId!!.toString(),orderId!!.toString()))
+ EventBus.getDefault().post(BaseEvent(BaseEvent.REAGASSIGN_SUCCESS, orderId, orderType))
finish()
- }
-
- override fun onResume() {
- super.onResume()
-// var map = getMapByAny()
-// map["orderId"] = orderId
-// map["orderType"] = orderType
-// callNet(Api.queryOrderInfo, map) {
-// var orderBean = gson.fromJson(it, OrderBean::class.java)
-// if(orderBean.data.orderState == 11){
-// toast(getString(R.string.改派申请已提交))
-// EventBus.getDefault().post(BaseEvent(BaseEvent.REAGASSIGN_SUCCESS))
-// finish()
-// }
-// }
}
override fun onRestart() {
super.onRestart()
- var map = getMapByAny()
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
- callNet(Api.queryOrderInfo, map) {
- var orderBean = gson.fromJson(it, OrderBean::class.java)
- if(orderBean.data.orderState == 11){
- toast(getString(R.string.改派申请已提交))
- EventBus.getDefault().post(BaseEvent(BaseEvent.REAGASSIGN_SUCCESS,orderId!!.toString(),orderId!!.toString()))
- finish()
- }
- }
+ callNet(Api.queryOrderInfo, map, clickAction = {
+ val orderBean = gson.fromJson(it, OrderBean::class.java)
+ LogHelper.logRecord("订单改派查询订单成功orderId:${orderId} orderType:${orderType} data:${it}")
+ if (orderBean.data.orderState == 11) {
+ toast(getString(R.string.改派申请已提交))
+ LogHelper.logRecord("订单改派申请已提交成功orderId:${orderId} orderType:${orderType}")
+ EventBus.getDefault().post(BaseEvent(BaseEvent.REAGASSIGN_SUCCESS, orderId, orderType))
+ finish()
+ }
+ }, clickActionError = { code, msg ->
+ LogHelper.logRecord("订单改派查询订单失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
+ })
}
-
-
}
\ No newline at end of file
diff --git a/app/src/main/java/com/driver/igotrip/ui/main/TipsFragment.kt b/app/src/main/java/com/driver/igotrip/ui/main/TipsFragment.kt
index b25392e..c9fd5b2 100644
--- a/app/src/main/java/com/driver/igotrip/ui/main/TipsFragment.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/main/TipsFragment.kt
@@ -3,6 +3,7 @@
import android.annotation.SuppressLint
import android.view.View
import android.widget.TextView
+import cn.sinata.rxnetty.LogHelper.logRecord
import cn.sinata.xldutils.utils.clickDelay
import com.driver.igotrip.R
import com.driver.igotrip.base.PublicServiceDialogActivity
@@ -22,6 +23,6 @@
}
find<TextView>(R.id.desc).text = tips
find<TextView>(R.id.sure).text = getString(R.string.确认)
-
+ logRecord("提示弹窗:$tips")
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/driver/igotrip/ui/main/TripActivity.kt b/app/src/main/java/com/driver/igotrip/ui/main/TripActivity.kt
index a324e1d..1ef89a5 100644
--- a/app/src/main/java/com/driver/igotrip/ui/main/TripActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/main/TripActivity.kt
@@ -7,12 +7,12 @@
import android.view.View
import android.widget.ImageView
import android.widget.TextView
+import cn.sinata.rxnetty.LogHelper
import cn.sinata.xldutils.utils.*
import com.driver.igotrip.R
import com.driver.igotrip.base.BaseEvent
import com.driver.igotrip.base.MyApplication
import com.driver.igotrip.base.MyBaseActivity
-import com.driver.igotrip.base.OrderTimeOutManager
import com.driver.igotrip.base.gaode.AMapKit
import com.driver.igotrip.base.gaode.AMapKit.addMarker
import com.driver.igotrip.base.gaode.AMapKit.getIcon
@@ -75,8 +75,6 @@
var graylist = arrayListOf<LatLng>() // 灰色轨迹
var grayline: Polyline? = null
- var tripInfo: GoogleTripInfo? = null//谷歌订单信息
-
private val iv_move by lazy { find<View>(R.id.iv_move) }
private val remark by lazy { find<View>(R.id.remark) }
private val iv_phone by lazy { find<View>(R.id.iv_phone) }
@@ -101,6 +99,7 @@
initMineLocation()
onclick()
addSockectCancel()
+ LogHelper.logRecord("处理专车订单orderId:${orderId} orderType:${orderType}")
}
override fun initView() {
@@ -129,7 +128,7 @@
}
var handler: Handler? = null
fun checkOrderStatue() {
- var map = getMapByAny()
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
callNet(false, Api.orderStateSocket, map) {
@@ -168,31 +167,18 @@
private fun onclick() {
tv_Right.clickDelay {
DialogUtil.getDelAndSureDialog(this, getString(R.string.确定改派吗), {}) {
- var map = getMapByAny()
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
- callNet(Api.queryReassignMoney, map) {
+ callNet(Api.queryReassignMoney, map, clickAction = {
val data = gson.fromJson<RessignBean>(it, RessignBean::class.java)
+ LogHelper.logRecord("查询订单改派金额成功orderId:${orderId} orderType:${orderType} data:${Gson().toJson(data)}")
startActivity<ReassignActivity>(
"orderId" to orderId,
"orderType" to orderType
)
-// if (data.data.amount.isNullOrEmpty()) {
-//
-// } else {
-// DialogUtil.getDelAndSureDialog(
-// this,
-// getString(R.string.现在改派将收取,data.data.amount),
-// {},
-// {
-// //跳转改派页面
-// startActivity<ReassignActivity>(
-// "orderId" to orderId,
-// "orderType" to orderType,
-// "money" to data.data.amount.toString()
-// )
-// })
-// }
+ }){ code, msg ->
+ LogHelper.logRecord("查询订单改派金额失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
}
}
}
@@ -216,8 +202,8 @@
}
iv_police.clickDelay {
- orderBean.let {
- MyUtils.getInstans().CallPhone(this, it?.data?.emergencyCall)
+ orderBean?.data?.emergencyCall?.takeIf { it.isNotEmpty() }?.also {
+ MyUtils.getInstans().CallPhone(this, it)
}
}
iv_to_gd.clickDelay {
@@ -260,7 +246,7 @@
orderBean?.let {
when (it.data.orderState) {
2, 3, 4 -> {
- var timeByLo = (DateUtil.dateToStamp(
+ val timeByLo = (DateUtil.dateToStamp(
DateUtil.TYPE0,
it.data.travelTime
) - System.currentTimeMillis()) / 1000L
@@ -274,16 +260,22 @@
callStatue("", it.data.orderState, {
showStatueMapUI(it)
iv_to_gd.callOnClick()
- }) {
+ LogHelper.logRecord("乘客已上车orderId:${orderId} orderType:${orderType}")
+ }) { code, msg ->
+ LogHelper.logRecord("改订单状态为乘客已上车失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
it.data.orderState--
}
// }
} else {
it.data.orderState++
- callStatue(it.data.orderState) {
+ callStatue(it.data.orderState, {
if (it.data.orderState == 3) {
iv_to_gd.callOnClick()
}
+ LogHelper.logRecord("改订单状态成功orderId:${orderId} orderType:${orderType} orderState:${it.data.orderState}")
+ }) { code, msg ->
+ LogHelper.logRecord("改订单状态失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
+ it.data.orderState--
}
showStatueMapUI(it)
}
@@ -297,12 +289,13 @@
}
"1" -> {
- callStatue(6) {
- startActivity<MajorSureMoneyActivity>(
- "orderId" to orderId,
- "orderType" to orderType
- )
+ callStatue(6, {
+ LogHelper.logRecord("改订单状态为已到达成功orderId:${orderId} orderType:${orderType}")
+ startActivity<MajorSureMoneyActivity>("orderId" to orderId, "orderType" to orderType)
finish()
+ }) { code, msg ->
+ it.data.orderState = 5
+ LogHelper.logRecord("改订单状态为已到达失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
}
}
}
@@ -313,8 +306,8 @@
}
iv_phone.clickDelay {
- orderBean.let {
- MyUtils.getInstans().CallPhone(this, it?.data?.phone)
+ orderBean?.data?.phone?.takeIf { it.isNotEmpty() }?.also {
+ MyUtils.getInstans().CallPhone(this, it)
}
}
}
@@ -328,24 +321,24 @@
}
- private fun callStatue(i: Int, click: () -> Unit) {
- var map = getMapByAny()
+ private fun callStatue(i: Int, click: () -> Unit, clickFail: (Int, String?) -> Unit) {
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
map["state"] = i
map["lat"] = MyApplication.getLocation()?.latitude ?: 0.0
map["lon"] = MyApplication.getLocation()?.longitude ?: 0.0
- callNet(Api.process, map) {
+ callNet(Api.process, map, {
val bean = Gson().fromJson<StringBean>(it, StringBean::class.java)
- MyApplication.getTTsManager()
- .setVideoText(bean.data)
- OrderTimeOutManager.instance.checkOrderManager(orderId, orderType, i)
+ MyApplication.getTTsManager().setVideoText(bean.data)
click()
+ }) { code, msg ->
+ clickFail(code, msg)
}
}
- private fun callStatue(phone: String, i: Int, click: () -> Unit, clickFail: () -> Unit) {
- var map = getMapByAny()
+ private fun callStatue(phone: String, i: Int, click: () -> Unit, clickFail: (Int, String?) -> Unit) {
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
map["state"] = i
@@ -353,18 +346,17 @@
map["lat"] = MyApplication.getLocation()?.latitude ?: 0.0
map["lon"] = MyApplication.getLocation()?.longitude ?: 0.0
callNet(Api.process, map, {
- OrderTimeOutManager.instance.checkOrderManager(orderId, orderType, i)
val fromJson = gson.fromJson<StringBean>(it, StringBean::class.java)
MyApplication.getTTsManager().setVideoText(fromJson.data)
click()
- }) {
- clickFail()
+ }) { code, msg ->
+ clickFail(code, msg)
}
}
private fun showMoneyTypeDialog() {
- var pop = DialogUtil.getPopupwindow(this, R.layout.dialog_select_pay_type)
+ val pop = DialogUtil.getPopupwindow(this, R.layout.dialog_select_pay_type)
var payType = 1 //支付方式(1=IGO平台收款,2=其他方式收款)
pop.showDown(window.decorView)
val tv_cancel = pop.contentView.find<TextView>(R.id.tv_cancel)
@@ -378,9 +370,11 @@
tv_ok.setOnClickListener {
pop.dismiss()
if (payType == 1) {
- callStatue(6) {
+ callStatue(6, {
startActivity<FillOutActivity>("orderId" to orderId, "orderType" to orderType)
finish()
+ }) { code, msg ->
+ LogHelper.logRecord("平台收款改订单状态为已到达失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
}
} else {
DialogUtil.getDelAndSureDialog(this, getString(R.string.请确定是否收款), {}, {
@@ -389,10 +383,15 @@
map["orderId"] = orderId
map["orderType"] = orderType
map["type"] = payType
- callStatue(6) {
- callNet(Api.confirmFees, map) {
+ callStatue(6, {
+ callNet(Api.confirmFees, map, {
+ LogHelper.logRecord("司机确认收费成功orderId:${orderId} orderType:${orderType}")
callOverOrder()
+ }) { code, msg ->
+ LogHelper.logRecord("司机确认收费失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
}
+ }) { code, msg ->
+ LogHelper.logRecord("其他收款改订单状态为已到达失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
}
})
}
@@ -419,9 +418,9 @@
*/
var lastMoveByGesture = 0L //上次手势操作的时间
private fun initMineLocation() {
- aMap.setOnMyLocationChangeListener {
- it.let { latlon ->
- MyApplication.aMapLocation = LatLng(it.latitude, it.longitude)
+ aMap.setOnMyLocationChangeListener { it ->
+ it?.let {
+ MyApplication.setLocation(it.latitude, it.longitude)
}
orderBean?.let {
when (it.data.orderState) {
@@ -453,6 +452,9 @@
makeMarker!!.position,
object : (MutableList<LatLng>, Float, Long) -> Unit {
override fun invoke(p1: MutableList<LatLng>, p2: Float, p3: Long) {
+ if (isFinishing || isDestroyed) {
+ return
+ }
val s = AMapKit.getTance(this@TripActivity, p2)
val content = getString(R.string.距预约点, s)
val sb = SpanBuilder.content(content).colorSpan(
@@ -461,7 +463,7 @@
content.indexOf(s) + s.length,
R.color.color_5DB03D
).build()
- var view = creatCarView(sb)
+ val view = creatCarView(sb)
carMarker!!.setIcon(getIcon(view))
addline(p1)
if (isMove) {
@@ -469,80 +471,6 @@
}
}
})
- }
- }
-
-
- private fun getTripInfo(state: Int, isMove: Boolean) {
- var map = getMapByAny()
- map["orderId"] = orderId
- map["orderType"] = orderType
- callNet(false, Api.getTripInfo, map) {
- val bean = Gson().fromJson(it, StringBean::class.java)
- if (bean.code == 200 && !bean.data.isNullOrEmpty()) {
- val trip = Gson().fromJson(bean.data, GoogleTripInfo::class.java)
- val latlon = if (trip.lastLocation == null) LocationX(
- MyApplication.aMapLocation!!.latitude,
- MyApplication.aMapLocation!!.longitude
- ) else trip.lastLocation.location //车辆位置
- carMarker?.position = LatLng(latlon.latitude, latlon.longitude)
- if (state != 4) {
- graylist.add(LatLng(latlon.latitude, latlon.longitude))
- grayline?.remove()
- grayline = AMapKit.drawLine(this, aMap, graylist, R.color.gray)
- val routs = arrayListOf<LatLng>()
- if (!trip.route.isNullOrEmpty()) {
- routs.addAll(trip.route.map { LatLng(it.latitude, it.longitude) })
- }
- addline(routs)
- } else {
- closeLine()
- graylist.clear()
- grayline?.remove()
- }
- if (state == 3) {
- val tance = trip.remainingDistanceMeters.toFloat()
- val s = AMapKit.getTance(this@TripActivity, tance)
- val unit = getString(if (tance > 1000) R.string.公里 else R.string.米)
- val content = getString(R.string.距预约点, s)
- val sb = SpanBuilder.content(content).colorSpan(
- this@TripActivity,
- content.indexOf(s),
- content.indexOf(s) + s.length - unit.length,
- R.color.color_5DB03D
- ).build()
- var view = creatCarView(sb)
- carMarker!!.setIcon(getIcon(view))
-
- }
- if (state == 5) {
- val tance =
- AMapKit.getTance(this@TripActivity, trip.remainingDistanceMeters.toFloat())
- val unit =
- getString(if (trip.remainingDistanceMeters.toFloat() > 1000) R.string.公里 else R.string.米)
- val seconds = trip.remainingWaypoints?.firstOrNull()?.duration ?: "0s"
- val time = (seconds.substring(0, seconds.length - 1).toDouble() / 60).toInt()
- .toString()
- val content = getString(R.string.预计还需, tance, time)
- val sb = SpanBuilder.content(content).colorSpan(
- this@TripActivity,
- content.indexOf(tance),
- content.indexOf(tance) + tance.length - unit.length,
- R.color.color_5DB03D
- )
- .colorSpan(
- this@TripActivity,
- content.indexOf(time),
- content.indexOf(time) + time.length,
- R.color.color_5DB03D
- ).build()
- var view = creatCarView(sb)
- carMarker!!.setIcon(getIcon(view))
- }
- if (isMove) {
- iv_move.callOnClick()
- }
- }
}
}
@@ -556,6 +484,9 @@
endMarker!!.position,
object : (MutableList<LatLng>, Float, Long) -> Unit {
override fun invoke(p1: MutableList<LatLng>, p2: Float, p3: Long) {
+ if (isFinishing || isDestroyed) {
+ return
+ }
addline(p1)
val tance = AMapKit.getTance(this@TripActivity, p2)
val time = p3.toInt().toString()
@@ -572,7 +503,7 @@
content.indexOf(time) + time.length,
R.color.color_5DB03D
).build()
- var view = creatCarView(sb)
+ val view = creatCarView(sb)
carMarker!!.setIcon(getIcon(view))
if (isMove) {
iv_move.callOnClick()
@@ -585,20 +516,22 @@
private fun callOrder(reNavi: Boolean = false) {
MyApplication.currentOrderId = orderId
MyApplication.currentOrderType = orderType
- var map = getMapByAny()
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
- callNet(Api.queryOrderInfo, map) {
- orderBean = gson.fromJson(it, OrderBean::class.java)
- showUi(orderBean)
- if (reNavi) {
- EventBus.getDefault().post(
- BaseEvent(
- BaseEvent.RELOAD_NAVI,
- orderBean!!.data.endLat.toString(),
- orderBean!!.data.endLon.toString()
+ callNet(Api.queryOrderInfo, map) { it ->
+ gson.fromJson(it, OrderBean::class.java)?.also {
+ orderBean = it
+ showUi(it)
+ if (reNavi) {
+ EventBus.getDefault().post(
+ BaseEvent(
+ BaseEvent.RELOAD_NAVI,
+ it.data?.endLat?.toString(),
+ it.data?.endLon?.toString()
+ )
)
- )
+ }
}
}
}
@@ -621,7 +554,7 @@
tv_red_money.text =
getString(R.string.元红包, it.data.tipMoney.toString().extClearInvalidZero())
showStatueMapUI(it)
- var latLngList = mutableListOf<LatLng>()
+ val latLngList = mutableListOf<LatLng>()
for (item in orderBean.data.orderPositionList) {
latLngList.add(LatLng(item.lat, item.lon))
}
@@ -633,7 +566,7 @@
private fun callOverOrder() {
showDialog()
- var map = getMapByAny()
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
callNet(Api.queryOrderInfo, map) {
@@ -738,7 +671,7 @@
((System.currentTimeMillis() - DateUtil.dateToStamp(
DateUtil.TYPE0,
it.data.waitTime
- )) / 1000).toLong()
+ )) / 1000)
)
moveCamera(aMap, carMarker!!.position)
setTitleText(getString(R.string.等待客户))
@@ -764,7 +697,7 @@
if (!isTimeStart) {
isTimeStart = true
refreshTime(waitTime) {
- var view = creatCarViewHint(getString(R.string.您已等待, getTimeType(it)))
+ val view = creatCarViewHint(getString(R.string.您已等待, getTimeType(it)))
carMarker!!.setIcon(getIcon(view))
}
}
@@ -783,7 +716,7 @@
.observeOn(AndroidSchedulers.mainThread())
.compose(bindUntilEvent(ActivityEvent.DESTROY))
.subscribe { aLong ->
- var num = waitTime + aLong
+ val num = waitTime + aLong
click(num.toInt())
}
}
@@ -824,10 +757,7 @@
@SuppressLint("MissingPermission")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- var fragment = supportFragmentManager.findFragmentById(R.id.map_view) as SupportMapFragment
-
-
-
+ val fragment = supportFragmentManager.findFragmentById(R.id.map_view) as SupportMapFragment
initMap(fragment) {
aMap = it
aMap.isMyLocationEnabled = true
diff --git a/app/src/main/java/com/driver/igotrip/ui/main/major/MajorSureMoney2Activity.kt b/app/src/main/java/com/driver/igotrip/ui/main/major/MajorSureMoney2Activity.kt
index 0de48dd..a2d0306 100644
--- a/app/src/main/java/com/driver/igotrip/ui/main/major/MajorSureMoney2Activity.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/main/major/MajorSureMoney2Activity.kt
@@ -2,6 +2,7 @@
import android.view.View
import android.widget.TextView
+import cn.sinata.rxnetty.LogHelper
import cn.sinata.xldutils.utils.clickDelay
import com.driver.igotrip.R
import com.driver.igotrip.base.BaseEvent
@@ -46,6 +47,7 @@
override fun initView() {
setTitleText(getString(R.string.确认费用))
+ LogHelper.logRecord("确认订单费用2orderId:${orderId} orderType:${orderType}")
}
@@ -58,12 +60,12 @@
sureMoneyCallOffLine()
}
- var map = getMapByAny()
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
callNet(false, Api.queryMoneyInfo, map) {
- var bean = gson.fromJson<MajorMoneyBean>(it, MajorMoneyBean::class.java)
+ val bean = gson.fromJson<MajorMoneyBean>(it, MajorMoneyBean::class.java)
tv_all_money.text = getString(R.string.money) + " " + bean.data.payMoney.toString().extClearInvalidZero()
}
@@ -71,27 +73,31 @@
private fun sureMoneyCallOnLine() {
- var map = getMapByAny()
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
map["type"] = 1
- callNet(true, Api.confirmFees, map) {
+ callNet(true, Api.confirmFees, map, {
+ LogHelper.logRecord("线上收款成功orderId:${orderId} orderType:${orderType}")
EventBus.getDefault().post(BaseEvent(BaseEvent.BACK_CAR_OVER))
if (orderType == "4")
callSmallOrder()
else
callOrder()
+ }) { code, msg ->
+ LogHelper.logRecord("线上收款失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
}
}
- private fun sureMoneyCallOffLine(){
- var map = getMapByAny()
+ private fun sureMoneyCallOffLine() {
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
map["type"] = 2
- callNet(true, Api.confirmFees, map) {
- var map = getMapByAny()
+ callNet(true, Api.confirmFees, map, {
+ LogHelper.logRecord("线下收款成功orderId:${orderId} orderType:${orderType}")
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
callNet(completeOrder, map) {
@@ -100,13 +106,15 @@
EventBus.getDefault().post(BaseEvent(BaseEvent.REFREASH_MAIN))
finish()
}
+ }) { code, msg ->
+ LogHelper.logRecord("线下收款失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
}
}
private fun callSmallOrder() {
showDialog()
- var map = getMapByAny()
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
callNet(Api.queryOrderInfo, map) {
@@ -121,7 +129,7 @@
private fun callOrder() {
showDialog()
- var map = getMapByAny()
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
callNet(Api.queryOrderInfo, map) {
diff --git a/app/src/main/java/com/driver/igotrip/ui/main/major/MajorSureMoneyActivity.kt b/app/src/main/java/com/driver/igotrip/ui/main/major/MajorSureMoneyActivity.kt
index 66c2869..02c1345 100644
--- a/app/src/main/java/com/driver/igotrip/ui/main/major/MajorSureMoneyActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/main/major/MajorSureMoneyActivity.kt
@@ -4,6 +4,7 @@
import android.view.View
import android.widget.EditText
import android.widget.TextView
+import cn.sinata.rxnetty.LogHelper
import cn.sinata.xldutils.utils.clickDelay
import cn.sinata.xldutils.utils.getContent
import com.driver.igotrip.R
@@ -53,43 +54,40 @@
private val rl_coupon_price by lazy { find<View>(R.id.rl_coupon_price) }
private val et_long_go_money by lazy { find<EditText>(R.id.et_long_go_money) }
private val et_stop_car_money by lazy { find<EditText>(R.id.et_stop_car_money) }
-
+ private var setbean: MajorMoneyBean? = null
override fun initView() {
- setbean=null
+ setbean = null
setTitleText(getString(R.string.确认费用))
callorderMoney()
+ LogHelper.logRecord("确认订单费用orderId:${orderId} orderType:${orderType}")
}
private fun callorderMoney() {
- var map = getMapByAny()
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
callNet(false, Api.queryMoneyInfo, map) {
- var bean = gson.fromJson<MajorMoneyBean>(it, MajorMoneyBean::class.java)
+ val bean = gson.fromJson<MajorMoneyBean>(it, MajorMoneyBean::class.java)
showUi(bean)
tv_sure.isEnabled = true
tv_sure.alpha = 1.0f
}
}
- companion object
- {
- var setbean:MajorMoneyBean?=null
- }
private fun showUi(bean: MajorMoneyBean?) {
bean?.let {
- setbean=it
- tv_start_money.text = "FCFA" +" "+ it.data.startMoney.toString().extClearInvalidZero()
+ setbean = it
+ tv_start_money.text = "FCFA" + " " + it.data.startMoney.toString().extClearInvalidZero()
tv_wait_name.text = getString(R.string.wait_time, it.data.wait.toString())
- tv_wait_money.text = "FCFA" +" "+ it.data.waitMoney.toString().extClearInvalidZero()
+ tv_wait_money.text = "FCFA" + " " + it.data.waitMoney.toString().extClearInvalidZero()
tv_mileage_name.text = getString(R.string.tance_money, it.data.mileage.toString())
- tv_mileage_money.text = "FCFA" +" "+ it.data.mileageMoney.toString().extClearInvalidZero()
+ tv_mileage_money.text = "FCFA" + " " + it.data.mileageMoney.toString().extClearInvalidZero()
tv_time_name.text = getString(R.string.time_money, it.data.duration.toString())
- tv_time_money.text = "FCFA" +" "+ it.data.durationMoney.toString().extClearInvalidZero()
+ tv_time_money.text = "FCFA" + " " + it.data.durationMoney.toString().extClearInvalidZero()
tv_long_distance_name.text =
getString(R.string.远途费公里, it.data.longDistance.toString())
- tv_long_distance_money.text = "FCFA" +" "+ it.data.longDistanceMoney.toString().extClearInvalidZero()
+ tv_long_distance_money.text = "FCFA" + " " + it.data.longDistanceMoney.toString().extClearInvalidZero()
tv_all_money.text = getString(R.string.money) + " " + it.data.payMoney.toString().extClearInvalidZero()
price_difference_layout.visibility =
@@ -146,11 +144,11 @@
var map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
- callNet( Api.queryOrderInfo, map) {
+ callNet(Api.queryOrderInfo, map) {
val orderBean = Gson().fromJson(it, OrderBean::class.java)
- val moneytype="${ this@MajorSureMoneyActivity.getString(R.string.money)} ${orderBean.data.orderMoney}".extClearInvalidZero()
- Log.e( "onBindItem: ", moneytype)
- this@MajorSureMoneyActivity.startActivity<MajorSureMoney2Activity>(
+ val moneytype = "${this@MajorSureMoneyActivity.getString(R.string.money)} ${orderBean.data.orderMoney}".extClearInvalidZero()
+ Log.e("onBindItem: ", moneytype)
+ this@MajorSureMoneyActivity.startActivity<MajorSureMoney2Activity>(
"orderId" to orderId, "orderType" to orderType,
"money" to moneytype
)
diff --git a/app/src/main/java/com/driver/igotrip/ui/main/small_cargo/SmallCargoActivity.kt b/app/src/main/java/com/driver/igotrip/ui/main/small_cargo/SmallCargoActivity.kt
index fd91a33..313913f 100644
--- a/app/src/main/java/com/driver/igotrip/ui/main/small_cargo/SmallCargoActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/main/small_cargo/SmallCargoActivity.kt
@@ -13,13 +13,13 @@
import android.widget.TextView
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
+import cn.sinata.rxnetty.LogHelper
import cn.sinata.xldutils.utils.*
import com.driver.igotrip.R
import com.driver.igotrip.base.BaseEvent
import com.driver.igotrip.base.Const
import com.driver.igotrip.base.MyApplication
import com.driver.igotrip.base.MyBaseActivity
-import com.driver.igotrip.base.OrderTimeOutManager
import com.driver.igotrip.base.gaode.AMapKit
import com.driver.igotrip.base.gaode.AMapKit.addMarker
import com.driver.igotrip.base.gaode.AMapKit.getIcon
@@ -122,11 +122,12 @@
onclick()
addSockectCancel()
- var language = SPUtils.getString(Const.language)
+ val language = SPUtils.getString(Const.language)
if (language == Const.Language.ENGLISH || language == Const.Language.FRENCH)
btn_gap_money.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12f)
else
btn_gap_money.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14f)
+ LogHelper.logRecord("处理快件订单orderId:${orderId} orderType:${orderType}")
}
override fun initView() {
@@ -179,10 +180,10 @@
}
var handler: Handler? = null
fun checkOrderStatue() {
- var map = getMapByAny()
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
- callNet(false, Api.orderStateSocket, map) {
+ callNet(false, Api.orderStateSocket, map) { it ->
val orderSimpleData =
Gson().fromJson(
it,
@@ -216,33 +217,18 @@
private fun onclick() {
tv_Right.clickDelay {
- var map = getMapByAny()
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
- callNet(Api.queryReassignMoney, map) {
+ callNet(Api.queryReassignMoney, map, {
val data = gson.fromJson<RessignBean>(it, RessignBean::class.java)
+ LogHelper.logRecord("查询订单改派金额成功orderId:${orderId} orderType:${orderType} data:${Gson().toJson(data)}")
startActivity<ReassignActivity>(
"orderId" to orderId,
"orderType" to orderType
)
-// if (data.data.amount.isNullOrEmpty()) {
-//
-// } else {
-// DialogUtil.getDelAndSureDialog(
-// this,
-// getString(R.string.change_order_hint,data.data.amount!!),
-// {},
-// {
-// //跳转改派页面
-// startActivity<ReassignActivity>(
-// "orderId" to orderId,
-// "orderType" to orderType,
-// "money" to data.data.amount.toString()
-// )
-// })
-// }
-
-
+ }) { code, msg ->
+ LogHelper.logRecord("查询订单改派金额失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
}
}
@@ -252,8 +238,8 @@
toast(getString(R.string.用户已支付差价))
return@clickDelay
}
- var dialog = DialogUtil.getDialog(this, R.layout.dialog_show_cha_money)
- var viewContent = DialogUtil.getView(dialog)
+ val dialog = DialogUtil.getDialog(this, R.layout.dialog_show_cha_money)
+ val viewContent = DialogUtil.getView(dialog)
val view_hint_close_car_cha = viewContent.find<View>(R.id.view_hint_close_car_cha)
val tv_car_num_close_cha = viewContent.find<View>(R.id.tv_car_num_close_cha)
val tv_sure_car_num_cha = viewContent.find<View>(R.id.tv_sure_car_num_cha)
@@ -265,7 +251,7 @@
dialog.dismiss()
}
tv_sure_car_num_cha.setOnClickListener {
- var num = et_num_zg_cha.getContent()
+ val num = et_num_zg_cha.getContent()
if (num.isEmpty()) {
toast(getString(R.string.请输入金额))
return@setOnClickListener
@@ -278,12 +264,15 @@
toast(getString(R.string.金额不能小于0元))
return@setOnClickListener
}
- callseatmoney(num) {
+ callseatmoney(num, {
+ LogHelper.logRecord("补差价操作成功orderId:${orderId} orderType:${orderType}")
dialog.dismiss()
btn_gap_money.text =
getString(R.string.差价待确认).format(num.extClearInvalidZero())
btn_gap_money.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0, 0, 0)
// toast(getString(R.string.set_success))
+ }) { code, msg ->
+ LogHelper.logRecord("补差价操作失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
}
}
}
@@ -364,16 +353,24 @@
)
} else {
it.data.orderState++
- callStatue("1", it.data.orderState) {
+ callStatue("1", it.data.orderState, {
+ LogHelper.logRecord("更新订单状态为送件中成功orderId:${orderId} orderType:${orderType}")
iv_to_gd.callOnClick()
+ }) { code, msg ->
+ it.data.orderState--
+ LogHelper.logRecord("更新订单状态为送件中失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
}
showStatueMapUI(it)
}
} else {
it.data.orderState++
- callStatue(it.data.orderState, "") {
+ callStatue(it.data.orderState, "", {
+ LogHelper.logRecord("更新订单状态成功orderId:${orderId} orderType:${orderType} state:${it.data.orderState}")
if (it.data.orderState == 3)
iv_to_gd.callOnClick()
+ }) { code, msg ->
+ it.data.orderState--
+ LogHelper.logRecord("更新订单状态失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
}
showStatueMapUI(it)
}
@@ -394,7 +391,11 @@
12 -> {
it.data.orderState = 5
- callStatue(it.data.orderState, "") {}
+ callStatue(it.data.orderState, "", {
+ LogHelper.logRecord("取消待支付订单更新状态为送件中成功orderId:${orderId} orderType:${orderType}")
+ }) { code, msg ->
+ LogHelper.logRecord("取消待支付订单更新状态为送件中失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
+ }
showStatueMapUI(it)
}
@@ -428,8 +429,7 @@
it.data.orderState = 6
val dialog = DialogUtil.getDialog(this, R.layout.dialog_show_cargo_money)
val viewContent = DialogUtil.getView(dialog)
- val view_hint_close_car =
- viewContent.find<View>(R.id.view_hint_close_car)
+ val view_hint_close_car = viewContent.find<View>(R.id.view_hint_close_car)
val tv_car_num_close = viewContent.find<View>(R.id.tv_car_num_close)
val tv_money = viewContent.find<TextView>(R.id.tv_money)
val tv_sure_car_num = viewContent.find<TextView>(R.id.tv_sure_car_num)
@@ -452,9 +452,12 @@
toast(getString(R.string.请输入验证码))
return@setOnClickListener
}
- confirmDelivery(6, num, url) {
+ confirmDelivery(6, num, url, {
+ LogHelper.logRecord("确认快件已送达成功orderId:${orderId} orderType:${orderType}")
dialog.dismiss()
finish()
+ }) { code, msg ->
+ LogHelper.logRecord("确认快件已送达失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
}
}
}
@@ -469,10 +472,13 @@
.replace(",", ".").extClearInvalidZero(),
{},
{
- confirmPickUp(url, 5) {
+ confirmPickUp(url, 5, {
+ LogHelper.logRecord("确认收到此订单费用成功orderId:${orderId} orderType:${orderType}")
it.data.orderState = 5
showStatueMapUI(it)
iv_to_gd.callOnClick()
+ }) { code, msg ->
+ LogHelper.logRecord("确认收到此订单费用失败orderId:${orderId} orderType:${orderType} code:${code} msg:${msg}")
}
})
}
@@ -482,39 +488,21 @@
AMapKit.startNavi(this, startLat, startLon, endLat, endLon)
}
- private fun sendCode(function: () -> Unit) {
- var map = getMapByAny()
- map["orderId"] = orderId
- callNet(Api.sendVerificationCode, map) {
- function()
- }
- }
-
- private fun callNumberCargo(num: String, click: () -> Unit) {
- var map = getMapByAny()
- map["orderId"] = orderId
- map["pickUpCode"] = num
- callNet(Api.fillInPickUpCode, map) {
- click()
- }
- }
-
-
- private fun callseatmoney(num: String, click: () -> Unit) {
- var map = getMapByAny()
+ private fun callseatmoney(num: String, click: () -> Unit, error: (code: Int, msg: String?) -> Unit) {
+ val map = getMapByAny()
map["orderId"] = orderId
map["difference"] = doubleTwo(num.toDouble())
- callNet(Api.makeUpTheDifference, map) {
+ callNet(Api.makeUpTheDifference, map, {
click()
- }
+ }, error)
}
- private fun callStatue(i: Int, num: String, click: () -> Unit) {
- var map = getMapByAny()
+ private fun callStatue(i: Int, num: String, click: () -> Unit, error: (code: Int, msg: String?) -> Unit) {
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
map["state"] = i
- if (!num.isNullOrEmpty())
+ if (num.isNotEmpty())
map["pickUpCode"] = num
Log.e(
"定位==============》",
@@ -522,19 +510,18 @@
)
map["lat"] = MyApplication.getLocation()?.latitude ?: 0.0
map["lon"] = MyApplication.getLocation()?.longitude ?: 0.0
- callNet(Api.process, map) {
- OrderTimeOutManager.instance.checkOrderManager(orderId, orderType, i)
+ callNet(Api.process, map, {
click()
- }
+ }, error)
}
//确认送达
- private fun confirmDelivery(i: Int, num: String, imgTwo: String, click: () -> Unit) {
- var map = getMapByAny()
+ private fun confirmDelivery(i: Int, num: String, imgTwo: String, click: () -> Unit, error: (code: Int, msg: String?) -> Unit) {
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
map["state"] = i
- if (!num.isNullOrEmpty())
+ if (num.isNotEmpty())
map["pickUpCode"] = num
Log.e(
"定位==============》",
@@ -543,39 +530,36 @@
map["imgTwo"] = imgTwo
map["lat"] = MyApplication.getLocation()?.latitude ?: 0.0
map["lon"] = MyApplication.getLocation()?.longitude ?: 0.0
- callNet(Api.process, map) {
- OrderTimeOutManager.instance.checkOrderManager(orderId, orderType, i)
+ callNet(Api.process, map, {
click()
- }
+ }, error)
}
- private fun callStatue(phone: String, i: Int, click: () -> Unit) {
- var map = getMapByAny()
+ private fun callStatue(phone: String, i: Int, click: () -> Unit, error: (code: Int, msg: String?) -> Unit) {
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
map["state"] = i
// map["phone"] = phone
map["lat"] = MyApplication.getLocation()?.latitude ?: 0.0
map["lon"] = MyApplication.getLocation()?.longitude ?: 0.0
- callNet(Api.process, map) {
- OrderTimeOutManager.instance.checkOrderManager(orderId, orderType, i)
+ callNet(Api.process, map, {
click()
- }
+ }, error)
}
//确认收获
- private fun confirmPickUp(imgOne: String, i: Int, click: () -> Unit) {
- var map = getMapByAny()
+ private fun confirmPickUp(imgOne: String, i: Int, click: () -> Unit, error: (code: Int, msg: String?) -> Unit) {
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
map["imgOne"] = imgOne
map["state"] = i
map["lat"] = MyApplication.getLocation()?.latitude ?: 0.0
map["lon"] = MyApplication.getLocation()?.longitude ?: 0.0
- callNet(Api.process, map) {
- OrderTimeOutManager.instance.checkOrderManager(orderId, orderType, i)
+ callNet(Api.process, map, {
click()
- }
+ }, error)
}
private var movedByFinger = false
@@ -585,9 +569,9 @@
*/
var lastMoveByGesture = 0L //上次手势操作的时间
private fun initMineLocation() {
- aMap.setOnMyLocationChangeListener {
- it.let { latlon ->
- MyApplication.aMapLocation = LatLng(it.latitude, it.longitude)
+ aMap.setOnMyLocationChangeListener { it ->
+ it?.let {
+ MyApplication.setLocation(it.latitude, it.longitude)
}
orderBean?.let {
when (it.data.orderState) {
@@ -605,25 +589,6 @@
}
}
}
-
-// it.let { latlon ->
-// carMarker?.position = LatLng(latlon.latitude, latlon.longitude)
-// graylist.add(LatLng(latlon.latitude, latlon.longitude))
-// grayline?.remove()
-// grayline = AMapKit.drawLine(this, aMap, graylist, R.color.gray)
-// MyApplication.aMapLocation = LatLng(it.latitude, it.longitude)
-// orderBean?.let {
-// when (it.data.orderState) {
-// 2, 3 -> {
-// changeCarThree(false)
-// }
-//
-// 5, 6 -> {
-// changeCarFive(false)
-// }
-// }
-// }
-// }
}
}
@@ -636,7 +601,9 @@
carMarker!!.position,
object : (MutableList<LatLng>, Float, Long) -> Unit {
override fun invoke(p1: MutableList<LatLng>, p2: Float, p3: Long) {
-
+ if (isFinishing || isDestroyed) {
+ return
+ }
val tance = AMapKit.getTance(this@SmallCargoActivity, p2)
val content = getString(R.string.距取货点, tance)
val sp = SpanBuilder.content(content)
@@ -646,7 +613,7 @@
content.indexOf(tance) + tance.length,
R.color.color_5DB03D
).build()
- var view = creatCarView(sp)
+ val view = creatCarView(sp)
carMarker!!.setIcon(getIcon(view))
addline(p1)
if (isMove)
@@ -665,6 +632,9 @@
endMarker!!.position,
object : (MutableList<LatLng>, Float, Long) -> Unit {
override fun invoke(p1: MutableList<LatLng>, p2: Float, p3: Long) {
+ if (isFinishing || isDestroyed) {
+ return
+ }
addline(p1)
val tance = AMapKit.getTance(this@SmallCargoActivity, p2)
@@ -682,8 +652,7 @@
content.indexOf(time) + time.length,
R.color.color_5DB03D
).build()
- var view =
- creatCarView(sp)
+ val view = creatCarView(sp)
carMarker!!.setIcon(getIcon(view))
if (isMove) {
moveCamera(aMap, carMarker!!.position, endMarker!!.position)
@@ -696,21 +665,23 @@
private fun callOrder(reNavi: Boolean = false, function: () -> Unit) {
MyApplication.currentOrderId = orderId
MyApplication.currentOrderType = orderType
- var map = getMapByAny()
+ val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
- callNet(Api.queryOrderInfo, map) {
- orderBean = gson.fromJson(it, OrderBean::class.java)
- showUi(orderBean)
- function()
- if (reNavi) {
- EventBus.getDefault().post(
- BaseEvent(
- BaseEvent.RELOAD_NAVI,
- orderBean!!.data.endLat.toString(),
- orderBean!!.data.endLon.toString()
+ callNet(Api.queryOrderInfo, map) { it ->
+ gson.fromJson(it, OrderBean::class.java)?.also {
+ orderBean = it
+ showUi(it)
+ function()
+ if (reNavi) {
+ EventBus.getDefault().post(
+ BaseEvent(
+ BaseEvent.RELOAD_NAVI,
+ it.data?.endLat?.toString(),
+ it.data?.endLon?.toString()
+ )
)
- )
+ }
}
}
}
@@ -743,7 +714,7 @@
getString(R.string.差价点击修改).format(it.data.differenceMoney.extClearInvalidZero())
btn_gap_money.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0, 0, 0)
}
- var latLngList = mutableListOf<LatLng>()
+ val latLngList = mutableListOf<LatLng>()
for (item in orderBean.data.orderPositionList) {
latLngList.add(LatLng(item.lat, item.lon))
}
@@ -869,61 +840,6 @@
}
}
- private fun getTripInfo(state: Int, isMove: Boolean) {
- /* var map = getMapByAny()
- map["orderId"] = orderId
- map["orderType"] = orderType
- Log.e("QXS=mmp","getTripInfo:state=${state},orderId=${orderId},orderType=${orderType}")
- callNet(false,Api.getTripInfo, map) {
- val bean = Gson().fromJson(it, StringBean::class.java)
- if (bean.code == 200&&!bean.data.isNullOrEmpty()){
- val trip = Gson().fromJson(bean.data, GoogleTripInfo::class.java)
- val latlon = if (trip?.lastLocation == null) LocationX(MyApplication.aMapLocation!!.latitude,MyApplication.aMapLocation!!.longitude) else trip.lastLocation.location //车辆位置
- carMarker?.position = LatLng(latlon.latitude, latlon.longitude)
- if (state != 4){
- graylist.add(LatLng(latlon.latitude, latlon.longitude))
- grayline?.remove()
- grayline = AMapKit.drawLine(this, aMap, graylist, R.color.gray)
- val routs = arrayListOf<LatLng>()
- if (!trip.route.isNullOrEmpty())
- routs.addAll(trip.route.map { LatLng(it.latitude,it.longitude) })
- addline(routs)
- }else{
- closeLine()
- graylist.clear()
- grayline?.remove()
- }
- if (state == 3){
- val tance = AMapKit.getTance(this@SmallCargoActivity, trip.remainingDistanceMeters.toFloat())
- val content = getString(R.string.距取货点, tance)
- val sp = SpanBuilder.content(content)
- .colorSpan(
- this@SmallCargoActivity,
- content.indexOf(tance),
- content.indexOf(tance) + tance.length,
- R.color.color_5DB03D
- ).build()
- var view = creatCarView(sp)
- carMarker!!.setIcon(getIcon(view))
- }
- if (state == 5){
- val tance = AMapKit.getTance(this, trip.remainingDistanceMeters.toFloat())
- val seconds = trip.remainingWaypoints?.firstOrNull()?.duration ?:"0s"
- val time = (seconds.substring(0,seconds.length-1).toDouble()/60).toInt().toString()
- val content = getString(R.string.预计还需, tance, time)
- val sb = SpanBuilder.content(content).colorSpan(this,content.indexOf(tance),content.indexOf(tance)+tance.length,R.color.color_5DB03D)
- .colorSpan(this,content.indexOf(time),content.indexOf(time)+time.length,R.color.color_5DB03D).build()
- var view = creatCarView(sb)
- carMarker!!.setIcon(getIcon(view))
- }
- if (isMove) {
- iv_move.callOnClick()
- }
- }
- }*/
- }
-
-
private fun startTimeStart(waitTime: Int) {
if (!isTimeStart) {
isTimeStart = true
@@ -936,7 +852,7 @@
content.indexOf(timeType) + timeType.length,
R.color.main_login_orange
).build()
- var view = creatCarViewHint(build)
+ val view = creatCarViewHint(build)
carMarker!!.setIcon(getIcon(view))
}
}
@@ -955,7 +871,7 @@
.observeOn(AndroidSchedulers.mainThread())
.compose(bindUntilEvent(ActivityEvent.DESTROY))
.subscribe { aLong ->
- var num = waitTime + aLong
+ val num = waitTime + aLong
click(num.toInt())
}
}
@@ -987,27 +903,14 @@
}
}
- fun getTance(startLatLng: LatLng, endLatLng: LatLng, onclick: (tance: Float) -> Unit) {
- AMapKit.initRouteLine(
- this,
- startLatLng,
- endLatLng,
- object : (MutableList<LatLng>, Float, Long) -> Unit {
- override fun invoke(p1: MutableList<LatLng>, p2: Float, p3: Long) {
- onclick(p2)
- }
- })
- }
-
override fun setOnclick() {
}
-
@SuppressLint("MissingPermission")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- var fragment = supportFragmentManager.findFragmentById(R.id.map_view) as SupportMapFragment
+ val fragment = supportFragmentManager.findFragmentById(R.id.map_view) as SupportMapFragment
initMap(fragment) {
mapInitStatus = true
aMap = it
diff --git a/app/src/main/java/com/driver/igotrip/ui/mine/ChangeEmailActivity.kt b/app/src/main/java/com/driver/igotrip/ui/mine/ChangeEmailActivity.kt
index 91396e3..08d22c3 100644
--- a/app/src/main/java/com/driver/igotrip/ui/mine/ChangeEmailActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/mine/ChangeEmailActivity.kt
@@ -38,7 +38,7 @@
toast(getString(R.string.成功))
onBackPressed()
}
- }, {
+ }, {_, _ ->
})
}
}
diff --git a/app/src/main/java/com/driver/igotrip/ui/mine/DriverAttestationActivity.kt b/app/src/main/java/com/driver/igotrip/ui/mine/DriverAttestationActivity.kt
index bc77bc5..784969f 100644
--- a/app/src/main/java/com/driver/igotrip/ui/mine/DriverAttestationActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/mine/DriverAttestationActivity.kt
@@ -352,7 +352,7 @@
toast(getString(R.string.成功))
onBackPressed()
}
- }, {
+ }, {_, _ ->
})
}
diff --git a/app/src/main/java/com/driver/igotrip/ui/mine/FeedbackRemarkActivity.kt b/app/src/main/java/com/driver/igotrip/ui/mine/FeedbackRemarkActivity.kt
index 71aac74..8a96335 100644
--- a/app/src/main/java/com/driver/igotrip/ui/mine/FeedbackRemarkActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/mine/FeedbackRemarkActivity.kt
@@ -9,6 +9,7 @@
import com.driver.igotrip.netUtls.Api
import com.driver.igotrip.netUtls.callNet
import com.driver.igotrip.netUtls.getMapByAny
+import com.driver.igotrip.utils.crash.LogUploader
import org.jetbrains.anko.find
import org.jetbrains.anko.toast
@@ -38,7 +39,7 @@
toast(getString(R.string.提交成功))
onBackPressed()
}
-
+ LogUploader.upload()
}
et_content.setTextChange {
tv_hint.text = getString(R.string.还可以输入,(200 - it.length))
diff --git a/app/src/main/java/com/driver/igotrip/ui/mine/money_bag/ApplyMoneyActivity.kt b/app/src/main/java/com/driver/igotrip/ui/mine/money_bag/ApplyMoneyActivity.kt
index e527807..e4bd01e 100644
--- a/app/src/main/java/com/driver/igotrip/ui/mine/money_bag/ApplyMoneyActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/mine/money_bag/ApplyMoneyActivity.kt
@@ -9,6 +9,7 @@
import android.widget.RadioGroup
import android.widget.TextView
import androidx.core.view.isVisible
+import cn.sinata.rxnetty.LogHelper
import cn.sinata.xldutils.utils.doubleTwo
import cn.sinata.xldutils.utils.getContent
import com.driver.igotrip.R
@@ -27,7 +28,6 @@
import org.jetbrains.anko.find
import org.jetbrains.anko.startActivityForResult
import org.jetbrains.anko.toast
-import kotlin.getValue
class ApplyMoneyActivity : MyBaseActivity() {
@@ -90,6 +90,7 @@
}, NumberInputFilter(maxMoney))
tv_phone.text = CacheKey.getUserInfo().phone
tv_type.text = CacheKey.getUserInfo().phoneOperator
+ LogHelper.logRecord("申请提现type:${type}")
}
override fun setOnclick() {
@@ -116,19 +117,20 @@
}
tv_action.isEnabled = false
val map = getMapByAny()
- if(withdrawCashType == 1){
+ if (withdrawCashType == 1) {
map["bankId"] = card!!.id
}
map["money"] = et_money.getContent().toDouble()
map["type"] = withdrawCashType
map["remark"] = et_remark.getContent()
callNet(Api.withdrawal1, map, {
+ LogHelper.logRecord("申请提现操作成功type:${type}")
tv_action.isEnabled = true
DialogUtil.getOnlySureDialog(this, getString(R.string.我们将尽快为您处理)) {
onBackPressed()
}
callNet(Api.queryInfo, getMapByAny()) {
- var user = gson.fromJson<UserBean>(it, UserBean::class.java)
+ val user = gson.fromJson<UserBean>(it, UserBean::class.java)
CacheKey.saveUserInfo(user.data)
maxMoney = if (type == "2") {
CacheKey.getUserInfo().laveBusinessMoney
@@ -138,9 +140,10 @@
et_money.hint =
getString(R.string.填写提现金额最多可提).replace("%s", doubleTwo(maxMoney))
}
- }, {
+ }) { code, msg ->
tv_action.isEnabled = true
- })
+ LogHelper.logRecord("申请提现操作失败type:${type} code:${code} msg:${msg}")
+ }
}
rgPay.setOnCheckedChangeListener { _, checkedId ->
when (checkedId) {
diff --git a/app/src/main/java/com/driver/igotrip/ui/pub/BecomeDriverActivity.kt b/app/src/main/java/com/driver/igotrip/ui/pub/BecomeDriverActivity.kt
index 398aa4f..074b202 100644
--- a/app/src/main/java/com/driver/igotrip/ui/pub/BecomeDriverActivity.kt
+++ b/app/src/main/java/com/driver/igotrip/ui/pub/BecomeDriverActivity.kt
@@ -13,26 +13,35 @@
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
-import cn.sinata.rxnetty.LogHelper.logRecord
-import cn.sinata.xldutils.utils.*
+import cn.sinata.xldutils.utils.Md5
+import cn.sinata.xldutils.utils.clickDelay
+import cn.sinata.xldutils.utils.getAreaCode
+import cn.sinata.xldutils.utils.getContent
+import cn.sinata.xldutils.utils.getString
+import cn.sinata.xldutils.utils.gone
+import cn.sinata.xldutils.utils.visible
import com.driver.igotrip.R
-import com.driver.igotrip.base.BaseEvent
import com.driver.igotrip.base.local.BasePhotoActivity
-import com.driver.igotrip.bean.*
-import com.driver.igotrip.netUtls.*
+import com.driver.igotrip.bean.AgreeBean
+import com.driver.igotrip.bean.AllCityBean
+import com.driver.igotrip.bean.DriverBean
+import com.driver.igotrip.bean.LoginBean
+import com.driver.igotrip.bean.OutBean
+import com.driver.igotrip.bean.UserBean
+import com.driver.igotrip.netUtls.Api
import com.driver.igotrip.netUtls.Api.companyList
+import com.driver.igotrip.netUtls.callNet
+import com.driver.igotrip.netUtls.callNetDriver
+import com.driver.igotrip.netUtls.getMapByAny
import com.driver.igotrip.ui.DialogUtil
import com.driver.igotrip.ui.adapter.SiteListAdapter
import com.driver.igotrip.ui.mine.AddCarRegisterActivity
-import com.driver.igotrip.ui.mine.SafeVerifyActivity.Companion.BASE_URL
-import com.driver.igotrip.ui.mine.SafeVerifyActivity.Companion.WEB_SITE_KEY
-import com.driver.igotrip.utils.*
-import com.driver.igotrip.utils.Cache.CacheKey
+import com.driver.igotrip.utils.DateUtil
+import com.driver.igotrip.utils.MyUtils
+import com.driver.igotrip.utils.PhoneCheckUtil
import com.driver.igotrip.utils.citypickerview.picker.widget.builder.TimePickerBuilder
import com.driver.igotrip.utils.glide.GlideUtil
import com.google.gson.Gson
-import com.google.gson.reflect.TypeToken
-import com.google.recaptcha.sample.RecaptchaVisual
import com.google.recaptcha.sample.RecaptchaVisualException
import com.lljjcoder.Interface.OnCityItemClickListener
import com.lljjcoder.bean.CityBean
@@ -40,14 +49,12 @@
import com.lljjcoder.bean.ProvinceBean
import com.lljjcoder.style.citylist.Toast.ToastUtils
import kotlinx.coroutines.launch
-import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.find
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.startActivityForResult
import org.jetbrains.anko.toast
-import java.util.*
+import java.util.Calendar
import java.util.regex.Pattern
-import kotlin.collections.ArrayList
class BecomeDriverActivity : BasePhotoActivity() {
@@ -465,7 +472,7 @@
tv_two.isSelected = true
callPersionInfo()
tv_Right.visible()
- }, {
+ }, {_, _ ->
currentNum--
})
}
@@ -755,7 +762,7 @@
}
// startActivity<AddCarRegisterActivity>("uid" to uid)
registerSuccess()
- }, {
+ }, {_, _ ->
currentNum--
})
}
diff --git a/app/src/main/java/com/driver/igotrip/utils/UtilKt.kt b/app/src/main/java/com/driver/igotrip/utils/UtilKt.kt
index 8f7fb2d..2aee544 100644
--- a/app/src/main/java/com/driver/igotrip/utils/UtilKt.kt
+++ b/app/src/main/java/com/driver/igotrip/utils/UtilKt.kt
@@ -300,10 +300,6 @@
) get() = AnkoInternals.noGetter()
set(colorId) = setBackgroundColor(context.resources.getColor(colorId))
-fun Any?.sysErr(msg: Any?) {
- Log.e("OkTrip----trip", "--------" + msg)
-}
-
fun getFormatOne(value: Double?): String {
return Formatter().format("%.1f", value).toString().extClearInvalidZero()
}
diff --git a/app/src/main/java/com/driver/igotrip/utils/crash/CrashHandler.kt b/app/src/main/java/com/driver/igotrip/utils/crash/CrashHandler.kt
new file mode 100644
index 0000000..24a57ce
--- /dev/null
+++ b/app/src/main/java/com/driver/igotrip/utils/crash/CrashHandler.kt
@@ -0,0 +1,160 @@
+package com.driver.igotrip.utils.crash
+
+import android.content.Context
+import android.os.Build
+import android.util.Log
+import com.driver.igotrip.BuildConfig
+import com.google.gson.GsonBuilder
+import java.io.File
+
+/**
+ * 全局崩溃捕获器
+ * 通过替换系统默认的 UncaughtExceptionHandler 来拦截所有未处理异常
+ */
+object CrashHandler : Thread.UncaughtExceptionHandler {
+ private const val TAG = "CrashHandler"
+
+ // 最大保留日志数,防止文件无限增长
+ private const val maxLogFileCount = 3
+
+ // 系统原有的异常处理器,需要在处理完后委托给它,保证系统行为不被破坏
+ private var defaultHandler: Thread.UncaughtExceptionHandler? = null
+
+ // 日志保存文件夹
+ lateinit var crashDir: File
+
+ //是否已经初始化
+ private var hadInit = false;
+
+ /**
+ * 初始化方法
+ * @param context Context,用于获取应用和设备信息
+ *
+ * 必须在 Application.onCreate() 中最早调用
+ */
+ fun init(context: Context) {
+ if (hadInit) {
+ return
+ }
+ hadInit = true
+ // 保存系统默认的异常处理器
+ defaultHandler = Thread.getDefaultUncaughtExceptionHandler()
+
+ // 设置自定义的异常处理器为全局默认
+ Thread.setDefaultUncaughtExceptionHandler(this)
+
+ // 初始化本地存储和上报模块
+ crashDir = File(context.filesDir, "crash_logs").apply { if (!exists()) mkdirs() }
+
+ Log.d(TAG, "崩溃捕获器初始化完成")
+ }
+
+ /**
+ * 核心回调:当线程因未捕获异常而即将终止时,系统会调用此方法
+ *
+ * @param thread 发生异常的线程
+ * @param throwable 未捕获的异常
+ */
+ override fun uncaughtException(thread: Thread, throwable: Throwable) {
+ try {
+ // 1. 收集崩溃信息
+ val crashInfo = collectCrashInfo(thread, throwable)
+
+ // 2. 写入本地文件(立即持久化,避免丢失)
+ saveCrashLog(crashInfo)
+
+ // 3. 打印到 Logcat(方便开发调试)
+ Log.e(TAG, "捕获到崩溃: ${crashInfo.exceptionType}")
+
+ } catch (e: Exception) {
+ e.printStackTrace()
+ // 捕获处理器自身的异常,避免二次崩溃
+ Log.e(TAG, "处理崩溃时发生错误")
+ } finally {
+ // 4. 委托给系统原有的处理器
+ // 系统处理器会执行默认的崩溃对话框或进程退出逻辑
+ defaultHandler?.uncaughtException(thread, throwable)
+ }
+ }
+
+ /**
+ * 收集崩溃相关的全部信息
+ */
+ private fun collectCrashInfo(thread: Thread, throwable: Throwable): CrashInfo {
+ return CrashInfo(
+ threadName = thread.name,
+ exceptionType = throwable.javaClass.name,
+ exceptionMessage = throwable.message,
+ stackTrace = Log.getStackTraceString(throwable), // 将 Throwable 转为字符串堆栈
+ deviceInfo = CrashInfo.DeviceInfo(
+ manufacturer = Build.MANUFACTURER,
+ model = Build.MODEL,
+ sdkVersion = Build.VERSION.SDK_INT,
+ osVersion = Build.VERSION.RELEASE
+ ),
+ appInfo = CrashInfo.AppInfo(
+ packageName = BuildConfig.APPLICATION_ID,
+ versionName = BuildConfig.VERSION_NAME,
+ versionCode = BuildConfig.VERSION_CODE.toLong()
+ )
+ )
+ }
+
+ /**
+ * 保存一次崩溃日志
+ * @param crashInfo 崩溃信息对象
+ *
+ * 以 "crash_时间戳_id.json" 命名,便于排序和查找
+ */
+ fun saveCrashLog(crashInfo: CrashInfo) {
+ val gson = GsonBuilder().setPrettyPrinting().create()
+ val json = gson.toJson(crashInfo)
+
+ val fileName = "crash_${crashInfo.timestamp}_${crashInfo.id}.txt"
+ val file = File(crashDir, fileName)
+
+ try {
+ file.writeText(json)
+ Log.d(TAG, "崩溃日志已保存: $fileName")
+
+ // 清理旧日志,避免占用过多空间
+ cleanupOldLogs()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ Log.e(TAG, "保存崩溃日志失败")
+ }
+ }
+
+ /**
+ * 读取所有待上报的崩溃日志
+ * @return 崩溃日志文件列表
+ */
+ fun getAllCrashLogs(): List<File> {
+ return crashDir.listFiles { file ->
+ file.name.startsWith("crash_") && file.name.endsWith(".json")
+ }?.sortedByDescending { it.lastModified() } ?: emptyList()
+ }
+
+ /**
+ * 删除指定的崩溃日志文件
+ * @param file 要删除的文件
+ */
+ fun deleteCrashLog(file: File) {
+ if (file.exists()) {
+ file.delete()
+ Log.d(TAG, "已删除崩溃日志: ${file.name}")
+ }
+ }
+
+ /**
+ * 清理最旧的日志文件,保持总数不超过 maxLogFileCount
+ */
+ private fun cleanupOldLogs() {
+ val files = crashDir.listFiles() ?: return
+ if (files.size > maxLogFileCount) {
+ files.sortedBy { it.lastModified() }
+ .take(files.size - maxLogFileCount)
+ .forEach { it.delete() }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/driver/igotrip/utils/crash/CrashInfo.kt b/app/src/main/java/com/driver/igotrip/utils/crash/CrashInfo.kt
new file mode 100644
index 0000000..d46db67
--- /dev/null
+++ b/app/src/main/java/com/driver/igotrip/utils/crash/CrashInfo.kt
@@ -0,0 +1,39 @@
+package com.driver.igotrip.utils.crash
+
+import android.app.ActivityManager
+import java.util.UUID
+
+/**
+ * 崩溃信息数据类
+ * 封装一次崩溃所需的全部上下文
+ */
+data class CrashInfo(
+ val id: String = UUID.randomUUID().toString(), // 崩溃唯一ID,便于去重
+ val timestamp: Long = System.currentTimeMillis(), // 崩溃发生时间
+ val threadName: String, // 发生崩溃的线程名
+ val exceptionType: String, // 异常类型(如 NullPointerException)
+ val exceptionMessage: String?, // 异常消息
+ val stackTrace: String, // 完整堆栈信息
+ val deviceInfo: DeviceInfo, // 设备信息
+ val appInfo: AppInfo, // 应用信息
+ val memoryInfo: ActivityManager.MemoryInfo? = null // 内存快照(可选)
+) {
+ /**
+ * 设备信息子数据类
+ */
+ data class DeviceInfo(
+ val manufacturer: String, // 厂商,如 "Xiaomi"
+ val model: String, // 型号,如 "Redmi K60"
+ val sdkVersion: Int, // Android SDK 版本
+ val osVersion: String // Android 系统版本
+ )
+
+ /**
+ * 应用信息子数据类
+ */
+ data class AppInfo(
+ val packageName: String, // 应用包名
+ val versionName: String, // 版本名,如 "1.2.0"
+ val versionCode: Long // 版本号
+ )
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/driver/igotrip/utils/crash/LogUploader.kt b/app/src/main/java/com/driver/igotrip/utils/crash/LogUploader.kt
new file mode 100644
index 0000000..e2368c8
--- /dev/null
+++ b/app/src/main/java/com/driver/igotrip/utils/crash/LogUploader.kt
@@ -0,0 +1,141 @@
+package com.driver.igotrip.utils.crash
+
+import android.content.Context
+import android.util.Log
+import androidx.core.content.edit
+import cn.sinata.rxnetty.LogHelper
+import cn.sinata.xldutils.utils.StringUtils
+import com.driver.igotrip.base.MyApplication
+import com.driver.igotrip.bean.StringBean
+import com.driver.igotrip.netUtls.Api
+import com.driver.igotrip.netUtls.HttpManager
+import com.driver.igotrip.netUtls.getMapByAny
+import com.google.gson.Gson
+import io.reactivex.Observable
+import io.reactivex.android.schedulers.AndroidSchedulers
+import io.reactivex.schedulers.Schedulers
+import okhttp3.ResponseBody.Companion.toResponseBody
+import java.io.File
+import java.io.IOException
+import java.io.RandomAccessFile
+
+/**
+ * 日志上传管理器
+ * 处理日志文件正在写入时的安全上传
+ */
+object LogUploader {
+ private const val TAG = "LogUploader"
+
+ //上传历史文件名
+ private const val HISTORY_NAME = "logUploadHistory"
+
+ //复制文件时的缓冲区大小:8KB
+ private const val BUFFER_SIZE = 8192
+
+ /**
+ * 将正在写入的日志文件复制到临时文件
+ * 使用文件通道,支持大文件且高效
+ *
+ * @param source 源日志文件
+ * @return 复制后的临时文件,失败返回null
+ */
+ private fun copyToTempFile(context: Context, source: File): File? {
+ if (!source.exists()) {
+ Log.e(TAG, "源文件不存在: ${source.absolutePath}")
+ return null
+ }
+
+ val tempFile = File(context.cacheDir, "temp_${source.name}")
+
+ return try {
+ // 使用 RandomAccessFile 而非直接 InputStream
+ // 这样可以处理文件在复制过程中变化的情况
+ RandomAccessFile(source, "r").use { src ->
+ RandomAccessFile(tempFile, "rw").use { dest ->
+ val buffer = ByteArray(BUFFER_SIZE)
+ var bytesRead: Int
+
+ while (src.read(buffer).also { bytesRead = it } != -1) {
+ dest.write(buffer, 0, bytesRead)
+ }
+ }
+ }
+
+ Log.d(TAG, "文件复制成功: ${source.name} -> ${tempFile.name}")
+ tempFile
+ } catch (e: IOException) {
+ Log.e(TAG, "文件复制失败", e)
+ tempFile.delete() // 清理可能的不完整文件
+ null
+ }
+ }
+
+ //上传
+ fun upload() {
+ val sp = MyApplication.appContext!!.getSharedPreferences(HISTORY_NAME, Context.MODE_PRIVATE)
+ val data = mutableListOf<File>()
+ if (LogHelper.saveLogDir != null && LogHelper.saveLogDir.exists()) {
+ val files = LogHelper.saveLogDir.listFiles()
+ if (!files.isNullOrEmpty()) {
+ data.addAll(files)
+ }
+ }
+ if (CrashHandler.crashDir.exists()) {
+ val files = CrashHandler.crashDir.listFiles()
+ if (!files.isNullOrEmpty()) {
+ data.addAll(files)
+ }
+ }
+ if (data.isEmpty()) {
+ Log.e(TAG, "没有需要上传的日志文件")
+ return
+ }
+ val needUploadFiles = data.filter { sp.getString(it.absolutePath, null).isNullOrEmpty() }
+ Log.e(TAG, "needUploadFiles: ${needUploadFiles.joinToString { it.absolutePath }}")
+ val subscribe = Observable.fromIterable(needUploadFiles)
+ .flatMap { file ->
+ val tempFile = copyToTempFile(MyApplication.appContext!!, file)
+ if (tempFile == null || !tempFile.exists() || !tempFile.canRead()) {
+ return@flatMap Observable.just(Pair<File, String?>(file, null))
+ }
+ HttpManager.getInstance().post(Api.upImage, tempFile)
+ .onErrorReturn { e ->
+ e.printStackTrace()
+ return@onErrorReturn "{}".toResponseBody()
+ }
+ .map { responseBody ->
+ val responseString = responseBody.string()
+ Log.e(TAG, responseString)
+ if (StringUtils.isEmpty(responseString)) { //判空
+ return@map Pair<File, String?>(file, null)
+ }
+ val bean = Gson().fromJson<StringBean>(responseString, StringBean::class.java)
+ if (bean.code != Api.SUCCESS) {
+ return@map Pair<File, String?>(file, null)
+ }
+ return@map Pair<File, String?>(file, bean.data)
+ }
+ }
+ .toList()
+ .toObservable()
+ .flatMap { list ->
+ Log.e(TAG, "uploadResult: ${list.joinToString { "${it.first.absolutePath}==>${it.second}" }}")
+ sp.edit {
+ list.filter { !it.second.isNullOrEmpty() }.forEach { pair ->
+ putString(pair.first.absolutePath, pair.second)
+ }
+ }
+ val filter = data.mapNotNull { sp.getString(it.absolutePath, null) }
+ val map = getMapByAny()
+ map["url"] = filter.joinToString(separator = ",") { it }
+ return@flatMap HttpManager.getInstance().post(Api.saveLog, map).map { filter }
+ }
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe({
+ Log.e(TAG, "upload success")
+ }, { throwable ->
+ throwable.printStackTrace()
+ })
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/driver/igotrip/utils/view/SlidingButton.kt b/app/src/main/java/com/driver/igotrip/utils/view/SlidingButton.kt
index 94e66f4..893bb9b 100644
--- a/app/src/main/java/com/driver/igotrip/utils/view/SlidingButton.kt
+++ b/app/src/main/java/com/driver/igotrip/utils/view/SlidingButton.kt
@@ -9,7 +9,6 @@
import android.view.View
import androidx.core.content.ContextCompat
import cn.sinata.xldutils.utils.backgroundDrawable
-import cn.sinata.xldutils.utils.sysErr
import com.driver.igotrip.R
import org.jetbrains.anko.dip
diff --git a/app/src/main/res/layout/activity_mine.xml b/app/src/main/res/layout/activity_mine.xml
index 83a7437..4f8cf81 100644
--- a/app/src/main/res/layout/activity_mine.xml
+++ b/app/src/main/res/layout/activity_mine.xml
@@ -121,6 +121,7 @@
android:id="@+id/tv_order_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:singleLine="true"
android:text="0"
android:textColor="#F07207"
android:textSize="18sp"
@@ -130,6 +131,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Answer_the_singular"
+ android:gravity="center"
android:textColor="#333333"
android:textSize="12sp" />
@@ -147,6 +149,7 @@
android:id="@+id/tv_star"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:singleLine="true"
android:text="0"
android:textColor="#F07207"
android:textSize="18sp"
@@ -156,6 +159,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/My_score"
+ android:gravity="center"
android:textColor="#333333"
android:textSize="12sp" />
@@ -176,6 +180,7 @@
android:layout_height="wrap_content"
android:text="FCFA0"
android:textColor="#F07207"
+ android:singleLine="true"
android:textSize="18sp"
android:textStyle="bold" />
@@ -183,6 +188,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/钱包余额"
+ android:gravity="center"
android:textColor="#333333"
android:textSize="12sp" />
diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java b/rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java
index 7ce2957..802f3c1 100644
--- a/rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java
+++ b/rxnetty/src/main/java/cn/sinata/rxnetty/CoreService.java
@@ -1,8 +1,10 @@
package cn.sinata.rxnetty;
-import static cn.sinata.rxnetty.LogHelper.logRecord;
-
-import android.app.*;
+import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ServiceInfo;
@@ -46,7 +48,6 @@
@Override
public void onCreate() {
super.onCreate();
- logRecord("onCreate");
}
void init() {
@@ -88,10 +89,8 @@
if (mConnection == null || mConnection.getChannel() == null
|| !mConnection.getChannel().isActive()
|| !mConnection.getChannel().isWritable()) {
- logRecord("checkState need reConnect");
return false;
} else {
- logRecord("checkState no need reConnect");
return true;
}
}
@@ -121,7 +120,6 @@
@Override
public void onNetConnected(NetUtils.NetType type) {
super.onNetConnected(type);
- logRecord("onNetConnected start checkState");
boolean state = checkState();
if (!state) {
reConnect();
@@ -131,7 +129,6 @@
@Override
public void onNetDisConnect() {
super.onNetDisConnect();
- logRecord("onNetDisConnect");
}
};
NetStateReceiver.registerObserver(mNetChangeObserver);
@@ -187,7 +184,6 @@
public void onDestroy() {
super.onDestroy();
isDestroy = true;
- logRecord("onDestroy");
NetStateReceiver.unRegisterNetworkStateReceiver(this);
if (subscriber != null && !subscriber.isUnsubscribed()) {
subscriber.unsubscribe();
@@ -202,7 +198,6 @@
private void connectServer() {
boolean status = NetUtils.isNetworkAvailable(this);
- logRecord("connectServer net status = " + status);
if (status) {
connectionSub();
connect(Config.SOCKET_SERVER, Config.SOCKET_PORT)
@@ -230,7 +225,6 @@
@Override
public void onError(Throwable e) {
e.printStackTrace();
- logRecord("connectionSub onError " + e.getMessage());
reConnect();
}
@@ -261,7 +255,6 @@
@Override
public void onError(Throwable e) {
- logRecord("initReceiveOb onError " + e.getMessage());
reConnect();
}
@@ -287,7 +280,6 @@
private void reConnect() {
- logRecord("reConnect isDestroy = " + isDestroy);
if (isDestroy) {
return;
}
@@ -299,7 +291,6 @@
mConnection.close();
mConnection = null;
}
- logRecord("reConnect sendHeart_websocket长连接断开,重新连接");
connectServer();
}
});
diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/LogHelper.java b/rxnetty/src/main/java/cn/sinata/rxnetty/LogHelper.java
index 82a5aba..7e93d98 100644
--- a/rxnetty/src/main/java/cn/sinata/rxnetty/LogHelper.java
+++ b/rxnetty/src/main/java/cn/sinata/rxnetty/LogHelper.java
@@ -1,17 +1,24 @@
package cn.sinata.rxnetty;
+import android.content.Context;
+
import com.blankj.utilcode.util.LogUtils;
-public class LogHelper {
+import java.io.File;
- public static void initLogs() {
+public class LogHelper {
+ public static File saveLogDir;
+
+ public static void initLogs(Context context) {
LogUtils.Config config = LogUtils.getConfig();
config.setSaveDays(7);
- config.setFilePrefix("gopost");
+ config.setFilePrefix("driver");
config.setConsoleSwitch(true);
config.setLog2FileSwitch(true);
config.setSingleTagSwitch(true);
config.setLogHeadSwitch(false);
+ saveLogDir = new File(context.getFilesDir(), "logs");
+ config.setDir(saveLogDir);
logRecord("initLogs");
}
diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/NettyClient.java b/rxnetty/src/main/java/cn/sinata/rxnetty/NettyClient.java
index 325ea0f..3c63f2a 100644
--- a/rxnetty/src/main/java/cn/sinata/rxnetty/NettyClient.java
+++ b/rxnetty/src/main/java/cn/sinata/rxnetty/NettyClient.java
@@ -1,7 +1,5 @@
package cn.sinata.rxnetty;
-import static cn.sinata.rxnetty.LogHelper.logRecord;
-
import android.app.job.JobScheduler;
import android.content.Context;
import android.content.Intent;
@@ -101,7 +99,6 @@
* @param msg
*/
public void sendMessage(String msg) {
- logRecord("sendMessage sendListener is null " + (sendListener == null) + " msg = " + msg);
if (sendListener != null) {
sendListener.onSend(msg);
}
@@ -111,7 +108,6 @@
* 检测netty连接状况
*/
public boolean checkNettyState() {
- logRecord("checkNettyState onCheckListener is null " + (onCheckListener == null));
if (onCheckListener != null) {
return onCheckListener.doCheck();
} else {
--
Gitblit v1.7.1