class android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache
  super_class: java.lang.Object
{
  private final android.widget.RemoteViewsAdapter$RemoteViewsMetaData mMetaData;
    descriptor: Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.widget.RemoteViewsAdapter$RemoteViewsMetaData mTemporaryMetaData;
    descriptor: Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.util.SparseArray<android.widget.RemoteViewsAdapter$RemoteViewsIndexMetaData> mIndexMetaData;
    descriptor: Landroid/util/SparseArray;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Landroid/util/SparseArray<Landroid/widget/RemoteViewsAdapter$RemoteViewsIndexMetaData;>;

  private final android.util.SparseArray<android.widget.RemoteViews> mIndexRemoteViews;
    descriptor: Landroid/util/SparseArray;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Landroid/util/SparseArray<Landroid/widget/RemoteViews;>;

  private final android.util.SparseBooleanArray mIndicesToLoad;
    descriptor: Landroid/util/SparseBooleanArray;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int mLastRequestedIndex;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int mPreloadLowerBound;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int mPreloadUpperBound;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final int mMaxCount;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int mMaxCountSlack;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final float sMaxCountSlackPercent;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.75

  private static final int sMaxMemoryLimitInBytes;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2097152

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
        start local 1 // int maxCacheSize
         0: .line 594
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 555
            aload 0 /* this */
            new android.widget.RemoteViewsAdapter$RemoteViewsMetaData
            dup
            invokespecial android.widget.RemoteViewsAdapter$RemoteViewsMetaData.<init>:()V
            putfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mMetaData:Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
         2: .line 556
            aload 0 /* this */
            new android.widget.RemoteViewsAdapter$RemoteViewsMetaData
            dup
            invokespecial android.widget.RemoteViewsAdapter$RemoteViewsMetaData.<init>:()V
            putfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mTemporaryMetaData:Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
         3: .line 565
            aload 0 /* this */
            new android.util.SparseArray
            dup
            invokespecial android.util.SparseArray.<init>:()V
            putfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexMetaData:Landroid/util/SparseArray;
         4: .line 569
            aload 0 /* this */
            new android.util.SparseArray
            dup
            invokespecial android.util.SparseArray.<init>:()V
            putfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexRemoteViews:Landroid/util/SparseArray;
         5: .line 573
            aload 0 /* this */
            new android.util.SparseBooleanArray
            dup
            invokespecial android.util.SparseBooleanArray.<init>:()V
            putfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndicesToLoad:Landroid/util/SparseBooleanArray;
         6: .line 595
            aload 0 /* this */
            iload 1 /* maxCacheSize */
            putfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mMaxCount:I
         7: .line 596
            aload 0 /* this */
            ldc 0.75
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mMaxCount:I
            iconst_2
            idiv
            i2f
            fmul
            invokestatic java.lang.Math.round:(F)I
            putfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mMaxCountSlack:I
         8: .line 597
            aload 0 /* this */
            iconst_0
            putfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mPreloadLowerBound:I
         9: .line 598
            aload 0 /* this */
            iconst_m1
            putfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mPreloadUpperBound:I
        10: .line 599
            aload 0 /* this */
            iconst_m1
            putfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mLastRequestedIndex:I
        11: .line 600
            return
        end local 1 // int maxCacheSize
        end local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          this  Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
            0   12     1  maxCacheSize  I
    MethodParameters:
              Name  Flags
      maxCacheSize  

  public void insert(int, android.widget.RemoteViews, long, int[]);
    descriptor: (ILandroid/widget/RemoteViews;J[I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=5
        start local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
        start local 1 // int position
        start local 2 // android.widget.RemoteViews v
        start local 3 // long itemId
        start local 5 // int[] visibleWindow
         0: .line 604
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexRemoteViews:Landroid/util/SparseArray;
            invokevirtual android.util.SparseArray.size:()I
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mMaxCount:I
            if_icmplt 2
         1: .line 605
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexRemoteViews:Landroid/util/SparseArray;
            aload 0 /* this */
            iload 1 /* position */
            aload 5 /* visibleWindow */
            invokevirtual android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.getFarthestPositionFrom:(I[I)I
            invokevirtual android.util.SparseArray.remove:(I)V
         2: .line 609
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mLastRequestedIndex:I
            iconst_m1
            if_icmple 3
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mLastRequestedIndex:I
            goto 4
      StackMap locals:
      StackMap stack:
         3: iload 1 /* position */
      StackMap locals:
      StackMap stack: int
         4: istore 6 /* pruneFromPosition */
        start local 6 // int pruneFromPosition
         5: .line 610
            goto 10
         6: .line 616
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 6 /* pruneFromPosition */
            aload 5 /* visibleWindow */
            invokevirtual android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.getFarthestPositionFrom:(I[I)I
            istore 7 /* trimIndex */
        start local 7 // int trimIndex
         7: .line 620
            iload 7 /* trimIndex */
            ifge 9
         8: .line 621
            goto 11
         9: .line 624
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexRemoteViews:Landroid/util/SparseArray;
            iload 7 /* trimIndex */
            invokevirtual android.util.SparseArray.remove:(I)V
        end local 7 // int trimIndex
        10: .line 610
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.getRemoteViewsBitmapMemoryUsage:()I
            ldc 2097152
            if_icmpge 6
        11: .line 628
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexMetaData:Landroid/util/SparseArray;
            iload 1 /* position */
            invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
            checkcast android.widget.RemoteViewsAdapter$RemoteViewsIndexMetaData
            astore 7 /* metaData */
        start local 7 // android.widget.RemoteViewsAdapter$RemoteViewsIndexMetaData metaData
        12: .line 629
            aload 7 /* metaData */
            ifnull 15
        13: .line 630
            aload 7 /* metaData */
            aload 2 /* v */
            lload 3 /* itemId */
            invokevirtual android.widget.RemoteViewsAdapter$RemoteViewsIndexMetaData.set:(Landroid/widget/RemoteViews;J)V
        14: .line 631
            goto 16
        15: .line 632
      StackMap locals: android.widget.RemoteViewsAdapter$RemoteViewsIndexMetaData
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexMetaData:Landroid/util/SparseArray;
            iload 1 /* position */
            new android.widget.RemoteViewsAdapter$RemoteViewsIndexMetaData
            dup
            aload 2 /* v */
            lload 3 /* itemId */
            invokespecial android.widget.RemoteViewsAdapter$RemoteViewsIndexMetaData.<init>:(Landroid/widget/RemoteViews;J)V
            invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
        16: .line 634
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexRemoteViews:Landroid/util/SparseArray;
            iload 1 /* position */
            aload 2 /* v */
            invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
        17: .line 635
            return
        end local 7 // android.widget.RemoteViewsAdapter$RemoteViewsIndexMetaData metaData
        end local 6 // int pruneFromPosition
        end local 5 // int[] visibleWindow
        end local 3 // long itemId
        end local 2 // android.widget.RemoteViews v
        end local 1 // int position
        end local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   18     0               this  Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
            0   18     1           position  I
            0   18     2                  v  Landroid/widget/RemoteViews;
            0   18     3             itemId  J
            0   18     5      visibleWindow  [I
            5   18     6  pruneFromPosition  I
            7   10     7          trimIndex  I
           12   18     7           metaData  Landroid/widget/RemoteViewsAdapter$RemoteViewsIndexMetaData;
    MethodParameters:
               Name  Flags
      position       
      v              
      itemId         
      visibleWindow  

  public android.widget.RemoteViewsAdapter$RemoteViewsMetaData getMetaData();
    descriptor: ()Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
         0: .line 638
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mMetaData:Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
            areturn
        end local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;

  public android.widget.RemoteViewsAdapter$RemoteViewsMetaData getTemporaryMetaData();
    descriptor: ()Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
         0: .line 641
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mTemporaryMetaData:Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
            areturn
        end local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;

  public android.widget.RemoteViews getRemoteViewsAt(int);
    descriptor: (I)Landroid/widget/RemoteViews;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
        start local 1 // int position
         0: .line 644
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexRemoteViews:Landroid/util/SparseArray;
            iload 1 /* position */
            invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
            checkcast android.widget.RemoteViews
            areturn
        end local 1 // int position
        end local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
            0    1     1  position  I
    MethodParameters:
          Name  Flags
      position  

  public android.widget.RemoteViewsAdapter$RemoteViewsIndexMetaData getMetaDataAt(int);
    descriptor: (I)Landroid/widget/RemoteViewsAdapter$RemoteViewsIndexMetaData;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
        start local 1 // int position
         0: .line 647
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexMetaData:Landroid/util/SparseArray;
            iload 1 /* position */
            invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
            checkcast android.widget.RemoteViewsAdapter$RemoteViewsIndexMetaData
            areturn
        end local 1 // int position
        end local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
            0    1     1  position  I
    MethodParameters:
          Name  Flags
      position  

  public void commitTemporaryMetaData();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
         0: .line 651
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mTemporaryMetaData:Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
            dup
            astore 1
            monitorenter
         1: .line 652
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mMetaData:Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
            dup
            astore 2
            monitorenter
         2: .line 653
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mMetaData:Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mTemporaryMetaData:Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
            invokevirtual android.widget.RemoteViewsAdapter$RemoteViewsMetaData.set:(Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;)V
         3: .line 652
            aload 2
            monitorexit
         4: goto 7
      StackMap locals: android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache android.widget.RemoteViewsAdapter$RemoteViewsMetaData android.widget.RemoteViewsAdapter$RemoteViewsMetaData
      StackMap stack: java.lang.Throwable
         5: aload 2
            monitorexit
         6: athrow
         7: .line 651
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 1
            monitorexit
        10: athrow
        11: .line 656
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
      Exception table:
        from    to  target  type
           2     4       5  any
           5     6       5  any
           1     8       9  any
           9    10       9  any

  private int getRemoteViewsBitmapMemoryUsage();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
         0: .line 660
            iconst_0
            istore 1 /* mem */
        start local 1 // int mem
         1: .line 661
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexRemoteViews:Landroid/util/SparseArray;
            invokevirtual android.util.SparseArray.size:()I
            iconst_1
            isub
            istore 2 /* i */
        start local 2 // int i
         2: goto 7
         3: .line 662
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexRemoteViews:Landroid/util/SparseArray;
            iload 2 /* i */
            invokevirtual android.util.SparseArray.valueAt:(I)Ljava/lang/Object;
            checkcast android.widget.RemoteViews
            astore 3 /* v */
        start local 3 // android.widget.RemoteViews v
         4: .line 663
            aload 3 /* v */
            ifnull 6
         5: .line 664
            iload 1 /* mem */
            aload 3 /* v */
            invokevirtual android.widget.RemoteViews.estimateMemoryUsage:()I
            iadd
            istore 1 /* mem */
        end local 3 // android.widget.RemoteViews v
         6: .line 661
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ -1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            ifge 3
        end local 2 // int i
         8: .line 667
            iload 1 /* mem */
            ireturn
        end local 1 // int mem
        end local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
            1    9     1   mem  I
            2    8     2     i  I
            4    6     3     v  Landroid/widget/RemoteViews;

  private int getFarthestPositionFrom(int, int[]);
    descriptor: (I[I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=10, args_size=3
        start local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
        start local 1 // int pos
        start local 2 // int[] visibleWindow
         0: .line 672
            iconst_0
            istore 3 /* maxDist */
        start local 3 // int maxDist
         1: .line 673
            iconst_m1
            istore 4 /* maxDistIndex */
        start local 4 // int maxDistIndex
         2: .line 674
            iconst_0
            istore 5 /* maxDistNotVisible */
        start local 5 // int maxDistNotVisible
         3: .line 675
            iconst_m1
            istore 6 /* maxDistIndexNotVisible */
        start local 6 // int maxDistIndexNotVisible
         4: .line 676
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexRemoteViews:Landroid/util/SparseArray;
            invokevirtual android.util.SparseArray.size:()I
            iconst_1
            isub
            istore 7 /* i */
        start local 7 // int i
         5: goto 15
         6: .line 677
      StackMap locals: android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache int int[] int int int int int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexRemoteViews:Landroid/util/SparseArray;
            iload 7 /* i */
            invokevirtual android.util.SparseArray.keyAt:(I)I
            istore 8 /* index */
        start local 8 // int index
         7: .line 678
            iload 8 /* index */
            iload 1 /* pos */
            isub
            invokestatic java.lang.Math.abs:(I)I
            istore 9 /* dist */
        start local 9 // int dist
         8: .line 679
            iload 9 /* dist */
            iload 5 /* maxDistNotVisible */
            if_icmple 11
            aload 2 /* visibleWindow */
            iload 8 /* index */
            invokestatic java.util.Arrays.binarySearch:([II)I
            ifge 11
         9: .line 682
            iload 8 /* index */
            istore 6 /* maxDistIndexNotVisible */
        10: .line 683
            iload 9 /* dist */
            istore 5 /* maxDistNotVisible */
        11: .line 685
      StackMap locals: int int
      StackMap stack:
            iload 9 /* dist */
            iload 3 /* maxDist */
            if_icmplt 14
        12: .line 688
            iload 8 /* index */
            istore 4 /* maxDistIndex */
        13: .line 689
            iload 9 /* dist */
            istore 3 /* maxDist */
        end local 9 // int dist
        end local 8 // int index
        14: .line 676
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ -1
      StackMap locals:
      StackMap stack:
        15: iload 7 /* i */
            ifge 6
        end local 7 // int i
        16: .line 692
            iload 6 /* maxDistIndexNotVisible */
            iconst_m1
            if_icmple 18
        17: .line 693
            iload 6 /* maxDistIndexNotVisible */
            ireturn
        18: .line 695
      StackMap locals:
      StackMap stack:
            iload 4 /* maxDistIndex */
            ireturn
        end local 6 // int maxDistIndexNotVisible
        end local 5 // int maxDistNotVisible
        end local 4 // int maxDistIndex
        end local 3 // int maxDist
        end local 2 // int[] visibleWindow
        end local 1 // int pos
        end local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   19     0                    this  Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
            0   19     1                     pos  I
            0   19     2           visibleWindow  [I
            1   19     3                 maxDist  I
            2   19     4            maxDistIndex  I
            3   19     5       maxDistNotVisible  I
            4   19     6  maxDistIndexNotVisible  I
            5   16     7                       i  I
            7   14     8                   index  I
            8   14     9                    dist  I
    MethodParameters:
               Name  Flags
      pos            
      visibleWindow  

  public void queueRequestedPositionToLoad(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
        start local 1 // int position
         0: .line 699
            aload 0 /* this */
            iload 1 /* position */
            putfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mLastRequestedIndex:I
         1: .line 700
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndicesToLoad:Landroid/util/SparseBooleanArray;
            dup
            astore 2
            monitorenter
         2: .line 701
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndicesToLoad:Landroid/util/SparseBooleanArray;
            iload 1 /* position */
            iconst_1
            invokevirtual android.util.SparseBooleanArray.put:(IZ)V
         3: .line 700
            aload 2
            monitorexit
         4: goto 7
      StackMap locals: android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache int android.util.SparseBooleanArray
      StackMap stack: java.lang.Throwable
         5: aload 2
            monitorexit
         6: athrow
         7: .line 703
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int position
        end local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
            0    8     1  position  I
      Exception table:
        from    to  target  type
           2     4       5  any
           5     6       5  any
    MethodParameters:
          Name  Flags
      position  

  public boolean queuePositionsToBePreloadedFromRequestedPosition(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
        start local 1 // int position
         0: .line 706
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mPreloadLowerBound:I
            iload 1 /* position */
            if_icmpgt 4
            iload 1 /* position */
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mPreloadUpperBound:I
            if_icmpgt 4
         1: .line 707
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mPreloadUpperBound:I
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mPreloadLowerBound:I
            iadd
            iconst_2
            idiv
            istore 2 /* center */
        start local 2 // int center
         2: .line 708
            iload 1 /* position */
            iload 2 /* center */
            isub
            invokestatic java.lang.Math.abs:(I)I
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mMaxCountSlack:I
            if_icmpge 4
         3: .line 709
            iconst_0
            ireturn
        end local 2 // int center
         4: .line 714
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mMetaData:Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
            dup
            astore 3
            monitorenter
         5: .line 715
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mMetaData:Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
            getfield android.widget.RemoteViewsAdapter$RemoteViewsMetaData.count:I
            istore 2 /* count */
        start local 2 // int count
         6: .line 714
            aload 3
            monitorexit
         7: goto 10
        end local 2 // int count
      StackMap locals: android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache int top android.widget.RemoteViewsAdapter$RemoteViewsMetaData
      StackMap stack: java.lang.Throwable
         8: aload 3
            monitorexit
         9: athrow
        start local 2 // int count
        10: .line 717
      StackMap locals: android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache int int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndicesToLoad:Landroid/util/SparseBooleanArray;
            dup
            astore 3
            monitorenter
        11: .line 719
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndicesToLoad:Landroid/util/SparseBooleanArray;
            invokevirtual android.util.SparseBooleanArray.size:()I
            iconst_1
            isub
            istore 4 /* i */
        start local 4 // int i
        12: goto 16
        13: .line 720
      StackMap locals: android.util.SparseBooleanArray int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndicesToLoad:Landroid/util/SparseBooleanArray;
            iload 4 /* i */
            invokevirtual android.util.SparseBooleanArray.valueAt:(I)Z
            ifne 15
        14: .line 721
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndicesToLoad:Landroid/util/SparseBooleanArray;
            iload 4 /* i */
            invokevirtual android.util.SparseBooleanArray.removeAt:(I)V
        15: .line 719
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
        16: iload 4 /* i */
            ifge 13
        end local 4 // int i
        17: .line 726
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mMaxCount:I
            iconst_2
            idiv
            istore 4 /* halfMaxCount */
        start local 4 // int halfMaxCount
        18: .line 727
            aload 0 /* this */
            iload 1 /* position */
            iload 4 /* halfMaxCount */
            isub
            putfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mPreloadLowerBound:I
        19: .line 728
            aload 0 /* this */
            iload 1 /* position */
            iload 4 /* halfMaxCount */
            iadd
            putfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mPreloadUpperBound:I
        20: .line 729
            iconst_0
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mPreloadLowerBound:I
            invokestatic java.lang.Math.max:(II)I
            istore 5 /* effectiveLowerBound */
        start local 5 // int effectiveLowerBound
        21: .line 730
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mPreloadUpperBound:I
            iload 2 /* count */
            iconst_1
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 6 /* effectiveUpperBound */
        start local 6 // int effectiveUpperBound
        22: .line 731
            iload 5 /* effectiveLowerBound */
            istore 7 /* i */
        start local 7 // int i
        23: goto 27
        24: .line 732
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexRemoteViews:Landroid/util/SparseArray;
            iload 7 /* i */
            invokevirtual android.util.SparseArray.indexOfKey:(I)I
            ifge 26
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndicesToLoad:Landroid/util/SparseBooleanArray;
            iload 7 /* i */
            invokevirtual android.util.SparseBooleanArray.get:(I)Z
            ifne 26
        25: .line 734
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndicesToLoad:Landroid/util/SparseBooleanArray;
            iload 7 /* i */
            iconst_0
            invokevirtual android.util.SparseBooleanArray.put:(IZ)V
        26: .line 731
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 7 /* i */
            iload 6 /* effectiveUpperBound */
            if_icmple 24
        end local 7 // int i
        end local 6 // int effectiveUpperBound
        end local 5 // int effectiveLowerBound
        end local 4 // int halfMaxCount
        28: .line 717
            aload 3
            monitorexit
        29: goto 32
      StackMap locals: android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache int int android.util.SparseBooleanArray
      StackMap stack: java.lang.Throwable
        30: aload 3
            monitorexit
        31: athrow
        32: .line 738
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // int count
        end local 1 // int position
        end local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   33     0                 this  Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
            0   33     1             position  I
            2    4     2               center  I
            6    8     2                count  I
           10   33     2                count  I
           12   17     4                    i  I
           18   28     4         halfMaxCount  I
           21   28     5  effectiveLowerBound  I
           22   28     6  effectiveUpperBound  I
           23   28     7                    i  I
      Exception table:
        from    to  target  type
           5     7       8  any
           8     9       8  any
          11    29      30  any
          30    31      30  any
    MethodParameters:
          Name  Flags
      position  

  public int getNextIndexToLoad();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
         0: .line 744
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndicesToLoad:Landroid/util/SparseBooleanArray;
            dup
            astore 1
            monitorenter
         1: .line 746
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndicesToLoad:Landroid/util/SparseBooleanArray;
            iconst_1
            invokevirtual android.util.SparseBooleanArray.indexOfValue:(Z)I
            istore 2 /* index */
        start local 2 // int index
         2: .line 747
            iload 2 /* index */
            ifge 4
         3: .line 749
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndicesToLoad:Landroid/util/SparseBooleanArray;
            iconst_0
            invokevirtual android.util.SparseBooleanArray.indexOfValue:(Z)I
            istore 2 /* index */
         4: .line 751
      StackMap locals: android.util.SparseBooleanArray int
      StackMap stack:
            iload 2 /* index */
            ifge 7
         5: .line 752
            aload 1
            monitorexit
         6: iconst_m1
            ireturn
         7: .line 754
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndicesToLoad:Landroid/util/SparseBooleanArray;
            iload 2 /* index */
            invokevirtual android.util.SparseBooleanArray.keyAt:(I)I
            istore 3 /* key */
        start local 3 // int key
         8: .line 755
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndicesToLoad:Landroid/util/SparseBooleanArray;
            iload 2 /* index */
            invokevirtual android.util.SparseBooleanArray.removeAt:(I)V
         9: .line 756
            iload 3 /* key */
            aload 1
            monitorexit
        10: ireturn
        end local 3 // int key
        end local 2 // int index
        11: .line 744
      StackMap locals: android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache android.util.SparseBooleanArray
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        12: athrow
        end local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
            2   11     2  index  I
            8   11     3    key  I
      Exception table:
        from    to  target  type
           1     6      11  any
           7    10      11  any
          11    12      11  any

  public boolean containsRemoteViewAt(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
        start local 1 // int position
         0: .line 762
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexRemoteViews:Landroid/util/SparseArray;
            iload 1 /* position */
            invokevirtual android.util.SparseArray.indexOfKey:(I)I
            iflt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int position
        end local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
            0    2     1  position  I
    MethodParameters:
          Name  Flags
      position  

  public boolean containsMetaDataAt(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
        start local 1 // int position
         0: .line 765
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexMetaData:Landroid/util/SparseArray;
            iload 1 /* position */
            invokevirtual android.util.SparseArray.indexOfKey:(I)I
            iflt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int position
        end local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
            0    2     1  position  I
    MethodParameters:
          Name  Flags
      position  

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
         0: .line 773
            aload 0 /* this */
            iconst_0
            putfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mPreloadLowerBound:I
         1: .line 774
            aload 0 /* this */
            iconst_m1
            putfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mPreloadUpperBound:I
         2: .line 775
            aload 0 /* this */
            iconst_m1
            putfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mLastRequestedIndex:I
         3: .line 776
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexRemoteViews:Landroid/util/SparseArray;
            invokevirtual android.util.SparseArray.clear:()V
         4: .line 777
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndexMetaData:Landroid/util/SparseArray;
            invokevirtual android.util.SparseArray.clear:()V
         5: .line 778
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndicesToLoad:Landroid/util/SparseBooleanArray;
            dup
            astore 1
            monitorenter
         6: .line 779
            aload 0 /* this */
            getfield android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.mIndicesToLoad:Landroid/util/SparseBooleanArray;
            invokevirtual android.util.SparseBooleanArray.clear:()V
         7: .line 778
            aload 1
            monitorexit
         8: goto 11
      StackMap locals: android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache android.util.SparseBooleanArray
      StackMap stack: java.lang.Throwable
         9: aload 1
            monitorexit
        10: athrow
        11: .line 781
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
      Exception table:
        from    to  target  type
           6     8       9  any
           9    10       9  any
}
SourceFile: "RemoteViewsAdapter.java"
NestHost: android.widget.RemoteViewsAdapter
InnerClasses:
  private FixedSizeRemoteViewsCache = android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache of android.widget.RemoteViewsAdapter
  private RemoteViewsIndexMetaData = android.widget.RemoteViewsAdapter$RemoteViewsIndexMetaData of android.widget.RemoteViewsAdapter
  private RemoteViewsMetaData = android.widget.RemoteViewsAdapter$RemoteViewsMetaData of android.widget.RemoteViewsAdapter