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

Commit 53de9142 authored by jo's avatar jo
Browse files

bug resolved

parent 972a5d98
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -8,15 +8,16 @@ import java.io.IOException
import java.net.URL
import java.util.concurrent.atomic.AtomicInteger

class Application(var data: ApplicationData, context: Context, private val installManager: InstallManager) {
class Application(val data: ApplicationData, context: Context, private val installManager: InstallManager) {

    private val uses = AtomicInteger(0)
    private val info = ApplicationInfo(data)
    private val stateManager = StateManager(context, info, this)
    private val stateManager = StateManager(info, this)

    init {
        if (data.id != "") {
            searchFullData()
            stateManager.find(context)
        }
    }

@@ -91,6 +92,7 @@ class Application(var data: ApplicationData, context: Context, private val insta
    }

    fun searchFullData() {
        data = dataReader.readValue<ApplicationData>(URL(Constants.BASE_URL + "apps?action=app_detail&id=" + data.id))
        val newData = dataReader.readValue<ApplicationData>(URL(Constants.BASE_URL + "apps?action=app_detail&id=" + data.id))
        data.update(newData)
    }
}
+51 −4
Original line number Diff line number Diff line
@@ -13,7 +13,9 @@ class ApplicationData {
    val lastVersion: String
        get() = lastVersionObj.version
    val lastVersionObj: Version
        get() = versions[lastVersionName]!!
        get() {
            return versions[lastVersionName]!!
        }

    //util data
    var lastModified = ""
@@ -38,10 +40,11 @@ class ApplicationData {
    var stars = 0f
    var privacyScore = 0

    var hasFullData = false
    var dataIndex = 0

    constructor(packageName: String) {
        this.packageName = packageName
        dataIndex = 0
    }

    constructor(packageName: String,
@@ -60,7 +63,7 @@ class ApplicationData {
        this.author = author
        this.icon = icon
        this.images = images
        this.hasFullData = false
        dataIndex = 1
    }

    @Suppress("unused")
@@ -95,7 +98,7 @@ class ApplicationData {
        this.lastVersionName = lastVersionName
        this.appLink = appLink
        this.lastAccessed = lastAccessed
        hasFullData = true
        dataIndex = 2
    }

    @Suppress("unused")
@@ -115,4 +118,48 @@ class ApplicationData {
                result["whats_new"] as String?,
                name)
    }

    fun update(data: ApplicationData) {
        when (data.dataIndex) {
            0 -> {
                packageName = data.packageName
            }
            1 -> {
                if (dataIndex < 1) {
                    dataIndex = 1
                }
                packageName = data.packageName
                lastModified = data.lastModified
                id = data.id
                name = data.name
                lastVersionName = data.lastVersionName
                author = data.author
                icon = data.icon
                images = data.images
            }
            2 -> {
                dataIndex = 2
                id = data.id
                icon = data.icon
                packageName = data.packageName
                createdOn = data.createdOn
                category = data.category
                author = data.author
                source = data.source
                description = data.description
                images = data.images
                lastModified = data.lastModified
                licence = data.licence
                name = data.name
                lastVersionName = data.lastVersionName
                appLink = data.appLink
                lastAccessed = data.lastAccessed
                versions = data.versions
            }
        }
        this.name = data.name
        if (data.iconImage != null) {
            iconImage = data.iconImage
        }
    }
}
+1 −5
Original line number Diff line number Diff line
@@ -3,15 +3,11 @@ package io.eelo.appinstaller.application.model
import android.content.Context
import java.util.*

class StateManager(context: Context, private val info: ApplicationInfo, private val app: Application) {
class StateManager(private val info: ApplicationInfo, private val app: Application) {
    private var listeners = Collections.synchronizedList(ArrayList<ApplicationStateListener>())
    var state = State.NOT_DOWNLOADED
        private set

    init {
        find(context)
    }

    fun find(context: Context) {
        changeState(if (info.isLastVersionInstalled(context)) {
            State.INSTALLED