ShadowTextUtils.java revision 83003bbf38ccf4556ccc09ed9ce97c7725d58623
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; 63a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard 7ac58b328bde3c77d1d9687408e547faad3b77e2bPhil Goodwin/** 8ac58b328bde3c77d1d9687408e547faad3b77e2bPhil Goodwin * Shadow for the {@code TextUtils} class that implements the {@link #expandTemplate(CharSequence, CharSequence...)} 9ac58b328bde3c77d1d9687408e547faad3b77e2bPhil Goodwin * method. 10ac58b328bde3c77d1d9687408e547faad3b77e2bPhil Goodwin */ 113a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard@SuppressWarnings({"UnusedDeclaration"}) 123a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard@Implements(TextUtils.class) 13afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williamspublic class ShadowTextUtils { 14de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 153a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard public static CharSequence expandTemplate(CharSequence template, 163a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard CharSequence... values) { 173a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard String s = template.toString(); 183a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard for (int i = 0, valuesLength = values.length; i < valuesLength; i++) { 193a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard CharSequence value = values[i]; 203a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard s = s.replace("^" + (i + 1), value); 213a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard } 223a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard return s; 233a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard } 247b451e9ee0ea07caeb2a0667ab44a321a36127ffJan Berkel 257b451e9ee0ea07caeb2a0667ab44a321a36127ffJan Berkel @Implementation 267b451e9ee0ea07caeb2a0667ab44a321a36127ffJan Berkel public static boolean isEmpty(CharSequence s) { 277b451e9ee0ea07caeb2a0667ab44a321a36127ffJan Berkel return (s == null || s.length() == 0); 287b451e9ee0ea07caeb2a0667ab44a321a36127ffJan Berkel } 2983003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel 3083003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel @Implementation 3183003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel public static String join(CharSequence delimiter, Iterable tokens) { 3283003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel StringBuilder sb = new StringBuilder(); 3383003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel boolean firstTime = true; 3483003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel for (Object token: tokens) { 3583003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel if (firstTime) { 3683003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel firstTime = false; 3783003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel } else { 3883003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel sb.append(delimiter); 3983003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel } 4083003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel sb.append(token); 4183003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel } 4283003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel return sb.toString(); 4383003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel } 4483003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel 4583003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel @Implementation 4683003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel public static String join(CharSequence delimiter, Object[] tokens) { 4783003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel StringBuilder sb = new StringBuilder(); 4883003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel boolean firstTime = true; 4983003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel for (Object token: tokens) { 5083003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel if (firstTime) { 5183003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel firstTime = false; 5283003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel } else { 5383003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel sb.append(delimiter); 5483003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel } 5583003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel sb.append(token); 5683003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel } 5783003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel return sb.toString(); 5883003bbf38ccf4556ccc09ed9ce97c7725d58623Jan Berkel } 593a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard} 60