Loading app/src/main/AndroidManifest.xml +4 −4 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ xmlns:tools="http://schemas.android.com/tools"> <permission android:name="foundation.e.apps.permission.AUTH_DATA_PROVIDER" android:name="${applicationId}.permission.AUTH_DATA_PROVIDER" android:protectionLevel="signature" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> Loading Loading @@ -124,7 +124,7 @@ </receiver> <!-- TODO: ExportedReceiver, suppressing because changes are needed in other apps --> <receiver android:name=".install.receiver.PWAPlayerStatusReceiver" <receiver android:name=".install.receiver.PwaPlayerStatusReceiver" tools:ignore="ExportedReceiver" android:exported="true"> <intent-filter> Loading Loading @@ -175,8 +175,8 @@ <provider android:name=".microg.AuthDataProvider" android:authorities="foundation.e.apps.authdata.provider" android:readPermission="foundation.e.apps.permission.AUTH_DATA_PROVIDER" android:authorities="${applicationId}.authdata.provider" android:readPermission="${applicationId}.permission.AUTH_DATA_PROVIDER" android:exported="true"/> </application> Loading app/src/main/java/foundation/e/apps/data/AppSourcesContainer.kt +5 −5 Original line number Diff line number Diff line Loading @@ -19,15 +19,15 @@ package foundation.e.apps.data import foundation.e.apps.data.cleanapk.repositories.CleanApkRepository import foundation.e.apps.data.cleanapk.repositories.CleanApkAppsRepository import foundation.e.apps.data.cleanapk.repositories.CleanApkPwaRepository import foundation.e.apps.data.playstore.PlayStoreRepository import javax.inject.Inject import javax.inject.Named import javax.inject.Singleton @Singleton class AppSourcesContainer @Inject constructor( @Named("gplayRepository") val gplayRepo: PlayStoreRepository, @Named("cleanApkAppsRepository") val cleanApkAppsRepo: CleanApkRepository, @Named("cleanApkPWARepository") val cleanApkPWARepo: CleanApkRepository val gplayRepo: PlayStoreRepository, val cleanApkAppsRepo: CleanApkAppsRepository, val cleanApkPWARepo: CleanApkPwaRepository ) app/src/main/java/foundation/e/apps/data/StoreRepository.kt +4 −2 Original line number Diff line number Diff line Loading @@ -18,7 +18,9 @@ package foundation.e.apps.data import foundation.e.apps.data.application.data.Application interface StoreRepository { suspend fun getHomeScreenData(): Any suspend fun getAppDetails(packageNameOrId: String): Any? suspend fun getHomeScreenData(): Map<String, List<Application>> suspend fun getAppDetails(packageNameOrId: String): Application } app/src/main/java/foundation/e/apps/data/application/ApplicationDataManager.kt +5 −6 Original line number Diff line number Diff line Loading @@ -26,17 +26,16 @@ import foundation.e.apps.data.enums.FilterLevel import foundation.e.apps.data.enums.Origin import foundation.e.apps.data.enums.Status import foundation.e.apps.data.playstore.PlayStoreRepository import foundation.e.apps.install.pkg.PWAManager import foundation.e.apps.install.pkg.PwaManager import foundation.e.apps.install.pkg.AppLoungePackageManager import javax.inject.Inject import javax.inject.Named import javax.inject.Singleton @Singleton class ApplicationDataManager @Inject constructor( @Named("gplayRepository") private val gplayRepository: PlayStoreRepository, private val gPlayRepository: PlayStoreRepository, private val appLoungePackageManager: AppLoungePackageManager, private val pwaManager: PWAManager private val pwaManager: PwaManager ) { suspend fun updateFilterLevel(authData: AuthData?, application: Application) { application.filterLevel = getAppFilterLevel(application, authData) Loading Loading @@ -81,7 +80,7 @@ class ApplicationDataManager @Inject constructor( * Example: com.skype.m2 */ private suspend fun isApplicationVisible(application: Application): Boolean { return kotlin.runCatching { gplayRepository.getAppDetails(application.package_name) }.isSuccess return kotlin.runCatching { gPlayRepository.getAppDetails(application.package_name) }.isSuccess } /* Loading @@ -90,7 +89,7 @@ class ApplicationDataManager @Inject constructor( */ private suspend fun isDownloadable(application: Application): Boolean { return kotlin.runCatching { gplayRepository.getDownloadInfo( gPlayRepository.getDownloadInfo( application.package_name, application.latest_version_code, application.offer_type, Loading app/src/main/java/foundation/e/apps/data/application/apps/AppsApiImpl.kt +6 −10 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ package foundation.e.apps.data.application.apps import android.content.Context import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.AuthData import com.aurora.gplayapi.data.models.ContentRating import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.data.AppSourcesContainer import foundation.e.apps.data.application.ApplicationDataManager Loading @@ -38,7 +37,7 @@ import foundation.e.apps.data.preference.AppLoungePreference import foundation.e.apps.ui.applicationlist.ApplicationDiffUtil import retrofit2.Response import javax.inject.Inject import foundation.e.apps.data.cleanapk.data.app.Application as CleanApkApplication import foundation.e.apps.data.cleanapk.data.app.CleanApkApplication class AppsApiImpl @Inject constructor( @ApplicationContext private val context: Context, Loading @@ -61,8 +60,7 @@ class AppsApiImpl @Inject constructor( if (result?.hasSingleResult() == true) { application = (appSources.cleanApkAppsRepo.getAppDetails(result.apps[0]._id) as Response<CleanApkApplication>).body()?.app ?: Application() appSources.cleanApkAppsRepo.getAppDetails(result.apps[0]._id) } application.updateFilterLevel(null) Loading Loading @@ -190,18 +188,16 @@ class AppsApiImpl @Inject constructor( authData: AuthData, origin: Origin ): Pair<Application, ResultStatus> { var application: Application? var application: Application val result = handleNetworkResult { application = if (origin == Origin.CLEANAPK) { (appSources.cleanApkAppsRepo.getAppDetails(id) as Response<CleanApkApplication>).body()?.app appSources.cleanApkAppsRepo.getAppDetails(id) } else { val app = appSources.gplayRepo.getAppDetails(packageName) as App? app?.toApplication(context) appSources.gplayRepo.getAppDetails(packageName) } application?.let { application.let { applicationDataManager.updateStatus(it) it.updateType() it.updateSource(context) Loading Loading
app/src/main/AndroidManifest.xml +4 −4 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ xmlns:tools="http://schemas.android.com/tools"> <permission android:name="foundation.e.apps.permission.AUTH_DATA_PROVIDER" android:name="${applicationId}.permission.AUTH_DATA_PROVIDER" android:protectionLevel="signature" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> Loading Loading @@ -124,7 +124,7 @@ </receiver> <!-- TODO: ExportedReceiver, suppressing because changes are needed in other apps --> <receiver android:name=".install.receiver.PWAPlayerStatusReceiver" <receiver android:name=".install.receiver.PwaPlayerStatusReceiver" tools:ignore="ExportedReceiver" android:exported="true"> <intent-filter> Loading Loading @@ -175,8 +175,8 @@ <provider android:name=".microg.AuthDataProvider" android:authorities="foundation.e.apps.authdata.provider" android:readPermission="foundation.e.apps.permission.AUTH_DATA_PROVIDER" android:authorities="${applicationId}.authdata.provider" android:readPermission="${applicationId}.permission.AUTH_DATA_PROVIDER" android:exported="true"/> </application> Loading
app/src/main/java/foundation/e/apps/data/AppSourcesContainer.kt +5 −5 Original line number Diff line number Diff line Loading @@ -19,15 +19,15 @@ package foundation.e.apps.data import foundation.e.apps.data.cleanapk.repositories.CleanApkRepository import foundation.e.apps.data.cleanapk.repositories.CleanApkAppsRepository import foundation.e.apps.data.cleanapk.repositories.CleanApkPwaRepository import foundation.e.apps.data.playstore.PlayStoreRepository import javax.inject.Inject import javax.inject.Named import javax.inject.Singleton @Singleton class AppSourcesContainer @Inject constructor( @Named("gplayRepository") val gplayRepo: PlayStoreRepository, @Named("cleanApkAppsRepository") val cleanApkAppsRepo: CleanApkRepository, @Named("cleanApkPWARepository") val cleanApkPWARepo: CleanApkRepository val gplayRepo: PlayStoreRepository, val cleanApkAppsRepo: CleanApkAppsRepository, val cleanApkPWARepo: CleanApkPwaRepository )
app/src/main/java/foundation/e/apps/data/StoreRepository.kt +4 −2 Original line number Diff line number Diff line Loading @@ -18,7 +18,9 @@ package foundation.e.apps.data import foundation.e.apps.data.application.data.Application interface StoreRepository { suspend fun getHomeScreenData(): Any suspend fun getAppDetails(packageNameOrId: String): Any? suspend fun getHomeScreenData(): Map<String, List<Application>> suspend fun getAppDetails(packageNameOrId: String): Application }
app/src/main/java/foundation/e/apps/data/application/ApplicationDataManager.kt +5 −6 Original line number Diff line number Diff line Loading @@ -26,17 +26,16 @@ import foundation.e.apps.data.enums.FilterLevel import foundation.e.apps.data.enums.Origin import foundation.e.apps.data.enums.Status import foundation.e.apps.data.playstore.PlayStoreRepository import foundation.e.apps.install.pkg.PWAManager import foundation.e.apps.install.pkg.PwaManager import foundation.e.apps.install.pkg.AppLoungePackageManager import javax.inject.Inject import javax.inject.Named import javax.inject.Singleton @Singleton class ApplicationDataManager @Inject constructor( @Named("gplayRepository") private val gplayRepository: PlayStoreRepository, private val gPlayRepository: PlayStoreRepository, private val appLoungePackageManager: AppLoungePackageManager, private val pwaManager: PWAManager private val pwaManager: PwaManager ) { suspend fun updateFilterLevel(authData: AuthData?, application: Application) { application.filterLevel = getAppFilterLevel(application, authData) Loading Loading @@ -81,7 +80,7 @@ class ApplicationDataManager @Inject constructor( * Example: com.skype.m2 */ private suspend fun isApplicationVisible(application: Application): Boolean { return kotlin.runCatching { gplayRepository.getAppDetails(application.package_name) }.isSuccess return kotlin.runCatching { gPlayRepository.getAppDetails(application.package_name) }.isSuccess } /* Loading @@ -90,7 +89,7 @@ class ApplicationDataManager @Inject constructor( */ private suspend fun isDownloadable(application: Application): Boolean { return kotlin.runCatching { gplayRepository.getDownloadInfo( gPlayRepository.getDownloadInfo( application.package_name, application.latest_version_code, application.offer_type, Loading
app/src/main/java/foundation/e/apps/data/application/apps/AppsApiImpl.kt +6 −10 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ package foundation.e.apps.data.application.apps import android.content.Context import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.AuthData import com.aurora.gplayapi.data.models.ContentRating import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.data.AppSourcesContainer import foundation.e.apps.data.application.ApplicationDataManager Loading @@ -38,7 +37,7 @@ import foundation.e.apps.data.preference.AppLoungePreference import foundation.e.apps.ui.applicationlist.ApplicationDiffUtil import retrofit2.Response import javax.inject.Inject import foundation.e.apps.data.cleanapk.data.app.Application as CleanApkApplication import foundation.e.apps.data.cleanapk.data.app.CleanApkApplication class AppsApiImpl @Inject constructor( @ApplicationContext private val context: Context, Loading @@ -61,8 +60,7 @@ class AppsApiImpl @Inject constructor( if (result?.hasSingleResult() == true) { application = (appSources.cleanApkAppsRepo.getAppDetails(result.apps[0]._id) as Response<CleanApkApplication>).body()?.app ?: Application() appSources.cleanApkAppsRepo.getAppDetails(result.apps[0]._id) } application.updateFilterLevel(null) Loading Loading @@ -190,18 +188,16 @@ class AppsApiImpl @Inject constructor( authData: AuthData, origin: Origin ): Pair<Application, ResultStatus> { var application: Application? var application: Application val result = handleNetworkResult { application = if (origin == Origin.CLEANAPK) { (appSources.cleanApkAppsRepo.getAppDetails(id) as Response<CleanApkApplication>).body()?.app appSources.cleanApkAppsRepo.getAppDetails(id) } else { val app = appSources.gplayRepo.getAppDetails(packageName) as App? app?.toApplication(context) appSources.gplayRepo.getAppDetails(packageName) } application?.let { application.let { applicationDataManager.updateStatus(it) it.updateType() it.updateSource(context) Loading