mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-15 10:26:53 -04:00
#1351 cleaned code
This commit is contained in:
parent
6c2317db59
commit
eda5db38d6
@ -45,7 +45,7 @@ class ReceiverHandShake(private val wifiDirectManager: WifiDirectManager, groupI
|
||||
FileItem(fileName = fileName)
|
||||
}
|
||||
}
|
||||
wifiDirectManager.setFilesForTransfer(fileItems.toList())
|
||||
wifiDirectManager.setFilesForTransfer(fileItems)
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
|
@ -47,14 +47,13 @@ import java.net.Socket
|
||||
private const val TIME_OUT = 15000
|
||||
|
||||
internal class SenderDevice(
|
||||
activity: Activity,
|
||||
var activity: Activity,
|
||||
private val wifiDirectManager: WifiDirectManager,
|
||||
val fileReceiverDeviceAddress: InetAddress
|
||||
private val fileReceiverDeviceAddress: InetAddress
|
||||
) {
|
||||
private val contentResolver: ContentResolver = activity.contentResolver
|
||||
private val ioDispatcher: CoroutineDispatcher = Dispatchers.IO
|
||||
suspend fun send(fileItems: List<FileItem?>) = withContext(ioDispatcher) {
|
||||
delayForSlowReceiverDevicesToSetupServer()
|
||||
suspend fun send(fileItems: List<FileItem?>) = withContext(Dispatchers.IO) {
|
||||
// Delay trying to connect with receiver, to allow slow receiver devices to setup server
|
||||
delay(FOR_SLOW_RECEIVER)
|
||||
val hostAddress =
|
||||
fileReceiverDeviceAddress.hostAddress
|
||||
var isTransferErrorFree = true
|
||||
@ -63,7 +62,7 @@ internal class SenderDevice(
|
||||
.forEachIndexed { fileIndex, fileItem ->
|
||||
try {
|
||||
Socket().use { socket ->
|
||||
contentResolver.openInputStream(fileItem?.fileUri!!).use { fileInputStream ->
|
||||
activity.contentResolver.openInputStream(fileItem?.fileUri!!).use { fileInputStream ->
|
||||
socket.bind(null)
|
||||
socket.connect(
|
||||
InetSocketAddress(hostAddress, WifiDirectManager.FILE_TRANSFER_PORT),
|
||||
@ -85,7 +84,7 @@ internal class SenderDevice(
|
||||
}
|
||||
}
|
||||
|
||||
return@withContext isTransferErrorFree
|
||||
isTransferErrorFree
|
||||
}
|
||||
|
||||
private suspend fun publishProgress(fileIndex: Int, fileStatus: FileItem.FileStatus) {
|
||||
@ -94,13 +93,8 @@ internal class SenderDevice(
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("MagicNumber")
|
||||
private suspend fun delayForSlowReceiverDevicesToSetupServer() {
|
||||
// Delay trying to connect with receiver, to allow slow receiver devices to setup server
|
||||
delay(3000)
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val TAG = "SenderDeviceAsyncTask"
|
||||
private const val FOR_SLOW_RECEIVER: Long = 3000
|
||||
}
|
||||
}
|
||||
|
@ -219,11 +219,11 @@ class WifiDirectManager @Inject constructor(
|
||||
Log.d(TAG, "Starting handshake")
|
||||
}
|
||||
lifecycleCoroutineScope.launch {
|
||||
val peerGroupHandshake = if (isFileSender) {
|
||||
val peerGroupHandshake = if (isFileSender)
|
||||
SenderHandShake(this@WifiDirectManager, groupInfo)
|
||||
} else {
|
||||
else
|
||||
ReceiverHandShake(this@WifiDirectManager, groupInfo)
|
||||
}
|
||||
|
||||
val inetAddress = peerGroupHandshake.handshake()
|
||||
if (inetAddress != null) {
|
||||
startFileTransfer(groupInfo, inetAddress)
|
||||
@ -248,7 +248,7 @@ class WifiDirectManager @Inject constructor(
|
||||
|
||||
val zimStorageRootPath get() = sharedPreferenceUtil.prefStorage + "/Kiwix/"
|
||||
|
||||
private fun startFileTransfer(groupInfo: WifiP2pInfo, inetAddress: InetAddress) {
|
||||
private suspend fun startFileTransfer(groupInfo: WifiP2pInfo, inetAddress: InetAddress) {
|
||||
if (groupInfo.groupFormed) {
|
||||
if (isFileSender) {
|
||||
Log.d(LocalFileTransferFragment.TAG, "Starting file transfer")
|
||||
@ -256,22 +256,18 @@ class WifiDirectManager @Inject constructor(
|
||||
if (groupInfo.isGroupOwner) inetAddress else groupInfo.groupOwnerAddress
|
||||
activity.toast(R.string.preparing_files, Toast.LENGTH_LONG)
|
||||
val senderDevice = SenderDevice(activity, this, fileReceiverDeviceAddress)
|
||||
lifecycleCoroutineScope.launch {
|
||||
val isFileSendSuccessfully = senderDevice.send(filesForTransfer)
|
||||
onFileTransferAsyncTaskComplete(isFileSendSuccessfully)
|
||||
if (BuildConfig.DEBUG) {
|
||||
Log.d(TAG, "SenderDevice completed $isFileSendSuccessfully")
|
||||
}
|
||||
val isFileSendSuccessfully = senderDevice.send(filesForTransfer)
|
||||
onFileTransferAsyncTaskComplete(isFileSendSuccessfully)
|
||||
if (BuildConfig.DEBUG) {
|
||||
Log.d(TAG, "SenderDevice completed $isFileSendSuccessfully")
|
||||
}
|
||||
} else {
|
||||
callbacks?.onFilesForTransferAvailable(filesForTransfer)
|
||||
val receiverDevice = ReceiverDevice(this)
|
||||
lifecycleCoroutineScope.launch {
|
||||
val isReceivedFileSuccessFully = receiverDevice.receive()
|
||||
onFileTransferAsyncTaskComplete(isReceivedFileSuccessFully)
|
||||
if (BuildConfig.DEBUG) {
|
||||
Log.d(TAG, "ReceiverDevice completed $isReceivedFileSuccessFully")
|
||||
}
|
||||
val isReceivedFileSuccessFully = receiverDevice.receive()
|
||||
onFileTransferAsyncTaskComplete(isReceivedFileSuccessFully)
|
||||
if (BuildConfig.DEBUG) {
|
||||
Log.d(TAG, "ReceiverDevice completed $isReceivedFileSuccessFully")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user