ADD week 5
This commit is contained in:
		| @@ -0,0 +1,90 @@ | ||||
| package androidx.recyclerview.widget; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class BatchingListUpdateCallback implements ListUpdateCallback { | ||||
|     private static final int TYPE_ADD = 1; | ||||
|     private static final int TYPE_CHANGE = 3; | ||||
|     private static final int TYPE_NONE = 0; | ||||
|     private static final int TYPE_REMOVE = 2; | ||||
|     final ListUpdateCallback mWrapped; | ||||
|     int mLastEventType = 0; | ||||
|     int mLastEventPosition = -1; | ||||
|     int mLastEventCount = -1; | ||||
|     Object mLastEventPayload = null; | ||||
|  | ||||
|     public BatchingListUpdateCallback(ListUpdateCallback listUpdateCallback) { | ||||
|         this.mWrapped = listUpdateCallback; | ||||
|     } | ||||
|  | ||||
|     public void dispatchLastEvent() { | ||||
|         int i = this.mLastEventType; | ||||
|         if (i == 0) { | ||||
|             return; | ||||
|         } | ||||
|         if (i == 1) { | ||||
|             this.mWrapped.onInserted(this.mLastEventPosition, this.mLastEventCount); | ||||
|         } else if (i == 2) { | ||||
|             this.mWrapped.onRemoved(this.mLastEventPosition, this.mLastEventCount); | ||||
|         } else if (i == 3) { | ||||
|             this.mWrapped.onChanged(this.mLastEventPosition, this.mLastEventCount, this.mLastEventPayload); | ||||
|         } | ||||
|         this.mLastEventPayload = null; | ||||
|         this.mLastEventType = 0; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.recyclerview.widget.ListUpdateCallback | ||||
|     public void onInserted(int i, int i2) { | ||||
|         int i3; | ||||
|         if (this.mLastEventType == 1 && i >= (i3 = this.mLastEventPosition)) { | ||||
|             int i4 = this.mLastEventCount; | ||||
|             if (i <= i3 + i4) { | ||||
|                 this.mLastEventCount = i4 + i2; | ||||
|                 this.mLastEventPosition = Math.min(i, i3); | ||||
|                 return; | ||||
|             } | ||||
|         } | ||||
|         dispatchLastEvent(); | ||||
|         this.mLastEventPosition = i; | ||||
|         this.mLastEventCount = i2; | ||||
|         this.mLastEventType = 1; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.recyclerview.widget.ListUpdateCallback | ||||
|     public void onRemoved(int i, int i2) { | ||||
|         int i3; | ||||
|         if (this.mLastEventType == 2 && (i3 = this.mLastEventPosition) >= i && i3 <= i + i2) { | ||||
|             this.mLastEventCount += i2; | ||||
|             this.mLastEventPosition = i; | ||||
|         } else { | ||||
|             dispatchLastEvent(); | ||||
|             this.mLastEventPosition = i; | ||||
|             this.mLastEventCount = i2; | ||||
|             this.mLastEventType = 2; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.recyclerview.widget.ListUpdateCallback | ||||
|     public void onMoved(int i, int i2) { | ||||
|         dispatchLastEvent(); | ||||
|         this.mWrapped.onMoved(i, i2); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.recyclerview.widget.ListUpdateCallback | ||||
|     public void onChanged(int i, int i2, Object obj) { | ||||
|         int i3; | ||||
|         if (this.mLastEventType == 3) { | ||||
|             int i4 = this.mLastEventPosition; | ||||
|             int i5 = this.mLastEventCount; | ||||
|             if (i <= i4 + i5 && (i3 = i + i2) >= i4 && this.mLastEventPayload == obj) { | ||||
|                 this.mLastEventPosition = Math.min(i, i4); | ||||
|                 this.mLastEventCount = Math.max(i5 + i4, i3) - this.mLastEventPosition; | ||||
|                 return; | ||||
|             } | ||||
|         } | ||||
|         dispatchLastEvent(); | ||||
|         this.mLastEventPosition = i; | ||||
|         this.mLastEventCount = i2; | ||||
|         this.mLastEventPayload = obj; | ||||
|         this.mLastEventType = 3; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user