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

Commit 9d39f8b3 authored by Mohammed Althaf T's avatar Mohammed Althaf T 😊
Browse files

mail: add incrementing versionCode and versionName

parent abeaa39d
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -22,6 +22,8 @@ out/
*.jks
*.keystore

*/version.properties

# Signing files
.signing/
*.signing.properties
+63 −2
Original line number Diff line number Diff line
import java.io.FileInputStream
import java.util.Properties
import javax.xml.parsers.DocumentBuilderFactory
import javax.xml.xpath.XPathConstants
import javax.xml.xpath.XPathFactory
@@ -16,12 +18,71 @@ if (testCoverageEnabled) {
android {
    namespace = "net.thunderbird.android"

    val versionPropsFile = file("version.properties")
    val versionProps = Properties()

    if (!versionPropsFile.exists()) {
        versionProps["VERSION_CHANGE"] = "0"
        versionProps["VERSION_MAJOR"] = "8"
        versionProps["VERSION_MINOR"] = "2"
        versionProps["VERSION_PATCH"] = "0"
        versionProps["VERSION_CODE"] = "39012"
        versionProps.store(versionPropsFile.writer(), null)
    }

    fun getVersionCode(): Int {
        if (versionPropsFile.canRead()) {
            versionProps.load(FileInputStream(versionPropsFile))
            var versionChange = Integer.valueOf(versionProps["VERSION_CHANGE"].toString()) + 1
            var versionMinor = Integer.valueOf(versionProps["VERSION_MINOR"].toString())
            var versionMajor = Integer.valueOf(versionProps["VERSION_MAJOR"].toString())
            var versionPatch = Integer.valueOf(versionProps["VERSION_PATCH"].toString())
            // Up version on each 100 cycles of builds
            if (versionChange >= 100) {
                versionPatch += 1
                versionChange = 0
            }
            if (versionPatch == 9) {
                versionMinor = versionPatch + 1
                versionPatch = 0
            }
            if (versionMinor == 9) {
                versionMajor += 1
                versionMinor = 0
            }
            val versionCode = Integer.valueOf(versionProps["VERSION_CODE"].toString())

            versionProps["VERSION_CHANGE"] = versionChange.toString()
            versionProps["VERSION_PATCH"] = versionPatch.toString()
            versionProps["VERSION_MINOR"] = versionMinor.toString()
            versionProps["VERSION_MAJOR"] = versionMajor.toString()
            versionProps["VERSION_CODE"] = (Integer.valueOf(versionCode) + 1).toString()
            versionProps.store(versionPropsFile.writer(), null)

            return versionCode
        }
        return 39012
    }

    fun getVersionName(): String {
        if (versionPropsFile.canRead()) {
            versionProps.load(FileInputStream(versionPropsFile))

            val versionMajor = versionProps["VERSION_MAJOR"]
            val versionMinor = versionProps["VERSION_MINOR"]
            val versionPatch = versionProps["VERSION_PATCH"]

            return "${versionMajor}.${versionMinor}.${versionPatch}"
        }
        return "8.2"
    }

    defaultConfig {
        applicationId = "foundation.e.mail"
        testApplicationId = "foundation.e.mail.tests"

        versionCode = 8
        versionName = "8.2"
        versionCode = getVersionCode()
        versionName = getVersionName()

        // Keep in sync with the resource string array "supported_languages"
        resourceConfigurations.addAll(