ShadowTextUtils.java revision a16489f7f239bf6974e4f5607bb071670ae02245
133873d2b41a5cd2597b20a4e88eb8942944c0f23Tyler Schultzpackage com.xtremelabs.robolectric.shadows; 23a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard 33a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richardimport android.text.TextUtils; 422c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.Implementation; 522c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.Implements; 652db1b0d94ef698425ebd641ad7fecc5f674a4dbTyler Schultzimport com.xtremelabs.robolectric.util.Join; 752db1b0d94ef698425ebd641ad7fecc5f674a4dbTyler Schultz 852db1b0d94ef698425ebd641ad7fecc5f674a4dbTyler Schultzimport java.util.Collection; 93a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard 103a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard@SuppressWarnings({"UnusedDeclaration"}) 113a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard@Implements(TextUtils.class) 12afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williamspublic class ShadowTextUtils { 13de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 143a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard public static CharSequence expandTemplate(CharSequence template, 153a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard CharSequence... values) { 163a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard String s = template.toString(); 173a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard for (int i = 0, valuesLength = values.length; i < valuesLength; i++) { 183a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard CharSequence value = values[i]; 193a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard s = s.replace("^" + (i + 1), value); 203a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard } 213a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard return s; 223a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard } 237b451e9ee0ea07caeb2a0667ab44a321a36127ffJan Berkel 247b451e9ee0ea07caeb2a0667ab44a321a36127ffJan Berkel @Implementation 257b451e9ee0ea07caeb2a0667ab44a321a36127ffJan Berkel public static boolean isEmpty(CharSequence s) { 267b451e9ee0ea07caeb2a0667ab44a321a36127ffJan Berkel return (s == null || s.length() == 0); 277b451e9ee0ea07caeb2a0667ab44a321a36127ffJan Berkel } 2883003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel 2983003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel @Implementation 3083003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel public static String join(CharSequence delimiter, Iterable tokens) { 3152db1b0d94ef698425ebd641ad7fecc5f674a4dbTyler Schultz return Join.join((String) delimiter, (Collection) tokens); 3283003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel } 3383003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel 3483003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel @Implementation 3583003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel public static String join(CharSequence delimiter, Object[] tokens) { 3652db1b0d94ef698425ebd641ad7fecc5f674a4dbTyler Schultz return Join.join((String) delimiter, tokens); 3783003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel } 38a16489f7f239bf6974e4f5607bb071670ae02245Jon Boekenoogen 39a16489f7f239bf6974e4f5607bb071670ae02245Jon Boekenoogen @Implementation 40a16489f7f239bf6974e4f5607bb071670ae02245Jon Boekenoogen public static boolean isDigitsOnly(CharSequence str) { 41a16489f7f239bf6974e4f5607bb071670ae02245Jon Boekenoogen final int len = str.length(); 42a16489f7f239bf6974e4f5607bb071670ae02245Jon Boekenoogen for (int i = 0; i < len; i++) { 43a16489f7f239bf6974e4f5607bb071670ae02245Jon Boekenoogen if (!Character.isDigit(str.charAt(i))) { 44a16489f7f239bf6974e4f5607bb071670ae02245Jon Boekenoogen return false; 45a16489f7f239bf6974e4f5607bb071670ae02245Jon Boekenoogen } 46a16489f7f239bf6974e4f5607bb071670ae02245Jon Boekenoogen } 47a16489f7f239bf6974e4f5607bb071670ae02245Jon Boekenoogen return true; 48a16489f7f239bf6974e4f5607bb071670ae02245Jon Boekenoogen } 493a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard} 50