@@ -2,8 +2,10 @@ package net.gotev.uploadservice
2
2
3
3
import android.app.Notification
4
4
import android.app.Service
5
+ import android.content.BroadcastReceiver
5
6
import android.content.Context
6
7
import android.content.Intent
8
+ import android.content.IntentFilter
7
9
import android.os.IBinder
8
10
import android.os.PowerManager
9
11
import androidx.core.app.NotificationCompat
@@ -14,6 +16,7 @@ import net.gotev.uploadservice.extensions.getUploadTaskCreationParameters
14
16
import net.gotev.uploadservice.extensions.safeRelease
15
17
import net.gotev.uploadservice.logger.UploadServiceLogger
16
18
import net.gotev.uploadservice.logger.UploadServiceLogger.NA
19
+ import net.gotev.uploadservice.network.hurl.HurlStack
17
20
import net.gotev.uploadservice.observer.task.BroadcastEmitter
18
21
import net.gotev.uploadservice.observer.task.TaskCompletionNotifier
19
22
import java.util.Timer
@@ -187,11 +190,19 @@ class UploadService : Service() {
187
190
}
188
191
}
189
192
193
+ private val connectionReceiver: BroadcastReceiver = object : BroadcastReceiver () {
194
+ override fun onReceive (context : Context , intent : Intent ) {
195
+ val closeConnection = intent.getBooleanExtra(" close" , false )
196
+ if (closeConnection) (UploadServiceConfig .httpStack as HurlStack ).httpRequest.close()
197
+ }
198
+ }
199
+
190
200
override fun onCreate () {
191
201
super .onCreate()
192
202
193
203
wakeLock = acquirePartialWakeLock(wakeLock, TAG )
194
204
notificationActionsObserver.register()
205
+ registerReceiver(connectionReceiver, IntentFilter (" closeConnection" ))
195
206
}
196
207
197
208
override fun onBind (intent : Intent ): IBinder ? {
@@ -255,6 +266,7 @@ class UploadService : Service() {
255
266
256
267
uploadTasksMap.clear()
257
268
269
+ unregisterReceiver(connectionReceiver)
258
270
UploadServiceLogger .debug(TAG , NA ) { " UploadService destroyed" }
259
271
}
260
272
}
0 commit comments