if (null == charSeq)
return defaultValue;
String nm = charSeq.toString();
// This code is copied from the original implementation. The issue is that
// The Dalvik libraries are able to handle Integer.parse("XXXXXXXX", 16) where XXXXXXX
// is > 80000000 but the Java VM cannot.
int sign = 1;
int index = 0;
int len = nm.length();
int base = 10;
if ('-" == nm.charAt(0)) {
sign = -1;
index++;
}
if ('0" == nm.charAt(index)) {
// Quick check for a zero by itself
if (index == (len - 1))
return 0;
char c = nm.charAt(index + 1);
if ('x" == c || 'X" == c) {
index += 2;
base = 16;
} else {
index++;
base = 8;
}
}
else if ('#" == nm.charAt(index)) {
index++;
base = 16;
}
return ((int)Long.parseLong(nm.substring(index), base)) * sign;