From 032023b1794d1b180aa3921a55869399b0e7798e Mon Sep 17 00:00:00 2001 From: Hasib Prince Date: Sat, 24 Jun 2023 16:55:23 +0600 Subject: [PATCH 1/2] refactor: remove unused code --- .../java/foundation/e/apps/data/Result.kt | 7 ---- .../cleanapk/CleanApkAppDetailsRetrofit.kt | 5 --- .../e/apps/data/exodus/TrackerApiResponse.kt | 6 --- .../e/apps/data/fused/FusedApiImpl.kt | 38 +++++++++--------- .../e/apps/data/fusedDownload/FileManager.kt | 1 - .../data/fusedDownload/FusedManagerImpl.kt | 2 - .../fusedDownload/FusedManagerRepository.kt | 8 ---- .../e/apps/data/login/LoginSourceGPlay.kt | 40 ------------------- .../e/apps/data/preference/DataStoreModule.kt | 10 ----- .../e/apps/data/updates/UpdatesManagerImpl.kt | 2 - .../foundation/e/apps/di/CommonUtilsModule.kt | 3 -- .../install/download/DownloadManagerBR.kt | 4 -- .../install/download/DownloadManagerUtils.kt | 1 - .../notification/NotificationManagerUtils.kt | 26 ------------ .../e/apps/install/pkg/InstallerService.kt | 12 ------ .../install/pkg/PackageInstallerService.kt | 2 - .../e/apps/install/pkg/PkgManagerModule.kt | 6 --- .../updates/UpdatesBroadcastReceiver.kt | 3 -- .../e/apps/install/updates/UpdatesWorker.kt | 7 ---- .../install/workmanager/InstallAppWorker.kt | 1 - .../e/apps/ui/MainActivityViewModel.kt | 7 ---- .../ui/application/ApplicationFragment.kt | 9 ----- .../ApplicationListFragment.kt | 6 --- .../ApplicationListRVAdapter.kt | 18 --------- .../apps/ui/categories/CategoriesFragment.kt | 2 - .../apps/ui/categories/CategoriesViewModel.kt | 3 -- .../e/apps/ui/home/HomeViewModel.kt | 10 ----- .../e/apps/ui/purchase/AppPurchaseFragment.kt | 4 -- .../e/apps/ui/search/SearchViewModel.kt | 2 - .../e/apps/ui/settings/SettingsFragment.kt | 13 ------ .../signin/LocaleChangedBroadcastReceiver.kt | 2 - .../e/apps/ui/updates/UpdatesViewModel.kt | 4 -- 32 files changed, 19 insertions(+), 245 deletions(-) diff --git a/app/src/main/java/foundation/e/apps/data/Result.kt b/app/src/main/java/foundation/e/apps/data/Result.kt index dfb936144..d7859c905 100644 --- a/app/src/main/java/foundation/e/apps/data/Result.kt +++ b/app/src/main/java/foundation/e/apps/data/Result.kt @@ -36,11 +36,4 @@ data class Result(val status: Status, val data: T?, val message: String?) { fun isSuccess() = status == Status.SUCCESS - fun handleResult(handler: () -> Unit, defaultErrorData: T?): T? { - if (isSuccess()) { - handler() - return data ?: defaultErrorData - } - return defaultErrorData - } } diff --git a/app/src/main/java/foundation/e/apps/data/cleanapk/CleanApkAppDetailsRetrofit.kt b/app/src/main/java/foundation/e/apps/data/cleanapk/CleanApkAppDetailsRetrofit.kt index 1e62152bc..69574481d 100644 --- a/app/src/main/java/foundation/e/apps/data/cleanapk/CleanApkAppDetailsRetrofit.kt +++ b/app/src/main/java/foundation/e/apps/data/cleanapk/CleanApkAppDetailsRetrofit.kt @@ -27,11 +27,6 @@ import retrofit2.http.Query interface CleanApkAppDetailsRetrofit { - companion object { - // API endpoints - const val BASE_URL = "https://api.cleanapk.org/v2/" - } - @GET("apps?action=app_detail") suspend fun getAppOrPWADetailsByID( @Query("id") id: String, diff --git a/app/src/main/java/foundation/e/apps/data/exodus/TrackerApiResponse.kt b/app/src/main/java/foundation/e/apps/data/exodus/TrackerApiResponse.kt index 44dc8f4be..29d3eab4c 100644 --- a/app/src/main/java/foundation/e/apps/data/exodus/TrackerApiResponse.kt +++ b/app/src/main/java/foundation/e/apps/data/exodus/TrackerApiResponse.kt @@ -2,12 +2,6 @@ package foundation.e.apps.data.exodus import com.squareup.moshi.Json -data class TrackerInfo( - val name: String, - val creator: String, - val reports: List -) - data class Report( val report: Long = -1L, @Json(name = "updated") val updatedAt: String, diff --git a/app/src/main/java/foundation/e/apps/data/fused/FusedApiImpl.kt b/app/src/main/java/foundation/e/apps/data/fused/FusedApiImpl.kt index 88b104865..7388e5a40 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/FusedApiImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/FusedApiImpl.kt @@ -164,11 +164,11 @@ class FusedApiImpl @Inject constructor( ): ResultSupreme> { val apiStatus = when (source) { - Source.GPLAY -> runCodeBlockWithTimeout({ + Source.GPLAY -> getResultStatusWithTimeoutChecking({ priorList.addAll(fetchGPlayHome(authData)) }) - Source.OPEN -> runCodeBlockWithTimeout({ + Source.OPEN -> getResultStatusWithTimeoutChecking({ val response = (cleanApkAppsRepository.getHomeScreenData() as Response).body() response?.home?.let { @@ -176,7 +176,7 @@ class FusedApiImpl @Inject constructor( } }) - Source.PWA -> runCodeBlockWithTimeout({ + Source.PWA -> getResultStatusWithTimeoutChecking({ val response = (cleanApkPWARepository.getHomeScreenData() as Response).body() response?.home?.let { @@ -302,7 +302,7 @@ class FusedApiImpl @Inject constructor( packageSpecificResults: ArrayList ): ResultSupreme, Boolean>> { val pwaApps: MutableList = mutableListOf() - val status = fusedAPIImpl.runCodeBlockWithTimeout({ + val status = fusedAPIImpl.getResultStatusWithTimeoutChecking({ val apps = cleanApkPWARepository.getSearchResult(query).body()?.apps apps?.apply { @@ -356,7 +356,7 @@ class FusedApiImpl @Inject constructor( searchResult: MutableList, packageSpecificResults: ArrayList ): ResultSupreme, Boolean>> { - val status = fusedAPIImpl.runCodeBlockWithTimeout({ + val status = fusedAPIImpl.getResultStatusWithTimeoutChecking({ cleanApkResults.addAll(getCleanAPKSearchResults(query)) }) @@ -385,7 +385,7 @@ class FusedApiImpl @Inject constructor( var gplayPackageResult: FusedApp? = null var cleanapkPackageResult: FusedApp? = null - val status = runCodeBlockWithTimeout({ + val status = getResultStatusWithTimeoutChecking({ if (preferenceManagerModule.isGplaySelected()) { gplayPackageResult = getGplayPackagResult(query, authData) } @@ -469,7 +469,7 @@ class FusedApiImpl @Inject constructor( */ private suspend fun getCleanapkSearchResult(packageName: String): ResultSupreme { var fusedApp = FusedApp() - val status = runCodeBlockWithTimeout({ + val status = getResultStatusWithTimeoutChecking({ val result = cleanApkAppsRepository.getSearchResult( packageName, "package_name" @@ -544,7 +544,7 @@ class FusedApiImpl @Inject constructor( override suspend fun getPWAApps(category: String): ResultSupreme, String>> { val list = mutableListOf() - val status = runCodeBlockWithTimeout({ + val status = getResultStatusWithTimeoutChecking({ val response = getPWAAppsResponse(category) response?.apps?.forEach { it.updateStatus() @@ -558,7 +558,7 @@ class FusedApiImpl @Inject constructor( override suspend fun getOpenSourceApps(category: String): ResultSupreme, String>> { val list = mutableListOf() - val status = runCodeBlockWithTimeout({ + val status = getResultStatusWithTimeoutChecking({ val response = getOpenSourceAppsResponse(category) response?.apps?.forEach { it.updateStatus() @@ -578,7 +578,7 @@ class FusedApiImpl @Inject constructor( */ override suspend fun getCleanapkAppDetails(packageName: String): Pair { var fusedApp = FusedApp() - val status = runCodeBlockWithTimeout({ + val status = getResultStatusWithTimeoutChecking({ val result = cleanApkAppsRepository.getSearchResult( packageName, "package_name" @@ -635,7 +635,7 @@ class FusedApiImpl @Inject constructor( * i.e. check timeout for individual package query. */ for (packageName in packageNameList) { - status = runCodeBlockWithTimeout({ + status = getResultStatusWithTimeoutChecking({ cleanApkAppsRepository.getSearchResult( packageName, "package_name" @@ -674,7 +674,7 @@ class FusedApiImpl @Inject constructor( /* * Old code moved from getApplicationDetails() */ - val status = runCodeBlockWithTimeout({ + val status = getResultStatusWithTimeoutChecking({ gplayRepository.getAppsDetails(packageNameList).forEach { app -> /* * Some apps are restricted to locations. Example "com.skype.m2". @@ -712,7 +712,7 @@ class FusedApiImpl @Inject constructor( appList: List, ): ResultSupreme> { val filteredFusedApps = mutableListOf() - val status = runCodeBlockWithTimeout({ + val status = getResultStatusWithTimeoutChecking({ appList.forEach { val filter = getAppFilterLevel(it, authData) if (filter.isUnFiltered()) { @@ -804,7 +804,7 @@ class FusedApiImpl @Inject constructor( var response: FusedApp? = null - val status = runCodeBlockWithTimeout({ + val status = getResultStatusWithTimeoutChecking({ response = if (origin == Origin.CLEANAPK) { (cleanApkAppsRepository.getAppDetails(id) as Response).body()?.app } else { @@ -871,7 +871,7 @@ class FusedApiImpl @Inject constructor( var errorApplicationCategory = "" var apiStatus = ResultStatus.OK val categoryList = mutableListOf() - runCodeBlockWithTimeout({ + getResultStatusWithTimeoutChecking({ val playResponse = gplayRepository.getCategories(type).map { app -> val category = app.transformToFusedCategory() updateCategoryDrawable(category) @@ -894,7 +894,7 @@ class FusedApiImpl @Inject constructor( var errorApplicationCategory = "" var apiStatus: ResultStatus = ResultStatus.OK val fusedCategoriesList = mutableListOf() - runCodeBlockWithTimeout({ + getResultStatusWithTimeoutChecking({ getPWAsCategories()?.let { fusedCategoriesList.addAll( getFusedCategoryBasedOnCategoryType( @@ -918,7 +918,7 @@ class FusedApiImpl @Inject constructor( var errorApplicationCategory = "" var apiStatus: ResultStatus = ResultStatus.OK val fusedCategoryList = mutableListOf() - runCodeBlockWithTimeout({ + getResultStatusWithTimeoutChecking({ getOpenSourceCategories()?.let { fusedCategoryList.addAll( getFusedCategoryBasedOnCategoryType( @@ -947,7 +947,7 @@ class FusedApiImpl @Inject constructor( * * @return Instance of [ResultStatus] based on whether [block] was executed within timeout limit. */ - private suspend fun runCodeBlockWithTimeout( + private suspend fun getResultStatusWithTimeoutChecking( block: suspend () -> Unit, timeoutBlock: (() -> Unit)? = null, exceptionBlock: ((e: Exception) -> Unit)? = null, @@ -1414,7 +1414,7 @@ class FusedApiImpl @Inject constructor( var fusedAppList: MutableList = mutableListOf() var nextPageUrl = "" - val status = runCodeBlockWithTimeout({ + val status = getResultStatusWithTimeoutChecking({ val streamCluster = gplayRepository.getAppsByCategory(category, pageUrl) as StreamCluster val filteredAppList = filterRestrictedGPlayApps(authData, streamCluster.clusterAppList) filteredAppList.data?.let { diff --git a/app/src/main/java/foundation/e/apps/data/fusedDownload/FileManager.kt b/app/src/main/java/foundation/e/apps/data/fusedDownload/FileManager.kt index 63ff614d0..32a9fab55 100644 --- a/app/src/main/java/foundation/e/apps/data/fusedDownload/FileManager.kt +++ b/app/src/main/java/foundation/e/apps/data/fusedDownload/FileManager.kt @@ -9,7 +9,6 @@ import java.io.InputStream import java.io.OutputStream object FileManager { - private const val TAG = "FileManager" fun moveFile(inputPath: String, inputFile: String, outputPath: String) { var inputStream: InputStream? = null diff --git a/app/src/main/java/foundation/e/apps/data/fusedDownload/FusedManagerImpl.kt b/app/src/main/java/foundation/e/apps/data/fusedDownload/FusedManagerImpl.kt index 863172191..6ed1bfb67 100644 --- a/app/src/main/java/foundation/e/apps/data/fusedDownload/FusedManagerImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/fusedDownload/FusedManagerImpl.kt @@ -58,8 +58,6 @@ class FusedManagerImpl @Inject constructor( @ApplicationContext private val context: Context ) : IFusedManager { - private val TAG = FusedManagerImpl::class.java.simpleName - private val mutex = Mutex() @RequiresApi(Build.VERSION_CODES.O) diff --git a/app/src/main/java/foundation/e/apps/data/fusedDownload/FusedManagerRepository.kt b/app/src/main/java/foundation/e/apps/data/fusedDownload/FusedManagerRepository.kt index 7c6ad105d..78b2f398a 100644 --- a/app/src/main/java/foundation/e/apps/data/fusedDownload/FusedManagerRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/fusedDownload/FusedManagerRepository.kt @@ -75,14 +75,6 @@ class FusedManagerRepository @Inject constructor( return fusedManagerImpl.getDownloadLiveList() } - fun getDownloadListFlow(): Flow> { - return fusedManagerImpl.getDownloadLiveList().asFlow() - } - - suspend fun installApp(fusedDownload: FusedDownload) { - return fusedManagerImpl.installApp(fusedDownload) - } - suspend fun getFusedDownload(downloadId: Long = 0, packageName: String = ""): FusedDownload { return fusedManagerImpl.getFusedDownload(downloadId, packageName) } diff --git a/app/src/main/java/foundation/e/apps/data/login/LoginSourceGPlay.kt b/app/src/main/java/foundation/e/apps/data/login/LoginSourceGPlay.kt index 5bb38c060..5d541ad25 100644 --- a/app/src/main/java/foundation/e/apps/data/login/LoginSourceGPlay.kt +++ b/app/src/main/java/foundation/e/apps/data/login/LoginSourceGPlay.kt @@ -213,46 +213,6 @@ class LoginSourceGPlay @Inject constructor( } } - /** - * Check if a given [AuthData] from Google login or Anonymous login is valid or not. - * If valid, return the AuthData wrapped in [ResultSupreme], else return null, - * with error message. - */ - private suspend fun validateAuthData( - authData: AuthData, - ): ResultSupreme { - - val formattedAuthData = formatAuthData(authData) - formattedAuthData.locale = locale - - val validityResponse = loginApiRepository.login(formattedAuthData) - - /* - * Send the email as payload. This is sent to ecloud in case of failure. - * See MainActivityViewModel.uploadFaultyTokenToEcloud. - */ - validityResponse.otherPayload = formattedAuthData.email - - val playResponse = validityResponse.data - return if (validityResponse.isSuccess() && playResponse?.code == 200 && playResponse.isSuccessful) { - ResultSupreme.Success(formattedAuthData) - } else { - val message = - "Validating AuthData failed.\n" + - "Network code: ${playResponse?.code}\n" + - "Success: ${playResponse?.isSuccessful}" + - playResponse?.errorString?.run { - if (isNotBlank()) "\nError message: $this" - else "" - } - - ResultSupreme.Error( - message, - GPlayValidationException(message, user, playResponse?.code ?: -1) - ) - } - } - override suspend fun validateAuthData(): ResultSupreme { val savedAuth = getSavedAuthData() if (!isAuthDataValid(savedAuth)) { diff --git a/app/src/main/java/foundation/e/apps/data/preference/DataStoreModule.kt b/app/src/main/java/foundation/e/apps/data/preference/DataStoreModule.kt index c51b3d593..a8482aaeb 100644 --- a/app/src/main/java/foundation/e/apps/data/preference/DataStoreModule.kt +++ b/app/src/main/java/foundation/e/apps/data/preference/DataStoreModule.kt @@ -114,12 +114,6 @@ class DataStoreModule @Inject constructor( } } - suspend fun saveUserTypeSync(user: User) { - context.dataStore.edit { - it[USERTYPE] = user.name - } - } - fun getAuthDataSync(): String { return runBlocking { authData.first() @@ -139,10 +133,6 @@ class DataStoreModule @Inject constructor( } } - suspend fun getAASToken(): String { - return aasToken.first() - } - fun getUserType(): User { return runBlocking { userType.first().run { 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 ca192e572..c4e786c2f 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 @@ -54,8 +54,6 @@ class UpdatesManagerImpl @Inject constructor( const val PACKAGE_NAME_ANDROID_VENDING = "com.android.vending" } - private val TAG = UpdatesManagerImpl::class.java.simpleName - private val userApplications: List get() = pkgManagerModule.getAllUserApps() diff --git a/app/src/main/java/foundation/e/apps/di/CommonUtilsModule.kt b/app/src/main/java/foundation/e/apps/di/CommonUtilsModule.kt index f868f978a..e19e08890 100644 --- a/app/src/main/java/foundation/e/apps/di/CommonUtilsModule.kt +++ b/app/src/main/java/foundation/e/apps/di/CommonUtilsModule.kt @@ -49,9 +49,6 @@ object CommonUtilsModule { val LIST_OF_NULL = listOf("null") - // Issue: https://gitlab.e.foundation/e/backlog/-/issues/5709 - const val NETWORK_CODE_SUCCESS = 200 - /** * Check supported ABIs by device * @return An ordered list of ABIs supported by this device diff --git a/app/src/main/java/foundation/e/apps/install/download/DownloadManagerBR.kt b/app/src/main/java/foundation/e/apps/install/download/DownloadManagerBR.kt index a508197d3..fee2e5366 100644 --- a/app/src/main/java/foundation/e/apps/install/download/DownloadManagerBR.kt +++ b/app/src/main/java/foundation/e/apps/install/download/DownloadManagerBR.kt @@ -35,10 +35,6 @@ class DownloadManagerBR : BroadcastReceiver() { @Inject lateinit var downloadManagerUtils: DownloadManagerUtils - companion object { - private const val TAG = "DownloadManagerBR" - } - @UiThread override fun onReceive(context: Context?, intent: Intent?) { val action = intent?.action 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 fc32fbf97..b6c1493ab 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 @@ -41,7 +41,6 @@ class DownloadManagerUtils @Inject constructor( private val fusedManagerRepository: FusedManagerRepository, private val downloadManager: DownloadManager ) { - private val TAG = DownloadManagerUtils::class.java.simpleName private val mutex = Mutex() @DelicateCoroutinesApi diff --git a/app/src/main/java/foundation/e/apps/install/notification/NotificationManagerUtils.kt b/app/src/main/java/foundation/e/apps/install/notification/NotificationManagerUtils.kt index 23a6be9a9..8cf5e5dab 100644 --- a/app/src/main/java/foundation/e/apps/install/notification/NotificationManagerUtils.kt +++ b/app/src/main/java/foundation/e/apps/install/notification/NotificationManagerUtils.kt @@ -30,30 +30,4 @@ class NotificationManagerUtils @Inject constructor( private val preferenceManagerModule: PreferenceManagerModule ) { - fun showDownloadNotification(title: String): NotificationCompat.Builder { - return NotificationCompat.Builder(context, NotificationManagerModule.DOWNLOADS) - .setSmallIcon(R.drawable.app_lounge_notification_icon) - .setContentTitle(title) - .setProgress(0, 0, true) - .setPriority(NotificationCompat.PRIORITY_DEFAULT) - } - - fun showUpdateNotification(updateSize: Int): NotificationCompat.Builder { - val contentText = if (preferenceManagerModule.autoUpdatePreferred()) { - context.getString(R.string.auto_updates_notification) - } else { - context.getString(R.string.manual_updates_notification) - } - return NotificationCompat.Builder(context, NotificationManagerModule.UPDATES) - .setSmallIcon(R.drawable.app_lounge_notification_icon) - .setContentTitle( - context.resources.getQuantityString( - R.plurals.updates_notification_title, - updateSize, - updateSize - ) - ) - .setContentText(contentText) - .setPriority(NotificationCompat.PRIORITY_DEFAULT) - } } diff --git a/app/src/main/java/foundation/e/apps/install/pkg/InstallerService.kt b/app/src/main/java/foundation/e/apps/install/pkg/InstallerService.kt index 180e08938..7999cad9a 100644 --- a/app/src/main/java/foundation/e/apps/install/pkg/InstallerService.kt +++ b/app/src/main/java/foundation/e/apps/install/pkg/InstallerService.kt @@ -103,18 +103,6 @@ class InstallerService : Service() { return null } - @OptIn(DelicateCoroutinesApi::class) - private fun updateDownloadStatus(pkgName: String) { - if (pkgName.isEmpty()) { - Timber.d("updateDownloadStatus: package name should not be empty!") - } - GlobalScope.launch { - val fusedDownload = fusedManagerRepository.getFusedDownload(packageName = pkgName) - pkgManagerModule.setFakeStoreAsInstallerIfNeeded(fusedDownload) - fusedManagerRepository.updateDownloadStatus(fusedDownload, Status.INSTALLED) - } - } - @OptIn(DelicateCoroutinesApi::class) private fun updateInstallationIssue(pkgName: String) { if (pkgName.isEmpty()) { diff --git a/app/src/main/java/foundation/e/apps/install/pkg/PackageInstallerService.kt b/app/src/main/java/foundation/e/apps/install/pkg/PackageInstallerService.kt index 0a3fa6f5e..fc9e38f72 100644 --- a/app/src/main/java/foundation/e/apps/install/pkg/PackageInstallerService.kt +++ b/app/src/main/java/foundation/e/apps/install/pkg/PackageInstallerService.kt @@ -38,8 +38,6 @@ class PackageInstallerService : Service() { @Inject lateinit var fusedManagerRepository: FusedManagerRepository - private val TAG = PackageInstallerService::class.java.simpleName - override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int { val status = intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -69) val packageName = intent.getStringExtra(PackageInstaller.EXTRA_PACKAGE_NAME) diff --git a/app/src/main/java/foundation/e/apps/install/pkg/PkgManagerModule.kt b/app/src/main/java/foundation/e/apps/install/pkg/PkgManagerModule.kt index bbb7db232..2afb071e9 100644 --- a/app/src/main/java/foundation/e/apps/install/pkg/PkgManagerModule.kt +++ b/app/src/main/java/foundation/e/apps/install/pkg/PkgManagerModule.kt @@ -51,7 +51,6 @@ class PkgManagerModule @Inject constructor( const val ERROR_PACKAGE_INSTALL = "ERROR_PACKAGE_INSTALL" const val PACKAGE_NAME = "packageName" const val FAKE_STORE_PACKAGE_NAME = "com.android.vending" - private const val TAG = "PkgManagerModule" } private val packageManager = context.packageManager @@ -241,11 +240,6 @@ class PkgManagerModule @Inject constructor( return filter } - fun getLongVersionCode(versionCode: String): Long { - val version = versionCode.split(" ")[0] - return version.replace("[.]".toRegex(), "").toLong() - } - fun getAllUserApps(): List { val userPackages = mutableListOf() val allPackages = packageManager.getInstalledApplications(0) diff --git a/app/src/main/java/foundation/e/apps/install/updates/UpdatesBroadcastReceiver.kt b/app/src/main/java/foundation/e/apps/install/updates/UpdatesBroadcastReceiver.kt index a966bf97b..3edffdff7 100644 --- a/app/src/main/java/foundation/e/apps/install/updates/UpdatesBroadcastReceiver.kt +++ b/app/src/main/java/foundation/e/apps/install/updates/UpdatesBroadcastReceiver.kt @@ -25,9 +25,6 @@ import foundation.e.apps.data.preference.PreferenceManagerModule import timber.log.Timber class UpdatesBroadcastReceiver : BroadcastReceiver() { - companion object { - private const val TAG = "UpdatesManager" - } override fun onReceive(context: Context, intent: Intent) { Timber.d("onReceive: ${intent.action}") diff --git a/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt b/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt index 543fca6f3..1adac8b0e 100644 --- a/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt +++ b/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt @@ -44,7 +44,6 @@ class UpdatesWorker @AssistedInject constructor( private val fusedManagerRepository: FusedManagerRepository, private val dataStoreManager: DataStoreManager, private val loginSourceRepository: LoginSourceRepository, - private val gson: Gson, ) : CoroutineWorker(context, params) { companion object { @@ -206,12 +205,6 @@ class UpdatesWorker @AssistedInject constructor( } } - private fun getAuthData(): AuthData? { - val authDataJson = dataStoreManager.getAuthDataJson() - return if (authDataJson.isBlank()) return null - else gson.fromJson(authDataJson, AuthData::class.java) - } - private suspend fun startUpdateProcess( appsNeededToUpdate: List, authData: AuthData 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 7ed03ac08..e26c1df66 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 @@ -41,7 +41,6 @@ class InstallAppWorker @AssistedInject constructor( ) : CoroutineWorker(context, params) { companion object { - private const val TAG = "InstallWorker" const val INPUT_DATA_FUSED_DOWNLOAD = "input_data_fused_download" const val IS_UPDATE_WORK = "is_update_work" 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 2252a4315..97b9a1a88 100644 --- a/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt @@ -80,7 +80,6 @@ class MainActivityViewModel @Inject constructor( // Downloads val downloadList = fusedManagerRepository.getDownloadLiveList() - var installInProgress = false private val _errorMessage = MutableLiveData() val errorMessage: LiveData = _errorMessage @@ -120,12 +119,6 @@ class MainActivityViewModel @Inject constructor( * Download and cancellation functions */ - fun downloadApp(fusedDownload: FusedDownload) { - viewModelScope.launch { - fusedManagerRepository.downloadApp(fusedDownload) - } - } - /* * Check and display a snack bar if app is paid and user is logged in in anonymous mode. * Returns true if the snack bar was displayed, false otherwise. 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 4e0a86185..6b3aee14f 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 @@ -830,15 +830,6 @@ class ApplicationFragment : TimeoutFragment(R.layout.fragment_application) { applicationIcon = null } - private fun shareApp(name: String, shareUrl: String): Intent { - val shareIntent = Intent().apply { - action = Intent.ACTION_SEND - putExtra(Intent.EXTRA_TEXT, getString(R.string.share_intent, name, shareUrl)) - type = "text/plain" - } - return shareIntent - } - private fun getPrivacyDrawable(privacyRating: String): Drawable? { val rating = privacyRating.toInt() 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 1aa706fbd..ccf2abcbb 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 @@ -169,12 +169,6 @@ class ApplicationListFragment : } } - private fun isFusedAppsUpdated(it: ResultSupreme>) = - listAdapter.currentList.isEmpty() || it.data != null && viewModel.isAnyAppUpdated( - it.data!!, - listAdapter.currentList - ) - private fun initAppListAdapter( currentDestinationId: Int ): ApplicationListRVAdapter { 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 12bd1aa3c..1799be248 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 @@ -65,8 +65,6 @@ class ApplicationListRVAdapter( private var paidAppHandler: ((FusedApp) -> Unit)? = null ) : ListAdapter(ApplicationDiffUtil()) { - private val TAG = ApplicationListRVAdapter::class.java.simpleName - private var optionalCategory = "" private val shimmer = Shimmer.ColorHighlightBuilder() @@ -336,22 +334,6 @@ class ApplicationListRVAdapter( else view.context.getString(R.string.retry) - private fun MaterialButton.getStrokeColor( - isEnabled: Boolean, - view: View - ) = if (isEnabled) { - ContextCompat.getColorStateList(view.context, R.color.colorAccent) - } else { - ContextCompat.getColorStateList(view.context, R.color.light_grey) - } - - private fun MaterialButton.setButtonTextColor(isEnabled: Boolean) = - if (isEnabled) { - setTextColor(context.getColor(R.color.colorAccent)) - } else { - setTextColor(context.getColor(R.color.light_grey)) - } - private fun ApplicationListItemBinding.handleBlocked(view: View) { installButton.apply { isEnabled = true diff --git a/app/src/main/java/foundation/e/apps/ui/categories/CategoriesFragment.kt b/app/src/main/java/foundation/e/apps/ui/categories/CategoriesFragment.kt index c6badc4d1..369490dd5 100644 --- a/app/src/main/java/foundation/e/apps/ui/categories/CategoriesFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/categories/CategoriesFragment.kt @@ -32,8 +32,6 @@ class CategoriesFragment : Fragment(R.layout.fragment_categories) { private var _binding: FragmentCategoriesBinding? = null private val binding get() = _binding!! - private val TAG = CategoriesFragment::class.java.simpleName - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) _binding = FragmentCategoriesBinding.bind(view) diff --git a/app/src/main/java/foundation/e/apps/ui/categories/CategoriesViewModel.kt b/app/src/main/java/foundation/e/apps/ui/categories/CategoriesViewModel.kt index 73b76d791..5e64e531e 100644 --- a/app/src/main/java/foundation/e/apps/ui/categories/CategoriesViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/categories/CategoriesViewModel.kt @@ -85,7 +85,4 @@ class CategoriesViewModel @Inject constructor( } } - fun isCategoriesEmpty(): Boolean { - return categoriesList.value?.first?.isEmpty() ?: true - } } diff --git a/app/src/main/java/foundation/e/apps/ui/home/HomeViewModel.kt b/app/src/main/java/foundation/e/apps/ui/home/HomeViewModel.kt index 981761b85..7714c2b9c 100644 --- a/app/src/main/java/foundation/e/apps/ui/home/HomeViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/home/HomeViewModel.kt @@ -93,16 +93,6 @@ class HomeViewModel @Inject constructor( } } - fun getApplicationCategoryPreference(): List { - return fusedAPIRepository.getApplicationCategoryPreference() - } - - fun isHomesEmpty(): Boolean { - return homeScreenData.value?.data?.let { - fusedAPIRepository.isHomesEmpty(it) - } ?: true - } - fun isHomeDataUpdated( newHomeData: List, oldHomeData: List 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 6582eb4b7..decd860db 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 @@ -23,10 +23,6 @@ import foundation.e.apps.ui.MainActivityViewModel class AppPurchaseFragment : Fragment() { private lateinit var binding: FragmentAppPurchaseBinding - companion object { - private const val TAG = "AppPurchaseFragment" - } - private val mainActivityViewModel: MainActivityViewModel by activityViewModels() private var isAppPurchased = false diff --git a/app/src/main/java/foundation/e/apps/ui/search/SearchViewModel.kt b/app/src/main/java/foundation/e/apps/ui/search/SearchViewModel.kt index 09f8b2d6a..63160e77d 100644 --- a/app/src/main/java/foundation/e/apps/ui/search/SearchViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/search/SearchViewModel.kt @@ -124,6 +124,4 @@ class SearchViewModel @Inject constructor( oldFusedApps: List ) = fusedAPIRepository.isAnyFusedAppUpdated(newFusedApps, oldFusedApps) - fun hasAnyAppInstallStatusChanged(currentList: List) = - fusedAPIRepository.isAnyAppInstallStatusChanged(currentList) } 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 d6fb75fbd..d2e6e17ed 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 @@ -72,10 +72,6 @@ class SettingsFragment : PreferenceFragmentCompat() { @Inject lateinit var clipboardManager: ClipboardManager - companion object { - private const val TAG = "SettingsFragment" - } - private val user by lazy { mainActivityViewModel.getUser() } @@ -243,15 +239,6 @@ class SettingsFragment : PreferenceFragmentCompat() { fun isAnyAppSourceSelected() = showAllApplications?.isChecked == true || showFOSSApplications?.isChecked == true || showPWAApplications?.isChecked == true - private fun backToMainActivity() { - Intent(context, MainActivity::class.java).also { - activity?.finish() - activity?.overridePendingTransition(0, 0) - startActivity(it) - activity?.overridePendingTransition(0, 0) - } - } - private fun disableDependentCheckbox( checkBox: CheckBoxPreference?, parentCheckBox: CheckBoxPreference? 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 dd927f2d9..5be760a1b 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 @@ -45,8 +45,6 @@ class LocaleChangedBroadcastReceiver : BroadcastReceiver() { @Inject lateinit var cache: Cache - private val TAG = LocaleChangedBroadcastReceiver::class.java.simpleName - override fun onReceive(context: Context, intent: Intent) { if (intent.action != Intent.ACTION_LOCALE_CHANGED) { // security measure so that only the android system can call the receiver diff --git a/app/src/main/java/foundation/e/apps/ui/updates/UpdatesViewModel.kt b/app/src/main/java/foundation/e/apps/ui/updates/UpdatesViewModel.kt index 1db01bb0c..bf6998e17 100644 --- a/app/src/main/java/foundation/e/apps/ui/updates/UpdatesViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/updates/UpdatesViewModel.kt @@ -117,10 +117,6 @@ class UpdatesViewModel @Inject constructor( return false } - fun getApplicationCategoryPreference(): List { - return updatesManagerRepository.getApplicationCategoryPreference() - } - fun hasAnyUpdatableApp(): Boolean { return updatesList.value?.first?.any { it.status == Status.UPDATABLE || it.status == Status.INSTALLATION_ISSUE } == true } -- GitLab From 9fb0dc818c9d5b1a2e937bfdc606e21c7e10af2c Mon Sep 17 00:00:00 2001 From: Hasib Prince Date: Sat, 24 Jun 2023 17:57:23 +0600 Subject: [PATCH 2/2] refactor: removed CleanAPKRepository --- .../java/foundation/e/apps/data/Result.kt | 1 - .../repositories/CleanAPKRepository.kt | 88 ------------------- .../{TrackerApiResponse.kt => Report.kt} | 0 .../e/apps/data/fused/FusedApiImpl.kt | 38 ++++---- .../fusedDownload/FusedManagerRepository.kt | 2 - .../e/apps/data/login/LoginSourceGPlay.kt | 1 - .../apps/data/login/api/LoginApiRepository.kt | 8 +- .../notification/NotificationManagerUtils.kt | 6 +- .../e/apps/install/pkg/InstallerService.kt | 1 - .../e/apps/install/updates/UpdatesWorker.kt | 1 - .../ui/application/ApplicationFragment.kt | 1 - .../apps/ui/categories/CategoriesViewModel.kt | 1 - .../e/apps/ui/search/SearchViewModel.kt | 1 - .../e/apps/ui/settings/SettingsFragment.kt | 2 - app/src/main/res/values-de/strings.xml | 4 - app/src/main/res/values-es/strings.xml | 4 - app/src/main/res/values-fi/strings.xml | 4 - app/src/main/res/values-fr/strings.xml | 4 - app/src/main/res/values-is/strings.xml | 4 - app/src/main/res/values-it/strings.xml | 4 - app/src/main/res/values-nb-rNO/strings.xml | 4 - app/src/main/res/values-nl/strings.xml | 4 - app/src/main/res/values-ru/strings.xml | 4 - app/src/main/res/values-uk/strings.xml | 4 - app/src/main/res/values/strings.xml | 3 - 25 files changed, 24 insertions(+), 170 deletions(-) delete mode 100644 app/src/main/java/foundation/e/apps/data/cleanapk/repositories/CleanAPKRepository.kt rename app/src/main/java/foundation/e/apps/data/exodus/{TrackerApiResponse.kt => Report.kt} (100%) diff --git a/app/src/main/java/foundation/e/apps/data/Result.kt b/app/src/main/java/foundation/e/apps/data/Result.kt index d7859c905..0c1bcbdf0 100644 --- a/app/src/main/java/foundation/e/apps/data/Result.kt +++ b/app/src/main/java/foundation/e/apps/data/Result.kt @@ -35,5 +35,4 @@ data class Result(val status: Status, val data: T?, val message: String?) { } fun isSuccess() = status == Status.SUCCESS - } diff --git a/app/src/main/java/foundation/e/apps/data/cleanapk/repositories/CleanAPKRepository.kt b/app/src/main/java/foundation/e/apps/data/cleanapk/repositories/CleanAPKRepository.kt deleted file mode 100644 index 22656d5bb..000000000 --- a/app/src/main/java/foundation/e/apps/data/cleanapk/repositories/CleanAPKRepository.kt +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Apps Quickly and easily install Android apps onto your device! - * Copyright (C) 2021 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.data.cleanapk.repositories - -import foundation.e.apps.OpenForTesting -import foundation.e.apps.data.cleanapk.CleanApkAppDetailsRetrofit -import foundation.e.apps.data.cleanapk.CleanApkRetrofit -import foundation.e.apps.data.cleanapk.data.app.Application -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.home.HomeScreen -import foundation.e.apps.data.cleanapk.data.search.Search -import retrofit2.Response -import javax.inject.Inject - -@OpenForTesting -class CleanAPKRepository @Inject constructor( - private val cleanAPKRetrofit: CleanApkRetrofit, - private val cleanApkAppDetailsRetrofit: CleanApkAppDetailsRetrofit -) { - - suspend fun getHomeScreenData( - type: String = CleanApkRetrofit.APP_TYPE_ANY, - source: String = CleanApkRetrofit.APP_SOURCE_ANY - ): Response { - return cleanAPKRetrofit.getHomeScreenData(type, source) - } - - suspend fun getAppOrPWADetailsByID( - id: String, - architectures: List? = null, - type: String? = null - ): Response { - return cleanApkAppDetailsRetrofit.getAppOrPWADetailsByID(id, architectures, type) - } - - suspend fun searchApps( - keyword: String, - source: String = CleanApkRetrofit.APP_SOURCE_FOSS, - type: String = CleanApkRetrofit.APP_TYPE_ANY, - nres: Int = 20, - page: Int = 1, - by: String? = null - ): Response { - return cleanAPKRetrofit.searchApps(keyword, source, type, nres, page, by) - } - - suspend fun listApps( - category: String, - source: String = CleanApkRetrofit.APP_SOURCE_FOSS, - type: String = CleanApkRetrofit.APP_TYPE_ANY, - nres: Int = 20, - page: Int = 1, - ): Response { - return cleanAPKRetrofit.listApps(category, source, type, nres, page) - } - - suspend fun getDownloadInfo( - id: String, - version: String? = null, - architecture: String? = null - ): Response { - return cleanAPKRetrofit.getDownloadInfo(id, version, architecture) - } - - suspend fun getCategoriesList( - type: String = CleanApkRetrofit.APP_TYPE_ANY, - source: String = CleanApkRetrofit.APP_SOURCE_ANY - ): Response { - return cleanAPKRetrofit.getCategoriesList(type, source) - } -} diff --git a/app/src/main/java/foundation/e/apps/data/exodus/TrackerApiResponse.kt b/app/src/main/java/foundation/e/apps/data/exodus/Report.kt similarity index 100% rename from app/src/main/java/foundation/e/apps/data/exodus/TrackerApiResponse.kt rename to app/src/main/java/foundation/e/apps/data/exodus/Report.kt diff --git a/app/src/main/java/foundation/e/apps/data/fused/FusedApiImpl.kt b/app/src/main/java/foundation/e/apps/data/fused/FusedApiImpl.kt index 7388e5a40..f688d83e6 100644 --- a/app/src/main/java/foundation/e/apps/data/fused/FusedApiImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/fused/FusedApiImpl.kt @@ -164,11 +164,11 @@ class FusedApiImpl @Inject constructor( ): ResultSupreme> { val apiStatus = when (source) { - Source.GPLAY -> getResultStatusWithTimeoutChecking({ + Source.GPLAY -> runCodeWithTimeout({ priorList.addAll(fetchGPlayHome(authData)) }) - Source.OPEN -> getResultStatusWithTimeoutChecking({ + Source.OPEN -> runCodeWithTimeout({ val response = (cleanApkAppsRepository.getHomeScreenData() as Response).body() response?.home?.let { @@ -176,7 +176,7 @@ class FusedApiImpl @Inject constructor( } }) - Source.PWA -> getResultStatusWithTimeoutChecking({ + Source.PWA -> runCodeWithTimeout({ val response = (cleanApkPWARepository.getHomeScreenData() as Response).body() response?.home?.let { @@ -302,7 +302,7 @@ class FusedApiImpl @Inject constructor( packageSpecificResults: ArrayList ): ResultSupreme, Boolean>> { val pwaApps: MutableList = mutableListOf() - val status = fusedAPIImpl.getResultStatusWithTimeoutChecking({ + val status = fusedAPIImpl.runCodeWithTimeout({ val apps = cleanApkPWARepository.getSearchResult(query).body()?.apps apps?.apply { @@ -356,7 +356,7 @@ class FusedApiImpl @Inject constructor( searchResult: MutableList, packageSpecificResults: ArrayList ): ResultSupreme, Boolean>> { - val status = fusedAPIImpl.getResultStatusWithTimeoutChecking({ + val status = fusedAPIImpl.runCodeWithTimeout({ cleanApkResults.addAll(getCleanAPKSearchResults(query)) }) @@ -385,7 +385,7 @@ class FusedApiImpl @Inject constructor( var gplayPackageResult: FusedApp? = null var cleanapkPackageResult: FusedApp? = null - val status = getResultStatusWithTimeoutChecking({ + val status = runCodeWithTimeout({ if (preferenceManagerModule.isGplaySelected()) { gplayPackageResult = getGplayPackagResult(query, authData) } @@ -469,7 +469,7 @@ class FusedApiImpl @Inject constructor( */ private suspend fun getCleanapkSearchResult(packageName: String): ResultSupreme { var fusedApp = FusedApp() - val status = getResultStatusWithTimeoutChecking({ + val status = runCodeWithTimeout({ val result = cleanApkAppsRepository.getSearchResult( packageName, "package_name" @@ -544,7 +544,7 @@ class FusedApiImpl @Inject constructor( override suspend fun getPWAApps(category: String): ResultSupreme, String>> { val list = mutableListOf() - val status = getResultStatusWithTimeoutChecking({ + val status = runCodeWithTimeout({ val response = getPWAAppsResponse(category) response?.apps?.forEach { it.updateStatus() @@ -558,7 +558,7 @@ class FusedApiImpl @Inject constructor( override suspend fun getOpenSourceApps(category: String): ResultSupreme, String>> { val list = mutableListOf() - val status = getResultStatusWithTimeoutChecking({ + val status = runCodeWithTimeout({ val response = getOpenSourceAppsResponse(category) response?.apps?.forEach { it.updateStatus() @@ -578,7 +578,7 @@ class FusedApiImpl @Inject constructor( */ override suspend fun getCleanapkAppDetails(packageName: String): Pair { var fusedApp = FusedApp() - val status = getResultStatusWithTimeoutChecking({ + val status = runCodeWithTimeout({ val result = cleanApkAppsRepository.getSearchResult( packageName, "package_name" @@ -635,7 +635,7 @@ class FusedApiImpl @Inject constructor( * i.e. check timeout for individual package query. */ for (packageName in packageNameList) { - status = getResultStatusWithTimeoutChecking({ + status = runCodeWithTimeout({ cleanApkAppsRepository.getSearchResult( packageName, "package_name" @@ -674,7 +674,7 @@ class FusedApiImpl @Inject constructor( /* * Old code moved from getApplicationDetails() */ - val status = getResultStatusWithTimeoutChecking({ + val status = runCodeWithTimeout({ gplayRepository.getAppsDetails(packageNameList).forEach { app -> /* * Some apps are restricted to locations. Example "com.skype.m2". @@ -712,7 +712,7 @@ class FusedApiImpl @Inject constructor( appList: List, ): ResultSupreme> { val filteredFusedApps = mutableListOf() - val status = getResultStatusWithTimeoutChecking({ + val status = runCodeWithTimeout({ appList.forEach { val filter = getAppFilterLevel(it, authData) if (filter.isUnFiltered()) { @@ -804,7 +804,7 @@ class FusedApiImpl @Inject constructor( var response: FusedApp? = null - val status = getResultStatusWithTimeoutChecking({ + val status = runCodeWithTimeout({ response = if (origin == Origin.CLEANAPK) { (cleanApkAppsRepository.getAppDetails(id) as Response).body()?.app } else { @@ -871,7 +871,7 @@ class FusedApiImpl @Inject constructor( var errorApplicationCategory = "" var apiStatus = ResultStatus.OK val categoryList = mutableListOf() - getResultStatusWithTimeoutChecking({ + runCodeWithTimeout({ val playResponse = gplayRepository.getCategories(type).map { app -> val category = app.transformToFusedCategory() updateCategoryDrawable(category) @@ -894,7 +894,7 @@ class FusedApiImpl @Inject constructor( var errorApplicationCategory = "" var apiStatus: ResultStatus = ResultStatus.OK val fusedCategoriesList = mutableListOf() - getResultStatusWithTimeoutChecking({ + runCodeWithTimeout({ getPWAsCategories()?.let { fusedCategoriesList.addAll( getFusedCategoryBasedOnCategoryType( @@ -918,7 +918,7 @@ class FusedApiImpl @Inject constructor( var errorApplicationCategory = "" var apiStatus: ResultStatus = ResultStatus.OK val fusedCategoryList = mutableListOf() - getResultStatusWithTimeoutChecking({ + runCodeWithTimeout({ getOpenSourceCategories()?.let { fusedCategoryList.addAll( getFusedCategoryBasedOnCategoryType( @@ -947,7 +947,7 @@ class FusedApiImpl @Inject constructor( * * @return Instance of [ResultStatus] based on whether [block] was executed within timeout limit. */ - private suspend fun getResultStatusWithTimeoutChecking( + private suspend fun runCodeWithTimeout( block: suspend () -> Unit, timeoutBlock: (() -> Unit)? = null, exceptionBlock: ((e: Exception) -> Unit)? = null, @@ -1414,7 +1414,7 @@ class FusedApiImpl @Inject constructor( var fusedAppList: MutableList = mutableListOf() var nextPageUrl = "" - val status = getResultStatusWithTimeoutChecking({ + val status = runCodeWithTimeout({ val streamCluster = gplayRepository.getAppsByCategory(category, pageUrl) as StreamCluster val filteredAppList = filterRestrictedGPlayApps(authData, streamCluster.clusterAppList) filteredAppList.data?.let { diff --git a/app/src/main/java/foundation/e/apps/data/fusedDownload/FusedManagerRepository.kt b/app/src/main/java/foundation/e/apps/data/fusedDownload/FusedManagerRepository.kt index 78b2f398a..42935ee21 100644 --- a/app/src/main/java/foundation/e/apps/data/fusedDownload/FusedManagerRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/fusedDownload/FusedManagerRepository.kt @@ -4,7 +4,6 @@ import android.content.Context import android.os.Build import androidx.annotation.RequiresApi import androidx.lifecycle.LiveData -import androidx.lifecycle.asFlow import foundation.e.apps.OpenForTesting import foundation.e.apps.data.enums.Status import foundation.e.apps.data.fdroid.FdroidRepository @@ -12,7 +11,6 @@ import foundation.e.apps.data.fused.data.FusedApp import foundation.e.apps.data.fusedDownload.models.FusedDownload import foundation.e.apps.install.download.data.DownloadProgress import foundation.e.apps.install.workmanager.InstallWorkManager -import kotlinx.coroutines.flow.Flow import javax.inject.Inject import javax.inject.Singleton diff --git a/app/src/main/java/foundation/e/apps/data/login/LoginSourceGPlay.kt b/app/src/main/java/foundation/e/apps/data/login/LoginSourceGPlay.kt index 5d541ad25..d5cf5e45b 100644 --- a/app/src/main/java/foundation/e/apps/data/login/LoginSourceGPlay.kt +++ b/app/src/main/java/foundation/e/apps/data/login/LoginSourceGPlay.kt @@ -28,7 +28,6 @@ import foundation.e.apps.data.login.api.GPlayApiFactory import foundation.e.apps.data.login.api.GPlayLoginInterface import foundation.e.apps.data.login.api.GoogleLoginApi import foundation.e.apps.data.login.api.LoginApiRepository -import foundation.e.apps.data.login.exceptions.GPlayValidationException import timber.log.Timber import java.util.Locale import javax.inject.Inject diff --git a/app/src/main/java/foundation/e/apps/data/login/api/LoginApiRepository.kt b/app/src/main/java/foundation/e/apps/data/login/api/LoginApiRepository.kt index 0d2c27eca..5d97b6487 100644 --- a/app/src/main/java/foundation/e/apps/data/login/api/LoginApiRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/login/api/LoginApiRepository.kt @@ -52,7 +52,7 @@ class LoginApiRepository constructor( * else blank for Anonymous login. */ suspend fun fetchAuthData(email: String, aasToken: String, locale: Locale): ResultSupreme { - val result = runCodeBlockWithTimeout({ + val result = runCodeWithTimeout({ gPlayLoginInterface.fetchAuthData(email, aasToken) }) return result.apply { @@ -76,7 +76,7 @@ class LoginApiRepository constructor( */ suspend fun login(authData: AuthData): ResultSupreme { var response = PlayResponse() - val result = runCodeBlockWithTimeout({ + val result = runCodeWithTimeout({ response = gPlayLoginInterface.login(authData) if (response.code != 200) { throw Exception("Validation network code: ${response.code}") @@ -110,7 +110,7 @@ class LoginApiRepository constructor( email: String, oauthToken: String ): ResultSupreme { - val result = runCodeBlockWithTimeout({ + val result = runCodeWithTimeout({ var aasToken = "" val response = googleLoginApi.getAC2DMResponse(email, oauthToken) var error = response.errorString @@ -142,7 +142,7 @@ class LoginApiRepository constructor( /** * Utility method to run a specified code block in a fixed amount of time. */ - private suspend fun runCodeBlockWithTimeout( + private suspend fun runCodeWithTimeout( block: suspend () -> T, timeoutBlock: (() -> T?)? = null, exceptionBlock: ((e: Exception) -> T?)? = null, diff --git a/app/src/main/java/foundation/e/apps/install/notification/NotificationManagerUtils.kt b/app/src/main/java/foundation/e/apps/install/notification/NotificationManagerUtils.kt index 8cf5e5dab..32d24712b 100644 --- a/app/src/main/java/foundation/e/apps/install/notification/NotificationManagerUtils.kt +++ b/app/src/main/java/foundation/e/apps/install/notification/NotificationManagerUtils.kt @@ -19,15 +19,11 @@ package foundation.e.apps.install.notification import android.content.Context -import androidx.core.app.NotificationCompat import dagger.hilt.android.qualifiers.ApplicationContext -import foundation.e.apps.R import foundation.e.apps.data.preference.PreferenceManagerModule import javax.inject.Inject class NotificationManagerUtils @Inject constructor( @ApplicationContext private val context: Context, private val preferenceManagerModule: PreferenceManagerModule -) { - -} +) diff --git a/app/src/main/java/foundation/e/apps/install/pkg/InstallerService.kt b/app/src/main/java/foundation/e/apps/install/pkg/InstallerService.kt index 7999cad9a..dcad5d9e2 100644 --- a/app/src/main/java/foundation/e/apps/install/pkg/InstallerService.kt +++ b/app/src/main/java/foundation/e/apps/install/pkg/InstallerService.kt @@ -23,7 +23,6 @@ import android.content.Intent import android.content.pm.PackageInstaller import android.os.IBinder import dagger.hilt.android.AndroidEntryPoint -import foundation.e.apps.data.enums.Status import foundation.e.apps.data.faultyApps.FaultyAppRepository import foundation.e.apps.data.fused.UpdatesDao import foundation.e.apps.data.fusedDownload.FusedManagerRepository diff --git a/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt b/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt index 1adac8b0e..32c7d597b 100644 --- a/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt +++ b/app/src/main/java/foundation/e/apps/install/updates/UpdatesWorker.kt @@ -12,7 +12,6 @@ import androidx.work.WorkInfo.State import androidx.work.WorkManager import androidx.work.WorkerParameters import com.aurora.gplayapi.data.models.AuthData -import com.google.gson.Gson import dagger.assisted.Assisted import dagger.assisted.AssistedInject import foundation.e.apps.R 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 6b3aee14f..d72884689 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 @@ -18,7 +18,6 @@ package foundation.e.apps.ui.application -import android.content.Intent import android.graphics.Color import android.graphics.drawable.Drawable import android.os.Bundle diff --git a/app/src/main/java/foundation/e/apps/ui/categories/CategoriesViewModel.kt b/app/src/main/java/foundation/e/apps/ui/categories/CategoriesViewModel.kt index 5e64e531e..acf7c933c 100644 --- a/app/src/main/java/foundation/e/apps/ui/categories/CategoriesViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/categories/CategoriesViewModel.kt @@ -84,5 +84,4 @@ class CategoriesViewModel @Inject constructor( } } } - } diff --git a/app/src/main/java/foundation/e/apps/ui/search/SearchViewModel.kt b/app/src/main/java/foundation/e/apps/ui/search/SearchViewModel.kt index 63160e77d..f24b0715e 100644 --- a/app/src/main/java/foundation/e/apps/ui/search/SearchViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/search/SearchViewModel.kt @@ -123,5 +123,4 @@ class SearchViewModel @Inject constructor( newFusedApps: List, oldFusedApps: List ) = fusedAPIRepository.isAnyFusedAppUpdated(newFusedApps, oldFusedApps) - } 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 d2e6e17ed..d3c507cad 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 @@ -20,7 +20,6 @@ package foundation.e.apps.ui.settings import android.content.ClipData import android.content.ClipboardManager -import android.content.Intent import android.os.Bundle import android.view.View import android.widget.Toast @@ -44,7 +43,6 @@ import foundation.e.apps.data.fused.UpdatesDao import foundation.e.apps.data.login.LoginViewModel import foundation.e.apps.databinding.CustomPreferenceBinding import foundation.e.apps.install.updates.UpdatesWorkManager -import foundation.e.apps.ui.MainActivity import foundation.e.apps.ui.MainActivityViewModel import foundation.e.apps.utils.SystemInfoProvider import timber.log.Timber diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 604464fa5..d2b048562 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -53,8 +53,6 @@ Diese App wird bald verfügbar sein! Unbekannter Fehler! Alle aktualisieren - App-Aktualisierungen werden automatisch installiert - App-Aktualisierungen werden nicht automatisch installiert Entdecke Top quelloffene aktualisierte Apps Top quelloffene aktualisierte Spiele @@ -80,8 +78,6 @@ Melde dich bei der App Lounge mit einem Google-Konto an, oder wähle den anonymen Modus aus, um dich geheim anzumelden. Überprüfungsintervall für Aktualisierungen Das Herunterladen und Installieren von App-Aktualisierungen im Hintergrund ausführen - Siehe auch \"%1$s\" -\n%2$s Datenschutz-Bewertung Datenschutz-Analysen Tracker (Verfolger) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 688e470e1..4106532d2 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -57,8 +57,6 @@ ¡Esta aplicación estará disponible pronto! ¡Error desconocido! Actualizar todas - Actualizaciones serán instaladas automáticamente - Actualizaciones no se instalarán automáticamente Explorar Aplicaciones de código abierto más actualizadas Juegos de código abierto más actualizados @@ -83,8 +81,6 @@ Aplicaciones Acceder con cuenta de Google o con modo anónimo para acceder de forma privada. Mostrar una notificación cuando hayan actualizaciones disponibles - Comprobar \"%1$s\" -\n%2$s Actualizar las aplicaciones automáticamente solo en redes sin datos móviles como el WI-FI Actualizar Puntuación sobre 5. Calculada usando las valoraciones de los usuarios de la aplicación. diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index f2730e936..eb4bfeaac 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -1,6 +1,5 @@ - Sovelluspäivitykset asennetaan automaattisesti %1$d sovelluspäivitys saatavilla %1$d sovelluspäivitystä saatavilla @@ -34,8 +33,6 @@ Peruuta Asenna OK - Katso myös \"%1$s\" -\n%2$s Kuvaus Kirjaudu ulos Anonyymi @@ -105,7 +102,6 @@ Avoimen lähdekoodin päivitettyjen sovellusten Top lista Tutustu Kaikki sovellukset ovat ajan tasalla - Sovelluspäivityksiä ei asenneta automaattisesti Asennetaan Kuukaisittain Viikottain diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 7a54dbb57..d84ee5056 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -52,8 +52,6 @@ Cette application sera disponible plus tard ! Erreur inconnue ! Tout mettre à jour - Les mises à jour d\'application seront installées automatiquement - Les mises à jour d\'application ne seront pas installées automatiquement Découvrir Top des apps Open Source mises à jour Top des jeux Open Source mis à jour @@ -92,8 +90,6 @@ Les mises à jour d\'application seront installées automatiquement En attente d\'un réseau illimité Calculé à partir des <a href=%1$s> analyses d\'Exodus Privacy - Terminer \"%1$s\" -\n%2$s Icône de catégorie Connectez-vous à App Lounge en utilisant votre compte Google ou sélectionnez le mode Anonyme pour protéger votre vie privée. Apps les mieux classées diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml index e055a7013..086e3cbb2 100644 --- a/app/src/main/res/values-is/strings.xml +++ b/app/src/main/res/values-is/strings.xml @@ -91,8 +91,6 @@ Útgáfa /e/ OS Veldu a.m.k. ein upptök forrita. Þú verður að skrá þig inn til að sjá algeng forrit. - Skoðaðu \"%1$s\" -\n%2$s Einhver vandamál í netkerfinu koma í veg fyrir að hægt sé að sækja öll forrit. Villa kom upp við að hlaða inn forritum. PWA-vefforrit @@ -100,7 +98,6 @@ %1$d uppfærsla forrits er tiltæk %1$d uppfærslur forrita eru tiltækar - Uppfærslur forrita verða sjálfkrafa settar inn Skráðu þig inn með Google-aðgangnum þínum, eða veldu nafnleysisham til að skrá þig inn í kyrrþey. PWA-vefforrit og opinn hugbúnaður Stig af 5 mögulegum. Reiknað út frá þeim einkunnum sem notendur hafa gefið forritinu. @@ -108,7 +105,6 @@ Forritið þitt fannst ekki. Af hverju sé ég opnu hugbúnaðarútgáfuna\? Forrit með opinn grunnkóða - Uppfærslur forrita verða ekki settar sjálfkrafa inn Öll forrit eru af nýjustu útgáfu Kynntu þér PWA-vefforrit Vinsæl PWA-vefforrit diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index c91630a02..5dd0ee800 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -59,8 +59,6 @@ Questa App sarà disponibile prossimamente! Errore sconosciuto! Aggiorna tutto - Gli aggiornamenti App verranno installati automaticamente - Gli aggiornamenti App non verranno installati automaticamente Scopri App Open Source più richieste nelle ultime 24 ore Giochi Open Source più richiesti nelle ultime 24 ore @@ -82,8 +80,6 @@ Le App a pagamento non sono ancora supportate da App Lounge. Un pò di pazienza e lo saranno. Non riesco a connettermi! Verifica la connessione internet e ritenta Mostra una notifica quando sono disponibili aggiornamenti App - Verifica \"%1$s\" -\n%2$s Installa Annulla Icona App diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index bd37f1c90..15f659b59 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -44,8 +44,6 @@ På gunn av forbigående feil kan ikke alle dine applikasjoner bli oppdaterte. Prøv igjen senere. Oppdateringsfeil! Alle applikasjoner er oppdaterte - Applikasjonsoppdateringer vil ikke bli installert automatisk - Applikasjonsoppdateringer vil bli installert automatisk %1$d applikasjonsoppdatering er tilgjengelig %1$d applikasjonsoppdateringer er tilgjengelige @@ -81,8 +79,6 @@ Installerer Installer OK - Sjekk ut \"%1$s\" -\n%2$s Beskrivelse Logg inn Velg minst én applikasjonskilde. diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index c5d250115..280876b0b 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -36,8 +36,6 @@ Ontdek Update Fout! Alle apps zijn up-to-date - App updates zullen niet automatisch geïnstalleerd worden - App updates zullen automatisch geïnstalleerd worden %1$d app update is beschikbaar %1$d app updates zijn beschikbaar @@ -77,8 +75,6 @@ Installeren Installeren OK - Zie ook \"%1$s\" -\n%2$s Beschrijving Uitloggen Anoniem diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 0a4f7026d..b331d8814 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -116,8 +116,6 @@ Ошибка обновления! Обновление не может быть применено из-за несоответствия подписи между обновлением %1$s и версией, установленной на вашем телефоне. Чтобы исправить это, вы можете удалить %1$s, а затем снова установить его из App Lounge.

Примечание: это сообщение больше не появится.
Все приложения обновлены - Обновления приложений не будут устанавливаться автоматически - Обновления приложений будут устанавливаться автоматически Обновить все Невозможно показать приложение Google Play, когда разрешены только Open Source приложения. Некоторые проприетарные приложения могут также иметь Open Source версию. Когда это происходит, App Lounge показывает только Open Source версию, чтобы избежать дублирования. @@ -153,8 +151,6 @@ Отмена Установка Установить - Проверьте \"%1$s\" -\n%2$s Описание Вышел из системы Войти diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 3247e6a7f..29ec96d10 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -47,8 +47,6 @@ Із-за тимчасової помилки, Ваші додатки не можуть бути оновлені. Будь-ласка, спробуйте пізніше. Помилка оновлення! Всі додатки мають останню версію - Оновлення додатків не встановлюватимуться автоматично - Оновлення додатків будуть встановлені автоматично Оновити все Показати більше Щось пішло не так! @@ -76,8 +74,6 @@ Встановлення Встановити ОК - Перевірте \"%1$s\" -\n%2$s Опис Вийти Анонімно diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 16f1a03c3..69f3bacfd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -83,7 +83,6 @@ Description - Check out \"%1$s\"\n%2$s OK Install Installing @@ -135,8 +134,6 @@ %1$d app update is available %1$d app updates are available
- App updates will be installed automatically - App updates will not be installed automatically All apps are up-to-date The update cannot be applied because there is a signature mismatch between the update of %1$s and the version you\'ve installed on your phone. To remedy this you can uninstall %1$s and then install it again from App Lounge. <br /><br /> Note: This message won\'t appear again. Update Error! -- GitLab