diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2012-05-29 15:31:10 +0200 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2012-05-29 16:06:30 +0200 |
| commit | d900291f83928f8929608eaa3b4d87faff258458 (patch) | |
| tree | ac7b57fe8ec12bae703823a9bbae6550d56f8fa4 | |
| parent | a2dde1821d0d09916ee11e0ef15c4d7f8ba41ce8 (diff) | |
| download | cgeo-d900291f83928f8929608eaa3b4d87faff258458.zip cgeo-d900291f83928f8929608eaa3b4d87faff258458.tar.gz cgeo-d900291f83928f8929608eaa3b4d87faff258458.tar.bz2 | |
Recognize the build kind
| -rw-r--r-- | main/src/cgeo/geocaching/cgeo.java | 3 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/utils/Version.java | 31 |
2 files changed, 33 insertions, 1 deletions
diff --git a/main/src/cgeo/geocaching/cgeo.java b/main/src/cgeo/geocaching/cgeo.java index d68f15e..f1535c5 100644 --- a/main/src/cgeo/geocaching/cgeo.java +++ b/main/src/cgeo/geocaching/cgeo.java @@ -187,7 +187,8 @@ public class cgeo extends AbstractActivity { setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); // type to search version = Version.getVersionCode(); - Log.i("Starting " + Version.getPackageName() + " " + version + " a.k.a " + Version.getVersionName() + "…"); + Log.i("Starting " + Version.getPackageName() + ' ' + version + " a.k.a " + Version.getVersionName() + + " (" + Version.getVersionKind() + ')'); try { if (!Settings.isHelpShown()) { diff --git a/main/src/cgeo/geocaching/utils/Version.java b/main/src/cgeo/geocaching/utils/Version.java index 20f4bac..d7de813 100644 --- a/main/src/cgeo/geocaching/utils/Version.java +++ b/main/src/cgeo/geocaching/utils/Version.java @@ -6,13 +6,27 @@ import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager.NameNotFoundException; +import java.util.regex.Pattern; + public class Version { + static public enum BuildKind { + MARKET_RELEASE, RELEASE_CANDIDATE, NIGHTLY_BUILD, DEVELOPER_BUILD; + + @Override public String toString() { + return name().toLowerCase().replace('_', ' '); + } + } + private final String packageName; private String versionName; private int versionCode; private static Version instance = new Version(); + final private static Pattern NB_PATTERN = Pattern.compile("-NB(\\d+)?-"); + final private static Pattern RC_PATTERN = Pattern.compile("-RC(\\d+)?-"); + final private static Pattern MARKET_PATTERN = Pattern.compile("^\\d\\d\\d\\d\\d\\.\\d\\d\\.\\d\\d$"); + private Version() { final Context app = cgeoapplication.getInstance(); packageName = app.getPackageName(); @@ -38,4 +52,21 @@ public class Version { return instance.versionCode; } + public static BuildKind lookupKind(final String versionName) { + if (NB_PATTERN.matcher(versionName).find()) { + return BuildKind.NIGHTLY_BUILD; + } + if (RC_PATTERN.matcher(versionName).find()) { + return BuildKind.RELEASE_CANDIDATE; + } + if (MARKET_PATTERN.matcher(versionName).find()) { + return BuildKind.MARKET_RELEASE; + } + return BuildKind.DEVELOPER_BUILD; + } + + public static BuildKind getVersionKind() { + return lookupKind(instance.versionName); + } + } |
