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

Verified Commit 4683e88e authored by Fahim M. Choudhury's avatar Fahim M. Choudhury
Browse files

refactor: rename AppInstallDownloadUrlRefresher to DownloadUrlRefresher

parent 88ba29f5
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -25,14 +25,14 @@ import timber.log.Timber
import javax.inject.Inject

class AppInstallPreEnqueueChecker @Inject constructor(
    private val appInstallDownloadUrlRefresher: AppInstallDownloadUrlRefresher,
    private val downloadUrlRefresher: DownloadUrlRefresher,
    private val appManagerWrapper: AppManagerWrapper,
    private val ageLimitGate: AgeLimitGate,
    private val devicePreconditions: DevicePreconditions,
) {
    suspend fun canEnqueue(appInstall: AppInstall, isAnUpdate: Boolean = false): Boolean {
        val hasUpdatedDownloadUrls = appInstall.type == Type.PWA ||
            appInstallDownloadUrlRefresher.updateDownloadUrls(appInstall, isAnUpdate)
            downloadUrlRefresher.updateDownloadUrls(appInstall, isAnUpdate)

        val isDownloadAdded = hasUpdatedDownloadUrls && addDownload(appInstall)
        val isAgeLimitAllowed = isDownloadAdded && ageLimitGate.allow(appInstall)
+1 −1
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ import kotlinx.coroutines.CancellationException
import timber.log.Timber
import javax.inject.Inject

class AppInstallDownloadUrlRefresher @Inject constructor(
class DownloadUrlRefresher @Inject constructor(
    private val applicationRepository: ApplicationRepository,
    private val appInstallRepository: AppInstallRepository,
    private val appManagerWrapper: AppManagerWrapper,
+9 −9
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ import foundation.e.apps.data.install.AppManagerWrapper
import foundation.e.apps.data.install.models.AppInstall
import foundation.e.apps.data.install.core.helper.AgeLimitGate
import foundation.e.apps.data.install.core.helper.DevicePreconditions
import foundation.e.apps.data.install.core.helper.AppInstallDownloadUrlRefresher
import foundation.e.apps.data.install.core.helper.DownloadUrlRefresher
import foundation.e.apps.data.install.core.helper.AppInstallPreEnqueueChecker
import foundation.e.apps.domain.model.install.Status
import io.mockk.coEvery
@@ -39,7 +39,7 @@ import org.junit.Test

@OptIn(ExperimentalCoroutinesApi::class)
class AppInstallPreEnqueueCheckerTest {
    private lateinit var appInstallDownloadUrlRefresher: AppInstallDownloadUrlRefresher
    private lateinit var downloadUrlRefresher: DownloadUrlRefresher
    private lateinit var appManagerWrapper: AppManagerWrapper
    private lateinit var ageLimitGate: AgeLimitGate
    private lateinit var devicePreconditions: DevicePreconditions
@@ -47,12 +47,12 @@ class AppInstallPreEnqueueCheckerTest {

    @Before
    fun setup() {
        appInstallDownloadUrlRefresher = mockk(relaxed = true)
        downloadUrlRefresher = mockk(relaxed = true)
        appManagerWrapper = mockk(relaxed = true)
        ageLimitGate = mockk(relaxed = true)
        devicePreconditions = mockk(relaxed = true)
        checker = AppInstallPreEnqueueChecker(
            appInstallDownloadUrlRefresher,
            downloadUrlRefresher,
            appManagerWrapper,
            ageLimitGate,
            devicePreconditions
@@ -70,14 +70,14 @@ class AppInstallPreEnqueueCheckerTest {

        assertTrue(result)
        coVerify(exactly = 0) {
            appInstallDownloadUrlRefresher.updateDownloadUrls(any(), any())
            downloadUrlRefresher.updateDownloadUrls(any(), any())
        }
    }

    @Test
    fun canEnqueue_stopsWhenDownloadRefreshFails() = runTest {
        val appInstall = createNativeInstall()
        coEvery { appInstallDownloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns false
        coEvery { downloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns false

        val result = checker.canEnqueue(appInstall)

@@ -90,7 +90,7 @@ class AppInstallPreEnqueueCheckerTest {
    @Test
    fun canEnqueue_stopsWhenAddingDownloadFails() = runTest {
        val appInstall = createNativeInstall()
        coEvery { appInstallDownloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true
        coEvery { downloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true
        coEvery { appManagerWrapper.addDownload(appInstall) } returns false

        val result = checker.canEnqueue(appInstall)
@@ -103,7 +103,7 @@ class AppInstallPreEnqueueCheckerTest {
    @Test
    fun canEnqueue_stopsWhenAgeLimitRejectsInstall() = runTest {
        val appInstall = createNativeInstall()
        coEvery { appInstallDownloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true
        coEvery { downloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true
        coEvery { appManagerWrapper.addDownload(appInstall) } returns true
        coEvery { ageLimitGate.allow(appInstall) } returns false

@@ -116,7 +116,7 @@ class AppInstallPreEnqueueCheckerTest {
    @Test
    fun canEnqueue_returnsTrueWhenAllChecksPass() = runTest {
        val appInstall = createNativeInstall()
        coEvery { appInstallDownloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true
        coEvery { downloadUrlRefresher.updateDownloadUrls(appInstall, false) } returns true
        coEvery { appManagerWrapper.addDownload(appInstall) } returns true
        coEvery { ageLimitGate.allow(appInstall) } returns true
        coEvery { devicePreconditions.canProceed(appInstall) } returns true
+3 −3
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ import foundation.e.apps.data.install.models.AppInstall
import foundation.e.apps.data.install.notification.StorageNotificationManager
import foundation.e.apps.data.install.core.helper.AgeLimitGate
import foundation.e.apps.data.install.core.helper.DevicePreconditions
import foundation.e.apps.data.install.core.helper.AppInstallDownloadUrlRefresher
import foundation.e.apps.data.install.core.helper.DownloadUrlRefresher
import foundation.e.apps.data.install.core.helper.AppInstallPreEnqueueChecker
import foundation.e.apps.data.install.core.helper.AppInstallStartCoordinator
import foundation.e.apps.data.install.workmanager.InstallWorkManager
@@ -74,7 +74,7 @@ class AppInstallStartCoordinatorTest {
    private lateinit var networkStatusChecker: NetworkStatusChecker
    private lateinit var appManager: AppManager
    private lateinit var devicePreconditions: DevicePreconditions
    private lateinit var downloadUrlRefresher: AppInstallDownloadUrlRefresher
    private lateinit var downloadUrlRefresher: DownloadUrlRefresher
    private lateinit var preflightChecker: AppInstallPreEnqueueChecker
    private lateinit var coordinator: AppInstallStartCoordinator

@@ -94,7 +94,7 @@ class AppInstallStartCoordinatorTest {
        appManager = mockk(relaxed = true)
        coEvery { sessionRepository.awaitUser() } returns User.NO_GOOGLE
        coEvery { playStoreAuthStore.awaitAuthData() } returns null
        downloadUrlRefresher = AppInstallDownloadUrlRefresher(
        downloadUrlRefresher = DownloadUrlRefresher(
            applicationRepository,
            appInstallRepository,
            appManagerWrapper,
+4 −4
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ import foundation.e.apps.data.install.AppInstallRepository
import foundation.e.apps.data.install.AppManager
import foundation.e.apps.data.install.AppManagerWrapper
import foundation.e.apps.data.install.models.AppInstall
import foundation.e.apps.data.install.core.helper.AppInstallDownloadUrlRefresher
import foundation.e.apps.data.install.core.helper.DownloadUrlRefresher
import foundation.e.apps.data.playstore.utils.GplayHttpRequestException
import foundation.e.apps.domain.model.install.Status
import io.mockk.coEvery
@@ -43,13 +43,13 @@ import org.junit.Before
import org.junit.Test

@OptIn(ExperimentalCoroutinesApi::class)
class AppInstallDownloadUrlRefresherTest {
class DownloadUrlRefresherTest {
    private lateinit var applicationRepository: ApplicationRepository
    private lateinit var appInstallRepository: AppInstallRepository
    private lateinit var appManagerWrapper: AppManagerWrapper
    private lateinit var appEventDispatcher: FakeAppEventDispatcher
    private lateinit var appManager: AppManager
    private lateinit var refresher: AppInstallDownloadUrlRefresher
    private lateinit var refresher: DownloadUrlRefresher

    @Before
    fun setup() {
@@ -58,7 +58,7 @@ class AppInstallDownloadUrlRefresherTest {
        appManagerWrapper = mockk(relaxed = true)
        appEventDispatcher = FakeAppEventDispatcher()
        appManager = mockk(relaxed = true)
        refresher = AppInstallDownloadUrlRefresher(
        refresher = DownloadUrlRefresher(
            applicationRepository,
            appInstallRepository,
            appManagerWrapper,