From 07ccca15b26bac5941fde5d9948a7e48dd80b50b Mon Sep 17 00:00:00 2001 From: Jonathan Klee Date: Fri, 5 Dec 2025 16:18:56 +0100 Subject: [PATCH 1/2] style: fix detekt indentation warnings --- app/detekt-baseline.xml | 33 ------------- .../foundation/e/apps/data/NetworkHandler.kt | 6 ++- .../foundation/e/apps/data/enums/Source.kt | 4 +- .../gitlab/SystemAppsUpdatesRepository.kt | 9 ++-- .../e/apps/data/updates/UpdatesManagerImpl.kt | 20 ++++---- .../e/apps/di/network/RetrofitApiModule.kt | 3 +- .../apps/domain/ValidateAppAgeLimitUseCase.kt | 9 ++-- .../domain/model/ContentRatingValidity.kt | 7 ++- .../install/download/DownloadManagerUtils.kt | 2 +- .../e/apps/install/pkg/PwaManager.kt | 7 ++- .../workmanager/AppInstallProcessor.kt | 7 +-- .../install/workmanager/InstallAppWorker.kt | 6 +-- .../e/apps/microg/AuthDataProvider.kt | 28 +++++++---- .../receivers/DumpAppInstallStatusReceiver.kt | 6 +-- .../java/foundation/e/apps/ui/MainActivity.kt | 46 +++++++++++-------- 15 files changed, 93 insertions(+), 100 deletions(-) diff --git a/app/detekt-baseline.xml b/app/detekt-baseline.xml index b30a1f2e3..056538f4c 100644 --- a/app/detekt-baseline.xml +++ b/app/detekt-baseline.xml @@ -18,11 +18,8 @@ ArgumentListWrapping:DownloadManager.kt$DownloadManager$("Download Issue: $downloadId : DownloadManager returns status: $status but the failed because: reason: $reason") ArgumentListWrapping:DownloadManagerUtils.kt$DownloadManagerUtils$("===> updateDownloadStatus: ${appInstall.name}: $downloadId: $numberOfDownloadedItems/${appInstall.downloadIdMap.size}") ArgumentListWrapping:HomeFragment.kt$HomeFragment$( this, mainActivityViewModel, appInfoFetchViewModel, viewLifecycleOwner ) - ArgumentListWrapping:InstallAppWorker.kt$InstallAppWorker$( atomicInteger.getAndIncrement(), notification) - ArgumentListWrapping:MainActivity.kt$MainActivity$( ActivityResultContracts.StartActivityForResult()) ArgumentListWrapping:MainActivity.kt$MainActivity$(R.string.message_app_available_later) ArgumentListWrapping:MainActivity.kt$MainActivity$(getString(R.string.message_app_available_later)) - ArgumentListWrapping:PwaManager.kt$PwaManager$( Uri.parse(PWA_PLAYER), null, null, null, null ) ArgumentListWrapping:ResultSupreme.kt$ResultSupreme.Companion$( status, newData, message ?: result.message, exception ?: result.exception ) ArgumentListWrapping:SearchFragment.kt$SearchFragment$( searchViewModel.searchText, false ) ArgumentListWrapping:SystemAppsUpdatesRepository.kt$SystemAppsUpdatesRepository$(exception.message, "Android API isn't in supported range to update some system apps") @@ -31,32 +28,14 @@ ArgumentListWrapping:UpdatesNotifier.kt$UpdatesNotifier$(R.string.automatically_install_updates_notification_text) ArgumentListWrapping:UpdatesNotifier.kt$UpdatesNotifier$(context.getString(R.string.automatically_install_updates_notification_text)) ArgumentListWrapping:UpdatesWorkManager.kt$UpdatesWorkManager$( UPDATES_WORK_NAME, existingPeriodicWorkPolicy, buildPeriodicWorkRequest(interval) ) - ArgumentListWrapping:ValidateAppAgeLimitUseCase.kt$ValidateAppAgeLimitUseCase$( "${app.packageName} - Content rating: ${app.contentRating.id} \n" + "Selected age group: $ageGroup \nAllowed content rating: $allowedContentRating") BlockCommentInitialStarAlignment:SystemAppsUpdatesRepository.kt$SystemAppsUpdatesRepository$/* TODO manually add new supported android version when they will be supported. * VANILLA_ICE_CREAM (A15) => https://gitlab.e.foundation/e/os/backlog/-/issues/2772 * BAKLAVA (A16) => https://gitlab.e.foundation/e/os/backlog/-/issues/2773 */ ChainWrapping:DownloadManagerUtils.kt$DownloadManagerUtils$|| ChainWrapping:HomeViewModel.kt$HomeViewModel$|| - ChainWrapping:NetworkHandler.kt$&& ChainWrapping:ValidateAppAgeLimitUseCase.kt$ValidateAppAgeLimitUseCase$&& EmptyCatchBlock:NativeDeviceInfoProviderModule.kt$NativeDeviceInfoProviderModule${ } EmptyFunctionBlock:CleanApkAuthenticator.kt$CleanApkAuthenticator${} - FinalNewline:ContentRatingValidity.kt$foundation.e.apps.domain.model.ContentRatingValidity.kt FunctionReturnTypeSpacing:AppPrivacyInfoRepositoryImpl.kt$AppPrivacyInfoRepositoryImpl$private suspend fun fetchReports(packageName: String) : List<Report> FunctionReturnTypeSpacing:CategoryApiImpl.kt$CategoryApiImpl$override suspend fun getCategoriesList(type: CategoryType) : List<CategoriesResponse> - FunctionStartOfBodySpacing:RetrofitApiModule.kt$RetrofitApiModule$@Singleton @Provides fun provideCleanApkApi( okHttpClient: OkHttpClient, @Named("gsonCustomAdapter") gson: Gson ): CleanApkRetrofit - Indentation:AppInstallProcessor.kt$AppInstallProcessor$ - Indentation:AuthDataProvider.kt$AuthDataProvider$ - Indentation:ContentRatingValidity.kt$ContentRatingValidity$ - Indentation:DownloadManagerUtils.kt$DownloadManagerUtils$ - Indentation:DumpAppInstallStatusReceiver.kt$DumpAppInstallStatusReceiver$ - Indentation:InstallAppWorker.kt$InstallAppWorker$ - Indentation:MainActivity.kt$MainActivity$ - Indentation:NetworkHandler.kt$ - Indentation:PwaManager.kt$PwaManager$ - Indentation:RetrofitApiModule.kt$RetrofitApiModule$ - Indentation:Source.kt$Source$ - Indentation:SystemAppsUpdatesRepository.kt$SystemAppsUpdatesRepository$ - Indentation:UpdatesManagerImpl.kt$UpdatesManagerImpl$ - Indentation:ValidateAppAgeLimitUseCase.kt$ValidateAppAgeLimitUseCase$ InstanceOfCheckForException:GPlayHttpClient.kt$GPlayHttpClient$e is SocketTimeoutException InvalidPackageDeclaration:Trackers.kt$package foundation.e.apps.data.exodus LargeClass:ApplicationFragment.kt$ApplicationFragment : TimeoutFragment @@ -120,7 +99,6 @@ MaxLineLength:FDroidRepository.kt$FDroidRepository$if MaxLineLength:FDroidRepository.kt$FDroidRepository$override suspend MaxLineLength:GoogleLoginManager.kt$GoogleLoginManager$authData = AuthHelper.build(email, aasToken, tokenType = AuthHelper.Token.AAS, properties = nativeDeviceProperty) - MaxLineLength:MainActivity.kt$MainActivity$if MaxLineLength:MainActivity.kt$MainActivity$is InternalException.AppNotPurchased -> showSnackbarMessage(getString(R.string.message_app_available_later)) MaxLineLength:MainActivityViewModel.kt$MainActivityViewModel$fusedDownload.source == it.source && (fusedDownload.packageName == it.package_name || fusedDownload.id == it._id) MaxLineLength:PrivacyScoreRepositoryImpl.kt$PrivacyScoreRepositoryImpl$return if (numberOfTrackers > THRESHOLD_OF_NON_ZERO_TRACKER_SCORE) MIN_TRACKER_SCORE else MAX_TRACKER_SCORE - numberOfTrackers @@ -193,7 +171,6 @@ MultiLineIfElse:SearchViewModel.kt$SearchViewModel$searchRepository.getSearchSuggestions(it) MultiLineIfElse:SettingsFragment.kt$SettingsFragment$true MultiLineIfElse:ValidateAppAgeLimitUseCase.kt$ValidateAppAgeLimitUseCase$fetchedContentRating - NewLineAtEndOfFile:ContentRatingValidity.kt$foundation.e.apps.domain.model.ContentRatingValidity.kt NoBlankLineBeforeRbrace:AgeGroupApi.kt$AgeGroupApi$ NoBlankLineBeforeRbrace:AgeRatingProvider.kt$AgeRatingProvider$ NoBlankLineBeforeRbrace:ApplicationListRVAdapter.kt$ApplicationListRVAdapter$ @@ -207,7 +184,6 @@ NoBlankLineBeforeRbrace:UpdatesManagerRepository.kt$UpdatesManagerRepository$ NoBlankLineBeforeRbrace:ValidateAppAgeLimitUseCase.kt$ValidateAppAgeLimitUseCase$ NoConsecutiveBlankLines:ApplicationRepository.kt$ApplicationRepository$ - NoConsecutiveBlankLines:AuthDataProvider.kt$ NoConsecutiveBlankLines:CategoriesViewModel.kt$CategoriesViewModel$ NoConsecutiveBlankLines:CleanApkSearchHelper.kt$ NoConsecutiveBlankLines:CommonUtilsModule.kt$CommonUtilsModule$ @@ -247,7 +223,6 @@ NoMultipleSpaces:PrivacyInfoViewModel.kt$PrivacyInfoViewModel$ NoMultipleSpaces:SearchViewModel.kt$SearchViewModel$ NoSemicolons:AgeRatingProvider.kt$AgeRatingProvider.UriCode.AgeRating$; - NoSemicolons:AuthDataProvider.kt$AuthDataProvider$; NoTrailingSpaces:DownloadInfoApiImpl.kt$DownloadInfoApiImpl$ NoUnusedImports:AppLoungePackageManager.kt$foundation.e.apps.install.pkg.AppLoungePackageManager.kt NoUnusedImports:AppManagerImpl.kt$foundation.e.apps.data.install.AppManagerImpl.kt @@ -266,9 +241,6 @@ NoUnusedImports:UpdatesFragment.kt$foundation.e.apps.ui.updates.UpdatesFragment.kt NoUnusedImports:UpdatesNotifier.kt$foundation.e.apps.install.updates.UpdatesNotifier.kt NoWildcardImports:SystemAppsUpdatesRepository.kt$import foundation.e.apps.data.gitlab.UpdatableSystemAppsApi.* - ParameterListWrapping:AuthDataProvider.kt$AuthDataProvider$(uri: Uri, projection: Array<String>?, selection: String?, selectionArgs: Array<String>?, sortOrder: String?) - ParameterListWrapping:AuthDataProvider.kt$AuthDataProvider$(uri: Uri, values: ContentValues?, selection: String?, selectionArgs: Array<String>?) - ParameterListWrapping:ContentRatingValidity.kt$ContentRatingValidity$(val isValid: Boolean, val contentRating: ContentRating? = null, val requestPin: Boolean = false) PrintStackTrace:AppPrivacyInfoRepositoryImpl.kt$AppPrivacyInfoRepositoryImpl$e PrintStackTrace:CommonUtilsModule.kt$CommonUtilsModule$e PrintStackTrace:EcloudRepository.kt$EcloudRepository$e @@ -303,7 +275,6 @@ SpacingAroundComma:HomeFragment.kt$HomeFragment$, SpacingAroundComma:StorageComputer.kt$StorageComputer$, SpacingAroundCurly:ApplicationListRVAdapter.kt$ApplicationListRVAdapter${ - SpacingAroundCurly:RetrofitApiModule.kt$RetrofitApiModule${ SpacingAroundKeyword:SystemAppsUpdatesRepository.kt$SystemAppsUpdatesRepository$catch SpacingAroundParens:NetworkStatusManager.kt$NetworkStatusManager$( SpacingBetweenDeclarationsWithAnnotations:ApplicationDialogFragment.kt$ApplicationDialogFragment$@DrawableRes private var drawableResId: Int = -1 @@ -379,13 +350,9 @@ WildcardImport:SystemAppsUpdatesRepository.kt$import foundation.e.apps.data.gitlab.UpdatableSystemAppsApi.* Wrapping:AppInstallProcessor.kt$AppInstallProcessor$( Wrapping:ApplicationDeserializer.kt$ApplicationDeserializer$( - Wrapping:AuthDataProvider.kt$AuthDataProvider$( - Wrapping:ContentRatingValidity.kt$ContentRatingValidity$( - Wrapping:InstallAppWorker.kt$InstallAppWorker$( Wrapping:MainActivity.kt$MainActivity$( Wrapping:MainActivity.kt$MainActivity$(this, object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { if (isInitialScreen()) { resetIgnoreStatusForSessionRefresh() finish() } else { // Let the system handle the back press isEnabled = false onBackPressedDispatcher.onBackPressed() } } }) Wrapping:SearchFragment.kt$SearchFragment$Fragment(R.layout.fragment_search), ApplicationInstaller, SearchViewHandler.SearchViewListener Wrapping:SystemAppsUpdatesRepository.kt$SystemAppsUpdatesRepository$( - Wrapping:ValidateAppAgeLimitUseCase.kt$ValidateAppAgeLimitUseCase$( diff --git a/app/src/main/java/foundation/e/apps/data/NetworkHandler.kt b/app/src/main/java/foundation/e/apps/data/NetworkHandler.kt index 6cadc578d..3e2e147e7 100644 --- a/app/src/main/java/foundation/e/apps/data/NetworkHandler.kt +++ b/app/src/main/java/foundation/e/apps/data/NetworkHandler.kt @@ -113,8 +113,10 @@ private fun calculateRetryDelay(retryDelayInSecond: Int) = private fun shouldRetry(result: T, retryDelayInSecond: Int) = - result is ResultSupreme<*> && !result.isSuccess() && retryDelayInSecond < MAX_RETRY_DELAY_IN_SECONDS - && isExceptionAllowedToRetry(result.exception) + result is ResultSupreme<*> && + !result.isSuccess() && + retryDelayInSecond < MAX_RETRY_DELAY_IN_SECONDS && + isExceptionAllowedToRetry(result.exception) private fun isExceptionAllowedToRetry(exception: Exception?): Boolean { // Here, (value != true) is used, because value can be null also and we want to allow retry for null message diff --git a/app/src/main/java/foundation/e/apps/data/enums/Source.kt b/app/src/main/java/foundation/e/apps/data/enums/Source.kt index 6bafbc435..a62bf8b39 100644 --- a/app/src/main/java/foundation/e/apps/data/enums/Source.kt +++ b/app/src/main/java/foundation/e/apps/data/enums/Source.kt @@ -27,8 +27,8 @@ enum class Source { return when (this) { PLAY_STORE -> "" else -> name.lowercase() - .split("_") - .joinToString(" ") { it.replaceFirstChar(Char::uppercase) } + .split("_") + .joinToString(" ") { it.replaceFirstChar(Char::uppercase) } } } 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 556608c9f..b05406d49 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 @@ -92,7 +92,8 @@ class SystemAppsUpdatesRepository @Inject constructor( } } - private fun isEligibleToFetchAppListFromTest(systemName: String) = systemName.isBlank() || + private fun isEligibleToFetchAppListFromTest(systemName: String) = + systemName.isBlank() || systemName.contains("beta") || systemName.contains("rc") || systemName.contains("test") @@ -104,9 +105,9 @@ class SystemAppsUpdatesRepository @Inject constructor( ): Boolean { return systemAppInfo.run { sdkLevel < minSdk || - blockedAndroid?.contains(sdkLevel) == true || - blockedDevices?.contains(device) == true || - blockedDevices?.contains("${device}@${sdkLevel}") == true + blockedAndroid?.contains(sdkLevel) == true || + blockedDevices?.contains(device) == true || + blockedDevices?.contains("${device}@${sdkLevel}") == true } } 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 986bd2a83..104fb695e 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 @@ -298,15 +298,15 @@ class UpdatesManagerImpl @Inject constructor( packageName: String, appsAndSignatures: HashMap ) { - val apps = applicationRepository.getApplicationDetails(listOf(packageName), Source.OPEN_SOURCE).first - if (apps.isEmpty()) { - return - } + val apps = applicationRepository.getApplicationDetails(listOf(packageName), Source.OPEN_SOURCE).first + if (apps.isEmpty()) { + return + } - if (apps[0].package_name.isBlank()) { - return - } - appsAndSignatures[packageName] = getPgpSignature(apps[0]) + if (apps[0].package_name.isBlank()) { + return + } + appsAndSignatures[packageName] = getPgpSignature(apps[0]) } private suspend fun getPgpSignature(cleanApkApplication: Application): String { @@ -322,8 +322,8 @@ class UpdatesManagerImpl @Inject constructor( Timber.i( "Signature calculated for : ${cleanApkApplication.package_name}, " + - "signature version: $installedVersionSignature, " + - "is sig blank: ${pgpSignature.isBlank()}" + "signature version: $installedVersionSignature, " + + "is sig blank: ${pgpSignature.isBlank()}" ) return pgpSignature diff --git a/app/src/main/java/foundation/e/apps/di/network/RetrofitApiModule.kt b/app/src/main/java/foundation/e/apps/di/network/RetrofitApiModule.kt index 90be99704..cf0807d06 100644 --- a/app/src/main/java/foundation/e/apps/di/network/RetrofitApiModule.kt +++ b/app/src/main/java/foundation/e/apps/di/network/RetrofitApiModule.kt @@ -49,8 +49,7 @@ class RetrofitApiModule { fun provideCleanApkApi( okHttpClient: OkHttpClient, @Named("gsonCustomAdapter") gson: Gson - ): CleanApkRetrofit - { + ): CleanApkRetrofit { return Retrofit.Builder() .baseUrl(CleanApkRetrofit.BASE_URL) .client(okHttpClient) diff --git a/app/src/main/java/foundation/e/apps/domain/ValidateAppAgeLimitUseCase.kt b/app/src/main/java/foundation/e/apps/domain/ValidateAppAgeLimitUseCase.kt index 17ded1196..ab94f3cd2 100644 --- a/app/src/main/java/foundation/e/apps/domain/ValidateAppAgeLimitUseCase.kt +++ b/app/src/main/java/foundation/e/apps/domain/ValidateAppAgeLimitUseCase.kt @@ -99,8 +99,8 @@ class ValidateAppAgeLimitUseCase @Inject constructor( private fun isCleanApkApp(app: AppInstall): Boolean { return app.id.isNotBlank() - && (app.source == Source.PWA || app.source == Source.OPEN_SOURCE) - && app.type == Type.NATIVE + && (app.source == Source.PWA || app.source == Source.OPEN_SOURCE) + && app.type == Type.NATIVE } private fun isWhiteListedCleanApkApp(app: AppInstall): Boolean { @@ -129,7 +129,8 @@ class ValidateAppAgeLimitUseCase @Inject constructor( Timber.d( "${app.packageName} - Content rating: ${app.contentRating.id} \n" + - "Selected age group: $ageGroup \nAllowed content rating: $allowedContentRating") + "Selected age group: $ageGroup \nAllowed content rating: $allowedContentRating" + ) val isValid = isValidAppAgeRating(app, allowedContentRating) return ResultSupreme.Success( @@ -177,7 +178,7 @@ class ValidateAppAgeLimitUseCase @Inject constructor( } return app.contentRating.title.isNotEmpty() && - app.contentRating.id.isNotEmpty() + app.contentRating.id.isNotEmpty() } private suspend fun isParentalGuidance(app: AppInstall): Boolean { diff --git a/app/src/main/java/foundation/e/apps/domain/model/ContentRatingValidity.kt b/app/src/main/java/foundation/e/apps/domain/model/ContentRatingValidity.kt index 46b3d53b1..25f6ee484 100644 --- a/app/src/main/java/foundation/e/apps/domain/model/ContentRatingValidity.kt +++ b/app/src/main/java/foundation/e/apps/domain/model/ContentRatingValidity.kt @@ -21,5 +21,8 @@ package foundation.e.apps.domain.model import com.aurora.gplayapi.data.models.ContentRating -data class ContentRatingValidity(val isValid: Boolean, val contentRating: ContentRating? = null, - val requestPin: Boolean = false) \ No newline at end of file +data class ContentRatingValidity( + val isValid: Boolean, + val contentRating: ContentRating? = null, + val requestPin: Boolean = false +) diff --git a/app/src/main/java/foundation/e/apps/install/download/DownloadManagerUtils.kt b/app/src/main/java/foundation/e/apps/install/download/DownloadManagerUtils.kt index 4c0c1fe0a..aad71f538 100644 --- a/app/src/main/java/foundation/e/apps/install/download/DownloadManagerUtils.kt +++ b/app/src/main/java/foundation/e/apps/install/download/DownloadManagerUtils.kt @@ -145,7 +145,7 @@ class DownloadManagerUtils @Inject constructor( handleDownloadFailed(appInstall, downloadId) Timber.e( "Download failed for ${appInstall.packageName}: " + - "Download Status: ${isDownloadSuccessful.second}" + "Download Status: ${isDownloadSuccessful.second}" ) } diff --git a/app/src/main/java/foundation/e/apps/install/pkg/PwaManager.kt b/app/src/main/java/foundation/e/apps/install/pkg/PwaManager.kt index 579939606..c1b63a109 100644 --- a/app/src/main/java/foundation/e/apps/install/pkg/PwaManager.kt +++ b/app/src/main/java/foundation/e/apps/install/pkg/PwaManager.kt @@ -65,7 +65,10 @@ class PwaManager @Inject constructor( fun getPwaStatus(application: Application): Status { context.contentResolver.query( Uri.parse(PWA_PLAYER), - null, null, null, null + null, + null, + null, + null )?.let { cursor -> cursor.moveToFirst() while (!cursor.isAfterLast) { @@ -92,7 +95,7 @@ class PwaManager @Inject constructor( return true } } catch (e: Exception) { - Timber.w(e) + Timber.w(e) } return false diff --git a/app/src/main/java/foundation/e/apps/install/workmanager/AppInstallProcessor.kt b/app/src/main/java/foundation/e/apps/install/workmanager/AppInstallProcessor.kt index c4e7ea8b1..76d139825 100644 --- a/app/src/main/java/foundation/e/apps/install/workmanager/AppInstallProcessor.kt +++ b/app/src/main/java/foundation/e/apps/install/workmanager/AppInstallProcessor.kt @@ -390,9 +390,10 @@ class AppInstallProcessor @Inject constructor( .transformWhile { emit(it) isInstallRunning(it) - }.collect { latestFusedDownload -> - handleFusedDownload(latestFusedDownload, appInstall) - } + } + .collect { latestFusedDownload -> + handleFusedDownload(latestFusedDownload, appInstall) + } } /** diff --git a/app/src/main/java/foundation/e/apps/install/workmanager/InstallAppWorker.kt b/app/src/main/java/foundation/e/apps/install/workmanager/InstallAppWorker.kt index 8fb976c63..42de78741 100644 --- a/app/src/main/java/foundation/e/apps/install/workmanager/InstallAppWorker.kt +++ b/app/src/main/java/foundation/e/apps/install/workmanager/InstallAppWorker.kt @@ -80,8 +80,7 @@ class InstallAppWorker @AssistedInject constructor( .createCancelPendingIntent(id) val notificationManager = - context.getSystemService(Context.NOTIFICATION_SERVICE) as - NotificationManager + context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager val mChannel = NotificationChannel( channelId, @@ -111,7 +110,8 @@ class InstallAppWorker @AssistedInject constructor( } else { ForegroundInfo( atomicInteger.getAndIncrement(), - notification) + notification + ) } } } diff --git a/app/src/main/java/foundation/e/apps/microg/AuthDataProvider.kt b/app/src/main/java/foundation/e/apps/microg/AuthDataProvider.kt index 6632486df..fb8b2f62f 100644 --- a/app/src/main/java/foundation/e/apps/microg/AuthDataProvider.kt +++ b/app/src/main/java/foundation/e/apps/microg/AuthDataProvider.kt @@ -58,12 +58,19 @@ class AuthDataProvider : ContentProvider() { return true } - override fun query(uri: Uri, projection: Array?, selection: String?, - selectionArgs: Array?, sortOrder: String?): Cursor { - - if (context?.checkCallingOrSelfPermission( + override fun query( + uri: Uri, + projection: Array?, + selection: String?, + selectionArgs: Array?, + sortOrder: String? + ): Cursor { + + if ( + context?.checkCallingOrSelfPermission( AUTH_DATA_PROVIDER_PERMISSION - ) != PackageManager.PERMISSION_GRANTED) { + ) != PackageManager.PERMISSION_GRANTED + ) { throw SecurityException("Permission denied: $AUTH_DATA_PROVIDER_PERMISSION required") } @@ -95,8 +102,12 @@ class AuthDataProvider : ContentProvider() { return cursor } - override fun update(uri: Uri, values: ContentValues?, selection: String?, - selectionArgs: Array?): Int { + override fun update( + uri: Uri, + values: ContentValues?, + selection: String?, + selectionArgs: Array? + ): Int { throw UnsupportedOperationException("Update operation is not supported by the provider") } @@ -105,7 +116,7 @@ class AuthDataProvider : ContentProvider() { } override fun getType(uri: Uri): String? { - return "vnd.android.cursor.dir/vnd.foundation.e.apps.authdata.provider.strings"; + return "vnd.android.cursor.dir/vnd.foundation.e.apps.authdata.provider.strings" } override fun insert(uri: Uri, values: ContentValues?): Uri { @@ -116,4 +127,3 @@ class AuthDataProvider : ContentProvider() { const val AUTH_DATA_PROVIDER_PERMISSION = "foundation.e.apps.permission.AUTH_DATA_PROVIDER" } } - diff --git a/app/src/main/java/foundation/e/apps/receivers/DumpAppInstallStatusReceiver.kt b/app/src/main/java/foundation/e/apps/receivers/DumpAppInstallStatusReceiver.kt index d8b859b4f..74631ffe7 100644 --- a/app/src/main/java/foundation/e/apps/receivers/DumpAppInstallStatusReceiver.kt +++ b/app/src/main/java/foundation/e/apps/receivers/DumpAppInstallStatusReceiver.kt @@ -71,9 +71,9 @@ class DumpAppInstallStatusReceiver : BroadcastReceiver() { val batteryLevel = bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY) return "Available Space: ${StorageComputer.calculateAvailableDiskSpace()}" + - "\nInternet: ${ - NetworkStatusManager.init(context).value - }\nBattery level: $batteryLevel" + "\nInternet: ${ + NetworkStatusManager.init(context).value + }\nBattery level: $batteryLevel" } return null 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 c543c5865..74e346889 100644 --- a/app/src/main/java/foundation/e/apps/ui/MainActivity.kt +++ b/app/src/main/java/foundation/e/apps/ui/MainActivity.kt @@ -87,16 +87,18 @@ class MainActivity : AppCompatActivity() { private const val SESSION_DIALOG_TAG = "session_dialog" } - private val parentalControlAuthenticatorLauncher = registerForActivityResult( - ActivityResultContracts.StartActivityForResult()) { result -> - if (result.resultCode == RESULT_OK) { - val authenticationResult = result.data?.getBooleanExtra( - ParentalControlAuthenticator.KEY_PARENTAL_CONTROL_RESULT, false) == true - ParentalControlAuthenticator.setResult(authenticationResult) - } else { - ParentalControlAuthenticator.setResult(false) - } - } + private val parentalControlAuthenticatorLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { result -> + if (result.resultCode == RESULT_OK) { + val authenticationResult = result.data?.getBooleanExtra( + ParentalControlAuthenticator.KEY_PARENTAL_CONTROL_RESULT, false + ) == true + ParentalControlAuthenticator.setResult(authenticationResult) + } else { + ParentalControlAuthenticator.setResult(false) + } + } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -568,16 +570,20 @@ class MainActivity : AppCompatActivity() { private fun setupBottomNavItemSelectedListener( bottomNavigationView: BottomNavigationView, - navHostFragment: NavHostFragment, - navController: NavController - ) { - bottomNavigationView.setOnItemSelectedListener { - val fragment = - navHostFragment.childFragmentManager.fragments.find { fragment -> fragment is SettingsFragment } - if (bottomNavigationView.selectedItemId == R.id.settingsFragment && fragment is SettingsFragment && !fragment.isAnyAppSourceSelected()) { - ApplicationDialogFragment( - title = "", - message = getString(R.string.select_one_source_of_applications), + navHostFragment: NavHostFragment, + navController: NavController + ) { + bottomNavigationView.setOnItemSelectedListener { + val fragment = navHostFragment.childFragmentManager.fragments + .find { fragment -> fragment is SettingsFragment } + if ( + bottomNavigationView.selectedItemId == R.id.settingsFragment && + fragment is SettingsFragment && + !fragment.isAnyAppSourceSelected() + ) { + ApplicationDialogFragment( + title = "", + message = getString(R.string.select_one_source_of_applications), positiveButtonText = getString(R.string.ok) ).show(supportFragmentManager, TAG) return@setOnItemSelectedListener false -- GitLab From 96dfafb672ad79fb596c8f65a077bef8078df25e Mon Sep 17 00:00:00 2001 From: Jonathan Klee Date: Fri, 5 Dec 2025 16:29:43 +0100 Subject: [PATCH 2/2] style: fix unused imports --- app/detekt-baseline.xml | 16 ---------------- .../foundation/e/apps/data/DownloadManager.kt | 1 - .../e/apps/data/application/home/HomeApi.kt | 1 - .../e/apps/data/application/home/HomeApiImpl.kt | 1 - .../repositories/CleanApkAppsRepository.kt | 1 - .../repositories/PrivacyScoreRepositoryImpl.kt | 1 - .../e/apps/data/install/AppManagerImpl.kt | 2 -- .../e/apps/data/install/AppManagerWrapper.kt | 2 -- .../e/apps/di/NotificationManagerModule.kt | 2 -- .../apps/install/pkg/AppLoungePackageManager.kt | 1 - .../e/apps/install/updates/UpdatesNotifier.kt | 1 - .../e/apps/ui/MainActivityViewModel.kt | 1 - .../ui/applicationlist/ApplicationDiffUtil.kt | 1 - .../e/apps/ui/purchase/AppPurchaseFragment.kt | 1 - .../setup/signin/google/GoogleSignInFragment.kt | 1 - .../e/apps/ui/updates/UpdatesFragment.kt | 1 - .../apps/utils/CustomUncaughtExceptionHandler.kt | 1 - 17 files changed, 35 deletions(-) diff --git a/app/detekt-baseline.xml b/app/detekt-baseline.xml index 056538f4c..d8771b24f 100644 --- a/app/detekt-baseline.xml +++ b/app/detekt-baseline.xml @@ -224,22 +224,6 @@ NoMultipleSpaces:SearchViewModel.kt$SearchViewModel$ NoSemicolons:AgeRatingProvider.kt$AgeRatingProvider.UriCode.AgeRating$; NoTrailingSpaces:DownloadInfoApiImpl.kt$DownloadInfoApiImpl$ - NoUnusedImports:AppLoungePackageManager.kt$foundation.e.apps.install.pkg.AppLoungePackageManager.kt - NoUnusedImports:AppManagerImpl.kt$foundation.e.apps.data.install.AppManagerImpl.kt - NoUnusedImports:AppManagerWrapper.kt$foundation.e.apps.data.install.AppManagerWrapper.kt - NoUnusedImports:AppPurchaseFragment.kt$foundation.e.apps.ui.purchase.AppPurchaseFragment.kt - NoUnusedImports:ApplicationDiffUtil.kt$foundation.e.apps.ui.applicationlist.ApplicationDiffUtil.kt - NoUnusedImports:CleanApkAppsRepository.kt$foundation.e.apps.data.cleanapk.repositories.CleanApkAppsRepository.kt - NoUnusedImports:CustomUncaughtExceptionHandler.kt$foundation.e.apps.utils.CustomUncaughtExceptionHandler.kt - NoUnusedImports:DownloadManager.kt$foundation.e.apps.data.DownloadManager.kt - NoUnusedImports:GoogleSignInFragment.kt$foundation.e.apps.ui.setup.signin.google.GoogleSignInFragment.kt - NoUnusedImports:HomeApi.kt$foundation.e.apps.data.application.home.HomeApi.kt - NoUnusedImports:HomeApiImpl.kt$foundation.e.apps.data.application.home.HomeApiImpl.kt - NoUnusedImports:MainActivityViewModel.kt$foundation.e.apps.ui.MainActivityViewModel.kt - NoUnusedImports:NotificationManagerModule.kt$foundation.e.apps.di.NotificationManagerModule.kt - NoUnusedImports:PrivacyScoreRepositoryImpl.kt$foundation.e.apps.data.exodus.repositories.PrivacyScoreRepositoryImpl.kt - NoUnusedImports:UpdatesFragment.kt$foundation.e.apps.ui.updates.UpdatesFragment.kt - NoUnusedImports:UpdatesNotifier.kt$foundation.e.apps.install.updates.UpdatesNotifier.kt NoWildcardImports:SystemAppsUpdatesRepository.kt$import foundation.e.apps.data.gitlab.UpdatableSystemAppsApi.* PrintStackTrace:AppPrivacyInfoRepositoryImpl.kt$AppPrivacyInfoRepositoryImpl$e PrintStackTrace:CommonUtilsModule.kt$CommonUtilsModule$e diff --git a/app/src/main/java/foundation/e/apps/data/DownloadManager.kt b/app/src/main/java/foundation/e/apps/data/DownloadManager.kt index 330e7ec01..51705372e 100644 --- a/app/src/main/java/foundation/e/apps/data/DownloadManager.kt +++ b/app/src/main/java/foundation/e/apps/data/DownloadManager.kt @@ -21,7 +21,6 @@ import android.app.DownloadManager import android.content.Context import android.database.Cursor import android.net.Uri -import android.os.Environment import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.OpenForTesting import foundation.e.apps.R diff --git a/app/src/main/java/foundation/e/apps/data/application/home/HomeApi.kt b/app/src/main/java/foundation/e/apps/data/application/home/HomeApi.kt index c32a1c139..51185eb28 100644 --- a/app/src/main/java/foundation/e/apps/data/application/home/HomeApi.kt +++ b/app/src/main/java/foundation/e/apps/data/application/home/HomeApi.kt @@ -19,7 +19,6 @@ package foundation.e.apps.data.application.home import androidx.lifecycle.LiveData -import com.aurora.gplayapi.data.models.AuthData import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.application.data.Home diff --git a/app/src/main/java/foundation/e/apps/data/application/home/HomeApiImpl.kt b/app/src/main/java/foundation/e/apps/data/application/home/HomeApiImpl.kt index 6bc472970..8cbd454d0 100644 --- a/app/src/main/java/foundation/e/apps/data/application/home/HomeApiImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/application/home/HomeApiImpl.kt @@ -24,7 +24,6 @@ import foundation.e.apps.data.ResultSupreme import foundation.e.apps.data.Stores import foundation.e.apps.data.application.ApplicationRepository import foundation.e.apps.data.application.data.Home -import foundation.e.apps.data.application.search.SearchRepository import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Source import foundation.e.apps.data.handleNetworkResult 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 8745422db..2ba0ebf1f 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 @@ -21,7 +21,6 @@ package foundation.e.apps.data.cleanapk.repositories import foundation.e.apps.data.application.ApplicationRepository import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.application.data.Home -import foundation.e.apps.data.application.search.SearchRepository import foundation.e.apps.data.application.search.SearchSuggestion import foundation.e.apps.data.cleanapk.CleanApkDownloadInfoFetcher import foundation.e.apps.data.cleanapk.CleanApkRetrofit diff --git a/app/src/main/java/foundation/e/apps/data/exodus/repositories/PrivacyScoreRepositoryImpl.kt b/app/src/main/java/foundation/e/apps/data/exodus/repositories/PrivacyScoreRepositoryImpl.kt index 2a84fc5f9..94a08f07d 100644 --- a/app/src/main/java/foundation/e/apps/data/exodus/repositories/PrivacyScoreRepositoryImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/exodus/repositories/PrivacyScoreRepositoryImpl.kt @@ -20,7 +20,6 @@ package foundation.e.apps.data.exodus.repositories import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.blockedApps.BlockedAppRepository -import foundation.e.apps.di.CommonUtilsModule import javax.inject.Inject import javax.inject.Singleton import kotlin.math.ceil 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 17651d495..5bfb81e8b 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 @@ -23,9 +23,7 @@ import android.app.NotificationChannel import android.app.NotificationManager import android.content.Context import android.net.Uri -import android.os.Build import android.os.Environment -import androidx.annotation.RequiresApi import androidx.lifecycle.LiveData import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.R 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 f17ebdec5..81d54847a 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 @@ -1,8 +1,6 @@ package foundation.e.apps.data.install import android.content.Context -import android.os.Build -import androidx.annotation.RequiresApi import androidx.lifecycle.LiveData import foundation.e.apps.OpenForTesting import foundation.e.apps.data.Constants.MIN_VALID_RATING diff --git a/app/src/main/java/foundation/e/apps/di/NotificationManagerModule.kt b/app/src/main/java/foundation/e/apps/di/NotificationManagerModule.kt index fa13002d4..cfe68f818 100644 --- a/app/src/main/java/foundation/e/apps/di/NotificationManagerModule.kt +++ b/app/src/main/java/foundation/e/apps/di/NotificationManagerModule.kt @@ -22,8 +22,6 @@ package foundation.e.apps.di import android.app.NotificationChannel import android.app.NotificationManager import android.content.Context -import android.os.Build -import androidx.annotation.RequiresApi import dagger.Module import dagger.Provides import dagger.hilt.InstallIn diff --git a/app/src/main/java/foundation/e/apps/install/pkg/AppLoungePackageManager.kt b/app/src/main/java/foundation/e/apps/install/pkg/AppLoungePackageManager.kt index 1f519e41a..746477a7a 100644 --- a/app/src/main/java/foundation/e/apps/install/pkg/AppLoungePackageManager.kt +++ b/app/src/main/java/foundation/e/apps/install/pkg/AppLoungePackageManager.kt @@ -32,7 +32,6 @@ import android.os.Build import androidx.core.content.pm.PackageInfoCompat import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.OpenForTesting -import foundation.e.apps.data.application.search.SearchRepository import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.Status import foundation.e.apps.data.enums.Type diff --git a/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt b/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt index ba7fbb5c5..74bd3eefe 100644 --- a/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt +++ b/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt @@ -25,7 +25,6 @@ import android.app.PendingIntent import android.content.Context import android.content.Intent import android.content.pm.PackageManager -import android.os.Build import androidx.core.app.ActivityCompat import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat 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 79dfb4982..201afaa13 100644 --- a/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt @@ -34,7 +34,6 @@ import foundation.e.apps.data.application.ApplicationRepository import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.blockedApps.BlockedAppRepository import foundation.e.apps.data.ecloud.EcloudRepository -import foundation.e.apps.data.enums.Source import foundation.e.apps.data.enums.User import foundation.e.apps.data.enums.isInitialized import foundation.e.apps.data.enums.isUnFiltered diff --git a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationDiffUtil.kt b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationDiffUtil.kt index aea640d79..b2d87e9c3 100644 --- a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationDiffUtil.kt +++ b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationDiffUtil.kt @@ -19,7 +19,6 @@ package foundation.e.apps.ui.applicationlist import androidx.recyclerview.widget.DiffUtil import foundation.e.apps.data.application.data.Application -import foundation.e.apps.di.CommonUtilsModule.LIST_OF_NULL class ApplicationDiffUtil : DiffUtil.ItemCallback() { override fun areItemsTheSame(oldItem: Application, newItem: Application): Boolean { diff --git a/app/src/main/java/foundation/e/apps/ui/purchase/AppPurchaseFragment.kt b/app/src/main/java/foundation/e/apps/ui/purchase/AppPurchaseFragment.kt index 218da4fcc..3b27730bf 100644 --- a/app/src/main/java/foundation/e/apps/ui/purchase/AppPurchaseFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/purchase/AppPurchaseFragment.kt @@ -1,7 +1,6 @@ package foundation.e.apps.ui.purchase import android.annotation.SuppressLint -import android.os.Build import android.os.Bundle import android.view.LayoutInflater import android.view.View 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 ae6f987d4..1bab86ff5 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 @@ -19,7 +19,6 @@ package foundation.e.apps.ui.setup.signin.google import android.annotation.SuppressLint -import android.os.Build import android.os.Bundle import android.view.View import android.webkit.CookieManager 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 de4ca4a5f..f85576e15 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 @@ -63,7 +63,6 @@ import foundation.e.apps.utils.toast import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.filter import kotlinx.coroutines.launch -import timber.log.Timber import java.util.Locale import javax.inject.Inject diff --git a/app/src/main/java/foundation/e/apps/utils/CustomUncaughtExceptionHandler.kt b/app/src/main/java/foundation/e/apps/utils/CustomUncaughtExceptionHandler.kt index 659d5f369..b6195783e 100644 --- a/app/src/main/java/foundation/e/apps/utils/CustomUncaughtExceptionHandler.kt +++ b/app/src/main/java/foundation/e/apps/utils/CustomUncaughtExceptionHandler.kt @@ -25,7 +25,6 @@ import android.app.NotificationManager import android.content.Context import android.content.pm.PackageManager import android.database.sqlite.SQLiteFullException -import android.os.Build import androidx.annotation.StringRes import androidx.core.app.ActivityCompat import androidx.core.app.NotificationCompat -- GitLab