1e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sappersteinpackage com.android.mail.utils; 2e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein 3e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sappersteinimport android.support.v4.text.BidiFormatter; 4e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein 5e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein/** 6e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein * A small utility class for working with strings. 7e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein */ 8e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sappersteinpublic class StringUtils { 9e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein 10e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein /** 11e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein * Returns a string containing the tokens joined by delimiters. 12e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein * Additionally, each token is first passed through {@link BidiFormatter#unicodeWrap(String)} 13e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein * before appending to the string. 14e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein */ 15e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein public static String joinAndBidiFormat(String delimiter, Iterable<String> tokens) { 16e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein return joinAndBidiFormat(delimiter, tokens, BidiFormatter.getInstance()); 17e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein } 18e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein 19e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein /** 20e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein * Returns a string containing the tokens joined by delimiters. 21e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein * Additionally, each token is first passed through {@link BidiFormatter#unicodeWrap(String)} 22e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein * before appending to the string. 23e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein */ 24e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein public static String joinAndBidiFormat( 25e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein String delimiter, Iterable<String> tokens, BidiFormatter bidiFormatter) { 26e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein final StringBuilder sb = new StringBuilder(); 27e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein boolean firstTime = true; 28e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein for (String token : tokens) { 29e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein if (firstTime) { 30e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein firstTime = false; 31e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein } else { 32e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein sb.append(delimiter); 33e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein } 34e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein sb.append(bidiFormatter.unicodeWrap(token)); 35e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein } 36e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein return sb.toString(); 37e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein } 38e4d9cf0795b197d3ca9a3716df1063f56abd0a5fAndrew Sapperstein} 39