package com.sregg.android.tv.spotifyPlayer.utils;
import android.app.UiModeManager;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import java.util.ArrayList;
import java.util.List;
import kaaes.spotify.webapi.android.models.AlbumSimple;
import kaaes.spotify.webapi.android.models.ArtistSimple;
import kaaes.spotify.webapi.android.models.Pager;
import kaaes.spotify.webapi.android.models.Playlist;
import kaaes.spotify.webapi.android.models.PlaylistSimple;
import kaaes.spotify.webapi.android.models.TrackSimple;
/**
* Created by simonreggiani on 15-02-04.
*/
public class Utils {
public static String getUriFromSpotiyObject(Object spotifyObject) {
String uri = null;
if (spotifyObject instanceof TrackSimple) {
uri = ((TrackSimple) spotifyObject).uri;
} else if (spotifyObject instanceof Playlist) {
uri = ((Playlist) spotifyObject).uri;
} else if (spotifyObject instanceof PlaylistSimple) {
uri = ((PlaylistSimple) spotifyObject).uri;
} else if (spotifyObject instanceof AlbumSimple) {
uri = ((AlbumSimple) spotifyObject).uri;
} else if (spotifyObject instanceof ArtistSimple) {
uri = ((ArtistSimple) spotifyObject).uri;
}
return uri;
}
public static String getIdFromUri(String uri) {
return uri.split(":")[2];
}
public static int getResourceIdByName(Context context, String name, String type) {
Resources resources = context.getResources();
return resources.getIdentifier(name, type, context.getPackageName());
}
public static int getStringResourceIdByName(Context context, String name) {
return getResourceIdByName(context, name, "string");
}
public static String getStringByName(Context context, String name) {
return context.getString(getStringResourceIdByName(context, name));
}
public static String getTrackArtists(TrackSimple track) {
StringBuilder artists = new StringBuilder();
for (ArtistSimple artist : track.artists) {
if (artists.length() > 0) {
artists.append(", ");
}
artists.append(artist.name);
}
return artists.toString();
}
public static int dpToPx(int dp, Context ctx) {
float density = ctx.getResources().getDisplayMetrics().density;
return Math.round((float) dp * density);
}
public static boolean isRunningOnAndroidTV(Context context) {
UiModeManager uiModeManager = (UiModeManager) context.getSystemService(Context.UI_MODE_SERVICE);
return uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION;
}
public static List<String> getTrackUrisFromTrackPager(Pager<TrackSimple> trackPager) {
List<String> trackUris = new ArrayList<>(trackPager.items.size());
for (TrackSimple trackSimple : trackPager.items) {
trackUris.add(trackSimple.uri);
}
return trackUris;
}
}