diff --git a/Jenkinsfile b/Jenkinsfile index 7ac99a9c..b7c7b8dd 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -11,17 +11,6 @@ node('android') { git branch: env.BRANCH_NAME, credentialsId: cred_git, url: repo_url } - stage('Prepare') { - sh """ - if ! echo $BRANCH_NAME | grep -Eq '(play|beta)'; then - sed -i "s/\\(versionName \\)\\"[0-9\\.]*\\"/\\1\\"$BRANCH_NAME-#$BUILD_NUMBER\\"/" app/build.gradle - sed -i "s/\\(android:defaultValue=\\)\\"play\\"/\\1\\"$BRANCH_NAME\\"/" app/src/main/res/xml/preferences.xml - sed -i "s/\\(\\"pref_updater_branch\\", \\)\\"play\\"/\\1\\"$BRANCH_NAME\\"/" app/src/main/java/pw/thedrhax/mosmetro/updater/UpdateCheckTask.java - sed -i "s/\\(\\"pref_updater_build\\", \\)0/\\1$BUILD_NUMBER/" app/src/main/java/pw/thedrhax/mosmetro/updater/UpdateCheckTask.java - fi - """ - } - stage('Build') { sh 'gradle build' sh """ diff --git a/app/build.gradle b/app/build.gradle index b9a517e9..0a5198be 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,12 @@ android { versionCode 70 versionName "1.8.3.2" + // Jenkins build info + def branch_name = System.getenv("BRANCH_NAME") ?: "play" + buildConfigField "String", "BRANCH_NAME", "\"$branch_name\"" + buildConfigField "Integer", "BUILD_NUMBER", System.getenv("BUILD_NUMBER") ?: "0" + resValue "string", "build_branch_name", "\"$branch_name\"" + // GitHub Pages buildConfigField "String", "\$GITHUB", "\"https://mosmetro-android.github.io\"" buildConfigField "String", "NEWS_URL", "\$GITHUB + \"/news.json\"" diff --git a/app/src/main/java/pw/thedrhax/mosmetro/activities/SettingsActivity.java b/app/src/main/java/pw/thedrhax/mosmetro/activities/SettingsActivity.java index 0d01a37f..b356406e 100644 --- a/app/src/main/java/pw/thedrhax/mosmetro/activities/SettingsActivity.java +++ b/app/src/main/java/pw/thedrhax/mosmetro/activities/SettingsActivity.java @@ -98,7 +98,7 @@ public void onCreate(@Nullable Bundle savedInstanceState) { screen.addPreference(experimental); final SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getActivity()); - String current_branch = settings.getString("pref_updater_branch", "play"); + String current_branch = settings.getString("pref_updater_branch", Version.getBranch()); for (final UpdateCheckTask.Branch branch : branches) { CheckBoxPreference pref = new CheckBoxPreference(getActivity()) { @Override diff --git a/app/src/main/java/pw/thedrhax/mosmetro/updater/UpdateCheckTask.java b/app/src/main/java/pw/thedrhax/mosmetro/updater/UpdateCheckTask.java index b5dd3306..ebe2f4b4 100644 --- a/app/src/main/java/pw/thedrhax/mosmetro/updater/UpdateCheckTask.java +++ b/app/src/main/java/pw/thedrhax/mosmetro/updater/UpdateCheckTask.java @@ -79,7 +79,7 @@ protected Void doInBackground (Boolean... force) { // Retrieve info from server String content = retriever.get(UPDATE_INFO_URL, 60*60, - "{\"" + settings.getString("pref_updater_branch", "play") + "\":" + + "{\"" + settings.getString("pref_updater_branch", Version.getBranch()) + "\":" + "{\"url\":\"none\",\"by_build\":\"0\",\"version\":\"0\",\"message\":\"none\"}}", CachedRetriever.Type.JSON ); @@ -104,7 +104,7 @@ protected Void doInBackground (Boolean... force) { continue; } - if (branch.name.equals(settings.getString("pref_updater_branch", "play"))) { + if (branch.name.equals(settings.getString("pref_updater_branch", Version.getBranch()))) { current_branch = branch; } diff --git a/app/src/main/java/pw/thedrhax/util/Version.java b/app/src/main/java/pw/thedrhax/util/Version.java index 908bda71..4672f886 100644 --- a/app/src/main/java/pw/thedrhax/util/Version.java +++ b/app/src/main/java/pw/thedrhax/util/Version.java @@ -20,6 +20,8 @@ import android.support.annotation.NonNull; +import java.util.Locale; + import pw.thedrhax.mosmetro.BuildConfig; /** @@ -41,28 +43,18 @@ public static int getVersionCode() { } @NonNull public static String getFormattedVersion() { - return getVersionName() + "-" + getVersionCode(); + if (getBranch().equals("play")) { + return getVersionName(); + } else { + return String.format(Locale.ENGLISH,"%s #%d", getBranch(), getBuildNumber()); + } } - // TODO: Store branch name in app.gradle @NonNull public static String getBranch() { - String version_name = Version.getVersionName(); - - if (version_name.contains("#")) { - return version_name.substring(0, version_name.indexOf("#") - 1); - } else { - return "play"; - } + return BuildConfig.BRANCH_NAME; } - // TODO: Store build number in app.gradle public static int getBuildNumber() { - String version_name = Version.getVersionName(); - - if (version_name.contains("#")) { - return Integer.parseInt(version_name.substring(version_name.indexOf("#") + 1)); - } else { - return 0; // play or beta are currently installed - } + return BuildConfig.BUILD_NUMBER; } } diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index ebaeebd8..ba93b6a3 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -19,7 +19,7 @@ Ошибка: %s не попытка %d из %d - Версия приложения: %s + Версия: %s Показать подробные сообщения Текст скопирован в буфер обмена Очистить экран diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c052af46..ddddd8f7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -21,7 +21,7 @@ Error: %s not try %d out of %d - Application version: %s + Version: %s Show verbose messages Text copied to clipboard Clear screen diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 9a3bcaaa..a98fb1b8 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -62,7 +62,7 @@ android:key="pref_updater_branch" android:title="@string/pref_updater_branch" android:summary="@string/pref_updater_branch_summary" - android:defaultValue="play" + android:defaultValue="@string/build_branch_name" android:enabled="false" />