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 dfb9361446ceff1826f13ab13e0c60677e30a22f..0c1bcbdf0567930c234c008e1d6def905331bc89 100644 --- a/app/src/main/java/foundation/e/apps/data/Result.kt +++ b/app/src/main/java/foundation/e/apps/data/Result.kt @@ -35,12 +35,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 1e62152bc0b6a857f8fcbb7f699852dd36a763e5..69574481db52aeda77f3c62983461a499f8a35f8 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/cleanapk/repositories/CleanAPKRepository.kt b/app/src/main/java/foundation/e/apps/data/cleanapk/repositories/CleanAPKRepository.kt deleted file mode 100644 index 22656d5bbe3a6d2e4cddd5a3b36e6bf710cc11cb..0000000000000000000000000000000000000000 --- 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 78% 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 index 44dc8f4beab6134b8baca15fccb270cfbf4be263..29d3eab4cca2cedca2d79d79642902a6835e3b2e 100644 --- a/app/src/main/java/foundation/e/apps/data/exodus/TrackerApiResponse.kt +++ b/app/src/main/java/foundation/e/apps/data/exodus/Report.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 88b1048657d490a939834364eb4e83a6915b434a..f688d83e6dfad0d482dceb9de3f52acdf7ff5c02 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 -> runCodeWithTimeout({ priorList.addAll(fetchGPlayHome(authData)) }) - Source.OPEN -> runCodeBlockWithTimeout({ + Source.OPEN -> runCodeWithTimeout({ val response = (cleanApkAppsRepository.getHomeScreenData() as Response).body() response?.home?.let { @@ -176,7 +176,7 @@ class FusedApiImpl @Inject constructor( } }) - Source.PWA -> runCodeBlockWithTimeout({ + 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.runCodeBlockWithTimeout({ + 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.runCodeBlockWithTimeout({ + 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 = runCodeBlockWithTimeout({ + 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 = runCodeBlockWithTimeout({ + 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 = runCodeBlockWithTimeout({ + 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 = runCodeBlockWithTimeout({ + 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 = runCodeBlockWithTimeout({ + 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 = runCodeBlockWithTimeout({ + status = runCodeWithTimeout({ cleanApkAppsRepository.getSearchResult( packageName, "package_name" @@ -674,7 +674,7 @@ class FusedApiImpl @Inject constructor( /* * Old code moved from getApplicationDetails() */ - val status = runCodeBlockWithTimeout({ + 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 = runCodeBlockWithTimeout({ + 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 = runCodeBlockWithTimeout({ + 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() - runCodeBlockWithTimeout({ + 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() - runCodeBlockWithTimeout({ + runCodeWithTimeout({ getPWAsCategories()?.let { fusedCategoriesList.addAll( getFusedCategoryBasedOnCategoryType( @@ -918,7 +918,7 @@ class FusedApiImpl @Inject constructor( var errorApplicationCategory = "" var apiStatus: ResultStatus = ResultStatus.OK val fusedCategoryList = mutableListOf() - runCodeBlockWithTimeout({ + 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 runCodeBlockWithTimeout( + 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 = runCodeBlockWithTimeout({ + 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/FileManager.kt b/app/src/main/java/foundation/e/apps/data/fusedDownload/FileManager.kt index 63ff614d0b55ea5b4bb67f256d9f7c325a3995cc..32a9fab55325f6a618b7d408e98f17f7feca5c31 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 863172191bb7b8a01c5a422ec9c3eed456e5b267..6ed1bfb67274c2ee034fcbd7ea94a3120aa57b95 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 7c6ad105d68c1775f04acbb7ddc62a283be76837..42935ee212e5416a572d510c918d323f240c2eeb 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 @@ -75,14 +73,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 5bb38c06013a1359e0a321daf1ca72912ac15214..d5cf5e45b584a4f5fdb3c294a2482007dc9bda92 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 @@ -213,46 +212,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/login/api/LoginApiRepository.kt b/app/src/main/java/foundation/e/apps/data/login/api/LoginApiRepository.kt index 0d2c27eca78c469d225b4c529ba8242b158872ce..5d97b64870aa92b261af2e29cf8470a2bc47d110 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/data/preference/DataStoreModule.kt b/app/src/main/java/foundation/e/apps/data/preference/DataStoreModule.kt index c51b3d593361b11d077a3021582deebc7817ad04..a8482aaeba868baa93c459411a360322ecd19965 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 ca192e572d051099fe7676c2c1283b2b5105d254..c4e786c2fe1ded12ee8210ba4d06a6e68d9fe1d1 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 f868f978ae6c4a66582177042f3890e2604ca008..e19e0889026a8a285d9b721c5c845ac17e6875c5 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 a508197d3e37074a5efec41aacaca7cfec72761a..fee2e5366b75857082381cf7e8dd3860c97c0a43 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 fc32fbf97888d1b0af683e3e0a2d6d83f7927416..b6c1493abce6caf7d36fc7e92e77a1275d192631 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 23a6be9a9f59b904cad302cfff1d9c1b517d658a..32d24712be3ebb4f74ce2de4e7ff137cd60fe23c 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,41 +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 -) { - - 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 180e089389a0eb1f9f76a3125af8d87abc5179f4..dcad5d9e2bc35b38b26d73454543903b6a1f8a04 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 @@ -103,18 +102,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 0a3fa6f5ed9011b4e69bd4ab5958ad2db727f5e9..fc9e38f72c33748ff7d0feb678def517317b2643 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 bbb7db23224b4c8bbc36366cdc668a09fd6f76fe..2afb071e9d6afd301c5adc53724760b756698993 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 a966bf97b7ca464576ba11b6667100a2d3440d98..3edffdff75a812efd7b7cfe81fa9c0ac5f5b5523 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 543fca6f30d96309cc0ecda701b55907342329a8..32c7d597bf47f10ca9abeed60e001642c969a332 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 @@ -44,7 +43,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 +204,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 7ed03ac08e4fe6c1a2e7d2ade00e201d0812136a..e26c1df66d9f63153b1249ed7529599a2be09818 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 2252a43155751ce7ddebd9c81f0c6d8ffddfc991..97b9a1a885fa8b42e1a211b822d4d2660cee977c 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 4e0a86185f2f7201fc3394cdadeea73a7a0164f1..d72884689b64d5eeb0da3f8f7fdacbc538e032b9 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 @@ -830,15 +829,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 1aa706fbd543df47f7a5fd0eda70700469c05420..ccf2abcbb8b032f827d07bbc8c0040f85cbe8a73 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 12bd1aa3c5ad60feba81d0b54de7adb8431a5e50..1799be2481dc2a225ae82c766f5e4bc92b5e236f 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 c6badc4d12dbb6c612966ec0d8e3ad7744a7fc27..369490dd5a909d650e8c0c110590d477b3a8eb17 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 73b76d791142f707d905becafd12a49fa995496a..acf7c933c1595cfa1d1b5eecac30b7748e67e609 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,8 +84,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 981761b85581a4919aa304a38f98e0bb909b9de8..7714c2b9c5fd64bb3bcaac5507a3484ed5c47788 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 6582eb4b7c2e36ce2a59c23abb4f4a30365af6f4..decd860dbcadb694d0a6f100aab4bce3068d9103 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 09f8b2d6aede5ad21bfb736fc47451f68e3a61e0..f24b0715e28df5ac2ef059417cab89b8654ac1da 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,7 +123,4 @@ class SearchViewModel @Inject constructor( newFusedApps: List, 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 d6fb75fbdd7c128e000665beb1c3531b08c1c9e4..d3c507cad16681bb6ca6c907bcb3d24d3a156528 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 @@ -72,10 +70,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 +237,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 dd927f2d9ad4eeab0050e7b8ca38cdf251616b12..5be760a1b3c7aa07e34bbc7531d1866227a65487 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 1db01bb0cab4e2a329be77780d24d639b699874b..bf6998e177c766bdd5a3d112b7494ab343238b3c 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 } diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 604464fa52c01c7141c6ff57ca758d44d56e7f09..d2b04856270ecb0f5fbf7d7e25c0284cd77d961e 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 688e470e1097708db075c71658841334a338811d..4106532d2965254aefcdf05849671f77744737fc 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 f2730e936140e16d125a7484a5a801607ce534af..eb4bfeaac5f3b85f2a4049b7d0a14e2141f4d9b1 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 7a54dbb573e2111b8ef4b89690194948f436e392..d84ee5056018255e7e9e85c3b881666ba9cad0bc 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 e055a70130132b7e7c92dd3aec3def5eb80833af..086e3cbb23609793847009370dd991848bc5ed3b 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 c91630a02265ed6205d5a89fc8227e13ce28f7c4..5dd0ee8004cba8f021e9bbcfd595c0ed4b9d9a2b 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 bd37f1c90cdff05c0c27113b9200642b64137fc0..15f659b59b5d0cfe0a873193c944ce766ec98c61 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 c5d250115f7daf3be7e8f54d27ec3040d2dfe7e6..280876b0ba093d9708f3d116c5123a27ca2c3c0f 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 0a4f7026d800d480480f891a229babaf03bde9a1..b331d8814754c6bdd19930d029f6157ed8f6750e 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 3247e6a7f291b63b95195497e05f4f3628fa0d55..29ec96d102473b44dcbe2d8763212548413cd00a 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 16f1a03c3e2a608527918c05268661b570c1cf89..69f3bacfd767a3dcf44a5a6781ad7dde357f7b07 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!