Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ed4738a9 authored by Jonathan Klee's avatar Jonathan Klee
Browse files

Merge branch '0000-u-refacto' into 'main'

Various improvement

See merge request !506
parents a00837ac 185971a3
Loading
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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" />
@@ -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>
@@ -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>
+5 −5
Original line number Diff line number Diff line
@@ -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
)
+4 −2
Original line number Diff line number Diff line
@@ -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
}
+5 −6
Original line number Diff line number Diff line
@@ -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)
@@ -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
    }

    /*
@@ -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,
+6 −10
Original line number Diff line number Diff line
@@ -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
@@ -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,
@@ -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)
@@ -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