85 lines
2.9 KiB
Java
Executable File
85 lines
2.9 KiB
Java
Executable File
/*
|
|
* Copyright (c) 2019 Hemanth Savarala.
|
|
*
|
|
* Licensed under the GNU General Public License v3
|
|
*
|
|
* This is free software: you can redistribute it and/or modify it under
|
|
* the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation either version 3 of the License, or (at your option) any later version.
|
|
*
|
|
* This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
* See the GNU General Public License for more details.
|
|
*/
|
|
|
|
package code.name.monkey.retromusic.util;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Locale;
|
|
import java.util.Map;
|
|
|
|
import code.name.monkey.retromusic.rest.model.LastFmAlbum.Album.Image;
|
|
import code.name.monkey.retromusic.rest.model.LastFmArtist;
|
|
|
|
public class LastFMUtil {
|
|
|
|
public static String getLargestAlbumImageUrl(List<Image> list) {
|
|
Map hashMap = new HashMap();
|
|
for (Image image : list) {
|
|
Object obj = null;
|
|
String size = image.getSize();
|
|
if (size == null) {
|
|
obj = ImageSize.UNKNOWN;
|
|
} else {
|
|
try {
|
|
obj = ImageSize.valueOf(size.toUpperCase(Locale.ENGLISH));
|
|
} catch (IllegalArgumentException ignored) {
|
|
}
|
|
}
|
|
if (obj != null) {
|
|
hashMap.put(obj, image.getText());
|
|
}
|
|
}
|
|
return getLargestImageUrl(hashMap);
|
|
}
|
|
|
|
public static String getLargestArtistImageUrl(List<LastFmArtist.Artist.Image> list) {
|
|
Map hashMap = new HashMap();
|
|
for (LastFmArtist.Artist.Image image : list) {
|
|
Object obj = null;
|
|
String size = image.getSize();
|
|
if (size == null) {
|
|
obj = ImageSize.UNKNOWN;
|
|
} else {
|
|
try {
|
|
obj = ImageSize.valueOf(size.toUpperCase(Locale.ENGLISH));
|
|
} catch (IllegalArgumentException ignored) {
|
|
}
|
|
}
|
|
if (obj != null) {
|
|
hashMap.put(obj, image.getText());
|
|
}
|
|
}
|
|
return getLargestImageUrl(hashMap);
|
|
}
|
|
|
|
private static String getLargestImageUrl(Map<ImageSize, String> map) {
|
|
return map.containsKey(ImageSize.MEGA) ? map.get(ImageSize.MEGA)
|
|
: map.containsKey(ImageSize.EXTRALARGE) ? map.get(ImageSize.EXTRALARGE)
|
|
: map.containsKey(ImageSize.LARGE) ? map.get(ImageSize.LARGE)
|
|
: map.containsKey(ImageSize.MEDIUM) ? map.get(ImageSize.MEDIUM)
|
|
: map.containsKey(ImageSize.SMALL) ? map.get(ImageSize.SMALL)
|
|
: map.containsKey(ImageSize.UNKNOWN) ? map.get(ImageSize.UNKNOWN) : null;
|
|
}
|
|
|
|
private enum ImageSize {
|
|
SMALL,
|
|
MEDIUM,
|
|
LARGE,
|
|
EXTRALARGE,
|
|
MEGA,
|
|
UNKNOWN
|
|
}
|
|
}
|