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

Commit e8407cd5 authored by Fahim M. Choudhury's avatar Fahim M. Choudhury
Browse files

Merge branch '4177-refactor-app-install-processor-ai-review' into 'main'

refactor: break down AppInstallProcessor into collaborator classes

See merge request !735
parents 95ffa051 4d9b256e
Loading
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -9,19 +9,15 @@
    <ID>InstanceOfCheckForException:GPlayHttpClient.kt$GPlayHttpClient$e is SocketTimeoutException</ID>
    <ID>InvalidPackageDeclaration:Trackers.kt$package foundation.e.apps.data.exodus</ID>
    <ID>LargeClass:ApplicationFragment.kt$ApplicationFragment : TimeoutFragment</ID>
    <ID>LongParameterList:AppManagerImpl.kt$AppManagerImpl$( @Named("cacheDir") private val cacheDir: String, private val downloadManager: DownloadManager, private val notificationManager: NotificationManager, private val appInstallRepository: AppInstallRepository, private val pwaManager: PwaManager, private val appLoungePackageManager: AppLoungePackageManager, @Named("download") private val downloadNotificationChannel: NotificationChannel, @Named("update") private val updateNotificationChannel: NotificationChannel, @ApplicationContext private val context: Context )</ID>
    <ID>LongParameterList:ApplicationDialogFragment.kt$ApplicationDialogFragment$( title: String, message: String, @DrawableRes drawableResId: Int = -1, drawable: Drawable? = null, positiveButtonText: String = "", positiveButtonAction: (() -&gt; Unit)? = null, cancelButtonText: String = "", cancelButtonAction: (() -&gt; Unit)? = null, cancelable: Boolean = true, onDismissListener: (() -&gt; Unit)? = null, )</ID>
    <ID>LongParameterList:ApplicationListRVAdapter.kt$ApplicationListRVAdapter$( private val applicationInstaller: ApplicationInstaller, private val privacyInfoViewModel: PrivacyInfoViewModel, private val appInfoFetchViewModel: AppInfoFetchViewModel, private val mainActivityViewModel: MainActivityViewModel, private val currentDestinationId: Int, private var lifecycleOwner: LifecycleOwner?, private var paidAppHandler: ((Application) -&gt; Unit)? = null )</ID>
    <ID>LongParameterList:EglExtensionProvider.kt$EglExtensionProvider$( egl10: EGL10, eglDisplay: EGLDisplay, eglConfig: EGLConfig?, ai: IntArray, ai1: IntArray?, set: MutableSet&lt;String&gt; )</ID>
    <ID>LongParameterList:MainActivityViewModel.kt$MainActivityViewModel$( private val appLoungeDataStore: AppLoungeDataStore, private val applicationRepository: ApplicationRepository, private val appManagerWrapper: AppManagerWrapper, private val appLoungePackageManager: AppLoungePackageManager, private val pwaManager: PwaManager, private val blockedAppRepository: BlockedAppRepository, private val gPlayContentRatingRepository: GPlayContentRatingRepository, private val fDroidAntiFeatureRepository: FDroidAntiFeatureRepository, private val appInstallProcessor: AppInstallProcessor, private val systemAppsUpdatesRepository: SystemAppsUpdatesRepository, private val reportFaultyTokenUseCase: ReportFaultyTokenUseCase, )</ID>
    <ID>LongParameterList:UpdatesManagerImpl.kt$UpdatesManagerImpl$( @ApplicationContext private val context: Context, private val appLoungePackageManager: AppLoungePackageManager, private val applicationRepository: ApplicationRepository, private val faultyAppRepository: FaultyAppRepository, private val appLoungePreference: AppLoungePreference, private val fDroidRepository: FDroidRepository, private val blockedAppRepository: BlockedAppRepository, private val systemAppsUpdatesRepository: SystemAppsUpdatesRepository, )</ID>
    <ID>LongParameterList:UpdatesWorker.kt$UpdatesWorker$( @Assisted private val context: Context, @Assisted private val params: WorkerParameters, private val updatesManagerRepository: UpdatesManagerRepository, private val appLoungeDataStore: AppLoungeDataStore, private val authenticatorRepository: AuthenticatorRepository, private val appInstallProcessor: AppInstallProcessor, private val blockedAppRepository: BlockedAppRepository, private val systemAppsUpdatesRepository: SystemAppsUpdatesRepository, )</ID>
    <ID>NoUnusedImports:AppInstallComponents.kt$foundation.e.apps.data.install.AppInstallComponents.kt</ID>
    <ID>ProtectedMemberInFinalClass:ApplicationListFragment.kt$ApplicationListFragment$// protected to avoid SyntheticAccessor protected val args: ApplicationListFragmentArgs by navArgs()</ID>
    <ID>ProtectedMemberInFinalClass:ApplicationListFragment.kt$ApplicationListFragment$// protected to avoid SyntheticAccessor protected val viewModel: ApplicationListViewModel by viewModels()</ID>
    <ID>ProtectedMemberInFinalClass:GoogleSignInFragment.kt$GoogleSignInFragment$// protected to avoid SyntheticAccessor protected val viewModel: LoginViewModel by lazy { ViewModelProvider(requireActivity())[LoginViewModel::class.java] }</ID>
    <ID>ReturnCount:AppInstallProcessor.kt$AppInstallProcessor$private suspend fun updateDownloadUrls(appInstall: AppInstall): Boolean</ID>
    <ID>ReturnCount:AppManagerWrapper.kt$AppManagerWrapper$suspend fun addDownload(appInstall: AppInstall): Boolean</ID>
    <ID>ReturnCount:CleanApkAppsRepository.kt$CleanApkAppsRepository$override suspend fun getAppDetails(packageName: String): Application</ID>
    <ID>ReturnCount:CleanApkPwaRepository.kt$CleanApkPwaRepository$override suspend fun getAppDetails(packageName: String): Application</ID>
    <ID>ReturnCount:DownloadManager.kt$DownloadManager$fun getSizeRequired(downloadId: Long): Long</ID>
