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

Commit 396a9037 authored by Nihar Thakkar's avatar Nihar Thakkar
Browse files

Install app updates automatically in the background

parent 2a3e2ac0
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -419,7 +419,7 @@ class ApplicationActivity : AppCompatActivity(), ApplicationStateListener,
                    Snackbar.LENGTH_LONG).show()
            return
        }
        application.buttonClicked(this)
        application.buttonClicked(this, this)
    }

    @SuppressLint("SetTextI18n")
@@ -542,7 +542,7 @@ class ApplicationActivity : AppCompatActivity(), ApplicationStateListener,
    override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
        if (requestCode == Constants.STORAGE_PERMISSION_REQUEST_CODE) {
            if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                application.buttonClicked(this)
                application.buttonClicked(this, this)
            } else if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_DENIED) {
                Snackbar.make(container, R.string.error_storage_permission_denied,
                        Snackbar.LENGTH_LONG).show()
+1 −1
Original line number Diff line number Diff line
@@ -47,7 +47,7 @@ class ApplicationViewHolder(private val activity: Activity, private val view: Vi
                        Error.APK_UNAVAILABLE.description),
                        Snackbar.LENGTH_LONG).show()
            } else {
                application?.buttonClicked(activity)
                application?.buttonClicked(activity, activity)
            }
        }
    }
+1 −1
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ class SmallApplicationViewHolder(private val activity: Activity, private val vie
                        Error.APK_UNAVAILABLE.description),
                        Snackbar.LENGTH_LONG).show()
            } else {
                application?.buttonClicked(activity)
                application?.buttonClicked(activity, activity)
            }
        }
    }
+10 −6
Original line number Diff line number Diff line
@@ -55,24 +55,28 @@ class Application(val packageName: String, private val applicationManager: Appli
    }

    @Synchronized
    fun buttonClicked(activity: Activity) {
    fun buttonClicked(context: Context, activity: Activity?) {
        when (stateManager.state) {
            INSTALLED -> info.launch(activity)
            INSTALLED -> info.launch(context)
            NOT_UPDATED, NOT_DOWNLOADED -> {
                if (activity != null) {
                    if (canWriteStorage(activity)) {
                    applicationManager.install(activity, this)
                        applicationManager.install(context, this)
                    }
                } else {
                    applicationManager.install(context, this)
                }
            }
            INSTALLING -> {
                if (downloader != null) {
                    downloader?.cancelDownload()
                } else {
                    onDownloadComplete(activity, DownloadManager.STATUS_FAILED)
                    onDownloadComplete(context, DownloadManager.STATUS_FAILED)
                }
                return
            }
        }
        checkForStateUpdate(activity)
        checkForStateUpdate(context)
    }

    private fun canWriteStorage(activity: Activity): Boolean {
+1 −2
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ import io.eelo.appinstaller.application.model.State
import io.eelo.appinstaller.applicationmanager.ApplicationManager
import io.eelo.appinstaller.common.ApplicationListAdapter
import io.eelo.appinstaller.updates.viewModel.UpdatesViewModel
import io.eelo.appinstaller.utils.Common

class UpdatesFragment : Fragment() {
    private lateinit var updatesViewModel: UpdatesViewModel
@@ -53,7 +52,7 @@ class UpdatesFragment : Fragment() {
        updateAll.setOnClickListener {
            applicationList.forEach { application ->
                if (application.state == State.NOT_UPDATED) {
                    application.buttonClicked(activity!!)
                    application.buttonClicked(context!!, activity!!)
                }
            }
        }
Loading