<?xml version="1.0" encoding="UTF-8"?>
<issues format="4" by="lint 3.0.0-beta6">

    <issue
        id="WrongConstant"
        message="Must be one of: PreviewProgramColumns.TYPE_MOVIE, PreviewProgramColumns.TYPE_TV_SERIES, PreviewProgramColumns.TYPE_TV_SEASON, PreviewProgramColumns.TYPE_TV_EPISODE, PreviewProgramColumns.TYPE_CLIP, PreviewProgramColumns.TYPE_EVENT, PreviewProgramColumns.TYPE_CHANNEL, PreviewProgramColumns.TYPE_TRACK, PreviewProgramColumns.TYPE_ALBUM, PreviewProgramColumns.TYPE_ARTIST, PreviewProgramColumns.TYPE_PLAYLIST, PreviewProgramColumns.TYPE_STATION, PreviewProgramColumns.TYPE_GAME"
        errorLine1="        return i == null ? INVALID_INT_VALUE : i;"
        errorLine2="                           ~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/android/support/media/tv/BasePreviewProgram.java"
            line="130"
            column="28"/>
    </issue>

    <issue
        id="WrongConstant"
        message="Must be one of: PreviewProgramColumns.ASPECT_RATIO_16_9, PreviewProgramColumns.ASPECT_RATIO_3_2, PreviewProgramColumns.ASPECT_RATIO_4_3, PreviewProgramColumns.ASPECT_RATIO_1_1, PreviewProgramColumns.ASPECT_RATIO_2_3, PreviewProgramColumns.ASPECT_RATIO_MOVIE_POSTER"
        errorLine1="        return i == null ? INVALID_INT_VALUE : i;"
        errorLine2="                           ~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/android/support/media/tv/BasePreviewProgram.java"
            line="140"
            column="28"/>
    </issue>

    <issue
        id="WrongConstant"
        message="Must be one of: PreviewProgramColumns.ASPECT_RATIO_16_9, PreviewProgramColumns.ASPECT_RATIO_3_2, PreviewProgramColumns.ASPECT_RATIO_4_3, PreviewProgramColumns.ASPECT_RATIO_1_1, PreviewProgramColumns.ASPECT_RATIO_2_3, PreviewProgramColumns.ASPECT_RATIO_MOVIE_POSTER"
        errorLine1="        return i == null ? INVALID_INT_VALUE : i;"
        errorLine2="                           ~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/android/support/media/tv/BasePreviewProgram.java"
            line="150"
            column="28"/>
    </issue>

    <issue
        id="WrongConstant"
        message="Must be one of: PreviewProgramColumns.AVAILABILITY_AVAILABLE, PreviewProgramColumns.AVAILABILITY_FREE_WITH_SUBSCRIPTION, PreviewProgramColumns.AVAILABILITY_PAID_CONTENT, PreviewProgramColumns.AVAILABILITY_PURCHASED, PreviewProgramColumns.AVAILABILITY_FREE"
        errorLine1="        return i == null ? INVALID_INT_VALUE : i;"
        errorLine2="                           ~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/android/support/media/tv/BasePreviewProgram.java"
            line="168"
            column="28"/>
    </issue>

    <issue
        id="WrongConstant"
        message="Must be one of: PreviewProgramColumns.INTERACTION_TYPE_VIEWS, PreviewProgramColumns.INTERACTION_TYPE_LISTENS, PreviewProgramColumns.INTERACTION_TYPE_FOLLOWERS, PreviewProgramColumns.INTERACTION_TYPE_FANS, PreviewProgramColumns.INTERACTION_TYPE_LIKES, PreviewProgramColumns.INTERACTION_TYPE_THUMBS, PreviewProgramColumns.INTERACTION_TYPE_VIEWERS"
        errorLine1="        return i == null ? INVALID_INT_VALUE : i;"
        errorLine2="                           ~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/android/support/media/tv/BasePreviewProgram.java"
            line="219"
            column="28"/>
    </issue>

    <issue
        id="WrongConstant"
        message="Must be one of: ProgramColumns.REVIEW_RATING_STYLE_STARS, ProgramColumns.REVIEW_RATING_STYLE_THUMBS_UP_DOWN, ProgramColumns.REVIEW_RATING_STYLE_PERCENTAGE"
        errorLine1="        return i == null ? INVALID_INT_VALUE : i;"
        errorLine2="                           ~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/android/support/media/tv/BaseProgram.java"
            line="257"
            column="28"/>
    </issue>

    <issue
        id="WrongConstant"
        message="Must be one of: Genres.FAMILY_KIDS, Genres.SPORTS, Genres.SHOPPING, Genres.MOVIES, Genres.COMEDY, Genres.TRAVEL, Genres.DRAMA, Genres.EDUCATION, Genres.ANIMAL_WILDLIFE, Genres.NEWS, Genres.GAMING, Genres.ARTS, Genres.ENTERTAINMENT, Genres.LIFE_STYLE, Genres.MUSIC, Genres.PREMIER, Genres.TECH_SCIENCE"
        errorLine1="            mValues.put(Programs.COLUMN_BROADCAST_GENRE, Programs.Genres.encode(genres));"
        errorLine2="                                                                                ~~~~~~">
        <location
            file="src/main/java/android/support/media/tv/Program.java"
            line="286"
            column="81"/>
    </issue>

    <issue
        id="WrongConstant"
        message="Must be one of: WatchNextPrograms.WATCH_NEXT_TYPE_CONTINUE, WatchNextPrograms.WATCH_NEXT_TYPE_NEXT, WatchNextPrograms.WATCH_NEXT_TYPE_NEW, WatchNextPrograms.WATCH_NEXT_TYPE_WATCHLIST"
        errorLine1="        return i == null ? INVALID_INT_VALUE : i;"
        errorLine2="                           ~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/android/support/media/tv/WatchNextProgram.java"
            line="99"
            column="28"/>
    </issue>

</issues>
