Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/util/CharSequences.java')
-rw-r--r--android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/util/CharSequences.java89
1 files changed, 89 insertions, 0 deletions
diff --git a/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/util/CharSequences.java b/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/util/CharSequences.java
new file mode 100644
index 0000000000..797ee16b31
--- /dev/null
+++ b/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/util/CharSequences.java
@@ -0,0 +1,89 @@
+
+package org.holoeverywhere.util;
+
+public class CharSequences {
+ public static int compareToIgnoreCase(CharSequence me, CharSequence another) {
+ int myLen = me.length(), anotherLen = another.length();
+ int myPos = 0, anotherPos = 0, result;
+ int end = myLen < anotherLen ? myLen : anotherLen;
+ while (myPos < end) {
+ if ((result = Character.toLowerCase(me.charAt(myPos++))
+ - Character.toLowerCase(another.charAt(anotherPos++))) != 0) {
+ return result;
+ }
+ }
+ return myLen - anotherLen;
+ }
+
+ public static boolean equals(CharSequence a, CharSequence b) {
+ if (a.length() != b.length()) {
+ return false;
+ }
+ int length = a.length();
+ for (int i = 0; i < length; i++) {
+ if (a.charAt(i) != b.charAt(i)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public static CharSequence forAsciiBytes(final byte[] bytes) {
+ return new CharSequence() {
+ @Override
+ public char charAt(int index) {
+ return (char) bytes[index];
+ }
+
+ @Override
+ public int length() {
+ return bytes.length;
+ }
+
+ @Override
+ public CharSequence subSequence(int start, int end) {
+ return CharSequences.forAsciiBytes(bytes, start, end);
+ }
+
+ @Override
+ public String toString() {
+ return new String(bytes);
+ }
+ };
+ }
+
+ public static CharSequence forAsciiBytes(final byte[] bytes,
+ final int start, final int end) {
+ CharSequences.validate(start, end, bytes.length);
+ return new CharSequence() {
+ @Override
+ public char charAt(int index) {
+ return (char) bytes[index + start];
+ }
+
+ @Override
+ public int length() {
+ return end - start;
+ }
+
+ @Override
+ public CharSequence subSequence(int newStart, int newEnd) {
+ newStart -= start;
+ newEnd -= start;
+ CharSequences.validate(newStart, newEnd, length());
+ return CharSequences.forAsciiBytes(bytes, newStart, newEnd);
+ }
+
+ @Override
+ public String toString() {
+ return new String(bytes, start, length());
+ }
+ };
+ }
+
+ static void validate(int start, int end, int length) {
+ if (start < 0 || end < 0 || end > length || start > end) {
+ throw new IndexOutOfBoundsException();
+ }
+ }
+}