1
1
package com.idirin.idceptor.network
2
2
3
- import com.google.gson.Gson
3
+ import android.app.Application
4
+ import android.os.Build
4
5
import com.idirin.idceptor.db.DbHelper
5
6
import com.idirin.idceptor.models.HttpTransaction
6
7
import com.idirin.idceptor.models.isRequest
7
- import com.idirin.idceptor.models.network.PostApiRequest
8
- import com.idirin.idceptor.models.network.RequestPackageModel
9
- import com.idirin.idceptor.models.network.ResponsePackageModel
10
- import com.idirin.idceptor.utils.AppUtil
11
- import com.idirin.idceptor.utils.DeviceUtil
8
+ import com.idirin.idceptor.models.network.*
9
+ import com.idirin.idceptor.utils.*
10
+ import com.idirin.idceptor.utils.AppUtil.getDeviceId
12
11
import kotlinx.coroutines.*
13
12
import org.koin.core.KoinComponent
14
13
import org.koin.core.inject
@@ -18,19 +17,18 @@ import java.util.concurrent.atomic.AtomicBoolean
18
17
19
18
object UploadHelper: KoinComponent {
20
19
20
+ private val app: Application by inject()
21
21
private val api: IdApiInterface by inject()
22
22
private val scope: CoroutineScope by inject()
23
23
private val syncThread: ExecutorCoroutineDispatcher by inject()
24
24
25
25
private var isRequesting: AtomicBoolean = AtomicBoolean (true )
26
26
27
- private val gson by lazy { Gson () }
28
-
29
27
private const val RETRY_DELAY = 60_000L
30
28
31
29
fun init () {
32
30
isRequesting.set(true )
33
- postDeviceInfo ()
31
+ postAppInfo ()
34
32
DbHelper .clean()
35
33
36
34
scope.launch(Dispatchers .Main ) {
@@ -67,13 +65,11 @@ object UploadHelper: KoinComponent {
67
65
val uploadTime = System .currentTimeMillis()
68
66
val request = PostApiRequest (
69
67
connectionId = transaction.transactionId,
70
- applicationId = AppUtil .appId,
71
- deviceId = DeviceUtil .deviceId,
72
68
requestPackage = RequestPackageModel (
73
69
id = transaction.transactionId,
74
70
timeStamp = transaction.requestDate!! ,
75
71
url = transaction.url!! ,
76
- header = gson.toJson( transaction.getRequestHeaders()) ,
72
+ headers = transaction.getRequestHeaders().map { " ${it.name} - ${it.value} " } ,
77
73
body = transaction.requestBody,
78
74
methodType = transaction.method!!
79
75
),
@@ -85,7 +81,7 @@ object UploadHelper: KoinComponent {
85
81
id = transaction.transactionId,
86
82
timeStamp = transaction.responseDate!! ,
87
83
statusCode = transaction.responseCode!! ,
88
- header = gson.toJson( transaction.getResponseHeaders()) ,
84
+ headers = transaction.getResponseHeaders().map { " ${it.name} - ${it.value} " } ,
89
85
body = transaction.responseBody
90
86
)
91
87
}
@@ -104,17 +100,24 @@ object UploadHelper: KoinComponent {
104
100
105
101
private fun postAppInfo () {
106
102
coroutine(async = {
107
- // TODO post AppInfo
108
- // api.postApi(request).await()
109
- upload()
110
- })
111
- }
112
103
113
- private fun postDeviceInfo () {
114
- coroutine(async = {
115
- // TODO post Device Info
116
- // api.postApi(request).await()
117
- postAppInfo()
104
+ val request = AppInitRequest (
105
+ operatingSystem = " Android" ,
106
+ name = " " ,
107
+ environment = " " ,
108
+ version = getVersionName(app),
109
+ buildNumber = getVersionCode(app).toString(),
110
+ device = DeviceModel (
111
+ name = Build .MODEL ,
112
+ userFriendlyName = Build .PRODUCT ,
113
+ operatingSystem = " Android" ,
114
+ uuid = getDeviceId(),
115
+ osVersion = Build .VERSION .SDK_INT .toString()
116
+ )
117
+ )
118
+
119
+ api.initApp(request).await()
120
+ upload()
118
121
})
119
122
}
120
123
0 commit comments