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

Commit a36c7e5b authored by jo's avatar jo
Browse files

Finish loading apps, and after load images

parent 26f8f7f1
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -10,6 +10,8 @@ import java.net.URL

class ApplicationsLoader(private val homeModel: HomeModel) : AsyncTask<Context, Any, LinkedHashMap<String, ArrayList<Application>>>() {

    private lateinit var bannerApps: ArrayList<Application>

    companion object {
        private val homeResultReader = ObjectMapper().readerFor(HomeResult::class.java)
    }
@@ -17,11 +19,12 @@ class ApplicationsLoader(private val homeModel: HomeModel) : AsyncTask<Context,
    override fun doInBackground(vararg params: Context): LinkedHashMap<String, ArrayList<Application>> {
        val context = params[0]
        val result = loadResult()
        BannerApplicationLoader(homeModel, result).executeOnExecutor(THREAD_POOL_EXECUTOR, context)
        bannerApps = result.bannerApps(homeModel.getInstallManager(), context)
        return loadApplications(result, context)
    }

    override fun onPostExecute(result: LinkedHashMap<String, ArrayList<Application>>) {
        BannerApplicationLoader(bannerApps, homeModel).executeOnExecutor(THREAD_POOL_EXECUTOR)
        homeModel.applications.value = result
    }

+5 −6
Original line number Diff line number Diff line
package io.eelo.appinstaller.home.model

import android.content.Context
import android.os.AsyncTask
import io.eelo.appinstaller.application.model.Application
import io.eelo.appinstaller.utils.ImagesLoader

class BannerApplicationLoader(private val homeModel: HomeModel, private val homeResult: HomeResult) : AsyncTask<Context, Any, ArrayList<BannerApplication>>() {
class BannerApplicationLoader(private val apps: ArrayList<Application>, private val homeModel: HomeModel) : AsyncTask<Any, Any, ArrayList<BannerApplication>>() {

    override fun doInBackground(vararg params: Context): ArrayList<BannerApplication> {
        return loadBannerImages(params[0])
    override fun doInBackground(vararg params: Any): ArrayList<BannerApplication> {
        return loadBannerImages()
    }

    override fun onPostExecute(result: ArrayList<BannerApplication>) {
        homeModel.bannerApplications.value = result
    }

    private fun loadBannerImages(context: Context): ArrayList<BannerApplication> {
        val apps = homeResult.bannerApps(homeModel.getInstallManager(), context)
    private fun loadBannerImages(): ArrayList<BannerApplication> {
        val imagesUris = ArrayList<String>()
        apps.forEach {
            imagesUris.add(it.data.images[0])