/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.util;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Pattern;
import android.graphics.Point;
import android.net.Uri;
import android.text.TextUtils;
/**
*
* @author sihai
*
*/
public class FIFEUtil {
private static final Pattern FIFE_HOSTED_IMAGE_URL_RE = Pattern.compile("^((http(s)?):)?\\/\\/((((lh[3-6]\\.((ggpht)|(googleusercontent)|(google)))|(bp[0-3]\\.blogger))\\.com)|(www\\.google\\.com\\/visualsearch\\/lh))\\/");
private static final Joiner JOIN_ON_SLASH = Joiner.on("/");
//private static final Splitter SPLIT_ON_EQUALS = Splitter.on("=").omitEmptyStrings();
//private static final Splitter SPLIT_ON_SLASH = Splitter.on("/").omitEmptyStrings();
public static String setImageUrlSize(int i, String s, boolean flag) {
if (s != null && isFifeHostedUrl(s)) {
StringBuffer stringbuffer = new StringBuffer();
stringbuffer.append("s").append(i);
stringbuffer.append("-d-no");
if (flag)
stringbuffer.append("-c");
s = makeUriString(setImageUrlOptions(stringbuffer.toString(), s));
}
return s;
}
public static String setImageUrlSize(int i, int j, String s, boolean flag, boolean flag1) {
String s1;
if(s == null || !isFifeHostedUrl(s)) {
s1 = s;
} else {
StringBuffer stringbuffer = new StringBuffer();
stringbuffer.append("w").append(i);
stringbuffer.append("-h").append(j);
stringbuffer.append("-d-no");
s1 = makeUriString(setImageUrlOptions(stringbuffer.toString(), s));
}
return s1;
}
public static boolean isFifeHostedUrl(String s) {
boolean flag;
if (s == null)
flag = false;
else
flag = FIFE_HOSTED_IMAGE_URL_RE.matcher(s).find();
return flag;
}
public static Uri setImageUrlOptions(String s, String s1) {
return setImageUriOptions(s, Uri.parse(s1));
}
public static Uri setImageUriOptions(String s, Uri uri) {
// TODO
return uri;
}
private static String makeUriString(Uri uri) {
StringBuilder stringbuilder = new StringBuilder();
String s = uri.getScheme();
if(s != null)
stringbuilder.append(s).append(':');
String s1 = uri.getEncodedAuthority();
if(s1 != null)
stringbuilder.append("//").append(s1);
String s2 = Uri.encode(uri.getPath(), "/=");
if(s2 != null)
stringbuilder.append(s2);
String s3 = uri.getEncodedQuery();
if(!TextUtils.isEmpty(s3))
stringbuilder.append('?').append(s3);
String s4 = uri.getEncodedFragment();
if(!TextUtils.isEmpty(s4))
stringbuilder.append('#').append(s4);
return stringbuilder.toString();
}
public static Point getImageUrlSize(String s)
{
Point point = new Point();
String s1;
if(s != null && isFifeHostedUrl(s)) {
if(!TextUtils.isEmpty(s1 = getImageUriOptions(Uri.parse(s))))
{
String as[] = s1.split("-");
int i = 0;
while(i < as.length)
{
String s2 = as[i];
try
{
if(s2.startsWith("w"))
point.x = Integer.parseInt(s2.substring(1));
else
if(s2.startsWith("h"))
point.y = Integer.parseInt(s2.substring(1));
else
if(s2.startsWith("s"))
{
int j = Integer.parseInt(s2.substring(1));
point.y = j;
point.x = j;
}
}
catch(NumberFormatException numberformatexception) { }
i++;
}
}
}
return point;
}
public static String getImageUrlOptions(String s)
{
// TODO
return null;
}
public static String getImageUriOptions(Uri uri)
{
// TODO
return null;
}
//===========================================================================
// Inner class
//===========================================================================
private static final class Joiner {
private final String separator;
private Joiner(String s) {
separator = s;
}
public static Joiner on(String s) {
return new Joiner(s);
}
private static CharSequence toString(Object obj) {
Object obj1;
if (obj instanceof CharSequence)
obj1 = (CharSequence) obj;
else
obj1 = obj.toString();
return ((CharSequence) (obj1));
}
public final StringBuilder appendTo(StringBuilder stringbuilder, Iterable iterable) {
Iterator iterator = iterable.iterator();
if (iterator.hasNext()) {
stringbuilder.append(toString(iterator.next()));
for (; iterator.hasNext(); stringbuilder.append(toString(iterator.next())))
stringbuilder.append(separator);
}
return stringbuilder;
}
}
}