diff options
| -rw-r--r-- | platform/android/java/app/config.gradle | 26 | ||||
| -rw-r--r-- | platform/android/java/editor/build.gradle | 23 | 
2 files changed, 44 insertions, 5 deletions
diff --git a/platform/android/java/app/config.gradle b/platform/android/java/app/config.gradle index fbd97fae0b..0346625e4b 100644 --- a/platform/android/java/app/config.gradle +++ b/platform/android/java/app/config.gradle @@ -127,16 +127,36 @@ ext.generateGodotLibraryVersion = { List<String> requiredKeys ->          if (requiredKeys.empty) {              libraryVersionName = map.values().join(".")              try { +                if (map.containsKey("status")) { +                    int statusCode = 0 +                    String statusValue = map["status"] +                    if (statusValue == null) { +                        statusCode = 0 +                    } else if (statusValue.startsWith("alpha")) { +                        statusCode = 1 +                    } else if (statusValue.startsWith("beta")) { +                        statusCode = 2 +                    } else if (statusValue.startsWith("rc")) { +                        statusCode = 3 +                    } else if (statusValue.startsWith("stable")) { +                        statusCode = 4 +                    } else { +                        statusCode = 0 +                    } + +                    libraryVersionCode = statusCode +                } +                  if (map.containsKey("patch")) { -                    libraryVersionCode = Integer.parseInt(map["patch"]) +                    libraryVersionCode += Integer.parseInt(map["patch"]) * 10                  }                  if (map.containsKey("minor")) { -                    libraryVersionCode += (Integer.parseInt(map["minor"]) * 100) +                    libraryVersionCode += (Integer.parseInt(map["minor"]) * 1000)                  }                  if (map.containsKey("major")) { -                    libraryVersionCode += (Integer.parseInt(map["major"]) * 10000) +                    libraryVersionCode += (Integer.parseInt(map["major"]) * 100000)                  }              } catch (NumberFormatException ignore) {                  libraryVersionCode = 1 diff --git a/platform/android/java/editor/build.gradle b/platform/android/java/editor/build.gradle index 729966ee69..9152492e9d 100644 --- a/platform/android/java/editor/build.gradle +++ b/platform/android/java/editor/build.gradle @@ -12,6 +12,25 @@ dependencies {      implementation "androidx.window:window:1.0.0"  } +ext { +    // Build number added as a suffix to the version code, and incremented for each build/upload to +    // the Google Play store. +    // This should be reset on each stable release of Godot. +    editorBuildNumber = 0 +    // Value by which the Godot version code should be offset by to make room for the build number +    editorBuildNumberOffset = 100 +} + +def generateVersionCode() { +    int libraryVersionCode = getGodotLibraryVersionCode() +    return (libraryVersionCode * editorBuildNumberOffset) + editorBuildNumber +} + +def generateVersionName() { +    String libraryVersionName = getGodotLibraryVersionName() +    return libraryVersionName + ".$editorBuildNumber" +} +  android {      compileSdkVersion versions.compileSdk      buildToolsVersion versions.buildTools @@ -20,8 +39,8 @@ android {      defaultConfig {          // The 'applicationId' suffix allows to install Godot 3.x(v3) and 4.x(v4) on the same device          applicationId "org.godotengine.editor.v4" -        versionCode getGodotLibraryVersionCode() -        versionName getGodotLibraryVersionName() +        versionCode generateVersionCode() +        versionName generateVersionName()          minSdkVersion versions.minSdk          targetSdkVersion versions.targetSdk  |