Fixed some detekt and lint issues

This commit is contained in:
MohitMaliFtechiz 2024-07-26 18:56:48 +05:30
parent 3039232b2c
commit 9b091301bd
17 changed files with 59 additions and 70 deletions

View File

@ -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() {

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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(

View File

@ -95,8 +95,9 @@ class ApplicationModule {
@Provides
@Singleton
internal fun provideDownloadMonitor(downloadManagerMonitor: DownloadManagerMonitor)
: DownloadMonitor = downloadManagerMonitor
internal fun provideDownloadMonitor(
downloadManagerMonitor: DownloadManagerMonitor
): DownloadMonitor = downloadManagerMonitor
@Provides
@Singleton

View File

@ -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

View File

@ -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

View File

@ -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()
}
}

View File

@ -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()
}
}

View File

@ -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) {

View File

@ -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) {

View File

@ -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) {

View File

@ -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
}
}

View 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

View File

@ -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
}
}