Index: chrome/android/java_staging/src/org/chromium/chrome/browser/omaha/VersionNumber.java |
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/omaha/VersionNumber.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/omaha/VersionNumber.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..10f7e3787ab4d880f40c1a83ae954f8cde14f821 |
--- /dev/null |
+++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/omaha/VersionNumber.java |
@@ -0,0 +1,62 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package org.chromium.chrome.browser.omaha; |
+ |
+import java.util.Locale; |
+ |
+/** |
+ * Utility for dealing with Chrome version numbers. |
+ */ |
+public class VersionNumber { |
+ private final int[] mVersion = {0, 0, 0, 0}; |
+ |
+ /** |
+ * Parses out the version numbers from a given version string. |
+ * @param str a version number of the format a.b.c.d, where each is an integer. |
+ * @return A VersionNumber containing the version info, or null if it couldn't be parsed. |
+ */ |
+ public static VersionNumber fromString(String str) { |
+ if (str == null) { |
+ return null; |
+ } |
+ |
+ // Parse out the version numbers. |
+ String[] pieces = str.split("\\."); |
+ if (pieces.length != 4) { |
+ return null; |
+ } |
+ |
+ VersionNumber version = new VersionNumber(); |
+ try { |
+ for (int i = 0; i < 4; ++i) { |
+ version.mVersion[i] = Integer.parseInt(pieces[i]); |
+ } |
+ } catch (NumberFormatException e) { |
+ return null; |
+ } |
+ |
+ return version; |
+ } |
+ |
+ @Override |
+ public String toString() { |
+ return String.format(Locale.US, "%d.%d.%d.%d", mVersion[0], mVersion[1], mVersion[2], |
+ mVersion[3]); |
+ } |
+ |
+ /** |
+ * @return whether this VersionNumber is smaller than the given one, going from left to right. |
+ */ |
+ public boolean isSmallerThan(VersionNumber version) { |
+ for (int i = 0; i < 4; ++i) { |
+ if (mVersion[i] < version.mVersion[i]) { |
+ return true; |
+ } else if (mVersion[i] > version.mVersion[i]) { |
+ return false; |
+ } |
+ } |
+ return false; |
+ } |
+} |