Beispiel #1
0
 private void dispatchAndUpdateViewHolders(UpdateOp paramUpdateOp)
 {
   if ((paramUpdateOp.cmd == 1) || (paramUpdateOp.cmd == 8)) {
     throw new IllegalArgumentException("should not dispatch add or move for pre layout");
   }
   int i = updatePositionWithPostponed(paramUpdateOp.positionStart, paramUpdateOp.cmd);
   int j = 1;
   int k = paramUpdateOp.positionStart;
   int m;
   int n;
   label110:
   int i1;
   int i3;
   switch (paramUpdateOp.cmd)
   {
   case 3: 
   default: 
     throw new IllegalArgumentException("op should be remove or update." + paramUpdateOp);
   case 4: 
     m = 1;
     n = 1;
     if (n >= paramUpdateOp.itemCount) {
       break label286;
     }
     i1 = updatePositionWithPostponed(paramUpdateOp.positionStart + m * n, paramUpdateOp.cmd);
     int i2 = paramUpdateOp.cmd;
     i3 = 0;
     switch (i2)
     {
     case 3: 
     default: 
       if (i3 != 0) {
         j++;
       }
       break;
     }
     break;
   }
   for (;;)
   {
     n++;
     break label110;
     m = 0;
     break;
     if (i1 == i + 1) {}
     for (i3 = 1;; i3 = 0) {
       break;
     }
     if (i1 == i) {}
     for (i3 = 1;; i3 = 0) {
       break;
     }
     UpdateOp localUpdateOp2 = obtainUpdateOp(paramUpdateOp.cmd, i, j, paramUpdateOp.payload);
     dispatchFirstPassAndUpdateViewHolders(localUpdateOp2, k);
     recycleUpdateOp(localUpdateOp2);
     if (paramUpdateOp.cmd == 4) {
       k += j;
     }
     i = i1;
     j = 1;
   }
   label286:
   Object localObject = paramUpdateOp.payload;
   recycleUpdateOp(paramUpdateOp);
   if (j > 0)
   {
     UpdateOp localUpdateOp1 = obtainUpdateOp(paramUpdateOp.cmd, i, j, localObject);
     dispatchFirstPassAndUpdateViewHolders(localUpdateOp1, k);
     recycleUpdateOp(localUpdateOp1);
   }
 }