aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2012-05-29 15:31:10 +0200
committerSamuel Tardieu <sam@rfc1149.net>2012-05-29 16:06:30 +0200
commitd900291f83928f8929608eaa3b4d87faff258458 (patch)
treeac7b57fe8ec12bae703823a9bbae6550d56f8fa4
parenta2dde1821d0d09916ee11e0ef15c4d7f8ba41ce8 (diff)
downloadcgeo-d900291f83928f8929608eaa3b4d87faff258458.zip
cgeo-d900291f83928f8929608eaa3b4d87faff258458.tar.gz
cgeo-d900291f83928f8929608eaa3b4d87faff258458.tar.bz2
Recognize the build kind
-rw-r--r--main/src/cgeo/geocaching/cgeo.java3
-rw-r--r--main/src/cgeo/geocaching/utils/Version.java31
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);
+ }
+
}