package com.photo.photogallery.other;
import android.app.Activity;
import android.content.Context;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.WindowManager;
import com.photo.photogallery.api.entities.Photo;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import timber.log.Timber;
public class Utils {
public static String getBuddyIconUrl(Photo photo) {
String buddyIconUrl = "https://www.flickr.com/images/buddyicon.gif";
if (photo.iconServer() > 0) {
buddyIconUrl = String.format(
"http://farm%s.staticflickr.com/%s/buddyicons/%s.jpg",
photo.iconFarm(), photo.iconServer(), photo.owner()
);
}
return buddyIconUrl;
}
public static String getDateTaken(String dateString) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
try {
Date newDate = format.parse(dateString);
format = new SimpleDateFormat("d MMM", Locale.getDefault());
return format.format(newDate);
} catch (ParseException e) {
Timber.e(e, "date parser error");
return "";
}
}
public static String getShortTitle(String title) {
if (title.length() > 30) {
return title.substring(0, 30).concat("...");
}
return title;
}
public static String getImageUrl(Photo photo, int size) {
String imageUrl = "https://farm%s.staticflickr.com/%s/%s_%s_%s.jpg";
if (size <= 75) {
return String.format(imageUrl, photo.farm(), photo.server(), photo.id(), photo.secret(), "s");
} else if (size > 75 && size <= 150) {
return String.format(imageUrl, photo.farm(), photo.server(), photo.id(), photo.secret(), "q");
} else if (size > 150 && size <= 240) {
return String.format(imageUrl, photo.farm(), photo.server(), photo.id(), photo.secret(), "m");
} else if (size > 240 && size <= 320) {
return String.format(imageUrl, photo.farm(), photo.server(), photo.id(), photo.secret(), "n");
} else if (size > 320 && size <= 640) {
return String.format(imageUrl, photo.farm(), photo.server(), photo.id(), photo.secret(), "z");
} else if (size > 640 && size <= 800) {
return String.format(imageUrl, photo.farm(), photo.server(), photo.id(), photo.secret(), "c");
} else if (size > 800 && size <= 1024) {
return String.format(imageUrl, photo.farm(), photo.server(), photo.id(), photo.secret(), "b");
} else if (size > 1024 && size <= 1600) {
return String.format(imageUrl, photo.farm(), photo.server(), photo.id(), photo.secret(), "h");
}
return String.format(imageUrl, photo.farm(), photo.server(), photo.id(), photo.secret(), "n");
}
public static List<Photo> filterPublicPhotos(List<Photo> photos) {
List<Photo> photoList = new ArrayList<>();
for (Photo photo : photos) {
if (photo.isPublic() == 1) {
photoList.add(photo);
}
}
return photoList;
}
public static DisplayMetrics getDisplayMetrics(Activity activity) {
WindowManager wm = (WindowManager) activity.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
DisplayMetrics displaymetrics = new DisplayMetrics();
display.getMetrics(displaymetrics);
return displaymetrics;
}
}