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

Commit abfc19a1 authored by Guillaume Jacquart's avatar Guillaume Jacquart
Browse files

Merge branch '4025-install_app_through_service' into 'main'

4025 install app through service

See merge request !687
parents 46049d65 f4d8df1a
Loading
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -207,3 +207,11 @@ publish-contracts:
  script:
    - ./gradlew :parental-control-data:build
    - ./gradlew :parental-control-data:publish

publish-installapplib:
  stage: publish
  rules: *rules_publish
  script:
    - ./gradlew :install-app-lib:build
    - ./gradlew :install-app-lib:publish
+8 −6
Original line number Diff line number Diff line
@@ -106,13 +106,13 @@ tasks.withType(Test).configureEach {
}

android {
    compileSdk = 36
    compileSdk = libs.versions.compileSdk.get().toInteger()

    defaultConfig {
        applicationId = "foundation.e.apps"
        minSdk = 30
        minSdk = libs.versions.minSdk.get().toInteger()
        //noinspection OldTargetApi
        targetSdk = 34
        targetSdk = libs.versions.targetSdk.get().toInteger()
        versionCode = versionMajor * 1000000 + versionMinor * 1000 + versionPatch
        versionName = "${versionMajor}.${versionMinor}.${versionPatch}"

@@ -167,13 +167,14 @@ android {
        buildConfig = true
        viewBinding = true
        compose = true
        aidl = true
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_21
        targetCompatibility = JavaVersion.VERSION_21
        sourceCompatibility = JavaVersion.toVersion(libs.versions.jvmTarget.get())
        targetCompatibility = JavaVersion.toVersion(libs.versions.jvmTarget.get())
    }
    kotlinOptions {
        jvmTarget = '21'
        jvmTarget = libs.versions.jvmTarget.get()
    }
    lint {
        lintConfig = file('lint.xml')
@@ -237,6 +238,7 @@ dependencies {
    implementation(project(":parental-control-data"))
    implementation(project(":domain"))
    implementation(project(":data"))
    implementation(project(":install-app-lib"))

    // eFoundation libraries
    implementation(libs.telemetry)
+10 −0
Original line number Diff line number Diff line
@@ -24,6 +24,10 @@
        android:name="${applicationId}.permission.AUTH_DATA_PROVIDER"
        android:protectionLevel="signature" />

    <permission
        android:name="foundation.e.apps.permission.BIND_INSTALL_SERVICE"
        android:protectionLevel="signature" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.GET_TASKS" />
@@ -138,6 +142,12 @@
            android:foregroundServiceType="dataSync">
        </service>

        <service
            android:name=".services.InstallAppService"
            android:exported="true"
            android:permission="foundation.e.apps.permission.BIND_INSTALL_SERVICE">
        </service>

        <receiver
            android:name="foundation.e.apps.data.install.download.DownloadManagerBR"
            android:exported="true">
+4 −2
Original line number Diff line number Diff line
/*
 * Copyright MURENA SAS 2023
 * Copyright MURENA SAS 2023-2026
 * Apps  Quickly and easily install Android apps onto your device!
 *
 * This program is free software: you can redistribute it and/or modify
@@ -101,7 +101,9 @@ class CleanApkAppsRepository @Inject constructor(
            type = null
        )

        return response.body()?.app ?: return Application()
        return response.body()?.app?.let {
            it.copy(source = if (it.is_pwa) Source.PWA else Source.OPEN_SOURCE)
        } ?: Application()
    }

    override suspend fun getSearchResults(pattern: String): List<Application> {
+11 −1
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import foundation.e.apps.data.cleanapk.CleanApkSearchHelper
import foundation.e.apps.data.cleanapk.data.categories.Categories
import foundation.e.apps.data.cleanapk.data.search.Search
import foundation.e.apps.data.enums.Source
import foundation.e.apps.data.enums.Type
import retrofit2.Response
import javax.inject.Inject

@@ -87,7 +88,16 @@ class CleanApkPwaRepository @Inject constructor(
        val apps = cleanApkRetrofit.checkAvailablePackages(listOf(packageName), CleanApkRetrofit.APP_TYPE_PWA)
        val app = apps.body()?.apps?.firstOrNull() ?: return Application()
        val response = cleanApkRetrofit.getAppOrPWADetailsByID(app._id, null, null)
        return response.body()?.app ?: return Application()
        return response.body()?.app?.let {
            if (it.is_pwa) {
                it.copy(
                    source = Source.PWA,
                    type = Type.PWA
                )
            } else {
                it
            }
        } ?: Application()
    }

    override suspend fun getSearchResults(pattern: String): List<Application> {
Loading