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

Commit c2041ae0 authored by Hasib Prince's avatar Hasib Prince
Browse files

App lounge: auto update is working according to given settings

UpdatesManager added to manage workmanager on change of update settings
UpdatesWork is responsible for managing auto update process, notification is not added yet
Flow has been exposed from DataStoreModule and FusedManagerRepository
parent 0a94b12c
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -127,6 +127,8 @@ dependencies {
    def hilt_version = '2.40.5'
    kapt "com.google.dagger:hilt-compiler:$hilt_version"
    implementation "com.google.dagger:hilt-android:$hilt_version"
    implementation 'androidx.hilt:hilt-work:1.0.0'
    kapt 'androidx.hilt:hilt-compiler:1.0.0'

    // Lifecycle Components
    def lifecycle_version = "2.4.0"
@@ -143,4 +145,7 @@ dependencies {
    kapt "androidx.room:room-compiler:$roomVersion"
    implementation "androidx.room:room-ktx:$roomVersion"
    implementation "androidx.room:room-runtime:$roomVersion"

    // WorkManager
    implementation 'androidx.work:work-runtime-ktx:2.7.1'
}
 No newline at end of file
+7 −0
Original line number Diff line number Diff line
@@ -52,6 +52,13 @@
                <action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
            </intent-filter>
        </receiver>

        <!-- If you want to disable android.startup completely. -->
        <provider
            android:name="androidx.startup.InitializationProvider"
            android:authorities="${applicationId}.androidx-startup"
            tools:node="remove">
        </provider>
    </application>

</manifest>
 No newline at end of file
+10 −1
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@
package foundation.e.apps

import android.app.Application
import androidx.hilt.work.HiltWorkerFactory
import androidx.work.Configuration
import dagger.hilt.android.HiltAndroidApp
import foundation.e.apps.manager.pkg.PkgManagerBR
import foundation.e.apps.manager.pkg.PkgManagerModule
@@ -27,10 +29,12 @@ import javax.inject.Inject

@HiltAndroidApp
@DelicateCoroutinesApi
class AppLoungeApplication : Application() {
class AppLoungeApplication : Application(), Configuration.Provider {

    @Inject
    lateinit var pkgManagerModule: PkgManagerModule
    @Inject
    lateinit var workerFactory: HiltWorkerFactory

    override fun onCreate() {
        super.onCreate()
@@ -39,4 +43,9 @@ class AppLoungeApplication : Application() {
        val pkgManagerBR = object : PkgManagerBR() {}
        registerReceiver(pkgManagerBR, pkgManagerModule.getFilter())
    }

    override fun getWorkManagerConfiguration() =
        Configuration.Builder()
            .setWorkerFactory(workerFactory)
            .build()
}
+3 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.app.DownloadManager
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.util.Log
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.DelicateCoroutinesApi
import javax.inject.Inject
@@ -32,11 +33,13 @@ class DownloadManagerBR : BroadcastReceiver() {

    @Inject
    lateinit var downloadManagerUtils: DownloadManagerUtils
    private val TAG = DownloadManagerBR::class.simpleName

    override fun onReceive(context: Context?, intent: Intent?) {
        val action = intent?.action
        if (context != null && action != null) {
            val id = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0)
            Log.d(TAG, "onReceive: $action")
            when (action) {
                DownloadManager.ACTION_DOWNLOAD_COMPLETE -> {
                    if (downloadManagerUtils.downloadStatus(id) == DownloadManager.STATUS_SUCCESSFUL) {
+6 −0
Original line number Diff line number Diff line
@@ -3,8 +3,10 @@ package foundation.e.apps.manager.fused
import android.os.Build
import androidx.annotation.RequiresApi
import androidx.lifecycle.LiveData
import androidx.lifecycle.asFlow
import foundation.e.apps.manager.database.fusedDownload.FusedDownload
import foundation.e.apps.utils.enums.Status
import kotlinx.coroutines.flow.Flow
import javax.inject.Inject
import javax.inject.Singleton

@@ -34,6 +36,10 @@ class FusedManagerRepository @Inject constructor(
        return fusedManagerImpl.getDownloadLiveList()
    }

    fun getDownloadListFlow(): Flow<List<FusedDownload>> {
        return fusedManagerImpl.getDownloadLiveList().asFlow()
    }

    fun installApp(fusedDownload: FusedDownload) {
        return fusedManagerImpl.installApp(fusedDownload)
    }
Loading