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

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

am: add incrementing versionCode and versionName

parent 7dedc9a0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
build
target
version.properties
+70 −3
Original line number Diff line number Diff line
import java.io.FileInputStream
import java.util.Properties

/***************************************************************************************************
 * Copyright © All Contributors. See LICENSE and AUTHORS in the root directory for details.
 **************************************************************************************************/
@@ -11,6 +14,70 @@ plugins {
    alias(libs.plugins.ksp)
}

val appMajor = 4
val appMinor = 4
val appPatch = 7
val appCode = "${appMajor}0${appMinor}0${appPatch}0002".toInt() // 404070002

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

if (!versionPropsFile.exists()) {
    versionProps["VERSION_CHANGE"] = "0"
    versionProps["VERSION_MAJOR"] = appMajor.toString()
    versionProps["VERSION_MINOR"] = appMinor.toString()
    versionProps["VERSION_PATCH"] = appPatch.toString()
    versionProps["VERSION_CODE"] = appCode.toString()
    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 appCode
}

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 "$appMajor.$appMinor.$appPatch"
}

// Android configuration
android {
    compileSdk = 35
@@ -18,10 +85,10 @@ android {
    defaultConfig {
        applicationId = "foundation.e.accountmanager"

        versionCode = 404070002
        versionName = "4.4.7"
        versionCode = getVersionCode()
        versionName = getVersionName()

        setProperty("archivesBaseName", "davx5-ose-$versionName")
        setProperty("archivesBaseName", "AccountManager-$versionName")

        minSdk = 24        // Android 7.0
        targetSdk = 35     // Android 15