Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cfea5074 authored by Hasib Prince's avatar Hasib Prince
Browse files

refactor: moving methods to appropriate class, timber for error logs

parent a344da7d
Loading
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -139,7 +139,11 @@ class DownloadManager @Inject constructor(
        }
    }

    fun getDownloadStatus(downloadId: Long): Int {
    fun isDownloadSuccessful(downloadId: Long): Boolean {
        return getDownloadStatus(downloadId) == DownloadManager.STATUS_SUCCESSFUL
    }

    private fun getDownloadStatus(downloadId: Long): Int {
        try {
            downloadManager.query(downloadManagerQuery.setFilterById(downloadId))
                .use { cursor ->
@@ -151,7 +155,7 @@ class DownloadManager @Inject constructor(
                    }
                }
        } catch (e: Exception) {
            e.printStackTrace()
            Timber.e(e)
        }
        return DownloadManager.STATUS_FAILED
    }
+2 −1
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import org.bouncycastle.openpgp.PGPUtil
import org.bouncycastle.openpgp.jcajce.JcaPGPObjectFactory
import org.bouncycastle.openpgp.operator.bc.BcPGPContentVerifierBuilderProvider
import org.bouncycastle.openpgp.operator.jcajce.JcaKeyFingerprintCalculator
import timber.log.Timber
import java.io.BufferedInputStream
import java.io.FileInputStream
import java.io.InputStream
@@ -42,7 +43,7 @@ object ApkSignatureManager {
                context.assets.open("f-droid.org-signing-key.gpg")
            )
        } catch (e: Exception) {
            e.printStackTrace()
            Timber.e(e)
        }
        return false
    }
+10 −5
Original line number Diff line number Diff line
@@ -34,7 +34,6 @@ import kotlinx.coroutines.sync.withLock
import timber.log.Timber
import javax.inject.Inject
import javax.inject.Singleton
import android.app.DownloadManager as androidDownloadManager

@Singleton
class DownloadManagerUtils @Inject constructor(
@@ -79,10 +78,16 @@ class DownloadManagerUtils @Inject constructor(
        numberOfDownloadedItems: Int,
        fusedDownload: FusedDownload,
        downloadId: Long
    ) = downloadManager.getDownloadStatus(downloadId) == androidDownloadManager.STATUS_SUCCESSFUL &&
        numberOfDownloadedItems == fusedDownload.downloadIdMap.size && checkCleanApkSignatureOK(
    ) = downloadManager.isDownloadSuccessful(downloadId) &&
        areAllFilesDownloaded(
            numberOfDownloadedItems,
            fusedDownload
    )
        ) && checkCleanApkSignatureOK(fusedDownload)

    private fun areAllFilesDownloaded(
        numberOfDownloadedItems: Int,
        fusedDownload: FusedDownload
    ) = numberOfDownloadedItems == fusedDownload.downloadIdMap.size

    private suspend fun updateDownloadIdMap(
        fusedDownload: FusedDownload,
+1 −2
Original line number Diff line number Diff line
@@ -11,7 +11,6 @@ import foundation.e.apps.manager.database.fusedDownload.FusedDownload
import foundation.e.apps.manager.download.data.DownloadProgress
import foundation.e.apps.manager.workmanager.InstallWorkManager
import foundation.e.apps.utils.enums.Status
import foundation.e.apps.utils.modules.CommonUtilsFunctions
import kotlinx.coroutines.flow.Flow
import javax.inject.Inject
import javax.inject.Singleton
@@ -36,7 +35,7 @@ class FusedManagerRepository @Inject constructor(
    }

    suspend fun addDownload(fusedDownload: FusedDownload) {
        if (CommonUtilsFunctions.checkWorkIsAlreadyAvailable(InstallWorkManager.context, fusedDownload.id)) {
        if (InstallWorkManager.checkWorkIsAlreadyAvailable(fusedDownload.id)) {
            return
        }

+15 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ import androidx.work.ExistingWorkPolicy
import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.WorkManager
import foundation.e.apps.manager.database.fusedDownload.FusedDownload
import java.lang.Exception

object InstallWorkManager {
    const val INSTALL_WORK_NAME = "APP_LOUNGE_INSTALL_APP"
@@ -27,4 +28,18 @@ object InstallWorkManager {
    fun cancelWork(tag: String) {
        WorkManager.getInstance(context).cancelAllWorkByTag(tag)
    }

    fun checkWorkIsAlreadyAvailable(tag: String): Boolean {
        val works = WorkManager.getInstance(context).getWorkInfosByTag(tag)
        try {
            works.get().forEach {
                if (it.tags.contains(tag) && !it.state.isFinished) {
                    return true
                }
            }
        } catch (e: Exception) {
            e.printStackTrace()
        }
        return false
    }
}
Loading