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

Commit 28a30d80 authored by Mohit Mali's avatar Mohit Mali
Browse files

Update fix for automatic download functionality

parent bbcfac35
Loading
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ package foundation.e.apps.updates.model
import android.content.Context
import android.content.pm.PackageManager
import android.os.AsyncTask
import foundation.e.apps.api.GitlabDataRequest
import foundation.e.apps.application.model.Application
import foundation.e.apps.application.model.State
import foundation.e.apps.applicationmanager.ApplicationManager
@@ -44,6 +45,10 @@ class OutdatedApplicationsFinder(private val packageManager: PackageManager,

    private fun getOutdatedApplications(context: Context): ArrayList<Application> {
        val result = ArrayList<Application>()
        var application: Application? = loadMicroGVersion(context)[0]
        if (application!!.state != State.INSTALLED) {
            result.add(application)
        }
        val installedApplications = getInstalledApplications()
        installedApplications.forEach { packageName ->
            val application = applicationManager.findOrCreateApp(packageName)
@@ -75,4 +80,26 @@ class OutdatedApplicationsFinder(private val packageManager: PackageManager,
        }
        return result
    }


    private fun loadMicroGVersion(context: Context): List<Application> {
        var gitlabData: GitlabDataRequest.GitlabDataResult? = null
        GitlabDataRequest()
                .requestGmsCoreRelease { applicationError, listGitlabData ->

                    when (applicationError) {
                        null -> {
                            gitlabData = listGitlabData!!
                        }
                        else -> {
                           print("error")
                        }
                    }
                }
        return if (gitlabData != null) {
            gitlabData!!.getApplications(applicationManager!!, context)
        } else {
            emptyList()
        }
    }
}
+2 −38
Original line number Diff line number Diff line
@@ -105,7 +105,7 @@ class UpdatesWorker(context: Context, params: WorkerParameters) : Worker(context
                    if (isConnectedToUnmeteredNetwork) {
                        applications.forEach {
                            if (it.packageName == Constants.MICROG_PACKAGE) {
                                executeDownloadMicroG()
                                it.buttonClicked(applicationContext, null)
                            }
                            if (it.state == State.NOT_UPDATED) {
                                Log.i(TAG, "Updating ${it.packageName}")
@@ -117,7 +117,7 @@ class UpdatesWorker(context: Context, params: WorkerParameters) : Worker(context
                } else {
                    applications.forEach {
                        if (it.packageName == Constants.MICROG_PACKAGE) {
                            executeDownloadMicroG()
                            it.buttonClicked(applicationContext, null)
                        }
                        if (it.state == State.NOT_UPDATED) {
                            Log.i(TAG, "Updating ${it.packageName}")
@@ -143,40 +143,4 @@ class UpdatesWorker(context: Context, params: WorkerParameters) : Worker(context
            networkInfo?.isConnected ?: false
        } else false
    }


    private fun executeDownloadMicroG() {
        Execute({
            var application: Application? = loadMicroGVersion()?.get(0)
            if (application!!.state != State.INSTALLED) {
                application.download(applicationContext)
            }

        }, {
            if (error != null) {
                print(error)
            }
        })
    }

    private fun loadMicroGVersion(): ArrayList<Application>? {
        var gitlabData: GitlabDataRequest.GitlabDataResult? = null
        GitlabDataRequest()
                .requestGmsCoreRelease { applicationError, listGitlabData ->

                    when (applicationError) {
                        null -> {
                            gitlabData = listGitlabData!!
                        }
                        else -> {
                            error = applicationError
                        }
                    }
                }
        return if (gitlabData != null) {
            gitlabData!!.getApplications(applicationManager!!, applicationContext)
        } else {
            null
        }
    }
}