package com.kitty.poclient.util;
import java.util.Arrays;
import android.util.Log;
public class VersionNumberComparator {
private static final String TAG=VersionNumberComparator.class.getSimpleName()+":";
/**
* @author Administrator
* @return true if the first one is bigger
* */
public boolean compare(String version1, String version2) {
String[] version1Array = version1.split("\\.");
String[] version2Array = version2.split("\\.");
Log.e(TAG,"version1Array="+Arrays.toString(version1Array));
Log.e(TAG,"version2Array="+Arrays.toString(version2Array));
if(!validate(version1Array) || !validate(version2Array)){
throw new IllegalArgumentException("make sure your version strings to be compared is consist of numbers and dot");
}
if (Integer.valueOf(version1Array[0]) != Integer.valueOf(version2Array[0])) {
return Integer.valueOf(version1Array[0]) > Integer.valueOf(version2Array[0]);
}
else if (Integer.valueOf(version1Array[1]) != Integer.valueOf(version2Array[1])) {
return Integer.valueOf(version1Array[1]) > Integer.valueOf(version2Array[1]);
}
else if (Integer.valueOf(version1Array[2]) != Integer.valueOf(version2Array[2])) {
return Integer.valueOf(version1Array[2]) > Integer.valueOf(version2Array[2]);
}
return false;
}
private boolean validate(String[] array) {
for(int i=0;i<array.length;i++){
if(!array[i].matches("[\\d]+")){
return false;
}
}
return true;
}
}