mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-22 03:54:18 -04:00
Fixed some detekt and lint issues
This commit is contained in:
parent
3039232b2c
commit
9b091301bd
@ -60,7 +60,6 @@ import org.kiwix.kiwixmobile.core.base.BaseFragment
|
||||
import org.kiwix.kiwixmobile.core.base.FragmentActivityExtensions
|
||||
import org.kiwix.kiwixmobile.core.downloader.Downloader
|
||||
import org.kiwix.kiwixmobile.core.downloader.downloadManager.Status
|
||||
import org.kiwix.kiwixmobile.core.entity.LibraryNetworkEntity
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.hasNotificationPermission
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.isManageExternalStoragePermissionGranted
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.navigate
|
||||
@ -91,7 +90,6 @@ import org.kiwix.kiwixmobile.core.utils.dialog.KiwixDialog.SelectFolder
|
||||
import org.kiwix.kiwixmobile.core.utils.dialog.KiwixDialog.YesNoDialog.WifiOnly
|
||||
import org.kiwix.kiwixmobile.core.utils.files.FileUtils.getPathFromUri
|
||||
import org.kiwix.kiwixmobile.databinding.FragmentDestinationDownloadBinding
|
||||
import org.kiwix.kiwixmobile.zimManager.Fat32Checker
|
||||
import org.kiwix.kiwixmobile.zimManager.NetworkState
|
||||
import org.kiwix.kiwixmobile.zimManager.ZimManageViewModel
|
||||
import org.kiwix.kiwixmobile.zimManager.libraryView.AvailableSpaceCalculator
|
||||
@ -213,33 +211,6 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions {
|
||||
}
|
||||
}
|
||||
)
|
||||
// <book />
|
||||
val libraryBookEntity = LibraryNetworkEntity.Book().apply {
|
||||
id = "6a5413cd-0d96-7288-9c1b-5beda035e472"
|
||||
size = "170628"
|
||||
url = "https://download.kiwix.org/zim/zimit/100r.co_en_all_2024-06.zim.meta4"
|
||||
mediaCount = "1433"
|
||||
articleCount = "320"
|
||||
favicon =
|
||||
"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"
|
||||
title = "100 Rabbits"
|
||||
description = "Research and test low-tech solutions, and document findings"
|
||||
language = "eng"
|
||||
creator = "-"
|
||||
publisher = "openZIM"
|
||||
bookName = "100r.co_en_all"
|
||||
tags = "_ftindex:yes;preppers;_category:other;_pictures:yes;_videos:yes;_details:yes"
|
||||
date = "2024-06-24"
|
||||
faviconMimeType = "image/png"
|
||||
}
|
||||
onLibraryItemsChange(
|
||||
arrayListOf(
|
||||
LibraryListItem.BookItem(
|
||||
libraryBookEntity,
|
||||
Fat32Checker.FileSystemState.CanWrite4GbFile
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
private fun setupMenu() {
|
||||
|
@ -24,7 +24,6 @@ import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.disposables.Disposable
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
import org.kiwix.kiwixmobile.core.dao.DownloadRoomDao
|
||||
import org.kiwix.kiwixmobile.core.dao.FetchDownloadDao
|
||||
import org.kiwix.kiwixmobile.core.downloader.model.DownloadModel
|
||||
import org.kiwix.kiwixmobile.core.entity.LibraryNetworkEntity.Book
|
||||
import org.kiwix.kiwixmobile.core.settings.StorageCalculator
|
||||
|
@ -39,7 +39,6 @@ import org.junit.jupiter.api.extension.ExtendWith
|
||||
import org.kiwix.kiwixmobile.core.R
|
||||
import org.kiwix.kiwixmobile.core.StorageObserver
|
||||
import org.kiwix.kiwixmobile.core.dao.DownloadRoomDao
|
||||
import org.kiwix.kiwixmobile.core.dao.FetchDownloadDao
|
||||
import org.kiwix.kiwixmobile.core.dao.NewBookDao
|
||||
import org.kiwix.kiwixmobile.core.dao.NewLanguagesDao
|
||||
import org.kiwix.kiwixmobile.core.data.DataSource
|
||||
|
@ -23,7 +23,6 @@ import io.reactivex.functions.BiFunction
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import org.kiwix.kiwixmobile.core.dao.DownloadRoomDao
|
||||
import org.kiwix.kiwixmobile.core.dao.FetchDownloadDao
|
||||
import org.kiwix.kiwixmobile.core.dao.LibkiwixBookmarks
|
||||
import org.kiwix.kiwixmobile.core.downloader.model.DownloadModel
|
||||
import org.kiwix.kiwixmobile.core.reader.ZimFileReader
|
||||
|
@ -18,8 +18,6 @@
|
||||
package org.kiwix.kiwixmobile.core.dao.entities
|
||||
|
||||
import com.tonyodev.fetch2.Download
|
||||
import com.tonyodev.fetch2.Error
|
||||
import com.tonyodev.fetch2.Status
|
||||
import io.objectbox.annotation.Entity
|
||||
import io.objectbox.annotation.Id
|
||||
import org.kiwix.kiwixmobile.core.entity.LibraryNetworkEntity.Book
|
||||
@ -32,10 +30,10 @@ data class FetchDownloadEntity(
|
||||
val etaInMilliSeconds: Long = -1L,
|
||||
val bytesDownloaded: Long = -1L,
|
||||
val totalSizeOfDownload: Long = -1L,
|
||||
//@Convert(converter = StatusConverter::class, dbType = Int::class)
|
||||
//val status: Status = Status.NONE,
|
||||
//@Convert(converter = ErrorConverter::class, dbType = Int::class)
|
||||
//val error: Error = Error.NONE,
|
||||
// @Convert(converter = StatusConverter::class, dbType = Int::class)
|
||||
// val status: Status = Status.NONE,
|
||||
// @Convert(converter = ErrorConverter::class, dbType = Int::class)
|
||||
// val error: Error = Error.NONE,
|
||||
val progress: Int = -1,
|
||||
val bookId: String,
|
||||
val title: String,
|
||||
|
@ -112,6 +112,7 @@ abstract class KiwixRoomDatabase : RoomDatabase() {
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("MagicNumber")
|
||||
private val MIGRATION_3_4 = object : Migration(3, 4) {
|
||||
override fun migrate(database: SupportSQLiteDatabase) {
|
||||
database.execSQL(
|
||||
|
@ -95,8 +95,9 @@ class ApplicationModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
internal fun provideDownloadMonitor(downloadManagerMonitor: DownloadManagerMonitor)
|
||||
: DownloadMonitor = downloadManagerMonitor
|
||||
internal fun provideDownloadMonitor(
|
||||
downloadManagerMonitor: DownloadManagerMonitor
|
||||
): DownloadMonitor = downloadManagerMonitor
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
|
@ -117,8 +117,9 @@ object DownloaderModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideDownloadManagerCallback(downloadManagerMonitor: DownloadManagerMonitor)
|
||||
: DownloadManagerBroadcastReceiver.Callback = downloadManagerMonitor
|
||||
fun provideDownloadManagerCallback(
|
||||
downloadManagerMonitor: DownloadManagerMonitor
|
||||
): DownloadManagerBroadcastReceiver.Callback = downloadManagerMonitor
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
@ -127,8 +128,9 @@ object DownloaderModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun providesDownloadNotificationActionsBroadcastReceiver(downloadManagerMonitor: DownloadManagerMonitor)
|
||||
: DownloadNotificationActionsBroadcastReceiver =
|
||||
fun providesDownloadNotificationActionsBroadcastReceiver(
|
||||
downloadManagerMonitor: DownloadManagerMonitor
|
||||
): DownloadNotificationActionsBroadcastReceiver =
|
||||
DownloadNotificationActionsBroadcastReceiver(downloadManagerMonitor)
|
||||
|
||||
@Provides
|
||||
|
@ -21,7 +21,6 @@ package org.kiwix.kiwixmobile.core.downloader
|
||||
import android.annotation.SuppressLint
|
||||
import io.reactivex.Observable
|
||||
import org.kiwix.kiwixmobile.core.dao.DownloadRoomDao
|
||||
import org.kiwix.kiwixmobile.core.dao.FetchDownloadDao
|
||||
import org.kiwix.kiwixmobile.core.data.remote.KiwixService
|
||||
import org.kiwix.kiwixmobile.core.entity.LibraryNetworkEntity
|
||||
import org.kiwix.kiwixmobile.core.entity.LibraryNetworkEntity.Book
|
||||
|
@ -39,6 +39,11 @@ import org.kiwix.kiwixmobile.core.downloader.model.DownloadState
|
||||
import java.util.concurrent.TimeUnit
|
||||
import javax.inject.Inject
|
||||
|
||||
const val ZERO = 0
|
||||
const val HUNDERED = 100
|
||||
const val THOUSAND = 1000
|
||||
const val DEFAULT_INT_VALUE = -1
|
||||
|
||||
class DownloadManagerMonitor @Inject constructor(
|
||||
private val downloadManager: DownloadManager,
|
||||
private val downloadRoomDao: DownloadRoomDao,
|
||||
@ -66,6 +71,7 @@ class DownloadManagerMonitor @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("MagicNumber")
|
||||
private fun startMonitoringDownloads() {
|
||||
// we have to disable this when no downloads is ongoing
|
||||
// and should re-enable when download started.
|
||||
@ -183,6 +189,7 @@ class DownloadManagerMonitor @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("LongParameterList")
|
||||
private fun handleFailedDownload(
|
||||
downloadId: Long,
|
||||
reason: Int,
|
||||
@ -261,7 +268,11 @@ class DownloadManagerMonitor @Inject constructor(
|
||||
}
|
||||
|
||||
private fun calculateProgress(bytesDownloaded: Int, totalBytes: Int): Int =
|
||||
if (totalBytes > 0) ((bytesDownloaded / totalBytes.toDouble()) * 100).toInt() else 0
|
||||
if (totalBytes > ZERO) {
|
||||
(bytesDownloaded / totalBytes.toDouble()).times(HUNDERED).toInt()
|
||||
} else {
|
||||
ZERO
|
||||
}
|
||||
|
||||
private fun calculateETA(downloadedFileId: Long, bytesDownloaded: Int, totalBytes: Int): Long {
|
||||
val currentTime = System.currentTimeMillis()
|
||||
@ -270,16 +281,16 @@ class DownloadManagerMonitor @Inject constructor(
|
||||
}
|
||||
|
||||
val elapsedTime = currentTime - downloadInfo.startTime
|
||||
val downloadSpeed = if (elapsedTime > 0) {
|
||||
(bytesDownloaded - downloadInfo.initialBytesDownloaded) / (elapsedTime / 1000.0)
|
||||
val downloadSpeed = if (elapsedTime > ZERO) {
|
||||
(bytesDownloaded - downloadInfo.initialBytesDownloaded) / (elapsedTime / THOUSAND.toFloat())
|
||||
} else {
|
||||
0.0
|
||||
ZERO.toFloat()
|
||||
}
|
||||
|
||||
return if (downloadSpeed > 0) {
|
||||
((totalBytes - bytesDownloaded) / downloadSpeed).toLong() * 1000
|
||||
return if (downloadSpeed > ZERO) {
|
||||
((totalBytes - bytesDownloaded) / downloadSpeed).toLong() * THOUSAND
|
||||
} else {
|
||||
0L
|
||||
ZERO.toLong()
|
||||
}
|
||||
}
|
||||
|
||||
@ -298,14 +309,15 @@ class DownloadManagerMonitor @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("LongParameterList")
|
||||
private fun updateDownloadStatus(
|
||||
downloadId: Long,
|
||||
status: Status,
|
||||
error: Error,
|
||||
progress: Int = -1,
|
||||
etaInMilliSeconds: Long = -1L,
|
||||
bytesDownloaded: Int = -1,
|
||||
totalSizeOfDownload: Int = -1
|
||||
progress: Int = DEFAULT_INT_VALUE,
|
||||
etaInMilliSeconds: Long = DEFAULT_INT_VALUE.toLong(),
|
||||
bytesDownloaded: Int = DEFAULT_INT_VALUE,
|
||||
totalSizeOfDownload: Int = DEFAULT_INT_VALUE
|
||||
) {
|
||||
synchronized(lock) {
|
||||
updater.onNext {
|
||||
@ -313,14 +325,14 @@ class DownloadManagerMonitor @Inject constructor(
|
||||
val downloadModel = DownloadModel(downloadEntity).apply {
|
||||
state = status
|
||||
this.error = error
|
||||
if (progress > 0) {
|
||||
if (progress > ZERO) {
|
||||
this.progress = progress
|
||||
}
|
||||
this.etaInMilliSeconds = etaInMilliSeconds
|
||||
if (bytesDownloaded != -1) {
|
||||
if (bytesDownloaded != DEFAULT_INT_VALUE) {
|
||||
this.bytesDownloaded = bytesDownloaded.toLong()
|
||||
}
|
||||
if (totalSizeOfDownload != -1) {
|
||||
if (totalSizeOfDownload != DEFAULT_INT_VALUE) {
|
||||
this.totalSizeOfDownload = totalSizeOfDownload.toLong()
|
||||
}
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ class DownloadNotificationManager @Inject constructor(
|
||||
if (shouldUpdateNotification(downloadNotificationModel)) {
|
||||
createNotificationChannel()
|
||||
val notificationBuilder = getNotificationBuilder(downloadNotificationModel.downloadId)
|
||||
val smallIcon = if (downloadNotificationModel.progress != 100) {
|
||||
val smallIcon = if (downloadNotificationModel.progress != HUNDERED) {
|
||||
android.R.drawable.stat_sys_download
|
||||
} else {
|
||||
android.R.drawable.stat_sys_download_done
|
||||
@ -69,9 +69,9 @@ class DownloadNotificationManager @Inject constructor(
|
||||
.setOngoing(downloadNotificationModel.isOnGoingNotification)
|
||||
.setGroupSummary(false)
|
||||
if (downloadNotificationModel.isFailed || downloadNotificationModel.isCompleted) {
|
||||
notificationBuilder.setProgress(0, 0, false)
|
||||
notificationBuilder.setProgress(ZERO, ZERO, false)
|
||||
} else {
|
||||
notificationBuilder.setProgress(100, downloadNotificationModel.progress, false)
|
||||
notificationBuilder.setProgress(HUNDERED, downloadNotificationModel.progress, false)
|
||||
}
|
||||
when {
|
||||
downloadNotificationModel.isDownloading ->
|
||||
@ -132,7 +132,7 @@ class DownloadNotificationManager @Inject constructor(
|
||||
val pendingIntent =
|
||||
PendingIntent.getActivity(
|
||||
context,
|
||||
0,
|
||||
ZERO,
|
||||
internal,
|
||||
PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
@ -150,7 +150,7 @@ class DownloadNotificationManager @Inject constructor(
|
||||
notificationBuilder
|
||||
.setGroup("$notificationId")
|
||||
.setStyle(null)
|
||||
.setProgress(0, 0, false)
|
||||
.setProgress(ZERO, ZERO, false)
|
||||
.setContentTitle(null)
|
||||
.setContentText(null)
|
||||
.setContentIntent(null)
|
||||
@ -203,9 +203,11 @@ class DownloadNotificationManager @Inject constructor(
|
||||
|
||||
downloadNotificationModel.isPaused -> context.getString(R.string.paused_state)
|
||||
downloadNotificationModel.isQueued -> context.getString(R.string.pending_state)
|
||||
downloadNotificationModel.etaInMilliSeconds <= 0 -> context.getString(R.string.running_state)
|
||||
downloadNotificationModel.etaInMilliSeconds <= ZERO ->
|
||||
context.getString(R.string.running_state)
|
||||
|
||||
else -> Seconds(
|
||||
downloadNotificationModel.etaInMilliSeconds / 1000L
|
||||
downloadNotificationModel.etaInMilliSeconds / THOUSAND.toLong()
|
||||
).toHumanReadableTime()
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
package org.kiwix.kiwixmobile.core.downloader.downloadManager
|
||||
|
||||
@Suppress("MagicNumber")
|
||||
enum class Error(val value: Int) {
|
||||
UNKNOWN(-1),
|
||||
NONE(0),
|
||||
@ -35,6 +36,7 @@ enum class Error(val value: Int) {
|
||||
ERROR_UNHANDLED_HTTP_CODE(12);
|
||||
|
||||
companion object {
|
||||
@Suppress("ComplexMethod", "MagicNumber")
|
||||
@JvmStatic
|
||||
fun valueOf(value: Int): Error {
|
||||
return when (value) {
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
package org.kiwix.kiwixmobile.core.downloader.downloadManager
|
||||
|
||||
@Suppress("MagicNumber")
|
||||
enum class Status(val value: Int) {
|
||||
NONE(0),
|
||||
QUEUED(1),
|
||||
@ -32,6 +33,7 @@ enum class Status(val value: Int) {
|
||||
|
||||
companion object {
|
||||
|
||||
@Suppress("MagicNumber")
|
||||
@JvmStatic
|
||||
fun valueOf(value: Int): Status {
|
||||
return when (value) {
|
||||
|
@ -97,7 +97,7 @@ class FetchDownloadMonitor @Inject constructor(fetch: Fetch, fetchDownloadDao: F
|
||||
}
|
||||
|
||||
private fun update(download: Download) {
|
||||
//updater.onNext { fetchDownloadDao.update(download) }
|
||||
// updater.onNext { fetchDownloadDao.update(download) }
|
||||
}
|
||||
|
||||
private fun delete(download: Download) {
|
||||
|
@ -29,7 +29,9 @@ data class DownloadRequest(val urlString: String, val notificationTitle: String)
|
||||
|
||||
fun getDestinationFile(sharedPreferenceUtil: SharedPreferenceUtil): File {
|
||||
val file =
|
||||
File("${sharedPreferenceUtil.prefStorage}/Kiwix/${StorageUtils.getFileNameFromUrl(urlString)}")
|
||||
File(
|
||||
"${sharedPreferenceUtil.prefStorage}/Kiwix/${StorageUtils.getFileNameFromUrl(urlString)}"
|
||||
)
|
||||
return file
|
||||
}
|
||||
}
|
||||
|
@ -29,7 +29,6 @@ import org.junit.jupiter.api.AfterAll
|
||||
import org.junit.jupiter.api.BeforeEach
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.kiwix.kiwixmobile.core.dao.DownloadRoomDao
|
||||
import org.kiwix.kiwixmobile.core.dao.FetchDownloadDao
|
||||
import org.kiwix.kiwixmobile.core.dao.LibkiwixBookmarks
|
||||
import org.kiwix.kiwixmobile.core.downloader.model.DownloadModel
|
||||
import org.kiwix.kiwixmobile.core.reader.ZimFileReader
|
||||
|
@ -24,7 +24,6 @@ import io.reactivex.disposables.CompositeDisposable
|
||||
import io.reactivex.processors.PublishProcessor
|
||||
import org.kiwix.kiwixmobile.core.base.SideEffect
|
||||
import org.kiwix.kiwixmobile.core.dao.DownloadRoomDao
|
||||
import org.kiwix.kiwixmobile.core.dao.FetchDownloadDao
|
||||
import org.kiwix.kiwixmobile.core.downloader.model.DownloadItem
|
||||
import org.kiwix.kiwixmobile.core.downloader.model.DownloadState.Failed
|
||||
import org.kiwix.kiwixmobile.custom.download.Action.ClickedDownload
|
||||
@ -87,6 +86,7 @@ class CustomDownloadViewModel @Inject constructor(
|
||||
DownloadRequired ->
|
||||
if (action.downloads.isNotEmpty()) DownloadInProgress(action.downloads)
|
||||
else state
|
||||
|
||||
is DownloadInProgress ->
|
||||
if (action.downloads.isNotEmpty())
|
||||
if (action.downloads[0].downloadState is Failed)
|
||||
@ -95,6 +95,7 @@ class CustomDownloadViewModel @Inject constructor(
|
||||
DownloadInProgress(action.downloads)
|
||||
else
|
||||
DownloadComplete.also { _effects.offer(navigateToCustomReader) }
|
||||
|
||||
DownloadComplete -> state
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user