Guest User

Untitled

a guest
Aug 22nd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. package com.sml.data.datasource.bmartellib
  2.  
  3. import android.accounts.NetworkErrorException
  4. import com.sml.data.datasource.base.SpeedTestListener
  5. import com.sml.data.factory.SpeedTestSocketFactory
  6. import com.sml.data.mapper.FileTransferModelMapper
  7. import com.sml.domain.enums.FileTransferMarker
  8. import fr.bmartel.speedtest.SpeedTestReport
  9. import fr.bmartel.speedtest.SpeedTestSocket
  10. import fr.bmartel.speedtest.inter.ISpeedTestListener
  11. import fr.bmartel.speedtest.model.SpeedTestError
  12. import javax.inject.Inject
  13.  
  14. class BmartelSpeedTestApiUpload @Inject constructor(
  15. private val mapper: FileTransferModelMapper,
  16. private val speedTestSocketFactory: SpeedTestSocketFactory
  17. ) {
  18.  
  19. private lateinit var speedTestSocket: SpeedTestSocket
  20.  
  21. fun initUploadSpeedtestSettings(speedtestListener: SpeedTestListener) {
  22. speedTestSocket = speedTestSocketFactory.build()
  23. speedTestSocket.socketTimeout = BmartelWayConst.SOCKET_TIMEOUT
  24.  
  25. speedTestSocket.addSpeedTestListener(object : ISpeedTestListener {
  26.  
  27. override fun onCompletion(report: SpeedTestReport) {
  28. speedTestSocket.removeSpeedTestListener(this)
  29. speedtestListener.onNext(mapper.map(report, false, FileTransferMarker.NONE))
  30. speedtestListener.onComplete()
  31. }
  32.  
  33. override fun onProgress(percent: Float, report: SpeedTestReport) {
  34. speedtestListener.onNext(mapper.map(report, false, FileTransferMarker.UPLOAD))
  35. }
  36.  
  37. override fun onError(speedTestError: SpeedTestError, errorMessage: String) {
  38. speedtestListener.onError(NetworkErrorException("Speed test error"))
  39. }
  40.  
  41. })
  42. }
  43.  
  44. fun runUploadSpeedtest(url: String) {
  45. speedTestSocket.startFixedUpload(url, BmartelWayConst.FILE_SIZE, BmartelWayConst.FIXED_TIME, BmartelWayConst.REPORT_INTERVAL)
  46. }
  47.  
  48. fun stopTask() {
  49. speedTestSocket.forceStopTask()
  50. speedTestSocket.clearListeners()
  51. }
  52. }
Add Comment
Please, Sign In to add comment