public final class android.media.tv.TvContract$Programs$Genres
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.media.tv.TvContract$Programs$Genres
  super_class: java.lang.Object
{
  public static final java.lang.String FAMILY_KIDS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "FAMILY_KIDS"

  public static final java.lang.String SPORTS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "SPORTS"

  public static final java.lang.String SHOPPING;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "SHOPPING"

  public static final java.lang.String MOVIES;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "MOVIES"

  public static final java.lang.String COMEDY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "COMEDY"

  public static final java.lang.String TRAVEL;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "TRAVEL"

  public static final java.lang.String DRAMA;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "DRAMA"

  public static final java.lang.String EDUCATION;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "EDUCATION"

  public static final java.lang.String ANIMAL_WILDLIFE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "ANIMAL_WILDLIFE"

  public static final java.lang.String NEWS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "NEWS"

  public static final java.lang.String GAMING;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "GAMING"

  public static final java.lang.String ARTS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "ARTS"

  public static final java.lang.String ENTERTAINMENT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "ENTERTAINMENT"

  public static final java.lang.String LIFE_STYLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "LIFE_STYLE"

  public static final java.lang.String MUSIC;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "MUSIC"

  public static final java.lang.String PREMIER;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "PREMIER"

  public static final java.lang.String TECH_SCIENCE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "TECH_SCIENCE"

  private static final android.util.ArraySet<java.lang.String> CANONICAL_GENRES;
    descriptor: Landroid/util/ArraySet;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Landroid/util/ArraySet<Ljava/lang/String;>;

  private static final char DOUBLE_QUOTE;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 34

  private static final char COMMA;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 44

  private static final java.lang.String DELIMITER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: ","

  private static final java.lang.String[] EMPTY_STRING_ARRAY;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 2623
            new android.util.ArraySet
            dup
            invokespecial android.util.ArraySet.<init>:()V
            putstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
         1: .line 2625
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            ldc "FAMILY_KIDS"
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
         2: .line 2626
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            ldc "SPORTS"
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
         3: .line 2627
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            ldc "SHOPPING"
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
         4: .line 2628
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            ldc "MOVIES"
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
         5: .line 2629
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            ldc "COMEDY"
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
         6: .line 2630
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            ldc "TRAVEL"
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
         7: .line 2631
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            ldc "DRAMA"
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
         8: .line 2632
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            ldc "EDUCATION"
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
         9: .line 2633
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            ldc "ANIMAL_WILDLIFE"
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
        10: .line 2634
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            ldc "NEWS"
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
        11: .line 2635
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            ldc "GAMING"
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
        12: .line 2636
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            ldc "ARTS"
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
        13: .line 2637
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            ldc "ENTERTAINMENT"
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
        14: .line 2638
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            ldc "LIFE_STYLE"
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
        15: .line 2639
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            ldc "MUSIC"
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
        16: .line 2640
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            ldc "PREMIER"
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
        17: .line 2641
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            ldc "TECH_SCIENCE"
            invokevirtual android.util.ArraySet.add:(Ljava/lang/Object;)Z
            pop
        18: .line 2648
            iconst_0
            anewarray java.lang.String
            putstatic android.media.tv.TvContract$Programs$Genres.EMPTY_STRING_ARRAY:[Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.tv.TvContract$Programs$Genres this
         0: .line 2650
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // android.media.tv.TvContract$Programs$Genres this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/tv/TvContract$Programs$Genres;

  public static java.lang.String encode(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // java.lang.String[] genres
         0: .line 2660
            aload 0 /* genres */
            ifnonnull 2
         1: .line 2662
            aconst_null
            areturn
         2: .line 2664
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         3: .line 2665
            ldc ""
            astore 2 /* separator */
        start local 2 // java.lang.String separator
         4: .line 2666
            aload 0 /* genres */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: java.lang.String[] java.lang.StringBuilder java.lang.String top int int java.lang.String[]
      StackMap stack:
         5: aload 6
            iload 4
            aaload
            astore 3 /* genre */
        start local 3 // java.lang.String genre
         6: .line 2667
            aload 1 /* sb */
            aload 2 /* separator */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* genre */
            invokestatic android.media.tv.TvContract$Programs$Genres.encodeToCsv:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 2668
            ldc ","
            astore 2 /* separator */
        end local 3 // java.lang.String genre
         8: .line 2666
            iinc 4 1
      StackMap locals:
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 5
        10: .line 2670
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String separator
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.lang.String[] genres
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0     genres  [Ljava/lang/String;
            3   11     1         sb  Ljava/lang/StringBuilder;
            4   11     2  separator  Ljava/lang/String;
            6    8     3      genre  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      genres  

  private static java.lang.String encodeToCsv(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // java.lang.String genre
         0: .line 2674
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 2675
            aload 0 /* genre */
            invokevirtual java.lang.String.length:()I
            istore 2 /* length */
        start local 2 // int length
         2: .line 2676
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 11
         4: .line 2677
      StackMap locals: java.lang.StringBuilder int int
      StackMap stack:
            aload 0 /* genre */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* c */
        start local 4 // char c
         5: .line 2678
            iload 4 /* c */
            lookupswitch { // 2
                   34: 6
                   44: 8
              default: 9
          }
         6: .line 2680
      StackMap locals: int
      StackMap stack:
            aload 1 /* sb */
            bipush 34
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 2681
            goto 9
         8: .line 2683
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            bipush 34
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         9: .line 2686
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            iload 4 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 4 // char c
        10: .line 2676
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* i */
            iload 2 /* length */
            if_icmplt 4
        end local 3 // int i
        12: .line 2688
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // int length
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.lang.String genre
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0   genre  Ljava/lang/String;
            1   13     1      sb  Ljava/lang/StringBuilder;
            2   13     2  length  I
            3   12     3       i  I
            5   10     4       c  C
    MethodParameters:
       Name  Flags
      genre  

  public static java.lang.String[] decode(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // java.lang.String genres
         0: .line 2699
            aload 0 /* genres */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifeq 2
         1: .line 2701
            getstatic android.media.tv.TvContract$Programs$Genres.EMPTY_STRING_ARRAY:[Ljava/lang/String;
            areturn
         2: .line 2703
      StackMap locals:
      StackMap stack:
            aload 0 /* genres */
            bipush 44
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpne 4
            aload 0 /* genres */
            bipush 34
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpne 4
         3: .line 2704
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* genres */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            aastore
            areturn
         4: .line 2706
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         5: .line 2707
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* results */
        start local 2 // java.util.List results
         6: .line 2708
            aload 0 /* genres */
            invokevirtual java.lang.String.length:()I
            istore 3 /* length */
        start local 3 // int length
         7: .line 2709
            iconst_0
            istore 4 /* escape */
        start local 4 // boolean escape
         8: .line 2710
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         9: goto 24
        10: .line 2711
      StackMap locals: java.lang.String java.lang.StringBuilder java.util.List int int int
      StackMap stack:
            aload 0 /* genres */
            iload 5 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 6 /* c */
        start local 6 // char c
        11: .line 2712
            iload 6 /* c */
            lookupswitch { // 2
                   34: 12
                   44: 15
              default: 21
          }
        12: .line 2714
      StackMap locals: int
      StackMap stack:
            iload 4 /* escape */
            ifne 21
        13: .line 2715
            iconst_1
            istore 4 /* escape */
        14: .line 2716
            goto 23
        15: .line 2720
      StackMap locals:
      StackMap stack:
            iload 4 /* escape */
            ifne 21
        16: .line 2721
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 7 /* string */
        start local 7 // java.lang.String string
        17: .line 2722
            aload 7 /* string */
            invokevirtual java.lang.String.length:()I
            ifle 19
        18: .line 2723
            aload 2 /* results */
            aload 7 /* string */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 2725
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        20: .line 2726
            goto 23
        end local 7 // java.lang.String string
        21: .line 2730
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            iload 6 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        22: .line 2731
            iconst_0
            istore 4 /* escape */
        end local 6 // char c
        23: .line 2710
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 5 /* i */
            iload 3 /* length */
            if_icmplt 10
        end local 5 // int i
        25: .line 2733
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 5 /* string */
        start local 5 // java.lang.String string
        26: .line 2734
            aload 5 /* string */
            invokevirtual java.lang.String.length:()I
            ifle 28
        27: .line 2735
            aload 2 /* results */
            aload 5 /* string */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        28: .line 2737
      StackMap locals: java.lang.String java.lang.StringBuilder java.util.List int int java.lang.String
      StackMap stack:
            aload 2 /* results */
            aload 2 /* results */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 5 // java.lang.String string
        end local 4 // boolean escape
        end local 3 // int length
        end local 2 // java.util.List results
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.lang.String genres
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   29     0   genres  Ljava/lang/String;
            5   29     1       sb  Ljava/lang/StringBuilder;
            6   29     2  results  Ljava/util/List<Ljava/lang/String;>;
            7   29     3   length  I
            8   29     4   escape  Z
            9   25     5        i  I
           11   23     6        c  C
           17   21     7   string  Ljava/lang/String;
           26   29     5   string  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      genres  

  public static boolean isCanonical(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String genre
         0: .line 2747
            getstatic android.media.tv.TvContract$Programs$Genres.CANONICAL_GENRES:Landroid/util/ArraySet;
            aload 0 /* genre */
            invokevirtual android.util.ArraySet.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // java.lang.String genre
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  genre  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      genre  
}
SourceFile: "TvContract.java"
NestHost: android.media.tv.TvContract
InnerClasses:
  public final Programs = android.media.tv.TvContract$Programs of android.media.tv.TvContract
  public final Genres = android.media.tv.TvContract$Programs$Genres of android.media.tv.TvContract$Programs
  public abstract Genre = android.media.tv.TvContract$Programs$Genres$Genre of android.media.tv.TvContract$Programs$Genres