package com.ronakmanglani.watchlist.api;
import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import com.ronakmanglani.watchlist.R;
public class ApiHelper {
// Constructor
private ApiHelper() { }
// Get API keys
public static String getTMDBKey(Context context) {
return context.getString(R.string.tmdb_api_key);
}
public static String getTraktKey(Context context) {
return context.getString(R.string.trakt_api_key);
}
// API Endpoints
public static String getMostPopularMoviesLink(Context context, int page) {
return "http://api.themoviedb.org/3/movie/popular?&page=" + page + "&api_key=" + getTMDBKey(context);
}
public static String getHighestRatedMoviesLink(Context context, int page) {
return "http://api.themoviedb.org/3/movie/top_rated?&page=" + page + "&api_key=" + getTMDBKey(context);
}
public static String getUpcomingMoviesLink(Context context, int page) {
return "http://api.themoviedb.org/3/movie/upcoming?&page=" + page + "&api_key=" + getTMDBKey(context);
}
public static String getNowPlayingMoviesLink(Context context, int page) {
return "http://api.themoviedb.org/3/movie/now_playing?&page=" + page + "&api_key=" + getTMDBKey(context);
}
public static String getSearchMoviesLink(Context context, String query, int page) {
return Uri.parse("http://api.themoviedb.org/3/search/movie")
.buildUpon()
.appendQueryParameter("api_key", getTMDBKey(context))
.appendQueryParameter("query", query)
.appendQueryParameter("page", page + "")
.build().toString();
}
public static String getMovieDetailLink(Context context, String id) {
return "http://api.themoviedb.org/3/movie/" + id + "?api_key=" + getTMDBKey(context) + "&append_to_response=credits,trailers";
}
public static String getMovieReviewsLink(String imdbId, int page) {
return "https://api-v2launch.trakt.tv/movies/" + imdbId + "/comments/newest?page=" + page;
}
public static String getVideosLink(Context context, String id) {
return "http://api.themoviedb.org/3/movie/" + id + "/videos?api_key=" + getTMDBKey(context);
}
public static String getPhotosLink(Context context, String id) {
return "http://api.themoviedb.org/3/movie/" + id + "/images?api_key=" + getTMDBKey(context);
}
// URLs for getting images
public static String getImageURL(String baseURL, int widthPx) {
if (widthPx > 500) {
return "http://image.tmdb.org/t/p/w780/" + baseURL;
} else if (widthPx > 342 && widthPx <= 500) {
return "http://image.tmdb.org/t/p/w500/" + baseURL;
} else if (widthPx > 185 && widthPx <= 342) {
return "http://image.tmdb.org/t/p/w342/" + baseURL;
} else if (widthPx > 154 && widthPx <= 185) {
return "http://image.tmdb.org/t/p/w185/" + baseURL;
} else if (widthPx > 92 && widthPx <= 154) {
return "http://image.tmdb.org/t/p/w154/" + baseURL;
} else if (widthPx > 0 && widthPx <= 92) {
return "http://image.tmdb.org/t/p/w92/" + baseURL;
} else {
return "http://image.tmdb.org/t/p/w185/" + baseURL; // Default Value
}
}
public static String getOriginalImageURL(String baseURL) {
return "http://image.tmdb.org/t/p/original/" + baseURL;
}
public static String getVideoThumbnailURL(String youtubeID) {
return "http://img.youtube.com/vi/" + youtubeID + "/0.jpg";
}
// URLs for Sharing
public static String getMovieShareURL(String id) {
return "https://www.themoviedb.org/movie/" + id;
}
public static String getVideoURL(String youtubeID) {
return "https://www.youtube.com/watch?v=" + youtubeID;
}
}