@@ -73,9 +69,7 @@
    <ID>TooGenericExceptionCaught:UpdatesWorker.kt$UpdatesWorker$e: Throwable</ID>
    <ID>TooGenericExceptionThrown:AnonymousLoginManager.kt$AnonymousLoginManager$throw Exception( "Error fetching Anonymous credentials\n" + "Network code: ${response.code}\n" + "Success: ${response.isSuccessful}" + response.errorString.run { if (isNotBlank()) "\nError message: $this" else "" } )</ID>
    <ID>TooManyFunctions:AppLoungePackageManager.kt$AppLoungePackageManager</ID>
    <ID>TooManyFunctions:AppManager.kt$AppManager</ID>
    <ID>TooManyFunctions:AppManagerImpl.kt$AppManagerImpl : AppManager</ID>
    <ID>TooManyFunctions:AppManagerWrapper.kt$AppManagerWrapper</ID>
    <ID>TooManyFunctions:ApplicationListFragment.kt$ApplicationListFragment : TimeoutFragmentApplicationInstaller</ID>
    <ID>TooManyFunctions:ApplicationRepository.kt$ApplicationRepository</ID>
    <ID>TooManyFunctions:MainActivityViewModel.kt$MainActivityViewModel : ViewModel</ID>
+4 −5
Original line number Diff line number Diff line
@@ -29,11 +29,11 @@ import dagger.hilt.android.HiltAndroidApp
import foundation.e.apps.data.Constants.TAG_APP_INSTALL_STATE
import foundation.e.apps.data.Constants.TAG_AUTHDATA_DUMP
import foundation.e.apps.data.di.qualifiers.IoCoroutineScope
import foundation.e.apps.data.install.AppInstallDAO
import foundation.e.apps.data.install.pkg.AppLoungePackageManager
import foundation.e.apps.data.install.pkg.PkgManagerBR
import foundation.e.apps.data.install.updates.UpdatesWorkManager
import foundation.e.apps.data.install.workmanager.InstallOrchestrator
import foundation.e.apps.data.installation.repository.AppInstallRepository
import foundation.e.apps.data.system.CustomUncaughtExceptionHandler
import foundation.e.apps.domain.model.install.Status
import foundation.e.apps.domain.preferences.SessionRepository
@@ -48,7 +48,6 @@ import timber.log.Timber
import timber.log.Timber.Forest.plant
import java.util.concurrent.Executors
import javax.inject.Inject

@HiltAndroidApp
@DelicateCoroutinesApi
class AppLoungeApplication : Application(), Configuration.Provider {
@@ -60,7 +59,7 @@ class AppLoungeApplication : Application(), Configuration.Provider {
    lateinit var workerFactory: HiltWorkerFactory

    @Inject
    lateinit var appInstallDao: AppInstallDAO
    lateinit var appInstallRepository: AppInstallRepository

    @Inject
    lateinit var uncaughtExceptionHandler: CustomUncaughtExceptionHandler
@@ -140,7 +139,7 @@ class AppLoungeApplication : Application(), Configuration.Provider {
    private fun isRunningUnderRobolectric(): Boolean = Build.FINGERPRINT == "robolectric"

    private fun removeStalledInstallationFromDb() = coroutineScope.launch {
        val existingInstallations = appInstallDao.getItemInInstallation().toMutableList()
        val existingInstallations = appInstallRepository.getItemInInstallation().toMutableList()
        if (existingInstallations.isEmpty()) {
            return@launch
        }
@@ -162,7 +161,7 @@ class AppLoungeApplication : Application(), Configuration.Provider {
            Timber.d("removing (${appInstall.packageName}) : (${appInstall.id}) from db")

            appInstall.status = Status.INSTALLATION_ISSUE
            appInstallDao.deleteDownload(appInstall)
            appInstallRepository.deleteDownload(appInstall)
        }
    }

+1 −1
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ import foundation.e.apps.data.enums.FilterLevel
import foundation.e.apps.data.enums.ResultStatus
import foundation.e.apps.data.enums.Source
import foundation.e.apps.data.handleNetworkResult
import foundation.e.apps.data.install.models.AppInstall
import foundation.e.apps.data.installation.model.AppInstall
import foundation.e.apps.domain.model.install.Status
import kotlinx.coroutines.async
import kotlinx.coroutines.coroutineScope
+1 −1
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@
package foundation.e.apps.data.application

import foundation.e.apps.data.application.data.Application
import foundation.e.apps.data.install.models.AppInstall
import foundation.e.apps.data.installation.model.AppInstall

object UpdatesDao {
    private val _appsAwaitingForUpdate: MutableList<Application> = mutableListOf()
+1 −1
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ import foundation.e.apps.data.enums.Source
import foundation.e.apps.data.enums.Type
import foundation.e.apps.data.enums.Type.NATIVE
import foundation.e.apps.data.enums.Type.PWA
import foundation.e.apps.data.install.models.SharedLib
import foundation.e.apps.data.installation.model.SharedLib
import foundation.e.apps.domain.model.install.Status

data class Application(
Loading