package tv.emby.embyatv.livetv; import android.content.SharedPreferences; import mediabrowser.model.dto.BaseItemDto; import tv.emby.embyatv.TvApp; import tv.emby.embyatv.util.Utils; /** * Created by Eric on 5/13/2015. */ public class GuideFilters { private SharedPreferences prefs; private boolean movies; private boolean news; private boolean series; private boolean kids; private boolean sports; private boolean premiere; public GuideFilters() { load(); } public void load() { prefs = TvApp.getApplication().getSystemPrefs(); movies = prefs.getBoolean("guide_filter_movies",false); news = prefs.getBoolean("guide_filter_news",false); series = prefs.getBoolean("guide_filter_series",false); kids = prefs.getBoolean("guide_filter_kids",false); sports = prefs.getBoolean("guide_filter_sports", false); premiere = prefs.getBoolean("guide_filter_premiere", false); } public boolean any() { return movies || news || series || kids || sports || premiere; } public boolean passesFilter(BaseItemDto program) { if (!any()) return true; if (movies && Utils.isTrue(program.getIsMovie())) return !premiere || Utils.isTrue(program.getIsPremiere()); if (news && Utils.isTrue(program.getIsNews())) return !premiere || Utils.isTrue(program.getIsPremiere()) || Utils.isTrue(program.getIsLive()) || !Utils.isTrue(program.getIsRepeat()); if (series && Utils.isTrue(program.getIsSeries())) return !premiere || Utils.isTrue(program.getIsPremiere()) || !Utils.isTrue(program.getIsRepeat()); if (kids && Utils.isTrue(program.getIsKids())) return !premiere || Utils.isTrue(program.getIsPremiere()); if (sports && Utils.isTrue(program.getIsSports())) return !premiere || Utils.isTrue(program.getIsPremiere()) || Utils.isTrue(program.getIsLive()); if (!movies && !news && !series && !kids && !sports) return (premiere && (Utils.isTrue(program.getIsPremiere()) || (Utils.isTrue(program.getIsSeries()) && !Utils.isTrue(program.getIsRepeat())) || (Utils.isTrue(program.getIsSports()) && Utils.isTrue(program.getIsLive())))); return false; } public void clear() { setNews(false); setSeries(false); setSports(false); setKids(false); setMovies(false); setPremiere(false); } @Override public String toString() { return any() ? "Content filtered. Showing channels with " + getFilterString() : "Showing all programs "; } private String getFilterString() { String filterString = ""; if (movies) filterString += "movies"; if (news) filterString += getSeparator(filterString) + "news"; if (sports) filterString += getSeparator(filterString) + "sports"; if (series) filterString += getSeparator(filterString) + "series"; if (kids) filterString += getSeparator(filterString) + "kids"; if (premiere) filterString += getSeparator(filterString) + "ONLY new"; return filterString; } private String getSeparator(String original) {return (original.length()) > 0 ? ", " : "";} public boolean isMovies() { return movies; } public void setMovies(boolean movies) { this.movies = movies; prefs.edit().putBoolean("guide_filter_movies", movies).apply(); } public boolean isNews() { return news; } public void setNews(boolean news) { this.news = news; prefs.edit().putBoolean("guide_filter_news", news).apply(); } public boolean isSeries() { return series; } public void setSeries(boolean series) { this.series = series; prefs.edit().putBoolean("guide_filter_series", series).apply(); } public boolean isKids() { return kids; } public void setKids(boolean kids) { this.kids = kids; prefs.edit().putBoolean("guide_filter_kids", kids).apply(); } public boolean isSports() { return sports; } public void setSports(boolean sports) { this.sports = sports; prefs.edit().putBoolean("guide_filter_sports", sports).apply(); } public boolean isPremiere() { return premiere; } public void setPremiere(boolean premiere) { this.premiere = premiere; prefs.edit().putBoolean("guide_filter_premiere", premiere).apply(); } }