Merge pull request #2976 from kiwix/Issue#2975

Convert Chunk.java into Kotlin
This commit is contained in:
Kelson 2022-08-27 10:15:18 +02:00 committed by GitHub
commit d4feb1f58e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 36 additions and 75 deletions

View File

@ -1,73 +0,0 @@
/*
* Kiwix Android
* Copyright (c) 2019 Kiwix <android.kiwix.org>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.kiwix.kiwixmobile.core.downloader;
public class Chunk {
public boolean isDownloaded = false;
private String rangeHeader;
private String fileName;
private String url;
private long contentLength;
private int notificationID;
private long startByte;
private long endByte;
public Chunk(String rangeHeader, String fileName, String url, long contentLength,
int notificationID, long startByte, long endByte) {
this.rangeHeader = rangeHeader;
this.fileName = fileName;
this.url = url;
this.contentLength = contentLength;
this.startByte = startByte;
this.endByte = endByte;
this.notificationID = notificationID;
}
public String getRangeHeader() {
return rangeHeader;
}
public String getFileName() {
return fileName;
}
public long getContentLength() {
return contentLength;
}
public String getUrl() {
return url;
}
public int getNotificationID() {
return notificationID;
}
public long getStartByte() {
return startByte;
}
public long getEndByte() {
return endByte;
}
public long getSize() {
return 1 + endByte - startByte;
}
}

View File

@ -0,0 +1,33 @@
/*
* Kiwix Android
* Copyright (c) 2019 Kiwix <android.kiwix.org>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.kiwix.kiwixmobile.core.downloader
@Suppress("LongParameterList")
class Chunk(
val rangeHeader: String,
val fileName: String?,
val url: String?,
val contentLength: Long,
val notificationID: Int,
private val startByte: Long,
private val endByte: Long
) {
var isDownloaded = false
val size: Long
get() = 1 + endByte - startByte
}

View File

@ -46,7 +46,8 @@ object ChunkUtils {
val ranges = fileNames.indices.map { it * (CHUNK_SIZE + 1) }.map { it..it + CHUNK_SIZE } val ranges = fileNames.indices.map { it * (CHUNK_SIZE + 1) }.map { it..it + CHUNK_SIZE }
return fileNames.zip(ranges).map { (filename, currentRange) -> return fileNames.zip(ranges).map { (filename, currentRange) ->
Chunk( Chunk(
"${currentRange.first}-${if (contentLength in currentRange) "${currentRange.first}-${
if (contentLength in currentRange)
"" ""
else else
"${currentRange.last}" "${currentRange.last}"

View File

@ -107,7 +107,7 @@ class ChunkUtilsTest {
for (i in listReturned.indices) { for (i in listReturned.indices) {
val extension = listReturned[i] val extension = listReturned[i]
.fileName .fileName
.substringAfter('.') ?.substringAfter('.')
val expectedExtension = "zim" + alphabet[i / 26] + alphabet[i % 26] + ".part.part" val expectedExtension = "zim" + alphabet[i / 26] + alphabet[i % 26] + ".part.part"
assertThat(extension).isEqualTo(expectedExtension) assertThat(extension).isEqualTo(expectedExtension)
} }