package com.frostwire.search.appia; import com.bt.download.android.core.MediaType; import com.frostwire.search.AbstractFileSearchResult; import com.frostwire.search.torrent.ComparableTorrentJsonItem; public class AppiaSearchResult extends AbstractFileSearchResult implements ComparableTorrentJsonItem { public String clickProxyURL; public String impressionTrackingURL; public String displayName; public String description; public String thumbnailURL; public String appId; public String categoryName; //kept for cloning purposes. private final AppiaServletResponseItem servletResponseItem; private final MediaType mediaType; private static final String CAT_ANDROID_GAMES_ALL_GAMES = "9"; private static final String CAT_ANDROID_APPS_ALL_APPS = "33"; private static final String CAT_ANDROID_APPS_BOOKS_REFERENCE = "2"; private static final String CAT_ANDROID_APPS_MEDIA_N_VIDEO = "19"; protected static final String CAT_ANDROID_APPS_MUSIC = "21"; private static final String CAT_ANDROID_APPS_PHOTOGRAPHY = "24"; public AppiaSearchResult(AppiaServletResponseItem item, String appiaCategoryId) { servletResponseItem = item; clickProxyURL = item.clickProxyURL; impressionTrackingURL = item.impressionTrackingURL; displayName = item.displayName; description = item.description; thumbnailURL = item.thumbnailURL; appId = item.appId; categoryName = item.categoryName; if (appiaCategoryId.equals(CAT_ANDROID_APPS_MUSIC)) { mediaType = MediaType.getAudioMediaType(); } else if (appiaCategoryId.equals(CAT_ANDROID_APPS_MEDIA_N_VIDEO)) { mediaType = MediaType.getVideoMediaType(); } else if (appiaCategoryId.equals(CAT_ANDROID_APPS_PHOTOGRAPHY)) { mediaType = MediaType.getImageMediaType(); } else if (appiaCategoryId.equals(CAT_ANDROID_APPS_ALL_APPS)) { mediaType = MediaType.getApplicationsMediaType(); } else if (appiaCategoryId.equals(CAT_ANDROID_APPS_BOOKS_REFERENCE)) { mediaType = MediaType.getDocumentMediaType(); } else if (appiaCategoryId.equals(CAT_ANDROID_GAMES_ALL_GAMES)) { mediaType = MediaType.getTorrentMediaType(); } else { mediaType = null; } } /** Copy constructor in case you want an instance on another media type, no mutability. */ public AppiaSearchResult(AppiaSearchResult searchResult, String appiaCatId) { //yes, the category name won't be the corresponding name, but we just don't have it //if we have to do this. this(searchResult.getAppiaServletResponseItem(), appiaCatId); } public String getImpressionTrackingURL() { return impressionTrackingURL; } public String getDescription() { return description; } @Override public String getThumbnailUrl() { return thumbnailURL; } public String getAppId() { return appId; } public String getCategoryName() { return categoryName; } @Override public int getSeeds() { return 5000; } @Override public String getFilename() { return displayName; } @Override public long getSize() { return -1; } @Override public String getDisplayName() { return displayName; } @Override public String getDetailsUrl() { return clickProxyURL; } @Override public String getSource() { return "Appia"; } public MediaType getMediaType() { return mediaType; } /** to be used in copy/update constructor */ private AppiaServletResponseItem getAppiaServletResponseItem() { return servletResponseItem; } }