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

Commit 2a3e2ac0 authored by Nihar Thakkar's avatar Nihar Thakkar
Browse files

Major improvements to application manager, bug fixes

parent 6d652ce7
Loading
Loading
Loading
Loading
+3 −9
Original line number Diff line number Diff line
@@ -451,7 +451,7 @@ class ApplicationActivity : AppCompatActivity(), ApplicationStateListener,
                    app_size.visibility = View.VISIBLE
                    app_download_container.visibility = View.GONE
                }
                State.DOWNLOADING -> {
                State.INSTALLING -> {
                    app_install.setBackgroundResource(R.drawable.app_install_border_simple)
                    app_install.setTextColor(resources.getColor(android.R.color.primary_text_light))
                    app_install.isEnabled = true
@@ -461,13 +461,6 @@ class ApplicationActivity : AppCompatActivity(), ApplicationStateListener,
                    app_download_progress.progress = 0
                    app_download_container.visibility = View.VISIBLE
                }
                State.INSTALLING -> {
                    app_install.setBackgroundResource(R.drawable.app_install_border)
                    app_install.setTextColor(resources.getColor(android.R.color.primary_text_dark))
                    app_install.isEnabled = false
                    app_size.visibility = View.VISIBLE
                    app_download_container.visibility = View.GONE
                }
                else -> {
                    app_install.setBackgroundResource(R.drawable.app_install_border)
                    app_install.setTextColor(resources.getColor(android.R.color.primary_text_dark))
@@ -559,7 +552,8 @@ class ApplicationActivity : AppCompatActivity(), ApplicationStateListener,

    override fun onResume() {
        super.onResume()
        if (::application.isInitialized) {
        if (::application.isInitialized &&
                (application.state == State.INSTALLED || application.state == State.NOT_UPDATED)) {
            application.checkForStateUpdate(this)
        }
    }
+0 −3
Original line number Diff line number Diff line
@@ -82,9 +82,6 @@ class ApplicationViewHolder(private val activity: Activity, private val view: Vi
                    installButton.isEnabled =
                            Common.appHasLaunchActivity(activity, application!!.packageName)
                }
                State.INSTALLING -> {
                    installButton.isEnabled = false
                }
                else -> {
                    installButton.isEnabled = true
                }
+0 −3
Original line number Diff line number Diff line
@@ -65,9 +65,6 @@ class SmallApplicationViewHolder(private val activity: Activity, private val vie
                    installButton.isEnabled =
                            Common.appHasLaunchActivity(activity, application!!.packageName)
                }
                State.INSTALLING -> {
                    installButton.isEnabled = false
                }
                else -> {
                    installButton.isEnabled = true
                }
+9 −17
Original line number Diff line number Diff line
@@ -60,14 +60,10 @@ class Application(val packageName: String, private val applicationManager: Appli
            INSTALLED -> info.launch(activity)
            NOT_UPDATED, NOT_DOWNLOADED -> {
                if (canWriteStorage(activity)) {
                    applicationManager.download(this)
                    applicationManager.install(activity, this)
                }
            }
            INSTALLING -> {
                applicationManager.stopInstalling(this)
                return
            }
            DOWNLOADING -> {
                if (downloader != null) {
                    downloader?.cancelDownload()
                } else {
@@ -76,7 +72,7 @@ class Application(val packageName: String, private val applicationManager: Appli
                return
            }
        }
        stateManager.find(activity, basicData!!)
        checkForStateUpdate(activity)
    }

    private fun canWriteStorage(activity: Activity): Boolean {
@@ -102,31 +98,27 @@ class Application(val packageName: String, private val applicationManager: Appli
            downloader!!.download(context)
        } else {
            stateManager.notifyError(error)
            applicationManager.stopDownloading(this)
            downloader = null
            stateManager.find(context, basicData!!)
            onDownloadComplete(context, DownloadManager.STATUS_FAILED)
        }
    }

    override fun onDownloadComplete(context: Context, status: Int) {
        if (status == DownloadManager.STATUS_SUCCESSFUL) {
            applicationManager.install(this)
            install(context)
        } else {
            info.getApkFile(context, basicData!!).delete()
            applicationManager.stopDownloading(this)
            downloader = null
            applicationManager.stopInstalling(context, this)
        }
        stateManager.find(context, basicData!!)
        downloader = null
    }

    fun install(context: Context) {
    private fun install(context: Context) {
        info.install(context, basicData!!, this)
        stateManager.find(context, basicData!!)
    }

    override fun onInstallationComplete(context: Context) {
        info.getApkFile(context, basicData!!).delete()
        stateManager.find(context, basicData!!)
        applicationManager.stopInstalling(context, this)
    }

    fun isUsed(): Boolean {
@@ -208,7 +200,7 @@ class Application(val packageName: String, private val applicationManager: Appli
    fun update(basicData: BasicData, context: Context) {
        this.basicData?.let { basicData.updateLoadedImages(it) }
        this.basicData = basicData
        stateManager.find(context, basicData)
        checkForStateUpdate(context)
    }

    fun update(fullData: FullData, context: Context) {
+1 −1
Original line number Diff line number Diff line
@@ -118,6 +118,7 @@ class Downloader(private val applicationInfo: ApplicationInfo, private val fullD

    private var onComplete: BroadcastReceiver = object : BroadcastReceiver() {
        override fun onReceive(context: Context, intent: Intent) {
            unregisterReceivers(context)
            try {
                if (!fullData.getLastVersion()!!.apkSHA.isNullOrBlank() &&
                        fullData.getLastVersion()!!.apkSHA!! ==
@@ -129,7 +130,6 @@ class Downloader(private val applicationInfo: ApplicationInfo, private val fullD
                exception.printStackTrace()
            }
            downloaderInterface.onDownloadComplete(context, DownloadManager.STATUS_FAILED)
            unregisterReceivers(context)
        }
    }
}
Loading