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

Commit 039ba051 authored by nihar's avatar nihar
Browse files

Use "latest version" and "latest downloadable update" attributes, disconnect...

Use "latest version" and "latest downloadable update" attributes, disconnect from server after APK download is complete
parent 580e802f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -78,6 +78,8 @@ class HomeRequest {
                        data["name"] as String,
                        data["last_modified"] as String,
                        data["latest_version"] as String,
                        data["latest_version_number"] as String,
                        data["latest_downloaded_version"] as String,
                        data["author"] as String,
                        data["icon_image_path"] as String,
                        (data["other_images_path"] as List<String>).toTypedArray(),
+1 −1
Original line number Diff line number Diff line
@@ -98,7 +98,7 @@ class ApplicationActivity : AppCompatActivity(), ApplicationStateListener {
        val basicData = application.basicData!!
        val fullData = application.fullData!!

        if (basicData.lastVersion == "update_-1") {
        if (basicData.latestDownloadableUpdate == "update_-1") {
            Toast.makeText(this, getString(Common.getScreenErrorDescriptionId(Error.APK_UNAVAILABLE)), Toast.LENGTH_LONG).show()
            finish()
            return
+8 −9
Original line number Diff line number Diff line
@@ -4,13 +4,11 @@ import io.eelo.appinstaller.application.model.data.FullData
import io.eelo.appinstaller.utils.Constants
import java.io.*
import java.net.URL
import java.net.URLConnection
import javax.net.ssl.HttpsURLConnection

class Downloader {
    var count = 0
        private set
    var total = 0
        private set
    private var count = 0
    private var total = 0
    private val listeners = ArrayList<(Int, Int) -> Unit>()

    private val notifier = ThreadedListeners {
@@ -21,9 +19,10 @@ class Downloader {
    fun download(data: FullData, apkFile: File) {
        createApkFile(apkFile)
        val url = URL(Constants.DOWNLOAD_URL + data.getLastVersion().downloadLink)
        val connection = url.openConnection()
        val connection = url.openConnection() as HttpsURLConnection
        total = connection.contentLength
        transferBytes(connection, apkFile)
        connection.disconnect()
    }

    private fun createApkFile(apkFile: File) {
@@ -36,8 +35,8 @@ class Downloader {
    }

    @Throws(IOException::class)
    private fun transferBytes(connection: URLConnection, apkFile: File) {
        connection.getInputStream().use { input ->
    private fun transferBytes(connection: HttpsURLConnection, apkFile: File) {
        connection.inputStream.use { input ->
            FileOutputStream(apkFile).use { output ->
                notifier.start()
                val buffer = ByteArray(1024)
+2 −2
Original line number Diff line number Diff line
@@ -19,7 +19,8 @@ constructor(@param:JsonProperty("package_name") val packageName: String,
            @param:JsonProperty("search_score") val score: Float,
            @param:JsonProperty("last_modified") val lastModified: String,
            @param:JsonProperty("latest_version") val lastVersion: String,
            @param:JsonProperty("latest_version_number") var lastVersionNumber_a: String?,
            @param:JsonProperty("latest_version_number") var lastVersionNumber: String,
            @param:JsonProperty("latest_downloaded_version") val latestDownloadableUpdate: String,
            @param:JsonProperty("author") val author: String,
            @param:JsonProperty("icon_image_path") private val iconUri: String,
            @param:JsonProperty("other_images_path") val imagesUri: Array<String>,
@@ -27,7 +28,6 @@ constructor(@param:JsonProperty("package_name") val packageName: String,

    private var icon: Bitmap? = null
    private var images: List<Bitmap>? = null
    var lastVersionNumber = ""

    fun loadImagesAsyncly(getter: (List<Bitmap>) -> Unit) {
        if (images == null) {
+5 −6
Original line number Diff line number Diff line
@@ -13,6 +13,8 @@ constructor(
        @JsonProperty("name") name: String,
        @JsonProperty("last_modified") lastModified: String,
        @JsonProperty("latest_version") lastVersion: String,
        @JsonProperty("latest_version_number") latestVersionNumber: String,
        @JsonProperty("latest_downloaded_version") latestDownloadableUpdate: String,
        @JsonProperty("author") author: String,
        @JsonProperty("icon_image_path") iconUri: String,
        @JsonProperty("other_images_path") imagesUri: Array<String>,
@@ -26,11 +28,11 @@ constructor(

    var basicData = if (ratings == null) {
        BasicData(packageName, id, name, -1f, lastModified, lastVersion,
                "", author, iconUri, imagesUri,
                latestVersionNumber, latestDownloadableUpdate, author, iconUri, imagesUri,
                BasicData.Ratings(-1f, -1f))
    } else {
        BasicData(packageName, id, name, -1f, lastModified, lastVersion,
                "", author, iconUri, imagesUri,
                latestVersionNumber, latestDownloadableUpdate, author, iconUri, imagesUri,
                ratings)
    }

@@ -39,7 +41,7 @@ constructor(
        get() = basicData.packageName

    fun getLastVersion(): Version {
        return versions[basicData.lastVersion]!!
        return versions[basicData.latestDownloadableUpdate]!!
    }

    val category: Category
@@ -68,9 +70,6 @@ constructor(
                    result["exodus_score"] as Int?,
                    getPermissions(result["exodus_perms"] as ArrayList<String>?),
                    getTrackers(result["exodus_trackers"] as ArrayList<LinkedHashMap<String, String>>?))
            if (name == basicData.lastVersion) {
                basicData.lastVersionNumber = result["version"] as String
            }
        }
    }