From 11b5a325664363b7aa860cb0e2bceeebea63c0ac Mon Sep 17 00:00:00 2001 From: Jonathan Klee Date: Thu, 5 Mar 2026 09:55:24 +0100 Subject: [PATCH] refactor: improve package layout to enforce data, domain and ui packages --- app/detekt-baseline.xml | 14 ++----- app/src/main/AndroidManifest.xml | 16 +++---- .../foundation/e/apps/AppLoungeApplication.kt | 12 +++--- .../application/ApplicationDataManager.kt | 4 +- .../data/cleanapk/CleanApkSearchHelper.kt | 2 +- .../repositories/CleanApkAppsRepository.kt | 2 +- .../{di => data/di/bindings}/DataModule.kt | 2 +- .../{di => data/di/bindings}/LoginModule.kt | 2 +- .../di/bindings}/RepositoryModule.kt | 2 +- .../di/bindings}/SearchPagingModule.kt | 2 +- .../di/bindings}/SearchSuggestionModule.kt | 2 +- .../e/apps/{di => data/di/db}/DaoModule.kt | 2 +- .../apps/{di => data/di/db}/DatabaseModule.kt | 2 +- .../di/network/InterceptorModule.kt | 2 +- .../{ => data}/di/network/NetworkModule.kt | 2 +- .../di/network/RetrofitApiModule.kt | 4 +- .../di/qualifiers/IoCoroutineScope.kt | 2 +- .../di/system}/AccountManagerModule.kt | 2 +- .../di/system}/CommonUtilsModule.kt | 38 +---------------- .../di/system}/DownloadManagerModule.kt | 2 +- .../di/system}/NotificationManagerModule.kt | 2 +- .../eventBus => data/event}/AppEvent.kt | 2 +- .../eventBus => data/event}/EventBus.kt | 2 +- .../exodus}/ExodusUriGenerator.kt | 2 +- .../e/apps/data/fdroid/FdroidApiInterface.kt | 2 +- .../e/apps/data/fdroid/FdroidDao.kt | 2 +- .../gitlab/SystemAppsUpdatesRepository.kt | 4 +- .../install/AppInstallComponents.kt | 2 +- .../e/apps/data/install/AppManagerImpl.kt | 6 +-- .../e/apps/data/install/AppManagerWrapper.kt | 4 +- .../install/download/DownloadManagerBR.kt | 2 +- .../install/download/DownloadManagerUtils.kt | 10 ++--- .../install/download/data/DownloadProgress.kt | 2 +- .../download/data/DownloadProgressLD.kt | 2 +- .../StorageNotificationManager.kt | 6 +-- .../install/pkg/AppLoungePackageManager.kt | 2 +- .../install/pkg/InstallerService.kt | 8 ++-- .../{ => data}/install/pkg/PkgManagerBR.kt | 4 +- .../apps/{ => data}/install/pkg/PwaManager.kt | 2 +- .../receiver/PwaPlayerStatusReceiver.kt | 4 +- .../updates/UpdatesBroadcastReceiver.kt | 2 +- .../install/updates/UpdatesNotifier.kt | 2 +- .../install/updates/UpdatesWorkManager.kt | 2 +- .../install/updates/UpdatesWorker.kt | 8 ++-- .../workmanager/AppInstallProcessor.kt | 22 +++++----- .../install/workmanager/InstallAppWorker.kt | 2 +- .../install/workmanager/InstallWorkManager.kt | 2 +- .../data/login/playstore/PlayStoreSession.kt | 4 +- .../{ => data}/microg/AuthDataProvider.kt | 2 +- .../data/playstore/PlayStoreRepository.kt | 2 +- .../data/playstore/utils/GPlayHttpClient.kt | 6 +-- .../{ => data}/provider/AgeRatingProvider.kt | 6 +-- .../receivers/DumpAppInstallStatusReceiver.kt | 6 +-- .../apps/{ => data}/receivers/DumpAuthData.kt | 2 +- .../system}/CustomUncaughtExceptionHandler.kt | 2 +- .../e/apps/data/system/NetworkExtensions.kt | 42 +++++++++++++++++++ .../system}/NetworkStatusManager.kt | 2 +- .../system}/ParentalControlAuthenticator.kt | 2 +- .../{utils => data/system}/StorageComputer.kt | 2 +- .../system}/SystemInfoProvider.kt | 2 +- .../e/apps/data/updates/UpdatesManagerImpl.kt | 2 +- .../data/utils/ContentRatingExtensions.kt | 23 ++++++++++ .../e/apps/data/utils/DateExtensions.kt | 28 +++++++++++++ .../domain/login/ReportFaultyTokenUseCase.kt | 2 +- .../e/apps/ui/AppProgressViewModel.kt | 4 +- .../java/foundation/e/apps/ui/MainActivity.kt | 8 ++-- .../e/apps/ui/MainActivityViewModel.kt | 8 ++-- .../ui/application/ApplicationFragment.kt | 10 ++--- .../ui/application/ApplicationViewModel.kt | 8 ++-- .../ApplicationListFragment.kt | 6 +-- .../ApplicationListRVAdapter.kt | 7 ++-- .../compose/state/InstallButtonStateInput.kt | 2 +- .../compose/state/InstallStatusReconciler.kt | 2 +- .../ui/compose/state/InstallStatusStream.kt | 4 +- .../foundation/e/apps/ui/di/UiSystemModule.kt | 38 +++++++++++++++++ .../extensions/ContextDialogExtensions.kt} | 34 +-------------- .../foundation/e/apps/ui/home/HomeFragment.kt | 2 +- .../apps/ui/home/model/HomeChildRVAdapter.kt | 4 +- .../ui/navigation/NavControllerExtensions.kt | 38 +++++++++++++++++ .../e/apps/ui/search/SearchFragment.kt | 6 +-- .../e/apps/ui/search/v2/SearchFragmentV2.kt | 2 +- .../e/apps/ui/search/v2/SearchViewModelV2.kt | 2 +- .../e/apps/ui/settings/SettingsFragment.kt | 4 +- .../signin/LocaleChangedBroadcastReceiver.kt | 2 +- .../e/apps/ui/setup/signin/SignInFragment.kt | 4 +- .../signin/google/GoogleSignInFragment.kt | 2 +- .../e/apps/ui/updates/UpdatesFragment.kt | 16 +++---- .../{ => ui}/utils/MaterialButtonUtils.kt | 2 +- .../e/apps/{ => ui}/utils/ViewUtils.kt | 2 +- .../e/apps/FakeAppLoungePackageManager.kt | 2 +- .../foundation/e/apps/apps/AppsApiTest.kt | 4 +- .../e/apps/category/CategoryApiTest.kt | 4 +- .../application/ApplicationDataManagerTest.kt | 2 +- .../data/cleanapk/CleanApkSearchHelperTest.kt | 2 +- .../CleanApkAppsRepositoryTest.kt | 2 +- .../di/network/InterceptorModuleTest.kt | 2 +- .../eventBus => data/event}/AppEventTest.kt | 2 +- .../exodus}/ExodusUriGeneratorTest.kt | 2 +- .../gitlab/SystemAppsUpdatesRepositoryTest.kt | 2 +- .../install/AppManagerWrapperProgressTest.kt | 2 +- .../download/data/DownloadProgressLDTest.kt | 2 +- .../pkg/AppLoungePackageManagerTest.kt | 2 +- .../{ => data}/install/pkg/PwaManagerTest.kt | 2 +- .../install/updates/UpdatesWorkerTest.kt | 4 +- .../login/microg}/MicrogSupportCheckerTest.kt | 2 +- .../data/playstore/PlayStoreRepositoryTest.kt | 2 +- .../system}/StorageComputerTest.kt | 2 +- .../system}/SystemInfoProviderTest.kt | 2 +- .../e/apps/{ => data}/utils/ExtensionsTest.kt | 2 +- .../login/ReportFaultyTokenUseCaseTest.kt | 2 +- .../exodus/PrivacyScoreRepositoryImplTest.kt | 1 - .../e/apps/fused/SearchRepositoryImplTest.kt | 4 +- .../fusedManager/AppManagerWrapperTest.kt | 2 +- .../e/apps/gplay/GPlayHttpClientTest.kt | 6 +-- .../AppInstallProcessorTest.kt | 8 ++-- .../state/InstallButtonStateMapperTest.kt | 2 +- .../state/InstallStatusReconcilerTest.kt | 2 +- .../compose/state/InstallStatusStreamTest.kt | 4 +- 118 files changed, 376 insertions(+), 279 deletions(-) rename app/src/main/java/foundation/e/apps/{di => data/di/bindings}/DataModule.kt (97%) rename app/src/main/java/foundation/e/apps/{di => data/di/bindings}/LoginModule.kt (96%) rename app/src/main/java/foundation/e/apps/{di => data/di/bindings}/RepositoryModule.kt (97%) rename app/src/main/java/foundation/e/apps/{di => data/di/bindings}/SearchPagingModule.kt (97%) rename app/src/main/java/foundation/e/apps/{di => data/di/bindings}/SearchSuggestionModule.kt (96%) rename app/src/main/java/foundation/e/apps/{di => data/di/db}/DaoModule.kt (96%) rename app/src/main/java/foundation/e/apps/{di => data/di/db}/DatabaseModule.kt (95%) rename app/src/main/java/foundation/e/apps/{ => data}/di/network/InterceptorModule.kt (98%) rename app/src/main/java/foundation/e/apps/{ => data}/di/network/NetworkModule.kt (98%) rename app/src/main/java/foundation/e/apps/{ => data}/di/network/RetrofitApiModule.kt (97%) rename app/src/main/java/foundation/e/apps/{ => data}/di/qualifiers/IoCoroutineScope.kt (94%) rename app/src/main/java/foundation/e/apps/{di => data/di/system}/AccountManagerModule.kt (96%) rename app/src/main/java/foundation/e/apps/{di => data/di/system}/CommonUtilsModule.kt (75%) rename app/src/main/java/foundation/e/apps/{di => data/di/system}/DownloadManagerModule.kt (97%) rename app/src/main/java/foundation/e/apps/{di => data/di/system}/NotificationManagerModule.kt (98%) rename app/src/main/java/foundation/e/apps/{utils/eventBus => data/event}/AppEvent.kt (98%) rename app/src/main/java/foundation/e/apps/{utils/eventBus => data/event}/EventBus.kt (96%) rename app/src/main/java/foundation/e/apps/{utils => data/exodus}/ExodusUriGenerator.kt (98%) rename app/src/main/java/foundation/e/apps/{ => data}/install/AppInstallComponents.kt (96%) rename app/src/main/java/foundation/e/apps/{ => data}/install/download/DownloadManagerBR.kt (97%) rename app/src/main/java/foundation/e/apps/{ => data}/install/download/DownloadManagerUtils.kt (96%) rename app/src/main/java/foundation/e/apps/{ => data}/install/download/data/DownloadProgress.kt (82%) rename app/src/main/java/foundation/e/apps/{ => data}/install/download/data/DownloadProgressLD.kt (99%) rename app/src/main/java/foundation/e/apps/{ => data}/install/notification/StorageNotificationManager.kt (95%) rename app/src/main/java/foundation/e/apps/{ => data}/install/pkg/AppLoungePackageManager.kt (99%) rename app/src/main/java/foundation/e/apps/{ => data}/install/pkg/InstallerService.kt (95%) rename app/src/main/java/foundation/e/apps/{ => data}/install/pkg/PkgManagerBR.kt (97%) rename app/src/main/java/foundation/e/apps/{ => data}/install/pkg/PwaManager.kt (99%) rename app/src/main/java/foundation/e/apps/{ => data}/install/receiver/PwaPlayerStatusReceiver.kt (96%) rename app/src/main/java/foundation/e/apps/{ => data}/install/updates/UpdatesBroadcastReceiver.kt (97%) rename app/src/main/java/foundation/e/apps/{ => data}/install/updates/UpdatesNotifier.kt (99%) rename app/src/main/java/foundation/e/apps/{ => data}/install/updates/UpdatesWorkManager.kt (98%) rename app/src/main/java/foundation/e/apps/{ => data}/install/updates/UpdatesWorker.kt (98%) rename app/src/main/java/foundation/e/apps/{ => data}/install/workmanager/AppInstallProcessor.kt (96%) rename app/src/main/java/foundation/e/apps/{ => data}/install/workmanager/InstallAppWorker.kt (98%) rename app/src/main/java/foundation/e/apps/{ => data}/install/workmanager/InstallWorkManager.kt (96%) rename app/src/main/java/foundation/e/apps/{ => data}/microg/AuthDataProvider.kt (99%) rename app/src/main/java/foundation/e/apps/{ => data}/provider/AgeRatingProvider.kt (98%) rename app/src/main/java/foundation/e/apps/{ => data}/receivers/DumpAppInstallStatusReceiver.kt (95%) rename app/src/main/java/foundation/e/apps/{ => data}/receivers/DumpAuthData.kt (98%) rename app/src/main/java/foundation/e/apps/{utils => data/system}/CustomUncaughtExceptionHandler.kt (98%) create mode 100644 app/src/main/java/foundation/e/apps/data/system/NetworkExtensions.kt rename app/src/main/java/foundation/e/apps/{utils => data/system}/NetworkStatusManager.kt (98%) rename app/src/main/java/foundation/e/apps/{utils => data/system}/ParentalControlAuthenticator.kt (98%) rename app/src/main/java/foundation/e/apps/{utils => data/system}/StorageComputer.kt (98%) rename app/src/main/java/foundation/e/apps/{utils => data/system}/SystemInfoProvider.kt (98%) create mode 100644 app/src/main/java/foundation/e/apps/data/utils/ContentRatingExtensions.kt create mode 100644 app/src/main/java/foundation/e/apps/data/utils/DateExtensions.kt create mode 100644 app/src/main/java/foundation/e/apps/ui/di/UiSystemModule.kt rename app/src/main/java/foundation/e/apps/{utils/Extensions.kt => ui/extensions/ContextDialogExtensions.kt} (53%) create mode 100644 app/src/main/java/foundation/e/apps/ui/navigation/NavControllerExtensions.kt rename app/src/main/java/foundation/e/apps/{ => ui}/utils/MaterialButtonUtils.kt (98%) rename app/src/main/java/foundation/e/apps/{ => ui}/utils/ViewUtils.kt (93%) rename app/src/test/java/foundation/e/apps/{ => data}/di/network/InterceptorModuleTest.kt (98%) rename app/src/test/java/foundation/e/apps/{utils/eventBus => data/event}/AppEventTest.kt (96%) rename app/src/test/java/foundation/e/apps/{utils => data/exodus}/ExodusUriGeneratorTest.kt (96%) rename app/src/test/java/foundation/e/apps/{ => data}/install/download/data/DownloadProgressLDTest.kt (97%) rename app/src/test/java/foundation/e/apps/{ => data}/install/pkg/AppLoungePackageManagerTest.kt (98%) rename app/src/test/java/foundation/e/apps/{ => data}/install/pkg/PwaManagerTest.kt (98%) rename app/src/test/java/foundation/e/apps/{ => data}/install/updates/UpdatesWorkerTest.kt (99%) rename app/src/test/java/foundation/e/apps/{utils => data/login/microg}/MicrogSupportCheckerTest.kt (98%) rename app/src/test/java/foundation/e/apps/{utils => data/system}/StorageComputerTest.kt (96%) rename app/src/test/java/foundation/e/apps/{utils => data/system}/SystemInfoProviderTest.kt (94%) rename app/src/test/java/foundation/e/apps/{ => data}/utils/ExtensionsTest.kt (91%) diff --git a/app/detekt-baseline.xml b/app/detekt-baseline.xml index 8968baf74..9b4ff20b2 100644 --- a/app/detekt-baseline.xml +++ b/app/detekt-baseline.xml @@ -16,23 +16,16 @@ 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, ) 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, ) 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, ) + NoUnusedImports:AppInstallComponents.kt$foundation.e.apps.data.install.AppInstallComponents.kt ProtectedMemberInFinalClass:ApplicationListFragment.kt$ApplicationListFragment$// protected to avoid SyntheticAccessor protected val args: ApplicationListFragmentArgs by navArgs() ProtectedMemberInFinalClass:ApplicationListFragment.kt$ApplicationListFragment$// protected to avoid SyntheticAccessor protected val viewModel: ApplicationListViewModel by viewModels() ProtectedMemberInFinalClass:GoogleSignInFragment.kt$GoogleSignInFragment$// protected to avoid SyntheticAccessor protected val viewModel: LoginViewModel by lazy { ViewModelProvider(requireActivity())[LoginViewModel::class.java] } - ReturnCount:ApkSignatureManager.kt$ApkSignatureManager$private fun verifyAPKSignature( apkInputStream: BufferedInputStream, apkSignatureInputStream: InputStream, publicKeyInputStream: InputStream, packageName: String ): Boolean ReturnCount:AppInstallProcessor.kt$AppInstallProcessor$private suspend fun updateDownloadUrls(appInstall: AppInstall): Boolean - ReturnCount:AppInstallProcessor.kt$AppInstallProcessor$suspend fun enqueueFusedDownload( appInstall: AppInstall, isAnUpdate: Boolean = false, isSystemApp: Boolean = false ) ReturnCount:AppManagerWrapper.kt$AppManagerWrapper$suspend fun addDownload(appInstall: AppInstall): Boolean - ReturnCount:AppManagerWrapper.kt$AppManagerWrapper$suspend fun calculateProgress( application: Application?, progress: DownloadProgress ): Int - ReturnCount:AppPrivacyInfoRepositoryImpl.kt$AppPrivacyInfoRepositoryImpl$override suspend fun getAppPrivacyInfo( application: Application, appHandle: String ): Result<AppPrivacyInfo> ReturnCount:CleanApkAppsRepository.kt$CleanApkAppsRepository$override suspend fun getAppDetails(packageName: String): Application ReturnCount:CleanApkPwaRepository.kt$CleanApkPwaRepository$override suspend fun getAppDetails(packageName: String): Application ReturnCount:DownloadManager.kt$DownloadManager$fun getSizeRequired(downloadId: Long): Long - ReturnCount:DownloadManager.kt$DownloadManager$private fun sanitizeStatus(downloadId: Long, status: Int, reason: Int): Int - ReturnCount:Extensions.kt$fun Context.isNetworkAvailable(): Boolean - ReturnCount:PrivacyInfoViewModel.kt$PrivacyInfoViewModel$fun shouldRequestExodusReport(application: Application?): Boolean - ReturnCount:StorageNotificationManager.kt$StorageNotificationManager$private fun getSpaceMissing(appInstall: AppInstall, downloadId: Long? = null): Long - ReturnCount:SystemAppsUpdatesRepository.kt$SystemAppsUpdatesRepository$private suspend fun getApplication( packageName: String, releaseType: OsReleaseType, sdkLevel: Int, device: String, ): Application? + ReturnCount:NetworkExtensions.kt$fun Context.isNetworkAvailable(): Boolean ReturnCount:SystemAppsUpdatesRepository.kt$SystemAppsUpdatesRepository$private suspend fun getReleaseDetailsUrl( systemAppProject: SystemAppProject, releaseType: OsReleaseType, ): String? ReturnCount:UpdatesManagerImpl.kt$UpdatesManagerImpl$private suspend fun calculateSignatureVersion(latestCleanapkApp: Application): String SpreadOperator:EglExtensionProvider.kt$EglExtensionProvider$(*`as`) @@ -61,7 +54,6 @@ TooGenericExceptionCaught:AppPrivacyInfoRepositoryImpl.kt$AppPrivacyInfoRepositoryImpl$exception: Exception TooGenericExceptionCaught:ApplicationViewModel.kt$ApplicationViewModel$e: Exception TooGenericExceptionCaught:BlockedAppRepository.kt$BlockedAppRepository$exception: Exception - TooGenericExceptionCaught:CommonUtilsModule.kt$CommonUtilsModule$e: Exception TooGenericExceptionCaught:DownloadManager.kt$DownloadManager$e: Exception TooGenericExceptionCaught:DownloadManager.kt$DownloadManager$e: RuntimeException TooGenericExceptionCaught:DownloadProgressLD.kt$DownloadProgressLD$e: Exception @@ -71,6 +63,7 @@ TooGenericExceptionCaught:InstallWorkManager.kt$InstallWorkManager$e: Exception TooGenericExceptionCaught:LocaleChangedBroadcastReceiver.kt$LocaleChangedBroadcastReceiver$ex: Exception TooGenericExceptionCaught:NativeDeviceInfoProviderModule.kt$NativeDeviceInfoProviderModule$e: Exception + TooGenericExceptionCaught:NavControllerExtensions.kt$e: Exception TooGenericExceptionCaught:NetworkHandler.kt$e: Exception TooGenericExceptionCaught:PlayStoreRepository.kt$PlayStoreRepository$exception: Exception TooGenericExceptionCaught:PwaManager.kt$PwaManager$e: Exception @@ -92,7 +85,6 @@ UseCheckOrError:AppsApiImpl.kt$AppsApiImpl$throw IllegalStateException("Could not get store") UseCheckOrError:CleanApkAppsRepository.kt$CleanApkAppsRepository$throw IllegalStateException("No home data found") UseCheckOrError:CleanApkPwaRepository.kt$CleanApkPwaRepository$throw IllegalStateException("No home data found") - UseCheckOrError:HomeApiImpl.kt$HomeApiImpl$throw IllegalStateException("Could not find store for $source") UseCheckOrError:PlayStoreRepository.kt$PlayStoreRepository$throw IllegalStateException("App version code cannot be 0") UseCheckOrError:PlayStoreRepository.kt$PlayStoreRepository$throw IllegalStateException("Could not get download details for $idOrPackageName") Wrapping:AppInstallProcessor.kt$AppInstallProcessor$( diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cb9d3d92a..a8fff317b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -124,12 +124,12 @@ @@ -139,7 +139,7 @@ - @@ -147,7 +147,7 @@ - @@ -156,7 +156,7 @@ - @@ -166,7 +166,7 @@ - @@ -195,7 +195,7 @@ @@ -205,7 +205,7 @@ tools:node="merge" /> diff --git a/app/src/main/java/foundation/e/apps/AppLoungeApplication.kt b/app/src/main/java/foundation/e/apps/AppLoungeApplication.kt index b98bfc5d4..98b7056d4 100644 --- a/app/src/main/java/foundation/e/apps/AppLoungeApplication.kt +++ b/app/src/main/java/foundation/e/apps/AppLoungeApplication.kt @@ -28,17 +28,17 @@ import androidx.work.ExistingPeriodicWorkPolicy 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.enums.Status 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.InstallWorkManager import foundation.e.apps.data.preference.AppLoungeDataStore import foundation.e.apps.data.preference.AppLoungePreference -import foundation.e.apps.di.qualifiers.IoCoroutineScope -import foundation.e.apps.install.pkg.AppLoungePackageManager -import foundation.e.apps.install.pkg.PkgManagerBR -import foundation.e.apps.install.updates.UpdatesWorkManager -import foundation.e.apps.install.workmanager.InstallWorkManager +import foundation.e.apps.data.system.CustomUncaughtExceptionHandler import foundation.e.apps.ui.setup.tos.TOS_VERSION -import foundation.e.apps.utils.CustomUncaughtExceptionHandler import foundation.e.lib.telemetry.Telemetry import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.DelicateCoroutinesApi diff --git a/app/src/main/java/foundation/e/apps/data/application/ApplicationDataManager.kt b/app/src/main/java/foundation/e/apps/data/application/ApplicationDataManager.kt index 29670f642..8dbdf763d 100644 --- a/app/src/main/java/foundation/e/apps/data/application/ApplicationDataManager.kt +++ b/app/src/main/java/foundation/e/apps/data/application/ApplicationDataManager.kt @@ -25,8 +25,8 @@ import foundation.e.apps.data.application.utils.AppVisibilityResolver import foundation.e.apps.data.enums.FilterLevel import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.Status -import foundation.e.apps.install.pkg.AppLoungePackageManager -import foundation.e.apps.install.pkg.PwaManager +import foundation.e.apps.data.install.pkg.AppLoungePackageManager +import foundation.e.apps.data.install.pkg.PwaManager import javax.inject.Inject import javax.inject.Singleton diff --git a/app/src/main/java/foundation/e/apps/data/cleanapk/CleanApkSearchHelper.kt b/app/src/main/java/foundation/e/apps/data/cleanapk/CleanApkSearchHelper.kt index 97de5c53e..21c900134 100644 --- a/app/src/main/java/foundation/e/apps/data/cleanapk/CleanApkSearchHelper.kt +++ b/app/src/main/java/foundation/e/apps/data/cleanapk/CleanApkSearchHelper.kt @@ -23,7 +23,7 @@ import foundation.e.apps.data.cleanapk.data.search.Search import foundation.e.apps.data.cleanapk.repositories.NUMBER_OF_ITEMS import foundation.e.apps.data.cleanapk.repositories.NUMBER_OF_PAGES import foundation.e.apps.data.enums.Source -import foundation.e.apps.utils.SystemInfoProvider +import foundation.e.apps.data.system.SystemInfoProvider import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import javax.inject.Inject diff --git a/app/src/main/java/foundation/e/apps/data/cleanapk/repositories/CleanApkAppsRepository.kt b/app/src/main/java/foundation/e/apps/data/cleanapk/repositories/CleanApkAppsRepository.kt index d9e03e715..8aea72bf0 100644 --- a/app/src/main/java/foundation/e/apps/data/cleanapk/repositories/CleanApkAppsRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/cleanapk/repositories/CleanApkAppsRepository.kt @@ -29,7 +29,7 @@ import foundation.e.apps.data.cleanapk.data.categories.Categories import foundation.e.apps.data.cleanapk.data.download.Download import foundation.e.apps.data.cleanapk.data.search.Search import foundation.e.apps.data.enums.Source -import foundation.e.apps.utils.SystemInfoProvider +import foundation.e.apps.data.system.SystemInfoProvider import retrofit2.Response import javax.inject.Inject diff --git a/app/src/main/java/foundation/e/apps/di/DataModule.kt b/app/src/main/java/foundation/e/apps/data/di/bindings/DataModule.kt similarity index 97% rename from app/src/main/java/foundation/e/apps/di/DataModule.kt rename to app/src/main/java/foundation/e/apps/data/di/bindings/DataModule.kt index 5d0d90576..65ec3c222 100644 --- a/app/src/main/java/foundation/e/apps/di/DataModule.kt +++ b/app/src/main/java/foundation/e/apps/data/di/bindings/DataModule.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.di +package foundation.e.apps.data.di.bindings import dagger.Binds import dagger.Module diff --git a/app/src/main/java/foundation/e/apps/di/LoginModule.kt b/app/src/main/java/foundation/e/apps/data/di/bindings/LoginModule.kt similarity index 96% rename from app/src/main/java/foundation/e/apps/di/LoginModule.kt rename to app/src/main/java/foundation/e/apps/data/di/bindings/LoginModule.kt index 20d7c4b0b..e2de022ad 100644 --- a/app/src/main/java/foundation/e/apps/di/LoginModule.kt +++ b/app/src/main/java/foundation/e/apps/data/di/bindings/LoginModule.kt @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.di +package foundation.e.apps.data.di.bindings import dagger.Module import dagger.Provides diff --git a/app/src/main/java/foundation/e/apps/di/RepositoryModule.kt b/app/src/main/java/foundation/e/apps/data/di/bindings/RepositoryModule.kt similarity index 97% rename from app/src/main/java/foundation/e/apps/di/RepositoryModule.kt rename to app/src/main/java/foundation/e/apps/data/di/bindings/RepositoryModule.kt index 0038958d1..9b4ded794 100644 --- a/app/src/main/java/foundation/e/apps/di/RepositoryModule.kt +++ b/app/src/main/java/foundation/e/apps/data/di/bindings/RepositoryModule.kt @@ -16,7 +16,7 @@ * */ -package foundation.e.apps.di +package foundation.e.apps.data.di.bindings import dagger.Binds import dagger.Module diff --git a/app/src/main/java/foundation/e/apps/di/SearchPagingModule.kt b/app/src/main/java/foundation/e/apps/data/di/bindings/SearchPagingModule.kt similarity index 97% rename from app/src/main/java/foundation/e/apps/di/SearchPagingModule.kt rename to app/src/main/java/foundation/e/apps/data/di/bindings/SearchPagingModule.kt index d0aa29ffb..46ba941d8 100644 --- a/app/src/main/java/foundation/e/apps/di/SearchPagingModule.kt +++ b/app/src/main/java/foundation/e/apps/data/di/bindings/SearchPagingModule.kt @@ -16,7 +16,7 @@ * */ -package foundation.e.apps.di +package foundation.e.apps.data.di.bindings import dagger.Binds import dagger.Module diff --git a/app/src/main/java/foundation/e/apps/di/SearchSuggestionModule.kt b/app/src/main/java/foundation/e/apps/data/di/bindings/SearchSuggestionModule.kt similarity index 96% rename from app/src/main/java/foundation/e/apps/di/SearchSuggestionModule.kt rename to app/src/main/java/foundation/e/apps/data/di/bindings/SearchSuggestionModule.kt index 8f538b8c8..eb4164dda 100644 --- a/app/src/main/java/foundation/e/apps/di/SearchSuggestionModule.kt +++ b/app/src/main/java/foundation/e/apps/data/di/bindings/SearchSuggestionModule.kt @@ -16,7 +16,7 @@ * */ -package foundation.e.apps.di +package foundation.e.apps.data.di.bindings import dagger.Binds import dagger.Module diff --git a/app/src/main/java/foundation/e/apps/di/DaoModule.kt b/app/src/main/java/foundation/e/apps/data/di/db/DaoModule.kt similarity index 96% rename from app/src/main/java/foundation/e/apps/di/DaoModule.kt rename to app/src/main/java/foundation/e/apps/data/di/db/DaoModule.kt index c58bbde22..e86eb719f 100644 --- a/app/src/main/java/foundation/e/apps/di/DaoModule.kt +++ b/app/src/main/java/foundation/e/apps/data/di/db/DaoModule.kt @@ -1,4 +1,4 @@ -package foundation.e.apps.di +package foundation.e.apps.data.di.db import android.content.Context import dagger.Module diff --git a/app/src/main/java/foundation/e/apps/di/DatabaseModule.kt b/app/src/main/java/foundation/e/apps/data/di/db/DatabaseModule.kt similarity index 95% rename from app/src/main/java/foundation/e/apps/di/DatabaseModule.kt rename to app/src/main/java/foundation/e/apps/data/di/db/DatabaseModule.kt index 00be9761f..615edbd93 100644 --- a/app/src/main/java/foundation/e/apps/di/DatabaseModule.kt +++ b/app/src/main/java/foundation/e/apps/data/di/db/DatabaseModule.kt @@ -1,4 +1,4 @@ -package foundation.e.apps.di +package foundation.e.apps.data.di.db import android.content.Context import dagger.Module diff --git a/app/src/main/java/foundation/e/apps/di/network/InterceptorModule.kt b/app/src/main/java/foundation/e/apps/data/di/network/InterceptorModule.kt similarity index 98% rename from app/src/main/java/foundation/e/apps/di/network/InterceptorModule.kt rename to app/src/main/java/foundation/e/apps/data/di/network/InterceptorModule.kt index e5ba08cf7..35b98ef47 100644 --- a/app/src/main/java/foundation/e/apps/di/network/InterceptorModule.kt +++ b/app/src/main/java/foundation/e/apps/data/di/network/InterceptorModule.kt @@ -16,7 +16,7 @@ * */ -package foundation.e.apps.di.network +package foundation.e.apps.data.di.network import android.annotation.SuppressLint import android.os.Build diff --git a/app/src/main/java/foundation/e/apps/di/network/NetworkModule.kt b/app/src/main/java/foundation/e/apps/data/di/network/NetworkModule.kt similarity index 98% rename from app/src/main/java/foundation/e/apps/di/network/NetworkModule.kt rename to app/src/main/java/foundation/e/apps/data/di/network/NetworkModule.kt index cdeb0e363..077da8db4 100644 --- a/app/src/main/java/foundation/e/apps/di/network/NetworkModule.kt +++ b/app/src/main/java/foundation/e/apps/data/di/network/NetworkModule.kt @@ -16,7 +16,7 @@ * */ -package foundation.e.apps.di.network +package foundation.e.apps.data.di.network import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.dataformat.yaml.YAMLFactory diff --git a/app/src/main/java/foundation/e/apps/di/network/RetrofitApiModule.kt b/app/src/main/java/foundation/e/apps/data/di/network/RetrofitApiModule.kt similarity index 97% rename from app/src/main/java/foundation/e/apps/di/network/RetrofitApiModule.kt rename to app/src/main/java/foundation/e/apps/data/di/network/RetrofitApiModule.kt index e021ae982..b25d776b6 100644 --- a/app/src/main/java/foundation/e/apps/di/network/RetrofitApiModule.kt +++ b/app/src/main/java/foundation/e/apps/data/di/network/RetrofitApiModule.kt @@ -16,7 +16,7 @@ * */ -package foundation.e.apps.di.network +package foundation.e.apps.data.di.network import com.google.gson.Gson import com.squareup.moshi.Moshi @@ -25,6 +25,7 @@ import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent import foundation.e.apps.data.cleanapk.CleanApkRetrofit +import foundation.e.apps.data.di.network.NetworkModule.getYamlFactory import foundation.e.apps.data.ecloud.EcloudApiInterface import foundation.e.apps.data.fdroid.FdroidApiInterface import foundation.e.apps.data.gitlab.ReleaseInfoApi @@ -32,7 +33,6 @@ import foundation.e.apps.data.gitlab.SystemAppDefinitionApi import foundation.e.apps.data.gitlab.UpdatableSystemAppsApi import foundation.e.apps.data.parentalcontrol.fdroid.FDroidMonitorApi import foundation.e.apps.data.parentalcontrol.googleplay.AgeGroupApi -import foundation.e.apps.di.network.NetworkModule.getYamlFactory import okhttp3.OkHttpClient import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory diff --git a/app/src/main/java/foundation/e/apps/di/qualifiers/IoCoroutineScope.kt b/app/src/main/java/foundation/e/apps/data/di/qualifiers/IoCoroutineScope.kt similarity index 94% rename from app/src/main/java/foundation/e/apps/di/qualifiers/IoCoroutineScope.kt rename to app/src/main/java/foundation/e/apps/data/di/qualifiers/IoCoroutineScope.kt index 0e6858f36..2964d6a89 100644 --- a/app/src/main/java/foundation/e/apps/di/qualifiers/IoCoroutineScope.kt +++ b/app/src/main/java/foundation/e/apps/data/di/qualifiers/IoCoroutineScope.kt @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.di.qualifiers +package foundation.e.apps.data.di.qualifiers import javax.inject.Qualifier diff --git a/app/src/main/java/foundation/e/apps/di/AccountManagerModule.kt b/app/src/main/java/foundation/e/apps/data/di/system/AccountManagerModule.kt similarity index 96% rename from app/src/main/java/foundation/e/apps/di/AccountManagerModule.kt rename to app/src/main/java/foundation/e/apps/data/di/system/AccountManagerModule.kt index c7f502972..f43107ec7 100644 --- a/app/src/main/java/foundation/e/apps/di/AccountManagerModule.kt +++ b/app/src/main/java/foundation/e/apps/data/di/system/AccountManagerModule.kt @@ -16,7 +16,7 @@ * */ -package foundation.e.apps.di +package foundation.e.apps.data.di.system import android.accounts.AccountManager import android.content.Context diff --git a/app/src/main/java/foundation/e/apps/di/CommonUtilsModule.kt b/app/src/main/java/foundation/e/apps/data/di/system/CommonUtilsModule.kt similarity index 75% rename from app/src/main/java/foundation/e/apps/di/CommonUtilsModule.kt rename to app/src/main/java/foundation/e/apps/data/di/system/CommonUtilsModule.kt index 44af528d9..486a3b288 100644 --- a/app/src/main/java/foundation/e/apps/di/CommonUtilsModule.kt +++ b/app/src/main/java/foundation/e/apps/data/di/system/CommonUtilsModule.kt @@ -16,16 +16,12 @@ * */ -package foundation.e.apps.di +package foundation.e.apps.data.di.system -import android.content.ClipboardManager import android.content.Context import android.os.Build -import android.os.Bundle import android.os.Environment import android.os.StatFs -import androidx.annotation.IdRes -import androidx.navigation.NavController import com.aurora.gplayapi.data.serializers.LocaleSerializer import com.aurora.gplayapi.data.serializers.PropertiesSerializer import dagger.Module @@ -34,7 +30,7 @@ import dagger.hilt.InstallIn import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent import foundation.e.apps.BuildConfig -import foundation.e.apps.di.qualifiers.IoCoroutineScope +import foundation.e.apps.data.di.qualifiers.IoCoroutineScope import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob @@ -42,7 +38,6 @@ import kotlinx.serialization.json.Json import kotlinx.serialization.modules.SerializersModule import kotlinx.serialization.modules.contextual import okhttp3.Cache -import timber.log.Timber import javax.inject.Named import javax.inject.Singleton @@ -50,7 +45,6 @@ import javax.inject.Singleton @InstallIn(SingletonComponent::class) object CommonUtilsModule { - val LIST_OF_NULL = listOf("null") private const val CACHE_SIZE_MB = 30L private const val BYTES_IN_MB = 1024L * 1024L @@ -126,37 +120,9 @@ object CommonUtilsModule { return Cache(context.cacheDir, cacheSize) } - /** - * Prevents calling a route if the navigation is already done, i.e. prevents duplicate calls. - * Source: - * https://nezspencer.medium.com/navigation-components-a-fix-for-navigation-action- - * cannot-be-found-in-the-current-destination-95b63e16152e - * Issue: https://gitlab.e.foundation/e/backlog/-/issues/5166 - * Also related: https://gitlab.e.foundation/ecorp/apps/apps/-/merge_requests/28 - */ - fun NavController.safeNavigate( - @IdRes currentDestinationId: Int, - @IdRes id: Int, - args: Bundle? = null - ) { - try { - if (currentDestinationId == currentDestination?.id) { - navigate(id, args) - } - } catch (e: Exception) { - Timber.w(e, "Navigation to destination $id failed") - } - } - @Provides @IoCoroutineScope fun provideIoCoroutineScope(): CoroutineScope { return CoroutineScope(SupervisorJob() + Dispatchers.IO) } - - @Singleton - @Provides - fun provideClipboardService(@ApplicationContext context: Context): ClipboardManager { - return context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager - } } diff --git a/app/src/main/java/foundation/e/apps/di/DownloadManagerModule.kt b/app/src/main/java/foundation/e/apps/data/di/system/DownloadManagerModule.kt similarity index 97% rename from app/src/main/java/foundation/e/apps/di/DownloadManagerModule.kt rename to app/src/main/java/foundation/e/apps/data/di/system/DownloadManagerModule.kt index 91f2d7fb5..f819352ff 100644 --- a/app/src/main/java/foundation/e/apps/di/DownloadManagerModule.kt +++ b/app/src/main/java/foundation/e/apps/data/di/system/DownloadManagerModule.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.di +package foundation.e.apps.data.di.system import android.app.DownloadManager import android.content.Context diff --git a/app/src/main/java/foundation/e/apps/di/NotificationManagerModule.kt b/app/src/main/java/foundation/e/apps/data/di/system/NotificationManagerModule.kt similarity index 98% rename from app/src/main/java/foundation/e/apps/di/NotificationManagerModule.kt rename to app/src/main/java/foundation/e/apps/data/di/system/NotificationManagerModule.kt index 3f7ffe30c..f3cb76b6f 100644 --- a/app/src/main/java/foundation/e/apps/di/NotificationManagerModule.kt +++ b/app/src/main/java/foundation/e/apps/data/di/system/NotificationManagerModule.kt @@ -17,7 +17,7 @@ * */ -package foundation.e.apps.di +package foundation.e.apps.data.di.system import android.app.NotificationChannel import android.app.NotificationManager diff --git a/app/src/main/java/foundation/e/apps/utils/eventBus/AppEvent.kt b/app/src/main/java/foundation/e/apps/data/event/AppEvent.kt similarity index 98% rename from app/src/main/java/foundation/e/apps/utils/eventBus/AppEvent.kt rename to app/src/main/java/foundation/e/apps/data/event/AppEvent.kt index 8d5b38673..57806cd61 100644 --- a/app/src/main/java/foundation/e/apps/utils/eventBus/AppEvent.kt +++ b/app/src/main/java/foundation/e/apps/data/event/AppEvent.kt @@ -18,7 +18,7 @@ * */ -package foundation.e.apps.utils.eventBus +package foundation.e.apps.data.event import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.enums.ResultStatus diff --git a/app/src/main/java/foundation/e/apps/utils/eventBus/EventBus.kt b/app/src/main/java/foundation/e/apps/data/event/EventBus.kt similarity index 96% rename from app/src/main/java/foundation/e/apps/utils/eventBus/EventBus.kt rename to app/src/main/java/foundation/e/apps/data/event/EventBus.kt index ffb5fac95..e925f80f9 100644 --- a/app/src/main/java/foundation/e/apps/utils/eventBus/EventBus.kt +++ b/app/src/main/java/foundation/e/apps/data/event/EventBus.kt @@ -18,7 +18,7 @@ * */ -package foundation.e.apps.utils.eventBus +package foundation.e.apps.data.event import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.asSharedFlow diff --git a/app/src/main/java/foundation/e/apps/utils/ExodusUriGenerator.kt b/app/src/main/java/foundation/e/apps/data/exodus/ExodusUriGenerator.kt similarity index 98% rename from app/src/main/java/foundation/e/apps/utils/ExodusUriGenerator.kt rename to app/src/main/java/foundation/e/apps/data/exodus/ExodusUriGenerator.kt index 3305a2042..ae9a81e9b 100644 --- a/app/src/main/java/foundation/e/apps/utils/ExodusUriGenerator.kt +++ b/app/src/main/java/foundation/e/apps/data/exodus/ExodusUriGenerator.kt @@ -16,7 +16,7 @@ * */ -package foundation.e.apps.utils +package foundation.e.apps.data.exodus import android.net.Uri import java.util.Locale diff --git a/app/src/main/java/foundation/e/apps/data/fdroid/FdroidApiInterface.kt b/app/src/main/java/foundation/e/apps/data/fdroid/FdroidApiInterface.kt index 120064d8e..32c695369 100644 --- a/app/src/main/java/foundation/e/apps/data/fdroid/FdroidApiInterface.kt +++ b/app/src/main/java/foundation/e/apps/data/fdroid/FdroidApiInterface.kt @@ -25,7 +25,7 @@ import retrofit2.http.Path /** * Interface for retrofit calls. - * Created from [foundation.e.apps.di.network.RetrofitApiModule.provideFdroidApi]. + * Created from [foundation.e.apps.data.di.network.RetrofitApiModule.provideFdroidApi]. */ interface FdroidApiInterface { diff --git a/app/src/main/java/foundation/e/apps/data/fdroid/FdroidDao.kt b/app/src/main/java/foundation/e/apps/data/fdroid/FdroidDao.kt index 19576d5ea..d53dda5aa 100644 --- a/app/src/main/java/foundation/e/apps/data/fdroid/FdroidDao.kt +++ b/app/src/main/java/foundation/e/apps/data/fdroid/FdroidDao.kt @@ -8,7 +8,7 @@ import foundation.e.apps.data.fdroid.models.FdroidEntity /** * Dao interface for storing Fdroid info in DB. - * Created from [foundation.e.apps.di.DaoModule.getFdroidDao] + * Created from [foundation.e.apps.data.di.db.DaoModule.getFdroidDao] */ @Dao interface FdroidDao { diff --git a/app/src/main/java/foundation/e/apps/data/gitlab/SystemAppsUpdatesRepository.kt b/app/src/main/java/foundation/e/apps/data/gitlab/SystemAppsUpdatesRepository.kt index 9071df854..20d757c79 100644 --- a/app/src/main/java/foundation/e/apps/data/gitlab/SystemAppsUpdatesRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/gitlab/SystemAppsUpdatesRepository.kt @@ -31,8 +31,8 @@ import foundation.e.apps.data.gitlab.models.SystemAppInfo import foundation.e.apps.data.gitlab.models.SystemAppProject import foundation.e.apps.data.gitlab.models.toApplication import foundation.e.apps.data.handleNetworkResult -import foundation.e.apps.install.pkg.AppLoungePackageManager -import foundation.e.apps.utils.SystemInfoProvider +import foundation.e.apps.data.install.pkg.AppLoungePackageManager +import foundation.e.apps.data.system.SystemInfoProvider import timber.log.Timber import javax.inject.Inject import javax.inject.Singleton diff --git a/app/src/main/java/foundation/e/apps/install/AppInstallComponents.kt b/app/src/main/java/foundation/e/apps/data/install/AppInstallComponents.kt similarity index 96% rename from app/src/main/java/foundation/e/apps/install/AppInstallComponents.kt rename to app/src/main/java/foundation/e/apps/data/install/AppInstallComponents.kt index dfe3f93ac..4133ec459 100644 --- a/app/src/main/java/foundation/e/apps/install/AppInstallComponents.kt +++ b/app/src/main/java/foundation/e/apps/data/install/AppInstallComponents.kt @@ -17,7 +17,7 @@ * */ -package foundation.e.apps.install +package foundation.e.apps.data.install import foundation.e.apps.data.install.AppInstallRepository import foundation.e.apps.data.install.AppManagerWrapper diff --git a/app/src/main/java/foundation/e/apps/data/install/AppManagerImpl.kt b/app/src/main/java/foundation/e/apps/data/install/AppManagerImpl.kt index b7ff07e81..803c36e3b 100644 --- a/app/src/main/java/foundation/e/apps/data/install/AppManagerImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/install/AppManagerImpl.kt @@ -30,13 +30,13 @@ import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.R import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.Type +import foundation.e.apps.data.install.download.data.DownloadProgressLD import foundation.e.apps.data.install.models.AppInstall +import foundation.e.apps.data.install.pkg.AppLoungePackageManager +import foundation.e.apps.data.install.pkg.PwaManager import foundation.e.apps.data.parentalcontrol.ContentRatingDao import foundation.e.apps.data.parentalcontrol.ContentRatingEntity import foundation.e.apps.data.preference.AppLoungePreference -import foundation.e.apps.install.download.data.DownloadProgressLD -import foundation.e.apps.install.pkg.AppLoungePackageManager -import foundation.e.apps.install.pkg.PwaManager import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock diff --git a/app/src/main/java/foundation/e/apps/data/install/AppManagerWrapper.kt b/app/src/main/java/foundation/e/apps/data/install/AppManagerWrapper.kt index 4fce1f968..54b801429 100644 --- a/app/src/main/java/foundation/e/apps/data/install/AppManagerWrapper.kt +++ b/app/src/main/java/foundation/e/apps/data/install/AppManagerWrapper.kt @@ -25,9 +25,9 @@ import foundation.e.apps.data.Constants.MIN_VALID_RATING import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fdroid.FDroidRepository +import foundation.e.apps.data.install.download.data.DownloadProgress import foundation.e.apps.data.install.models.AppInstall -import foundation.e.apps.install.download.data.DownloadProgress -import foundation.e.apps.install.workmanager.InstallWorkManager +import foundation.e.apps.data.install.workmanager.InstallWorkManager import javax.inject.Inject import javax.inject.Singleton diff --git a/app/src/main/java/foundation/e/apps/install/download/DownloadManagerBR.kt b/app/src/main/java/foundation/e/apps/data/install/download/DownloadManagerBR.kt similarity index 97% rename from app/src/main/java/foundation/e/apps/install/download/DownloadManagerBR.kt rename to app/src/main/java/foundation/e/apps/data/install/download/DownloadManagerBR.kt index 819302f30..40441bd9c 100644 --- a/app/src/main/java/foundation/e/apps/install/download/DownloadManagerBR.kt +++ b/app/src/main/java/foundation/e/apps/data/install/download/DownloadManagerBR.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.install.download +package foundation.e.apps.data.install.download import android.app.DownloadManager import android.content.BroadcastReceiver diff --git a/app/src/main/java/foundation/e/apps/install/download/DownloadManagerUtils.kt b/app/src/main/java/foundation/e/apps/data/install/download/DownloadManagerUtils.kt similarity index 96% rename from app/src/main/java/foundation/e/apps/install/download/DownloadManagerUtils.kt rename to app/src/main/java/foundation/e/apps/data/install/download/DownloadManagerUtils.kt index e02c357b6..be7358f41 100644 --- a/app/src/main/java/foundation/e/apps/install/download/DownloadManagerUtils.kt +++ b/app/src/main/java/foundation/e/apps/data/install/download/DownloadManagerUtils.kt @@ -16,20 +16,20 @@ * along with this program. If not, see . */ -package foundation.e.apps.install.download +package foundation.e.apps.data.install.download import android.content.Context import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.R import foundation.e.apps.data.DownloadManager +import foundation.e.apps.data.di.qualifiers.IoCoroutineScope import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.Status +import foundation.e.apps.data.event.AppEvent +import foundation.e.apps.data.event.EventBus import foundation.e.apps.data.install.AppManagerWrapper import foundation.e.apps.data.install.models.AppInstall -import foundation.e.apps.di.qualifiers.IoCoroutineScope -import foundation.e.apps.install.notification.StorageNotificationManager -import foundation.e.apps.utils.eventBus.AppEvent -import foundation.e.apps.utils.eventBus.EventBus +import foundation.e.apps.data.install.notification.StorageNotificationManager import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.delay diff --git a/app/src/main/java/foundation/e/apps/install/download/data/DownloadProgress.kt b/app/src/main/java/foundation/e/apps/data/install/download/data/DownloadProgress.kt similarity index 82% rename from app/src/main/java/foundation/e/apps/install/download/data/DownloadProgress.kt rename to app/src/main/java/foundation/e/apps/data/install/download/data/DownloadProgress.kt index 26702236f..256e02806 100644 --- a/app/src/main/java/foundation/e/apps/install/download/data/DownloadProgress.kt +++ b/app/src/main/java/foundation/e/apps/data/install/download/data/DownloadProgress.kt @@ -1,4 +1,4 @@ -package foundation.e.apps.install.download.data +package foundation.e.apps.data.install.download.data data class DownloadProgress( var totalSizeBytes: MutableMap = mutableMapOf(), diff --git a/app/src/main/java/foundation/e/apps/install/download/data/DownloadProgressLD.kt b/app/src/main/java/foundation/e/apps/data/install/download/data/DownloadProgressLD.kt similarity index 99% rename from app/src/main/java/foundation/e/apps/install/download/data/DownloadProgressLD.kt rename to app/src/main/java/foundation/e/apps/data/install/download/data/DownloadProgressLD.kt index f5972e70e..52023193f 100644 --- a/app/src/main/java/foundation/e/apps/install/download/data/DownloadProgressLD.kt +++ b/app/src/main/java/foundation/e/apps/data/install/download/data/DownloadProgressLD.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.install.download.data +package foundation.e.apps.data.install.download.data import android.app.DownloadManager import android.app.DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR diff --git a/app/src/main/java/foundation/e/apps/install/notification/StorageNotificationManager.kt b/app/src/main/java/foundation/e/apps/data/install/notification/StorageNotificationManager.kt similarity index 95% rename from app/src/main/java/foundation/e/apps/install/notification/StorageNotificationManager.kt rename to app/src/main/java/foundation/e/apps/data/install/notification/StorageNotificationManager.kt index 292310b8e..77c89ee35 100644 --- a/app/src/main/java/foundation/e/apps/install/notification/StorageNotificationManager.kt +++ b/app/src/main/java/foundation/e/apps/data/install/notification/StorageNotificationManager.kt @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.install.notification +package foundation.e.apps.data.install.notification import android.Manifest import android.app.Notification @@ -29,9 +29,9 @@ import androidx.core.app.NotificationManagerCompat import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.R import foundation.e.apps.data.DownloadManager +import foundation.e.apps.data.di.system.NotificationManagerModule import foundation.e.apps.data.install.models.AppInstall -import foundation.e.apps.di.NotificationManagerModule -import foundation.e.apps.utils.StorageComputer +import foundation.e.apps.data.system.StorageComputer import javax.inject.Inject class StorageNotificationManager @Inject constructor( diff --git a/app/src/main/java/foundation/e/apps/install/pkg/AppLoungePackageManager.kt b/app/src/main/java/foundation/e/apps/data/install/pkg/AppLoungePackageManager.kt similarity index 99% rename from app/src/main/java/foundation/e/apps/install/pkg/AppLoungePackageManager.kt rename to app/src/main/java/foundation/e/apps/data/install/pkg/AppLoungePackageManager.kt index 984b4a63f..ba909b51d 100644 --- a/app/src/main/java/foundation/e/apps/install/pkg/AppLoungePackageManager.kt +++ b/app/src/main/java/foundation/e/apps/data/install/pkg/AppLoungePackageManager.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.install.pkg +package foundation.e.apps.data.install.pkg import android.app.PendingIntent import android.content.Context diff --git a/app/src/main/java/foundation/e/apps/install/pkg/InstallerService.kt b/app/src/main/java/foundation/e/apps/data/install/pkg/InstallerService.kt similarity index 95% rename from app/src/main/java/foundation/e/apps/install/pkg/InstallerService.kt rename to app/src/main/java/foundation/e/apps/data/install/pkg/InstallerService.kt index 9cc401c21..8e89f9ae2 100644 --- a/app/src/main/java/foundation/e/apps/install/pkg/InstallerService.kt +++ b/app/src/main/java/foundation/e/apps/data/install/pkg/InstallerService.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.install.pkg +package foundation.e.apps.data.install.pkg import android.app.Service import android.content.Intent @@ -24,11 +24,11 @@ import android.content.pm.PackageInstaller import android.os.IBinder import dagger.hilt.android.AndroidEntryPoint import foundation.e.apps.data.application.UpdatesDao +import foundation.e.apps.data.di.qualifiers.IoCoroutineScope +import foundation.e.apps.data.event.AppEvent +import foundation.e.apps.data.event.EventBus import foundation.e.apps.data.faultyApps.FaultyAppRepository import foundation.e.apps.data.install.AppManagerWrapper -import foundation.e.apps.di.qualifiers.IoCoroutineScope -import foundation.e.apps.utils.eventBus.AppEvent -import foundation.e.apps.utils.eventBus.EventBus import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.MainScope import kotlinx.coroutines.launch diff --git a/app/src/main/java/foundation/e/apps/install/pkg/PkgManagerBR.kt b/app/src/main/java/foundation/e/apps/data/install/pkg/PkgManagerBR.kt similarity index 97% rename from app/src/main/java/foundation/e/apps/install/pkg/PkgManagerBR.kt rename to app/src/main/java/foundation/e/apps/data/install/pkg/PkgManagerBR.kt index 4ae52e515..8c85381fd 100644 --- a/app/src/main/java/foundation/e/apps/install/pkg/PkgManagerBR.kt +++ b/app/src/main/java/foundation/e/apps/data/install/pkg/PkgManagerBR.kt @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package foundation.e.apps.install.pkg +package foundation.e.apps.data.install.pkg import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.pm.PackageInstaller import dagger.hilt.android.AndroidEntryPoint +import foundation.e.apps.data.di.qualifiers.IoCoroutineScope import foundation.e.apps.data.enums.Status import foundation.e.apps.data.faultyApps.FaultyAppRepository import foundation.e.apps.data.install.AppManagerWrapper -import foundation.e.apps.di.qualifiers.IoCoroutineScope import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch import timber.log.Timber diff --git a/app/src/main/java/foundation/e/apps/install/pkg/PwaManager.kt b/app/src/main/java/foundation/e/apps/data/install/pkg/PwaManager.kt similarity index 99% rename from app/src/main/java/foundation/e/apps/install/pkg/PwaManager.kt rename to app/src/main/java/foundation/e/apps/data/install/pkg/PwaManager.kt index c505af2d9..af585c792 100644 --- a/app/src/main/java/foundation/e/apps/install/pkg/PwaManager.kt +++ b/app/src/main/java/foundation/e/apps/data/install/pkg/PwaManager.kt @@ -1,4 +1,4 @@ -package foundation.e.apps.install.pkg +package foundation.e.apps.data.install.pkg import android.content.ContentUris import android.content.ContentValues diff --git a/app/src/main/java/foundation/e/apps/install/receiver/PwaPlayerStatusReceiver.kt b/app/src/main/java/foundation/e/apps/data/install/receiver/PwaPlayerStatusReceiver.kt similarity index 96% rename from app/src/main/java/foundation/e/apps/install/receiver/PwaPlayerStatusReceiver.kt rename to app/src/main/java/foundation/e/apps/data/install/receiver/PwaPlayerStatusReceiver.kt index dce98e934..a453de0ad 100644 --- a/app/src/main/java/foundation/e/apps/install/receiver/PwaPlayerStatusReceiver.kt +++ b/app/src/main/java/foundation/e/apps/data/install/receiver/PwaPlayerStatusReceiver.kt @@ -15,15 +15,15 @@ * along with this program. If not, see . */ -package foundation.e.apps.install.receiver +package foundation.e.apps.data.install.receiver import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import dagger.hilt.android.AndroidEntryPoint +import foundation.e.apps.data.di.qualifiers.IoCoroutineScope import foundation.e.apps.data.enums.Status import foundation.e.apps.data.install.AppInstallRepository -import foundation.e.apps.di.qualifiers.IoCoroutineScope import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch import timber.log.Timber diff --git a/app/src/main/java/foundation/e/apps/install/updates/UpdatesBroadcastReceiver.kt b/app/src/main/java/foundation/e/apps/data/install/updates/UpdatesBroadcastReceiver.kt similarity index 97% rename from app/src/main/java/foundation/e/apps/install/updates/UpdatesBroadcastReceiver.kt rename to app/src/main/java/foundation/e/apps/data/install/updates/UpdatesBroadcastReceiver.kt index d0173bd56..5599eced7 100644 --- a/app/src/main/java/foundation/e/apps/install/updates/UpdatesBroadcastReceiver.kt +++ b/app/src/main/java/foundation/e/apps/data/install/updates/UpdatesBroadcastReceiver.kt @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.install.updates +package foundation.e.apps.data.install.updates import android.content.BroadcastReceiver import android.content.Context diff --git a/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt b/app/src/main/java/foundation/e/apps/data/install/updates/UpdatesNotifier.kt similarity index 99% rename from app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt rename to app/src/main/java/foundation/e/apps/data/install/updates/UpdatesNotifier.kt index e63239fc9..e48d8d42a 100644 --- a/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt +++ b/app/src/main/java/foundation/e/apps/data/install/updates/UpdatesNotifier.kt @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.install.updates +package foundation.e.apps.data.install.updates import android.Manifest import android.app.Notification diff --git a/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorkManager.kt b/app/src/main/java/foundation/e/apps/data/install/updates/UpdatesWorkManager.kt similarity index 98% rename from app/src/main/java/foundation/e/apps/install/updates/UpdatesWorkManager.kt rename to app/src/main/java/foundation/e/apps/data/install/updates/UpdatesWorkManager.kt index 617ab0654..348e1a99c 100644 --- a/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorkManager.kt +++ b/app/src/main/java/foundation/e/apps/data/install/updates/UpdatesWorkManager.kt @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.install.updates +package foundation.e.apps.data.install.updates import android.content.Context import androidx.work.Constraints diff --git a/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt b/app/src/main/java/foundation/e/apps/data/install/updates/UpdatesWorker.kt similarity index 98% rename from app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt rename to app/src/main/java/foundation/e/apps/data/install/updates/UpdatesWorker.kt index 021818c4c..31d0e20d2 100644 --- a/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt +++ b/app/src/main/java/foundation/e/apps/data/install/updates/UpdatesWorker.kt @@ -1,4 +1,4 @@ -package foundation.e.apps.install.updates +package foundation.e.apps.data.install.updates import android.Manifest import android.content.Context @@ -20,13 +20,13 @@ import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.blockedApps.BlockedAppRepository import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.User +import foundation.e.apps.data.event.AppEvent +import foundation.e.apps.data.event.EventBus import foundation.e.apps.data.gitlab.SystemAppsUpdatesRepository +import foundation.e.apps.data.install.workmanager.AppInstallProcessor import foundation.e.apps.data.login.repository.AuthenticatorRepository import foundation.e.apps.data.preference.AppLoungeDataStore import foundation.e.apps.data.updates.UpdatesManagerRepository -import foundation.e.apps.install.workmanager.AppInstallProcessor -import foundation.e.apps.utils.eventBus.AppEvent -import foundation.e.apps.utils.eventBus.EventBus import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.withContext diff --git a/app/src/main/java/foundation/e/apps/install/workmanager/AppInstallProcessor.kt b/app/src/main/java/foundation/e/apps/data/install/workmanager/AppInstallProcessor.kt similarity index 96% rename from app/src/main/java/foundation/e/apps/install/workmanager/AppInstallProcessor.kt rename to app/src/main/java/foundation/e/apps/data/install/workmanager/AppInstallProcessor.kt index 198a18c4d..0e968c35b 100644 --- a/app/src/main/java/foundation/e/apps/install/workmanager/AppInstallProcessor.kt +++ b/app/src/main/java/foundation/e/apps/data/install/workmanager/AppInstallProcessor.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.install.workmanager +package foundation.e.apps.data.install.workmanager import android.content.Context import androidx.annotation.VisibleForTesting @@ -32,22 +32,22 @@ import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.Type import foundation.e.apps.data.enums.User +import foundation.e.apps.data.event.AppEvent +import foundation.e.apps.data.event.EventBus +import foundation.e.apps.data.install.AppInstallComponents import foundation.e.apps.data.install.AppManager +import foundation.e.apps.data.install.download.DownloadManagerUtils import foundation.e.apps.data.install.models.AppInstall +import foundation.e.apps.data.install.notification.StorageNotificationManager +import foundation.e.apps.data.install.updates.UpdatesNotifier import foundation.e.apps.data.playstore.utils.GplayHttpRequestException import foundation.e.apps.data.preference.AppLoungeDataStore +import foundation.e.apps.data.system.ParentalControlAuthenticator +import foundation.e.apps.data.system.StorageComputer +import foundation.e.apps.data.system.isNetworkAvailable +import foundation.e.apps.data.utils.getFormattedString import foundation.e.apps.domain.ValidateAppAgeLimitUseCase import foundation.e.apps.domain.model.ContentRatingValidity -import foundation.e.apps.install.AppInstallComponents -import foundation.e.apps.install.download.DownloadManagerUtils -import foundation.e.apps.install.notification.StorageNotificationManager -import foundation.e.apps.install.updates.UpdatesNotifier -import foundation.e.apps.utils.ParentalControlAuthenticator -import foundation.e.apps.utils.StorageComputer -import foundation.e.apps.utils.eventBus.AppEvent -import foundation.e.apps.utils.eventBus.EventBus -import foundation.e.apps.utils.getFormattedString -import foundation.e.apps.utils.isNetworkAvailable import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.flow.transformWhile diff --git a/app/src/main/java/foundation/e/apps/install/workmanager/InstallAppWorker.kt b/app/src/main/java/foundation/e/apps/data/install/workmanager/InstallAppWorker.kt similarity index 98% rename from app/src/main/java/foundation/e/apps/install/workmanager/InstallAppWorker.kt rename to app/src/main/java/foundation/e/apps/data/install/workmanager/InstallAppWorker.kt index 0344e45ef..c4af7cfbb 100644 --- a/app/src/main/java/foundation/e/apps/install/workmanager/InstallAppWorker.kt +++ b/app/src/main/java/foundation/e/apps/data/install/workmanager/InstallAppWorker.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.install.workmanager +package foundation.e.apps.data.install.workmanager import android.app.NotificationChannel import android.app.NotificationManager diff --git a/app/src/main/java/foundation/e/apps/install/workmanager/InstallWorkManager.kt b/app/src/main/java/foundation/e/apps/data/install/workmanager/InstallWorkManager.kt similarity index 96% rename from app/src/main/java/foundation/e/apps/install/workmanager/InstallWorkManager.kt rename to app/src/main/java/foundation/e/apps/data/install/workmanager/InstallWorkManager.kt index 82db14f76..e3a453b6e 100644 --- a/app/src/main/java/foundation/e/apps/install/workmanager/InstallWorkManager.kt +++ b/app/src/main/java/foundation/e/apps/data/install/workmanager/InstallWorkManager.kt @@ -1,4 +1,4 @@ -package foundation.e.apps.install.workmanager +package foundation.e.apps.data.install.workmanager import android.app.Application import androidx.work.Data diff --git a/app/src/main/java/foundation/e/apps/data/login/playstore/PlayStoreSession.kt b/app/src/main/java/foundation/e/apps/data/login/playstore/PlayStoreSession.kt index 8ae043a88..a4813eecc 100644 --- a/app/src/main/java/foundation/e/apps/data/login/playstore/PlayStoreSession.kt +++ b/app/src/main/java/foundation/e/apps/data/login/playstore/PlayStoreSession.kt @@ -21,11 +21,11 @@ package foundation.e.apps.data.login.playstore import com.aurora.gplayapi.data.models.AuthData import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.enums.User +import foundation.e.apps.data.event.AppEvent +import foundation.e.apps.data.event.EventBus import foundation.e.apps.data.handleNetworkResult import foundation.e.apps.data.login.api.LoginManager import foundation.e.apps.data.login.exceptions.GPlayLoginException -import foundation.e.apps.utils.eventBus.AppEvent -import foundation.e.apps.utils.eventBus.EventBus import java.util.Locale class PlayStoreSession( diff --git a/app/src/main/java/foundation/e/apps/microg/AuthDataProvider.kt b/app/src/main/java/foundation/e/apps/data/microg/AuthDataProvider.kt similarity index 99% rename from app/src/main/java/foundation/e/apps/microg/AuthDataProvider.kt rename to app/src/main/java/foundation/e/apps/data/microg/AuthDataProvider.kt index 61714d6ee..b55665eda 100644 --- a/app/src/main/java/foundation/e/apps/microg/AuthDataProvider.kt +++ b/app/src/main/java/foundation/e/apps/data/microg/AuthDataProvider.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.microg +package foundation.e.apps.data.microg import android.content.ContentProvider import android.content.ContentValues diff --git a/app/src/main/java/foundation/e/apps/data/playstore/PlayStoreRepository.kt b/app/src/main/java/foundation/e/apps/data/playstore/PlayStoreRepository.kt index 25540ddc4..7f2a6579f 100644 --- a/app/src/main/java/foundation/e/apps/data/playstore/PlayStoreRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/playstore/PlayStoreRepository.kt @@ -49,7 +49,7 @@ import foundation.e.apps.data.login.core.StoreType import foundation.e.apps.data.login.repository.AuthenticatorRepository import foundation.e.apps.data.playstore.utils.GPlayHttpClient import foundation.e.apps.data.playstore.utils.GplayHttpRequestException -import foundation.e.apps.utils.SystemInfoProvider +import foundation.e.apps.data.system.SystemInfoProvider import kotlinx.coroutines.CancellationException import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.async diff --git a/app/src/main/java/foundation/e/apps/data/playstore/utils/GPlayHttpClient.kt b/app/src/main/java/foundation/e/apps/data/playstore/utils/GPlayHttpClient.kt index 4d525919a..8cc187ea3 100644 --- a/app/src/main/java/foundation/e/apps/data/playstore/utils/GPlayHttpClient.kt +++ b/app/src/main/java/foundation/e/apps/data/playstore/utils/GPlayHttpClient.kt @@ -21,10 +21,10 @@ package foundation.e.apps.data.playstore.utils import androidx.annotation.VisibleForTesting import com.aurora.gplayapi.data.models.PlayResponse import com.aurora.gplayapi.network.IHttpClient +import foundation.e.apps.data.event.AppEvent +import foundation.e.apps.data.event.EventBus import foundation.e.apps.data.login.core.AuthObject -import foundation.e.apps.utils.SystemInfoProvider -import foundation.e.apps.utils.eventBus.AppEvent -import foundation.e.apps.utils.eventBus.EventBus +import foundation.e.apps.data.system.SystemInfoProvider import kotlinx.coroutines.MainScope import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow diff --git a/app/src/main/java/foundation/e/apps/provider/AgeRatingProvider.kt b/app/src/main/java/foundation/e/apps/data/provider/AgeRatingProvider.kt similarity index 98% rename from app/src/main/java/foundation/e/apps/provider/AgeRatingProvider.kt rename to app/src/main/java/foundation/e/apps/data/provider/AgeRatingProvider.kt index 80fd58e22..fdfc89916 100644 --- a/app/src/main/java/foundation/e/apps/provider/AgeRatingProvider.kt +++ b/app/src/main/java/foundation/e/apps/data/provider/AgeRatingProvider.kt @@ -16,7 +16,7 @@ * */ -package foundation.e.apps.provider +package foundation.e.apps.data.provider import android.app.NotificationChannel import android.app.NotificationManager @@ -46,6 +46,7 @@ import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.blockedApps.BlockedAppRepository import foundation.e.apps.data.enums.Source import foundation.e.apps.data.install.models.AppInstall +import foundation.e.apps.data.install.pkg.AppLoungePackageManager import foundation.e.apps.data.login.exceptions.GPlayLoginException import foundation.e.apps.data.login.repository.AuthenticatorRepository import foundation.e.apps.data.parentalcontrol.ContentRatingDao @@ -53,10 +54,9 @@ import foundation.e.apps.data.parentalcontrol.ContentRatingEntity import foundation.e.apps.data.parentalcontrol.fdroid.FDroidAntiFeatureRepository import foundation.e.apps.data.parentalcontrol.googleplay.GPlayContentRatingRepository import foundation.e.apps.data.preference.AppLoungeDataStore +import foundation.e.apps.data.system.isNetworkAvailable import foundation.e.apps.domain.ValidateAppAgeLimitUseCase import foundation.e.apps.domain.model.ContentRatingValidity -import foundation.e.apps.install.pkg.AppLoungePackageManager -import foundation.e.apps.utils.isNetworkAvailable import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.async import kotlinx.coroutines.awaitAll diff --git a/app/src/main/java/foundation/e/apps/receivers/DumpAppInstallStatusReceiver.kt b/app/src/main/java/foundation/e/apps/data/receivers/DumpAppInstallStatusReceiver.kt similarity index 95% rename from app/src/main/java/foundation/e/apps/receivers/DumpAppInstallStatusReceiver.kt rename to app/src/main/java/foundation/e/apps/data/receivers/DumpAppInstallStatusReceiver.kt index fdac17e2e..fec38c309 100644 --- a/app/src/main/java/foundation/e/apps/receivers/DumpAppInstallStatusReceiver.kt +++ b/app/src/main/java/foundation/e/apps/data/receivers/DumpAppInstallStatusReceiver.kt @@ -17,7 +17,7 @@ * */ -package foundation.e.apps.receivers +package foundation.e.apps.data.receivers import android.content.BroadcastReceiver import android.content.Context @@ -31,8 +31,8 @@ import foundation.e.apps.data.DownloadManager import foundation.e.apps.data.enums.Status import foundation.e.apps.data.install.AppInstallRepository import foundation.e.apps.data.install.models.AppInstall -import foundation.e.apps.utils.NetworkStatusManager -import foundation.e.apps.utils.StorageComputer +import foundation.e.apps.data.system.NetworkStatusManager +import foundation.e.apps.data.system.StorageComputer import kotlinx.coroutines.MainScope import kotlinx.coroutines.launch import timber.log.Timber diff --git a/app/src/main/java/foundation/e/apps/receivers/DumpAuthData.kt b/app/src/main/java/foundation/e/apps/data/receivers/DumpAuthData.kt similarity index 98% rename from app/src/main/java/foundation/e/apps/receivers/DumpAuthData.kt rename to app/src/main/java/foundation/e/apps/data/receivers/DumpAuthData.kt index 5142132d6..353029a4e 100644 --- a/app/src/main/java/foundation/e/apps/receivers/DumpAuthData.kt +++ b/app/src/main/java/foundation/e/apps/data/receivers/DumpAuthData.kt @@ -17,7 +17,7 @@ * */ -package foundation.e.apps.receivers +package foundation.e.apps.data.receivers import android.content.BroadcastReceiver import android.content.Context diff --git a/app/src/main/java/foundation/e/apps/utils/CustomUncaughtExceptionHandler.kt b/app/src/main/java/foundation/e/apps/data/system/CustomUncaughtExceptionHandler.kt similarity index 98% rename from app/src/main/java/foundation/e/apps/utils/CustomUncaughtExceptionHandler.kt rename to app/src/main/java/foundation/e/apps/data/system/CustomUncaughtExceptionHandler.kt index c3e9fd6d7..18f206112 100644 --- a/app/src/main/java/foundation/e/apps/utils/CustomUncaughtExceptionHandler.kt +++ b/app/src/main/java/foundation/e/apps/data/system/CustomUncaughtExceptionHandler.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.utils +package foundation.e.apps.data.system import android.Manifest import android.app.Notification diff --git a/app/src/main/java/foundation/e/apps/data/system/NetworkExtensions.kt b/app/src/main/java/foundation/e/apps/data/system/NetworkExtensions.kt new file mode 100644 index 000000000..d5b50e075 --- /dev/null +++ b/app/src/main/java/foundation/e/apps/data/system/NetworkExtensions.kt @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2026 MURENA SAS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +package foundation.e.apps.data.system + +import android.content.Context +import android.net.ConnectivityManager +import android.net.NetworkCapabilities + +fun Context.isNetworkAvailable(): Boolean { + val connectivityManager = getSystemService(ConnectivityManager::class.java) + val capabilities = + connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork) + + if (capabilities == null) { + return false + } + + if ( + capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) && + capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED) + ) { + return true + } + + return false +} diff --git a/app/src/main/java/foundation/e/apps/utils/NetworkStatusManager.kt b/app/src/main/java/foundation/e/apps/data/system/NetworkStatusManager.kt similarity index 98% rename from app/src/main/java/foundation/e/apps/utils/NetworkStatusManager.kt rename to app/src/main/java/foundation/e/apps/data/system/NetworkStatusManager.kt index b49d41e99..abd203097 100644 --- a/app/src/main/java/foundation/e/apps/utils/NetworkStatusManager.kt +++ b/app/src/main/java/foundation/e/apps/data/system/NetworkStatusManager.kt @@ -17,7 +17,7 @@ * */ -package foundation.e.apps.utils +package foundation.e.apps.data.system import android.content.Context import android.net.ConnectivityManager diff --git a/app/src/main/java/foundation/e/apps/utils/ParentalControlAuthenticator.kt b/app/src/main/java/foundation/e/apps/data/system/ParentalControlAuthenticator.kt similarity index 98% rename from app/src/main/java/foundation/e/apps/utils/ParentalControlAuthenticator.kt rename to app/src/main/java/foundation/e/apps/data/system/ParentalControlAuthenticator.kt index bbfd82a52..b8496d0a2 100644 --- a/app/src/main/java/foundation/e/apps/utils/ParentalControlAuthenticator.kt +++ b/app/src/main/java/foundation/e/apps/data/system/ParentalControlAuthenticator.kt @@ -16,7 +16,7 @@ * */ -package foundation.e.apps.utils +package foundation.e.apps.data.system import android.content.Intent import androidx.activity.result.ActivityResultLauncher diff --git a/app/src/main/java/foundation/e/apps/utils/StorageComputer.kt b/app/src/main/java/foundation/e/apps/data/system/StorageComputer.kt similarity index 98% rename from app/src/main/java/foundation/e/apps/utils/StorageComputer.kt rename to app/src/main/java/foundation/e/apps/data/system/StorageComputer.kt index 6af73e0e2..a1f1a50ef 100644 --- a/app/src/main/java/foundation/e/apps/utils/StorageComputer.kt +++ b/app/src/main/java/foundation/e/apps/data/system/StorageComputer.kt @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.utils +package foundation.e.apps.data.system import android.os.Environment import android.os.StatFs diff --git a/app/src/main/java/foundation/e/apps/utils/SystemInfoProvider.kt b/app/src/main/java/foundation/e/apps/data/system/SystemInfoProvider.kt similarity index 98% rename from app/src/main/java/foundation/e/apps/utils/SystemInfoProvider.kt rename to app/src/main/java/foundation/e/apps/data/system/SystemInfoProvider.kt index ae20f7cdb..41dabf9a7 100644 --- a/app/src/main/java/foundation/e/apps/utils/SystemInfoProvider.kt +++ b/app/src/main/java/foundation/e/apps/data/system/SystemInfoProvider.kt @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.utils +package foundation.e.apps.data.system import android.annotation.SuppressLint import android.os.Build diff --git a/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerImpl.kt b/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerImpl.kt index 5d8ad93ea..17fe245b4 100644 --- a/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/updates/UpdatesManagerImpl.kt @@ -33,8 +33,8 @@ import foundation.e.apps.data.faultyApps.FaultyAppRepository import foundation.e.apps.data.fdroid.FDroidRepository import foundation.e.apps.data.gitlab.SystemAppsUpdatesRepository import foundation.e.apps.data.handleNetworkResult +import foundation.e.apps.data.install.pkg.AppLoungePackageManager import foundation.e.apps.data.preference.AppLoungePreference -import foundation.e.apps.install.pkg.AppLoungePackageManager import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import timber.log.Timber diff --git a/app/src/main/java/foundation/e/apps/data/utils/ContentRatingExtensions.kt b/app/src/main/java/foundation/e/apps/data/utils/ContentRatingExtensions.kt new file mode 100644 index 000000000..48c5e5f18 --- /dev/null +++ b/app/src/main/java/foundation/e/apps/data/utils/ContentRatingExtensions.kt @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2026 MURENA SAS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +package foundation.e.apps.data.utils + +import com.aurora.gplayapi.data.models.ContentRating + +fun ContentRating.isValid() = title.isNotBlank() && artwork.url.isNotBlank() diff --git a/app/src/main/java/foundation/e/apps/data/utils/DateExtensions.kt b/app/src/main/java/foundation/e/apps/data/utils/DateExtensions.kt new file mode 100644 index 000000000..5aa6024a6 --- /dev/null +++ b/app/src/main/java/foundation/e/apps/data/utils/DateExtensions.kt @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2026 MURENA SAS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +package foundation.e.apps.data.utils + +import java.text.SimpleDateFormat +import java.util.Date +import java.util.Locale + +fun Date.getFormattedString(format: String, locale: Locale = Locale.getDefault()): String { + val dateFormat = SimpleDateFormat(format, locale) + return dateFormat.format(this) +} diff --git a/app/src/main/java/foundation/e/apps/domain/login/ReportFaultyTokenUseCase.kt b/app/src/main/java/foundation/e/apps/domain/login/ReportFaultyTokenUseCase.kt index 8b6d49f68..03f96ae77 100644 --- a/app/src/main/java/foundation/e/apps/domain/login/ReportFaultyTokenUseCase.kt +++ b/app/src/main/java/foundation/e/apps/domain/login/ReportFaultyTokenUseCase.kt @@ -3,7 +3,7 @@ package foundation.e.apps.domain.login import foundation.e.apps.data.ecloud.EcloudRepository import foundation.e.apps.data.login.core.AuthObject import foundation.e.apps.data.login.exceptions.GPlayValidationException -import foundation.e.apps.utils.SystemInfoProvider +import foundation.e.apps.data.system.SystemInfoProvider import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import timber.log.Timber diff --git a/app/src/main/java/foundation/e/apps/ui/AppProgressViewModel.kt b/app/src/main/java/foundation/e/apps/ui/AppProgressViewModel.kt index 6deb29e8f..3990fdf13 100644 --- a/app/src/main/java/foundation/e/apps/ui/AppProgressViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/AppProgressViewModel.kt @@ -23,9 +23,9 @@ import dagger.hilt.android.lifecycle.HiltViewModel import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.application.mapper.toApplication import foundation.e.apps.data.install.AppManagerWrapper +import foundation.e.apps.data.install.download.data.DownloadProgress +import foundation.e.apps.data.install.download.data.DownloadProgressLD import foundation.e.apps.domain.application.ApplicationDomain -import foundation.e.apps.install.download.data.DownloadProgress -import foundation.e.apps.install.download.data.DownloadProgressLD import javax.inject.Inject @HiltViewModel diff --git a/app/src/main/java/foundation/e/apps/ui/MainActivity.kt b/app/src/main/java/foundation/e/apps/ui/MainActivity.kt index f0fd66815..6102b1d82 100644 --- a/app/src/main/java/foundation/e/apps/ui/MainActivity.kt +++ b/app/src/main/java/foundation/e/apps/ui/MainActivity.kt @@ -48,18 +48,18 @@ import foundation.e.apps.R import foundation.e.apps.contract.ParentalControlContract.COLUMN_LOGIN_TYPE import foundation.e.apps.data.Constants import foundation.e.apps.data.enums.User +import foundation.e.apps.data.event.AppEvent +import foundation.e.apps.data.event.EventBus import foundation.e.apps.data.install.models.AppInstall +import foundation.e.apps.data.install.updates.UpdatesNotifier import foundation.e.apps.data.login.core.StoreType +import foundation.e.apps.data.system.ParentalControlAuthenticator import foundation.e.apps.databinding.ActivityMainBinding -import foundation.e.apps.install.updates.UpdatesNotifier import foundation.e.apps.ui.application.subFrags.ApplicationDialogFragment import foundation.e.apps.ui.error.AppUnavailableDialogDirections import foundation.e.apps.ui.purchase.AppPurchaseFragmentDirections import foundation.e.apps.ui.settings.SettingsFragment import foundation.e.apps.ui.setup.signin.SignInViewModel -import foundation.e.apps.utils.ParentalControlAuthenticator -import foundation.e.apps.utils.eventBus.AppEvent -import foundation.e.apps.utils.eventBus.EventBus import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.distinctUntilChanged diff --git a/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt b/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt index f48c1990a..8d41a6a95 100644 --- a/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt @@ -38,18 +38,18 @@ import foundation.e.apps.data.enums.isUnFiltered import foundation.e.apps.data.gitlab.SystemAppsUpdatesRepository import foundation.e.apps.data.install.AppManagerWrapper import foundation.e.apps.data.install.models.AppInstall +import foundation.e.apps.data.install.pkg.AppLoungePackageManager +import foundation.e.apps.data.install.pkg.PwaManager +import foundation.e.apps.data.install.workmanager.AppInstallProcessor import foundation.e.apps.data.login.core.AuthObject import foundation.e.apps.data.login.state.LoginState import foundation.e.apps.data.parentalcontrol.fdroid.FDroidAntiFeatureRepository import foundation.e.apps.data.parentalcontrol.googleplay.GPlayContentRatingRepository import foundation.e.apps.data.preference.AppLoungeDataStore import foundation.e.apps.data.preference.getSync +import foundation.e.apps.data.system.NetworkStatusManager import foundation.e.apps.domain.application.ApplicationDomain import foundation.e.apps.domain.login.ReportFaultyTokenUseCase -import foundation.e.apps.install.pkg.AppLoungePackageManager -import foundation.e.apps.install.pkg.PwaManager -import foundation.e.apps.install.workmanager.AppInstallProcessor -import foundation.e.apps.utils.NetworkStatusManager import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import javax.inject.Inject diff --git a/app/src/main/java/foundation/e/apps/ui/application/ApplicationFragment.kt b/app/src/main/java/foundation/e/apps/ui/application/ApplicationFragment.kt index 2b2877f51..0f1606afa 100644 --- a/app/src/main/java/foundation/e/apps/ui/application/ApplicationFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/application/ApplicationFragment.kt @@ -58,14 +58,16 @@ import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.User import foundation.e.apps.data.enums.isInitialized +import foundation.e.apps.data.exodus.ExodusUriGenerator +import foundation.e.apps.data.install.download.data.DownloadProgress +import foundation.e.apps.data.install.pkg.AppLoungePackageManager +import foundation.e.apps.data.install.pkg.PwaManager import foundation.e.apps.data.login.core.AuthObject import foundation.e.apps.data.login.exceptions.GPlayLoginException import foundation.e.apps.data.login.state.LoginState +import foundation.e.apps.data.utils.isValid import foundation.e.apps.databinding.FragmentApplicationBinding import foundation.e.apps.domain.ValidateAppAgeLimitUseCase.Companion.KEY_ANTI_FEATURES_NSFW -import foundation.e.apps.install.download.data.DownloadProgress -import foundation.e.apps.install.pkg.AppLoungePackageManager -import foundation.e.apps.install.pkg.PwaManager import foundation.e.apps.ui.AppInfoFetchViewModel import foundation.e.apps.ui.MainActivity import foundation.e.apps.ui.MainActivityViewModel @@ -75,8 +77,6 @@ import foundation.e.apps.ui.application.ShareButtonVisibilityState.Visible import foundation.e.apps.ui.application.model.ApplicationScreenshotsRVAdapter import foundation.e.apps.ui.application.subFrags.ApplicationDialogFragment import foundation.e.apps.ui.parentFragment.TimeoutFragment -import foundation.e.apps.utils.ExodusUriGenerator -import foundation.e.apps.utils.isValid import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch diff --git a/app/src/main/java/foundation/e/apps/ui/application/ApplicationViewModel.kt b/app/src/main/java/foundation/e/apps/ui/application/ApplicationViewModel.kt index 02327a213..d656f87c2 100644 --- a/app/src/main/java/foundation/e/apps/ui/application/ApplicationViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/application/ApplicationViewModel.kt @@ -31,18 +31,18 @@ import foundation.e.apps.data.application.data.shareUri import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.Status +import foundation.e.apps.data.event.AppEvent +import foundation.e.apps.data.event.EventBus import foundation.e.apps.data.install.AppManagerWrapper +import foundation.e.apps.data.install.download.data.DownloadProgress +import foundation.e.apps.data.install.download.data.DownloadProgressLD import foundation.e.apps.data.install.models.AppInstall import foundation.e.apps.data.login.core.AuthObject import foundation.e.apps.data.parentalcontrol.fdroid.FDroidAntiFeatureRepository import foundation.e.apps.data.playstore.PlayStoreRepository -import foundation.e.apps.install.download.data.DownloadProgress -import foundation.e.apps.install.download.data.DownloadProgressLD import foundation.e.apps.ui.application.ShareButtonVisibilityState.Hidden import foundation.e.apps.ui.application.ShareButtonVisibilityState.Visible import foundation.e.apps.ui.parentFragment.LoadingViewModel -import foundation.e.apps.utils.eventBus.AppEvent -import foundation.e.apps.utils.eventBus.EventBus import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.flow.MutableStateFlow diff --git a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListFragment.kt b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListFragment.kt index 8be111cae..d59988a29 100644 --- a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListFragment.kt @@ -35,12 +35,12 @@ import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.application.ApplicationInstaller import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.enums.Status +import foundation.e.apps.data.install.download.data.DownloadProgress +import foundation.e.apps.data.install.pkg.AppLoungePackageManager +import foundation.e.apps.data.install.pkg.PwaManager import foundation.e.apps.data.login.core.AuthObject import foundation.e.apps.data.login.exceptions.GPlayLoginException import foundation.e.apps.databinding.FragmentApplicationListBinding -import foundation.e.apps.install.download.data.DownloadProgress -import foundation.e.apps.install.pkg.AppLoungePackageManager -import foundation.e.apps.install.pkg.PwaManager import foundation.e.apps.ui.AppInfoFetchViewModel import foundation.e.apps.ui.AppProgressViewModel import foundation.e.apps.ui.MainActivityViewModel diff --git a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListRVAdapter.kt b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListRVAdapter.kt index 4d02f72e8..a803cc483 100644 --- a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListRVAdapter.kt +++ b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListRVAdapter.kt @@ -45,20 +45,21 @@ import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.User +import foundation.e.apps.data.install.pkg.InstallerService import foundation.e.apps.data.login.state.LoginState import foundation.e.apps.databinding.ApplicationListItemBinding -import foundation.e.apps.install.pkg.InstallerService import foundation.e.apps.ui.AppInfoFetchViewModel import foundation.e.apps.ui.MainActivityViewModel import foundation.e.apps.ui.PrivacyInfoViewModel import foundation.e.apps.ui.applicationlist.diffUtils.ConciseAppDiffUtils import foundation.e.apps.ui.search.SearchFragmentDirections import foundation.e.apps.ui.updates.UpdatesFragmentDirections -import foundation.e.apps.utils.disableInstallButton -import foundation.e.apps.utils.enableInstallButton +import foundation.e.apps.ui.utils.disableInstallButton +import foundation.e.apps.ui.utils.enableInstallButton import timber.log.Timber import javax.inject.Singleton import foundation.e.elib.R as eR + @Singleton class ApplicationListRVAdapter( private val applicationInstaller: ApplicationInstaller, diff --git a/app/src/main/java/foundation/e/apps/ui/compose/state/InstallButtonStateInput.kt b/app/src/main/java/foundation/e/apps/ui/compose/state/InstallButtonStateInput.kt index 9321c0137..4c4f4727d 100644 --- a/app/src/main/java/foundation/e/apps/ui/compose/state/InstallButtonStateInput.kt +++ b/app/src/main/java/foundation/e/apps/ui/compose/state/InstallButtonStateInput.kt @@ -21,7 +21,7 @@ package foundation.e.apps.ui.compose.state import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.User -import foundation.e.apps.install.pkg.InstallerService +import foundation.e.apps.data.install.pkg.InstallerService data class InstallationFault( val isFaulty: Boolean, diff --git a/app/src/main/java/foundation/e/apps/ui/compose/state/InstallStatusReconciler.kt b/app/src/main/java/foundation/e/apps/ui/compose/state/InstallStatusReconciler.kt index 97d843125..4546e9023 100644 --- a/app/src/main/java/foundation/e/apps/ui/compose/state/InstallStatusReconciler.kt +++ b/app/src/main/java/foundation/e/apps/ui/compose/state/InstallStatusReconciler.kt @@ -21,8 +21,8 @@ package foundation.e.apps.ui.compose.state import foundation.e.apps.data.application.ApplicationRepository import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.install.AppManagerWrapper +import foundation.e.apps.data.install.download.data.DownloadProgress import foundation.e.apps.data.install.models.AppInstall -import foundation.e.apps.install.download.data.DownloadProgress import javax.inject.Inject import javax.inject.Singleton diff --git a/app/src/main/java/foundation/e/apps/ui/compose/state/InstallStatusStream.kt b/app/src/main/java/foundation/e/apps/ui/compose/state/InstallStatusStream.kt index 797938acf..f120780b8 100644 --- a/app/src/main/java/foundation/e/apps/ui/compose/state/InstallStatusStream.kt +++ b/app/src/main/java/foundation/e/apps/ui/compose/state/InstallStatusStream.kt @@ -32,8 +32,8 @@ package foundation.e.apps.ui.compose.state import androidx.lifecycle.asFlow import foundation.e.apps.data.install.AppManagerWrapper import foundation.e.apps.data.install.models.AppInstall -import foundation.e.apps.install.pkg.AppLoungePackageManager -import foundation.e.apps.install.pkg.PwaManager +import foundation.e.apps.data.install.pkg.AppLoungePackageManager +import foundation.e.apps.data.install.pkg.PwaManager import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay diff --git a/app/src/main/java/foundation/e/apps/ui/di/UiSystemModule.kt b/app/src/main/java/foundation/e/apps/ui/di/UiSystemModule.kt new file mode 100644 index 000000000..1f415b511 --- /dev/null +++ b/app/src/main/java/foundation/e/apps/ui/di/UiSystemModule.kt @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2026 e Foundation + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +package foundation.e.apps.ui.di + +import android.content.ClipboardManager +import android.content.Context +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.android.qualifiers.ApplicationContext +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +object UiSystemModule { + @Singleton + @Provides + fun provideClipboardManager(@ApplicationContext context: Context): ClipboardManager { + return context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager + } +} diff --git a/app/src/main/java/foundation/e/apps/utils/Extensions.kt b/app/src/main/java/foundation/e/apps/ui/extensions/ContextDialogExtensions.kt similarity index 53% rename from app/src/main/java/foundation/e/apps/utils/Extensions.kt rename to app/src/main/java/foundation/e/apps/ui/extensions/ContextDialogExtensions.kt index 07f652e9c..5a1b7b1c7 100644 --- a/app/src/main/java/foundation/e/apps/utils/Extensions.kt +++ b/app/src/main/java/foundation/e/apps/ui/extensions/ContextDialogExtensions.kt @@ -1,5 +1,5 @@ /* - * Copyright (C) 2024 MURENA SAS + * Copyright (C) 2026 MURENA SAS * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,22 +16,11 @@ * */ -package foundation.e.apps.utils +package foundation.e.apps.ui.extensions import android.content.Context -import android.net.ConnectivityManager -import android.net.NetworkCapabilities import androidx.appcompat.app.AlertDialog -import com.aurora.gplayapi.data.models.ContentRating import foundation.e.apps.R -import java.text.SimpleDateFormat -import java.util.Date -import java.util.Locale - -fun Date.getFormattedString(format: String, locale: Locale = Locale.getDefault()): String { - val dateFormat = SimpleDateFormat(format, locale) - return dateFormat.format(this) -} fun Context.showGoogleSignInAlertDialog( onYesClickListener: () -> Unit, @@ -44,22 +33,3 @@ fun Context.showGoogleSignInAlertDialog( .setNegativeButton(R.string.cancel) { _, _ -> onCancelClickListener() } .show() } - -fun Context.isNetworkAvailable(): Boolean { - val connectivityManager = - this.getSystemService(ConnectivityManager::class.java) - - val capabilities = - connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork) - ?: return false - - if (capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) && - capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED) - ) { - return true - } - - return false -} - -fun ContentRating.isValid() = title.isNotBlank() && artwork.url.isNotBlank() diff --git a/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt b/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt index b43f23bcd..33acdd009 100644 --- a/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt @@ -29,9 +29,9 @@ import androidx.recyclerview.widget.RecyclerView import dagger.hilt.android.AndroidEntryPoint import foundation.e.apps.R import foundation.e.apps.data.enums.Status +import foundation.e.apps.data.install.download.data.DownloadProgress import foundation.e.apps.databinding.FragmentHomeBinding import foundation.e.apps.domain.application.ApplicationDomain -import foundation.e.apps.install.download.data.DownloadProgress import foundation.e.apps.ui.AppInfoFetchViewModel import foundation.e.apps.ui.AppProgressViewModel import foundation.e.apps.ui.MainActivityViewModel diff --git a/app/src/main/java/foundation/e/apps/ui/home/model/HomeChildRVAdapter.kt b/app/src/main/java/foundation/e/apps/ui/home/model/HomeChildRVAdapter.kt index 0ead5aac1..3c527119f 100644 --- a/app/src/main/java/foundation/e/apps/ui/home/model/HomeChildRVAdapter.kt +++ b/app/src/main/java/foundation/e/apps/ui/home/model/HomeChildRVAdapter.kt @@ -40,8 +40,8 @@ import foundation.e.apps.domain.application.ApplicationDomain import foundation.e.apps.ui.AppInfoFetchViewModel import foundation.e.apps.ui.MainActivityViewModel import foundation.e.apps.ui.home.HomeFragmentDirections -import foundation.e.apps.utils.disableInstallButton -import foundation.e.apps.utils.enableInstallButton +import foundation.e.apps.ui.utils.disableInstallButton +import foundation.e.apps.ui.utils.enableInstallButton class HomeChildRVAdapter( private val appInfoFetchViewModel: AppInfoFetchViewModel, diff --git a/app/src/main/java/foundation/e/apps/ui/navigation/NavControllerExtensions.kt b/app/src/main/java/foundation/e/apps/ui/navigation/NavControllerExtensions.kt new file mode 100644 index 000000000..20a568329 --- /dev/null +++ b/app/src/main/java/foundation/e/apps/ui/navigation/NavControllerExtensions.kt @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2026 e Foundation + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +package foundation.e.apps.ui.navigation + +import android.os.Bundle +import androidx.annotation.IdRes +import androidx.navigation.NavController +import timber.log.Timber + +fun NavController.safeNavigate( + @IdRes currentDestinationId: Int, + @IdRes id: Int, + args: Bundle? = null +) { + try { + if (currentDestinationId == currentDestination?.id) { + navigate(id, args) + } + } catch (e: Exception) { + Timber.w(e, "Navigation to destination $id failed") + } +} diff --git a/app/src/main/java/foundation/e/apps/ui/search/SearchFragment.kt b/app/src/main/java/foundation/e/apps/ui/search/SearchFragment.kt index cd0ece6ea..8082111d7 100644 --- a/app/src/main/java/foundation/e/apps/ui/search/SearchFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/search/SearchFragment.kt @@ -44,17 +44,17 @@ import foundation.e.apps.R import foundation.e.apps.data.application.ApplicationInstaller import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.enums.Status +import foundation.e.apps.data.install.download.data.DownloadProgress import foundation.e.apps.data.install.models.AppInstall +import foundation.e.apps.data.install.pkg.PwaManager +import foundation.e.apps.data.system.isNetworkAvailable import foundation.e.apps.databinding.FragmentSearchBinding -import foundation.e.apps.install.download.data.DownloadProgress -import foundation.e.apps.install.pkg.PwaManager import foundation.e.apps.ui.AppInfoFetchViewModel import foundation.e.apps.ui.AppProgressViewModel import foundation.e.apps.ui.MainActivityViewModel import foundation.e.apps.ui.PrivacyInfoViewModel import foundation.e.apps.ui.application.subFrags.ApplicationDialogFragment import foundation.e.apps.ui.applicationlist.ApplicationListRVAdapter -import foundation.e.apps.utils.isNetworkAvailable import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch import java.util.Locale diff --git a/app/src/main/java/foundation/e/apps/ui/search/v2/SearchFragmentV2.kt b/app/src/main/java/foundation/e/apps/ui/search/v2/SearchFragmentV2.kt index ca59845a2..c2081b38a 100644 --- a/app/src/main/java/foundation/e/apps/ui/search/v2/SearchFragmentV2.kt +++ b/app/src/main/java/foundation/e/apps/ui/search/v2/SearchFragmentV2.kt @@ -42,7 +42,7 @@ import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.User import foundation.e.apps.data.enums.isInitialized import foundation.e.apps.data.enums.isUnFiltered -import foundation.e.apps.install.download.data.DownloadProgress +import foundation.e.apps.data.install.download.data.DownloadProgress import foundation.e.apps.ui.AppInfoFetchViewModel import foundation.e.apps.ui.AppProgressViewModel import foundation.e.apps.ui.MainActivityViewModel diff --git a/app/src/main/java/foundation/e/apps/ui/search/v2/SearchViewModelV2.kt b/app/src/main/java/foundation/e/apps/ui/search/v2/SearchViewModelV2.kt index 3de94ff52..b88910b5a 100644 --- a/app/src/main/java/foundation/e/apps/ui/search/v2/SearchViewModelV2.kt +++ b/app/src/main/java/foundation/e/apps/ui/search/v2/SearchViewModelV2.kt @@ -29,13 +29,13 @@ import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.cleanapk.CleanApkRetrofit import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.Status +import foundation.e.apps.data.install.download.data.DownloadProgress import foundation.e.apps.data.preference.AppLoungePreference import foundation.e.apps.domain.search.CleanApkSearchPagingUseCase import foundation.e.apps.domain.search.FetchSearchSuggestionsUseCase import foundation.e.apps.domain.search.PlayStoreSearchPagingUseCase import foundation.e.apps.domain.search.PrepareSearchSubmissionUseCase import foundation.e.apps.domain.search.SearchRequest -import foundation.e.apps.install.download.data.DownloadProgress import foundation.e.apps.ui.compose.state.InstallStatusReconciler import foundation.e.apps.ui.compose.state.InstallStatusStream import foundation.e.apps.ui.compose.state.StatusSnapshot diff --git a/app/src/main/java/foundation/e/apps/ui/settings/SettingsFragment.kt b/app/src/main/java/foundation/e/apps/ui/settings/SettingsFragment.kt index a6de6b630..12f85b222 100644 --- a/app/src/main/java/foundation/e/apps/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/settings/SettingsFragment.kt @@ -45,12 +45,12 @@ import foundation.e.apps.data.Stores import foundation.e.apps.data.application.UpdatesDao import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.User +import foundation.e.apps.data.install.updates.UpdatesWorkManager import foundation.e.apps.data.preference.AppLoungeDataStore import foundation.e.apps.data.preference.getSync +import foundation.e.apps.data.system.SystemInfoProvider import foundation.e.apps.databinding.CustomPreferenceBinding -import foundation.e.apps.install.updates.UpdatesWorkManager import foundation.e.apps.ui.LoginViewModel -import foundation.e.apps.utils.SystemInfoProvider import timber.log.Timber import java.util.Locale import javax.inject.Inject diff --git a/app/src/main/java/foundation/e/apps/ui/setup/signin/LocaleChangedBroadcastReceiver.kt b/app/src/main/java/foundation/e/apps/ui/setup/signin/LocaleChangedBroadcastReceiver.kt index cc83bca56..1ebb0bb6f 100644 --- a/app/src/main/java/foundation/e/apps/ui/setup/signin/LocaleChangedBroadcastReceiver.kt +++ b/app/src/main/java/foundation/e/apps/ui/setup/signin/LocaleChangedBroadcastReceiver.kt @@ -23,9 +23,9 @@ import android.content.Context import android.content.Intent import com.aurora.gplayapi.data.models.AuthData import dagger.hilt.android.AndroidEntryPoint +import foundation.e.apps.data.di.qualifiers.IoCoroutineScope import foundation.e.apps.data.preference.AppLoungeDataStore import foundation.e.apps.data.preference.getSync -import foundation.e.apps.di.qualifiers.IoCoroutineScope import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch import kotlinx.serialization.json.Json diff --git a/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt b/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt index 9febd6706..67e247bef 100644 --- a/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt @@ -13,9 +13,9 @@ import foundation.e.apps.R import foundation.e.apps.data.login.microg.MicrogCertUtil import foundation.e.apps.data.login.microg.MicrogSupportChecker import foundation.e.apps.databinding.FragmentSignInBinding -import foundation.e.apps.di.CommonUtilsModule.safeNavigate import foundation.e.apps.ui.LoginViewModel -import foundation.e.apps.utils.showGoogleSignInAlertDialog +import foundation.e.apps.ui.extensions.showGoogleSignInAlertDialog +import foundation.e.apps.ui.navigation.safeNavigate @AndroidEntryPoint class SignInFragment : Fragment(R.layout.fragment_sign_in) { diff --git a/app/src/main/java/foundation/e/apps/ui/setup/signin/google/GoogleSignInFragment.kt b/app/src/main/java/foundation/e/apps/ui/setup/signin/google/GoogleSignInFragment.kt index 1bab86ff5..f615b8149 100644 --- a/app/src/main/java/foundation/e/apps/ui/setup/signin/google/GoogleSignInFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/setup/signin/google/GoogleSignInFragment.kt @@ -32,8 +32,8 @@ import dagger.hilt.android.AndroidEntryPoint import foundation.e.apps.R import foundation.e.apps.data.playstore.utils.AC2DMUtil import foundation.e.apps.databinding.FragmentGoogleSigninBinding -import foundation.e.apps.di.CommonUtilsModule.safeNavigate import foundation.e.apps.ui.LoginViewModel +import foundation.e.apps.ui.navigation.safeNavigate @AndroidEntryPoint class GoogleSignInFragment : Fragment(R.layout.fragment_google_signin) { diff --git a/app/src/main/java/foundation/e/apps/ui/updates/UpdatesFragment.kt b/app/src/main/java/foundation/e/apps/ui/updates/UpdatesFragment.kt index 87ad47e75..fb22fe857 100644 --- a/app/src/main/java/foundation/e/apps/ui/updates/UpdatesFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/updates/UpdatesFragment.kt @@ -41,26 +41,26 @@ import foundation.e.apps.data.application.ApplicationInstaller import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Status +import foundation.e.apps.data.event.AppEvent +import foundation.e.apps.data.event.EventBus +import foundation.e.apps.data.install.download.data.DownloadProgress import foundation.e.apps.data.install.models.AppInstall +import foundation.e.apps.data.install.pkg.PwaManager +import foundation.e.apps.data.install.updates.UpdatesWorkManager +import foundation.e.apps.data.install.workmanager.InstallWorkManager import foundation.e.apps.data.login.core.AuthObject import foundation.e.apps.data.login.exceptions.GPlayException import foundation.e.apps.data.login.exceptions.GPlayLoginException import foundation.e.apps.databinding.FragmentUpdatesBinding -import foundation.e.apps.di.CommonUtilsModule.safeNavigate -import foundation.e.apps.install.download.data.DownloadProgress -import foundation.e.apps.install.pkg.PwaManager -import foundation.e.apps.install.updates.UpdatesWorkManager -import foundation.e.apps.install.workmanager.InstallWorkManager import foundation.e.apps.ui.AppInfoFetchViewModel import foundation.e.apps.ui.AppProgressViewModel import foundation.e.apps.ui.MainActivityViewModel import foundation.e.apps.ui.PrivacyInfoViewModel import foundation.e.apps.ui.application.subFrags.ApplicationDialogFragment import foundation.e.apps.ui.applicationlist.ApplicationListRVAdapter +import foundation.e.apps.ui.navigation.safeNavigate import foundation.e.apps.ui.parentFragment.TimeoutFragment -import foundation.e.apps.utils.eventBus.AppEvent -import foundation.e.apps.utils.eventBus.EventBus -import foundation.e.apps.utils.toast +import foundation.e.apps.ui.utils.toast import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.filter import kotlinx.coroutines.launch diff --git a/app/src/main/java/foundation/e/apps/utils/MaterialButtonUtils.kt b/app/src/main/java/foundation/e/apps/ui/utils/MaterialButtonUtils.kt similarity index 98% rename from app/src/main/java/foundation/e/apps/utils/MaterialButtonUtils.kt rename to app/src/main/java/foundation/e/apps/ui/utils/MaterialButtonUtils.kt index 45a1ec1e1..e7bdad247 100644 --- a/app/src/main/java/foundation/e/apps/utils/MaterialButtonUtils.kt +++ b/app/src/main/java/foundation/e/apps/ui/utils/MaterialButtonUtils.kt @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.utils +package foundation.e.apps.ui.utils import androidx.core.content.ContextCompat import com.google.android.material.button.MaterialButton diff --git a/app/src/main/java/foundation/e/apps/utils/ViewUtils.kt b/app/src/main/java/foundation/e/apps/ui/utils/ViewUtils.kt similarity index 93% rename from app/src/main/java/foundation/e/apps/utils/ViewUtils.kt rename to app/src/main/java/foundation/e/apps/ui/utils/ViewUtils.kt index d483285e1..687338414 100644 --- a/app/src/main/java/foundation/e/apps/utils/ViewUtils.kt +++ b/app/src/main/java/foundation/e/apps/ui/utils/ViewUtils.kt @@ -1,4 +1,4 @@ -package foundation.e.apps.utils +package foundation.e.apps.ui.utils import android.content.Context import android.content.res.Resources diff --git a/app/src/test/java/foundation/e/apps/FakeAppLoungePackageManager.kt b/app/src/test/java/foundation/e/apps/FakeAppLoungePackageManager.kt index 9b2b69fd2..37da4a13e 100644 --- a/app/src/test/java/foundation/e/apps/FakeAppLoungePackageManager.kt +++ b/app/src/test/java/foundation/e/apps/FakeAppLoungePackageManager.kt @@ -23,7 +23,7 @@ import android.content.pm.ApplicationInfo import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.updates.UpdatesManagerImpl.Companion.PACKAGE_NAME_ANDROID_VENDING import foundation.e.apps.data.updates.UpdatesManagerImpl.Companion.PACKAGE_NAME_F_DROID -import foundation.e.apps.install.pkg.AppLoungePackageManager +import foundation.e.apps.data.install.pkg.AppLoungePackageManager open class FakeAppLoungePackageManager( context: Context, diff --git a/app/src/test/java/foundation/e/apps/apps/AppsApiTest.kt b/app/src/test/java/foundation/e/apps/apps/AppsApiTest.kt index 92f2dccfa..78d836962 100644 --- a/app/src/test/java/foundation/e/apps/apps/AppsApiTest.kt +++ b/app/src/test/java/foundation/e/apps/apps/AppsApiTest.kt @@ -32,8 +32,8 @@ import foundation.e.apps.data.enums.FilterLevel import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.Status import foundation.e.apps.data.playstore.PlayStoreRepository -import foundation.e.apps.install.pkg.AppLoungePackageManager -import foundation.e.apps.install.pkg.PwaManager +import foundation.e.apps.data.install.pkg.AppLoungePackageManager +import foundation.e.apps.data.install.pkg.PwaManager import foundation.e.apps.util.MainCoroutineRule import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest diff --git a/app/src/test/java/foundation/e/apps/category/CategoryApiTest.kt b/app/src/test/java/foundation/e/apps/category/CategoryApiTest.kt index 6631cc1e4..0789c6d35 100644 --- a/app/src/test/java/foundation/e/apps/category/CategoryApiTest.kt +++ b/app/src/test/java/foundation/e/apps/category/CategoryApiTest.kt @@ -37,8 +37,8 @@ import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Source import foundation.e.apps.data.playstore.PlayStoreRepository import foundation.e.apps.data.preference.AppLoungePreference -import foundation.e.apps.install.pkg.AppLoungePackageManager -import foundation.e.apps.install.pkg.PwaManager +import foundation.e.apps.data.install.pkg.AppLoungePackageManager +import foundation.e.apps.data.install.pkg.PwaManager import foundation.e.apps.util.MainCoroutineRule import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest diff --git a/app/src/test/java/foundation/e/apps/data/application/ApplicationDataManagerTest.kt b/app/src/test/java/foundation/e/apps/data/application/ApplicationDataManagerTest.kt index 2b3b32831..3df0b22f5 100644 --- a/app/src/test/java/foundation/e/apps/data/application/ApplicationDataManagerTest.kt +++ b/app/src/test/java/foundation/e/apps/data/application/ApplicationDataManagerTest.kt @@ -6,7 +6,7 @@ import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.enums.FilterLevel import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.Status -import foundation.e.apps.install.pkg.PwaManager +import foundation.e.apps.data.install.pkg.PwaManager import foundation.e.apps.data.application.utils.AppVisibilityResolver import io.mockk.coEvery import io.mockk.every diff --git a/app/src/test/java/foundation/e/apps/data/cleanapk/CleanApkSearchHelperTest.kt b/app/src/test/java/foundation/e/apps/data/cleanapk/CleanApkSearchHelperTest.kt index 6513bf4a6..c8138ace5 100644 --- a/app/src/test/java/foundation/e/apps/data/cleanapk/CleanApkSearchHelperTest.kt +++ b/app/src/test/java/foundation/e/apps/data/cleanapk/CleanApkSearchHelperTest.kt @@ -42,7 +42,7 @@ import foundation.e.apps.data.cleanapk.data.search.Search import foundation.e.apps.data.cleanapk.repositories.NUMBER_OF_ITEMS import foundation.e.apps.data.cleanapk.repositories.NUMBER_OF_PAGES import foundation.e.apps.data.enums.Source -import foundation.e.apps.utils.SystemInfoProvider +import foundation.e.apps.data.system.SystemInfoProvider class CleanApkSearchHelperTest { diff --git a/app/src/test/java/foundation/e/apps/data/cleanapk/repositories/CleanApkAppsRepositoryTest.kt b/app/src/test/java/foundation/e/apps/data/cleanapk/repositories/CleanApkAppsRepositoryTest.kt index f78a8da27..927521f1c 100644 --- a/app/src/test/java/foundation/e/apps/data/cleanapk/repositories/CleanApkAppsRepositoryTest.kt +++ b/app/src/test/java/foundation/e/apps/data/cleanapk/repositories/CleanApkAppsRepositoryTest.kt @@ -36,7 +36,7 @@ import foundation.e.apps.data.cleanapk.data.home.CleanApkHome import foundation.e.apps.data.cleanapk.data.home.HomeScreenResponse import foundation.e.apps.data.cleanapk.data.search.Search import foundation.e.apps.data.enums.Source -import foundation.e.apps.utils.SystemInfoProvider +import foundation.e.apps.data.system.SystemInfoProvider import io.mockk.coEvery import io.mockk.coVerify import io.mockk.every diff --git a/app/src/test/java/foundation/e/apps/di/network/InterceptorModuleTest.kt b/app/src/test/java/foundation/e/apps/data/di/network/InterceptorModuleTest.kt similarity index 98% rename from app/src/test/java/foundation/e/apps/di/network/InterceptorModuleTest.kt rename to app/src/test/java/foundation/e/apps/data/di/network/InterceptorModuleTest.kt index 929874288..5409e9a9a 100644 --- a/app/src/test/java/foundation/e/apps/di/network/InterceptorModuleTest.kt +++ b/app/src/test/java/foundation/e/apps/data/di/network/InterceptorModuleTest.kt @@ -16,7 +16,7 @@ * */ -package foundation.e.apps.di.network +package foundation.e.apps.data.di.network import junit.framework.TestCase.assertEquals import okhttp3.Interceptor diff --git a/app/src/test/java/foundation/e/apps/utils/eventBus/AppEventTest.kt b/app/src/test/java/foundation/e/apps/data/event/AppEventTest.kt similarity index 96% rename from app/src/test/java/foundation/e/apps/utils/eventBus/AppEventTest.kt rename to app/src/test/java/foundation/e/apps/data/event/AppEventTest.kt index eaf1529b4..4f7c0ba38 100644 --- a/app/src/test/java/foundation/e/apps/utils/eventBus/AppEventTest.kt +++ b/app/src/test/java/foundation/e/apps/data/event/AppEventTest.kt @@ -1,4 +1,4 @@ -package foundation.e.apps.utils.eventBus +package foundation.e.apps.data.event import com.google.common.truth.Truth.assertThat import foundation.e.apps.data.enums.ResultStatus diff --git a/app/src/test/java/foundation/e/apps/utils/ExodusUriGeneratorTest.kt b/app/src/test/java/foundation/e/apps/data/exodus/ExodusUriGeneratorTest.kt similarity index 96% rename from app/src/test/java/foundation/e/apps/utils/ExodusUriGeneratorTest.kt rename to app/src/test/java/foundation/e/apps/data/exodus/ExodusUriGeneratorTest.kt index 74351f1cf..3e1263d9d 100644 --- a/app/src/test/java/foundation/e/apps/utils/ExodusUriGeneratorTest.kt +++ b/app/src/test/java/foundation/e/apps/data/exodus/ExodusUriGeneratorTest.kt @@ -1,4 +1,4 @@ -package foundation.e.apps.utils +package foundation.e.apps.data.exodus import com.google.common.truth.Truth.assertThat import java.util.Locale diff --git a/app/src/test/java/foundation/e/apps/data/gitlab/SystemAppsUpdatesRepositoryTest.kt b/app/src/test/java/foundation/e/apps/data/gitlab/SystemAppsUpdatesRepositoryTest.kt index 591022362..43443a9a9 100644 --- a/app/src/test/java/foundation/e/apps/data/gitlab/SystemAppsUpdatesRepositoryTest.kt +++ b/app/src/test/java/foundation/e/apps/data/gitlab/SystemAppsUpdatesRepositoryTest.kt @@ -20,7 +20,7 @@ package foundation.e.apps.data.gitlab import android.content.Context import foundation.e.apps.data.application.ApplicationDataManager import foundation.e.apps.data.gitlab.models.SystemAppProject -import foundation.e.apps.install.pkg.AppLoungePackageManager +import foundation.e.apps.data.install.pkg.AppLoungePackageManager import io.mockk.coEvery import io.mockk.coVerify import io.mockk.mockk diff --git a/app/src/test/java/foundation/e/apps/data/install/AppManagerWrapperProgressTest.kt b/app/src/test/java/foundation/e/apps/data/install/AppManagerWrapperProgressTest.kt index 071aeffb8..277cb7d3b 100644 --- a/app/src/test/java/foundation/e/apps/data/install/AppManagerWrapperProgressTest.kt +++ b/app/src/test/java/foundation/e/apps/data/install/AppManagerWrapperProgressTest.kt @@ -20,7 +20,7 @@ package foundation.e.apps.data.install import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fdroid.FDroidRepository import foundation.e.apps.data.install.models.AppInstall -import foundation.e.apps.install.download.data.DownloadProgress +import foundation.e.apps.data.install.download.data.DownloadProgress import io.mockk.mockk import kotlinx.coroutines.test.runTest import org.junit.Assert.assertEquals diff --git a/app/src/test/java/foundation/e/apps/install/download/data/DownloadProgressLDTest.kt b/app/src/test/java/foundation/e/apps/data/install/download/data/DownloadProgressLDTest.kt similarity index 97% rename from app/src/test/java/foundation/e/apps/install/download/data/DownloadProgressLDTest.kt rename to app/src/test/java/foundation/e/apps/data/install/download/data/DownloadProgressLDTest.kt index 5ae4d24c2..f11379d76 100644 --- a/app/src/test/java/foundation/e/apps/install/download/data/DownloadProgressLDTest.kt +++ b/app/src/test/java/foundation/e/apps/data/install/download/data/DownloadProgressLDTest.kt @@ -1,4 +1,4 @@ -package foundation.e.apps.install.download.data +package foundation.e.apps.data.install.download.data import android.app.DownloadManager import android.database.Cursor diff --git a/app/src/test/java/foundation/e/apps/install/pkg/AppLoungePackageManagerTest.kt b/app/src/test/java/foundation/e/apps/data/install/pkg/AppLoungePackageManagerTest.kt similarity index 98% rename from app/src/test/java/foundation/e/apps/install/pkg/AppLoungePackageManagerTest.kt rename to app/src/test/java/foundation/e/apps/data/install/pkg/AppLoungePackageManagerTest.kt index 4e0bd6c5c..ed5460fe7 100644 --- a/app/src/test/java/foundation/e/apps/install/pkg/AppLoungePackageManagerTest.kt +++ b/app/src/test/java/foundation/e/apps/data/install/pkg/AppLoungePackageManagerTest.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.install.pkg +package foundation.e.apps.data.install.pkg import android.content.Context import android.content.pm.PackageInfo diff --git a/app/src/test/java/foundation/e/apps/install/pkg/PwaManagerTest.kt b/app/src/test/java/foundation/e/apps/data/install/pkg/PwaManagerTest.kt similarity index 98% rename from app/src/test/java/foundation/e/apps/install/pkg/PwaManagerTest.kt rename to app/src/test/java/foundation/e/apps/data/install/pkg/PwaManagerTest.kt index 1f7e799f7..71a448511 100644 --- a/app/src/test/java/foundation/e/apps/install/pkg/PwaManagerTest.kt +++ b/app/src/test/java/foundation/e/apps/data/install/pkg/PwaManagerTest.kt @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package foundation.e.apps.install.pkg +package foundation.e.apps.data.install.pkg import android.content.ContentProvider import android.content.ContentValues diff --git a/app/src/test/java/foundation/e/apps/install/updates/UpdatesWorkerTest.kt b/app/src/test/java/foundation/e/apps/data/install/updates/UpdatesWorkerTest.kt similarity index 99% rename from app/src/test/java/foundation/e/apps/install/updates/UpdatesWorkerTest.kt rename to app/src/test/java/foundation/e/apps/data/install/updates/UpdatesWorkerTest.kt index a73558bf2..962863037 100644 --- a/app/src/test/java/foundation/e/apps/install/updates/UpdatesWorkerTest.kt +++ b/app/src/test/java/foundation/e/apps/data/install/updates/UpdatesWorkerTest.kt @@ -16,7 +16,7 @@ * */ -package foundation.e.apps.install.updates +package foundation.e.apps.data.install.updates import android.app.NotificationManager import android.content.Context @@ -52,7 +52,7 @@ import foundation.e.apps.data.login.repository.AuthenticatorRepository import foundation.e.apps.data.login.state.LoginState import foundation.e.apps.data.preference.AppLoungeDataStore import foundation.e.apps.data.updates.UpdatesManagerRepository -import foundation.e.apps.install.workmanager.AppInstallProcessor +import foundation.e.apps.data.install.workmanager.AppInstallProcessor import io.mockk.coEvery import io.mockk.coVerify import io.mockk.every diff --git a/app/src/test/java/foundation/e/apps/utils/MicrogSupportCheckerTest.kt b/app/src/test/java/foundation/e/apps/data/login/microg/MicrogSupportCheckerTest.kt similarity index 98% rename from app/src/test/java/foundation/e/apps/utils/MicrogSupportCheckerTest.kt rename to app/src/test/java/foundation/e/apps/data/login/microg/MicrogSupportCheckerTest.kt index 0744369ce..cc1b48767 100644 --- a/app/src/test/java/foundation/e/apps/utils/MicrogSupportCheckerTest.kt +++ b/app/src/test/java/foundation/e/apps/data/login/microg/MicrogSupportCheckerTest.kt @@ -16,7 +16,7 @@ * */ -package foundation.e.apps.utils +package foundation.e.apps.data.login.microg import android.content.Context import android.content.pm.PackageInfo diff --git a/app/src/test/java/foundation/e/apps/data/playstore/PlayStoreRepositoryTest.kt b/app/src/test/java/foundation/e/apps/data/playstore/PlayStoreRepositoryTest.kt index d1616d8a5..11113d092 100644 --- a/app/src/test/java/foundation/e/apps/data/playstore/PlayStoreRepositoryTest.kt +++ b/app/src/test/java/foundation/e/apps/data/playstore/PlayStoreRepositoryTest.kt @@ -22,7 +22,7 @@ import foundation.e.apps.data.login.repository.AuthenticatorRepository import foundation.e.apps.data.playstore.utils.GPlayHttpClient import foundation.e.apps.data.playstore.utils.GplayHttpRequestException import foundation.e.apps.data.enums.Source -import foundation.e.apps.utils.SystemInfoProvider +import foundation.e.apps.data.system.SystemInfoProvider import io.mockk.every import io.mockk.mockk import io.mockk.mockkConstructor diff --git a/app/src/test/java/foundation/e/apps/utils/StorageComputerTest.kt b/app/src/test/java/foundation/e/apps/data/system/StorageComputerTest.kt similarity index 96% rename from app/src/test/java/foundation/e/apps/utils/StorageComputerTest.kt rename to app/src/test/java/foundation/e/apps/data/system/StorageComputerTest.kt index 849b3517e..89d0da0fb 100644 --- a/app/src/test/java/foundation/e/apps/utils/StorageComputerTest.kt +++ b/app/src/test/java/foundation/e/apps/data/system/StorageComputerTest.kt @@ -1,4 +1,4 @@ -package foundation.e.apps.utils +package foundation.e.apps.data.system import com.google.common.truth.Truth.assertThat import java.util.Locale diff --git a/app/src/test/java/foundation/e/apps/utils/SystemInfoProviderTest.kt b/app/src/test/java/foundation/e/apps/data/system/SystemInfoProviderTest.kt similarity index 94% rename from app/src/test/java/foundation/e/apps/utils/SystemInfoProviderTest.kt rename to app/src/test/java/foundation/e/apps/data/system/SystemInfoProviderTest.kt index 7a260ce28..d29a5d05f 100644 --- a/app/src/test/java/foundation/e/apps/utils/SystemInfoProviderTest.kt +++ b/app/src/test/java/foundation/e/apps/data/system/SystemInfoProviderTest.kt @@ -1,4 +1,4 @@ -package foundation.e.apps.utils +package foundation.e.apps.data.system import com.google.common.truth.Truth.assertThat import org.json.JSONObject diff --git a/app/src/test/java/foundation/e/apps/utils/ExtensionsTest.kt b/app/src/test/java/foundation/e/apps/data/utils/ExtensionsTest.kt similarity index 91% rename from app/src/test/java/foundation/e/apps/utils/ExtensionsTest.kt rename to app/src/test/java/foundation/e/apps/data/utils/ExtensionsTest.kt index 2e94492eb..7662bcd17 100644 --- a/app/src/test/java/foundation/e/apps/utils/ExtensionsTest.kt +++ b/app/src/test/java/foundation/e/apps/data/utils/ExtensionsTest.kt @@ -1,4 +1,4 @@ -package foundation.e.apps.utils +package foundation.e.apps.data.utils import com.google.common.truth.Truth.assertThat import java.util.Date diff --git a/app/src/test/java/foundation/e/apps/domain/login/ReportFaultyTokenUseCaseTest.kt b/app/src/test/java/foundation/e/apps/domain/login/ReportFaultyTokenUseCaseTest.kt index f690fc253..3b8d567c1 100644 --- a/app/src/test/java/foundation/e/apps/domain/login/ReportFaultyTokenUseCaseTest.kt +++ b/app/src/test/java/foundation/e/apps/domain/login/ReportFaultyTokenUseCaseTest.kt @@ -6,7 +6,7 @@ import foundation.e.apps.data.enums.User import foundation.e.apps.data.login.core.AuthObject import foundation.e.apps.data.login.exceptions.GPlayValidationException import foundation.e.apps.data.ecloud.EcloudRepository -import foundation.e.apps.utils.SystemInfoProvider +import foundation.e.apps.data.system.SystemInfoProvider import io.mockk.coEvery import io.mockk.coVerify import io.mockk.mockk diff --git a/app/src/test/java/foundation/e/apps/exodus/PrivacyScoreRepositoryImplTest.kt b/app/src/test/java/foundation/e/apps/exodus/PrivacyScoreRepositoryImplTest.kt index fcd0aa5cf..4d108c3dc 100644 --- a/app/src/test/java/foundation/e/apps/exodus/PrivacyScoreRepositoryImplTest.kt +++ b/app/src/test/java/foundation/e/apps/exodus/PrivacyScoreRepositoryImplTest.kt @@ -22,7 +22,6 @@ import foundation.e.apps.data.enums.Status import foundation.e.apps.data.exodus.repositories.PrivacyScoreRepositoryImpl import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.blockedApps.BlockedAppRepository -import foundation.e.apps.di.CommonUtilsModule import org.junit.Assert import org.junit.Before import org.junit.Test diff --git a/app/src/test/java/foundation/e/apps/fused/SearchRepositoryImplTest.kt b/app/src/test/java/foundation/e/apps/fused/SearchRepositoryImplTest.kt index 0f4a24cdc..38ef3b5a8 100644 --- a/app/src/test/java/foundation/e/apps/fused/SearchRepositoryImplTest.kt +++ b/app/src/test/java/foundation/e/apps/fused/SearchRepositoryImplTest.kt @@ -37,8 +37,8 @@ import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.Status import foundation.e.apps.data.playstore.PlayStoreRepository import foundation.e.apps.data.preference.AppLoungeDataStore -import foundation.e.apps.install.pkg.AppLoungePackageManager -import foundation.e.apps.install.pkg.PwaManager +import foundation.e.apps.data.install.pkg.AppLoungePackageManager +import foundation.e.apps.data.install.pkg.PwaManager import foundation.e.apps.util.MainCoroutineRule import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest diff --git a/app/src/test/java/foundation/e/apps/fusedManager/AppManagerWrapperTest.kt b/app/src/test/java/foundation/e/apps/fusedManager/AppManagerWrapperTest.kt index fb77fcfce..9cf3b5152 100644 --- a/app/src/test/java/foundation/e/apps/fusedManager/AppManagerWrapperTest.kt +++ b/app/src/test/java/foundation/e/apps/fusedManager/AppManagerWrapperTest.kt @@ -24,7 +24,7 @@ import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fdroid.FDroidRepository import foundation.e.apps.data.install.AppManagerWrapper import foundation.e.apps.data.install.models.AppInstall -import foundation.e.apps.install.workmanager.InstallWorkManager +import foundation.e.apps.data.install.workmanager.InstallWorkManager import foundation.e.apps.installProcessor.FakeAppInstallDAO import foundation.e.apps.util.MainCoroutineRule import io.mockk.every diff --git a/app/src/test/java/foundation/e/apps/gplay/GPlayHttpClientTest.kt b/app/src/test/java/foundation/e/apps/gplay/GPlayHttpClientTest.kt index 3bd77f111..a846fe545 100644 --- a/app/src/test/java/foundation/e/apps/gplay/GPlayHttpClientTest.kt +++ b/app/src/test/java/foundation/e/apps/gplay/GPlayHttpClientTest.kt @@ -24,9 +24,9 @@ import foundation.e.apps.data.playstore.utils.GPlayHttpClient import foundation.e.apps.data.playstore.utils.GplayHttpRequestException import foundation.e.apps.util.FakeCall import foundation.e.apps.util.MainCoroutineRule -import foundation.e.apps.utils.SystemInfoProvider -import foundation.e.apps.utils.eventBus.AppEvent -import foundation.e.apps.utils.eventBus.EventBus +import foundation.e.apps.data.system.SystemInfoProvider +import foundation.e.apps.data.event.AppEvent +import foundation.e.apps.data.event.EventBus import io.mockk.every import io.mockk.mockkObject import kotlinx.coroutines.ExperimentalCoroutinesApi diff --git a/app/src/test/java/foundation/e/apps/installProcessor/AppInstallProcessorTest.kt b/app/src/test/java/foundation/e/apps/installProcessor/AppInstallProcessorTest.kt index 67544b5c9..ade2dc588 100644 --- a/app/src/test/java/foundation/e/apps/installProcessor/AppInstallProcessorTest.kt +++ b/app/src/test/java/foundation/e/apps/installProcessor/AppInstallProcessorTest.kt @@ -35,10 +35,10 @@ import foundation.e.apps.data.install.models.AppInstall import foundation.e.apps.data.preference.AppLoungeDataStore import foundation.e.apps.domain.ValidateAppAgeLimitUseCase import foundation.e.apps.domain.model.ContentRatingValidity -import foundation.e.apps.install.AppInstallComponents -import foundation.e.apps.install.notification.StorageNotificationManager -import foundation.e.apps.install.workmanager.AppInstallProcessor -import foundation.e.apps.utils.StorageComputer +import foundation.e.apps.data.install.AppInstallComponents +import foundation.e.apps.data.install.notification.StorageNotificationManager +import foundation.e.apps.data.install.workmanager.AppInstallProcessor +import foundation.e.apps.data.system.StorageComputer import foundation.e.apps.util.MainCoroutineRule import io.mockk.coEvery import io.mockk.coVerify diff --git a/app/src/test/java/foundation/e/apps/ui/compose/state/InstallButtonStateMapperTest.kt b/app/src/test/java/foundation/e/apps/ui/compose/state/InstallButtonStateMapperTest.kt index 134a9bdee..9f3c7c5f1 100644 --- a/app/src/test/java/foundation/e/apps/ui/compose/state/InstallButtonStateMapperTest.kt +++ b/app/src/test/java/foundation/e/apps/ui/compose/state/InstallButtonStateMapperTest.kt @@ -23,7 +23,7 @@ import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.User -import foundation.e.apps.install.pkg.InstallerService +import foundation.e.apps.data.install.pkg.InstallerService import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue diff --git a/app/src/test/java/foundation/e/apps/ui/compose/state/InstallStatusReconcilerTest.kt b/app/src/test/java/foundation/e/apps/ui/compose/state/InstallStatusReconcilerTest.kt index 1f37a9cfa..ed3a261a3 100644 --- a/app/src/test/java/foundation/e/apps/ui/compose/state/InstallStatusReconcilerTest.kt +++ b/app/src/test/java/foundation/e/apps/ui/compose/state/InstallStatusReconcilerTest.kt @@ -22,7 +22,7 @@ import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.enums.Status import foundation.e.apps.data.install.AppManagerWrapper import foundation.e.apps.data.install.models.AppInstall -import foundation.e.apps.install.download.data.DownloadProgress +import foundation.e.apps.data.install.download.data.DownloadProgress import io.mockk.coEvery import io.mockk.coVerify import io.mockk.every diff --git a/app/src/test/java/foundation/e/apps/ui/compose/state/InstallStatusStreamTest.kt b/app/src/test/java/foundation/e/apps/ui/compose/state/InstallStatusStreamTest.kt index d3d8d1038..ab5a6fedc 100644 --- a/app/src/test/java/foundation/e/apps/ui/compose/state/InstallStatusStreamTest.kt +++ b/app/src/test/java/foundation/e/apps/ui/compose/state/InstallStatusStreamTest.kt @@ -22,8 +22,8 @@ import androidx.arch.core.executor.testing.InstantTaskExecutorRule import androidx.lifecycle.MutableLiveData import foundation.e.apps.data.install.AppManagerWrapper import foundation.e.apps.data.install.models.AppInstall -import foundation.e.apps.install.pkg.AppLoungePackageManager -import foundation.e.apps.install.pkg.PwaManager +import foundation.e.apps.data.install.pkg.AppLoungePackageManager +import foundation.e.apps.data.install.pkg.PwaManager import foundation.e.apps.util.MainCoroutineRule import io.mockk.every import io.mockk.mockk -- GitLab