package androidx.recyclerview.widget; import android.os.AsyncTask; import android.os.Handler; import android.os.Looper; import android.util.Log; import androidx.recyclerview.widget.ThreadUtil; import androidx.recyclerview.widget.TileList; import java.util.concurrent.Executor; import java.util.concurrent.atomic.AtomicBoolean; /* loaded from: classes2.dex */ class MessageThreadUtil implements ThreadUtil { /* renamed from: androidx.recyclerview.widget.MessageThreadUtil$1, reason: invalid class name */ /* loaded from: classes2.dex */ class AnonymousClass1 implements ThreadUtil.MainThreadCallback { static final int ADD_TILE = 2; static final int REMOVE_TILE = 3; static final int UPDATE_ITEM_COUNT = 1; final /* synthetic */ ThreadUtil.MainThreadCallback val$callback; final MessageQueue mQueue = new MessageQueue(); private final Handler mMainThreadHandler = new Handler(Looper.getMainLooper()); private Runnable mMainThreadRunnable = new Runnable() { // from class: androidx.recyclerview.widget.MessageThreadUtil.1.1 @Override // java.lang.Runnable public void run() { SyncQueueItem next = AnonymousClass1.this.mQueue.next(); while (next != null) { int i = next.what; if (i == 1) { AnonymousClass1.this.val$callback.updateItemCount(next.arg1, next.arg2); } else if (i == 2) { AnonymousClass1.this.val$callback.addTile(next.arg1, (TileList.Tile) next.data); } else if (i == 3) { AnonymousClass1.this.val$callback.removeTile(next.arg1, next.arg2); } else { Log.e("ThreadUtil", "Unsupported message, what=" + next.what); } next = AnonymousClass1.this.mQueue.next(); } } }; AnonymousClass1(ThreadUtil.MainThreadCallback mainThreadCallback) { this.val$callback = mainThreadCallback; } @Override // androidx.recyclerview.widget.ThreadUtil.MainThreadCallback public void updateItemCount(int i, int i2) { sendMessage(SyncQueueItem.obtainMessage(1, i, i2)); } @Override // androidx.recyclerview.widget.ThreadUtil.MainThreadCallback public void addTile(int i, TileList.Tile tile) { sendMessage(SyncQueueItem.obtainMessage(2, i, tile)); } @Override // androidx.recyclerview.widget.ThreadUtil.MainThreadCallback public void removeTile(int i, int i2) { sendMessage(SyncQueueItem.obtainMessage(3, i, i2)); } private void sendMessage(SyncQueueItem syncQueueItem) { this.mQueue.sendMessage(syncQueueItem); this.mMainThreadHandler.post(this.mMainThreadRunnable); } } @Override // androidx.recyclerview.widget.ThreadUtil public ThreadUtil.MainThreadCallback getMainThreadProxy(ThreadUtil.MainThreadCallback mainThreadCallback) { return new AnonymousClass1(mainThreadCallback); } /* renamed from: androidx.recyclerview.widget.MessageThreadUtil$2, reason: invalid class name */ /* loaded from: classes2.dex */ class AnonymousClass2 implements ThreadUtil.BackgroundCallback { static final int LOAD_TILE = 3; static final int RECYCLE_TILE = 4; static final int REFRESH = 1; static final int UPDATE_RANGE = 2; final /* synthetic */ ThreadUtil.BackgroundCallback val$callback; final MessageQueue mQueue = new MessageQueue(); private final Executor mExecutor = AsyncTask.THREAD_POOL_EXECUTOR; AtomicBoolean mBackgroundRunning = new AtomicBoolean(false); private Runnable mBackgroundRunnable = new Runnable() { // from class: androidx.recyclerview.widget.MessageThreadUtil.2.1 @Override // java.lang.Runnable public void run() { while (true) { SyncQueueItem next = AnonymousClass2.this.mQueue.next(); if (next != null) { int i = next.what; if (i == 1) { AnonymousClass2.this.mQueue.removeMessages(1); AnonymousClass2.this.val$callback.refresh(next.arg1); } else if (i == 2) { AnonymousClass2.this.mQueue.removeMessages(2); AnonymousClass2.this.mQueue.removeMessages(3); AnonymousClass2.this.val$callback.updateRange(next.arg1, next.arg2, next.arg3, next.arg4, next.arg5); } else if (i == 3) { AnonymousClass2.this.val$callback.loadTile(next.arg1, next.arg2); } else if (i == 4) { AnonymousClass2.this.val$callback.recycleTile((TileList.Tile) next.data); } else { Log.e("ThreadUtil", "Unsupported message, what=" + next.what); } } else { AnonymousClass2.this.mBackgroundRunning.set(false); return; } } } }; AnonymousClass2(ThreadUtil.BackgroundCallback backgroundCallback) { this.val$callback = backgroundCallback; } @Override // androidx.recyclerview.widget.ThreadUtil.BackgroundCallback public void refresh(int i) { sendMessageAtFrontOfQueue(SyncQueueItem.obtainMessage(1, i, (Object) null)); } @Override // androidx.recyclerview.widget.ThreadUtil.BackgroundCallback public void updateRange(int i, int i2, int i3, int i4, int i5) { sendMessageAtFrontOfQueue(SyncQueueItem.obtainMessage(2, i, i2, i3, i4, i5, null)); } @Override // androidx.recyclerview.widget.ThreadUtil.BackgroundCallback public void loadTile(int i, int i2) { sendMessage(SyncQueueItem.obtainMessage(3, i, i2)); } @Override // androidx.recyclerview.widget.ThreadUtil.BackgroundCallback public void recycleTile(TileList.Tile tile) { sendMessage(SyncQueueItem.obtainMessage(4, 0, tile)); } private void sendMessage(SyncQueueItem syncQueueItem) { this.mQueue.sendMessage(syncQueueItem); maybeExecuteBackgroundRunnable(); } private void sendMessageAtFrontOfQueue(SyncQueueItem syncQueueItem) { this.mQueue.sendMessageAtFrontOfQueue(syncQueueItem); maybeExecuteBackgroundRunnable(); } private void maybeExecuteBackgroundRunnable() { if (this.mBackgroundRunning.compareAndSet(false, true)) { this.mExecutor.execute(this.mBackgroundRunnable); } } } @Override // androidx.recyclerview.widget.ThreadUtil public ThreadUtil.BackgroundCallback getBackgroundProxy(ThreadUtil.BackgroundCallback backgroundCallback) { return new AnonymousClass2(backgroundCallback); } /* JADX INFO: Access modifiers changed from: package-private */ /* loaded from: classes2.dex */ public static class SyncQueueItem { private static SyncQueueItem sPool; private static final Object sPoolLock = new Object(); public int arg1; public int arg2; public int arg3; public int arg4; public int arg5; public Object data; SyncQueueItem next; public int what; SyncQueueItem() { } void recycle() { this.next = null; this.arg5 = 0; this.arg4 = 0; this.arg3 = 0; this.arg2 = 0; this.arg1 = 0; this.what = 0; this.data = null; synchronized (sPoolLock) { SyncQueueItem syncQueueItem = sPool; if (syncQueueItem != null) { this.next = syncQueueItem; } sPool = this; } } static SyncQueueItem obtainMessage(int i, int i2, int i3, int i4, int i5, int i6, Object obj) { SyncQueueItem syncQueueItem; synchronized (sPoolLock) { syncQueueItem = sPool; if (syncQueueItem == null) { syncQueueItem = new SyncQueueItem(); } else { sPool = syncQueueItem.next; syncQueueItem.next = null; } syncQueueItem.what = i; syncQueueItem.arg1 = i2; syncQueueItem.arg2 = i3; syncQueueItem.arg3 = i4; syncQueueItem.arg4 = i5; syncQueueItem.arg5 = i6; syncQueueItem.data = obj; } return syncQueueItem; } static SyncQueueItem obtainMessage(int i, int i2, int i3) { return obtainMessage(i, i2, i3, 0, 0, 0, null); } static SyncQueueItem obtainMessage(int i, int i2, Object obj) { return obtainMessage(i, i2, 0, 0, 0, 0, obj); } } /* JADX INFO: Access modifiers changed from: package-private */ /* loaded from: classes2.dex */ public static class MessageQueue { private final Object mLock = new Object(); private SyncQueueItem mRoot; MessageQueue() { } SyncQueueItem next() { synchronized (this.mLock) { SyncQueueItem syncQueueItem = this.mRoot; if (syncQueueItem == null) { return null; } this.mRoot = syncQueueItem.next; return syncQueueItem; } } void sendMessageAtFrontOfQueue(SyncQueueItem syncQueueItem) { synchronized (this.mLock) { syncQueueItem.next = this.mRoot; this.mRoot = syncQueueItem; } } void sendMessage(SyncQueueItem syncQueueItem) { synchronized (this.mLock) { SyncQueueItem syncQueueItem2 = this.mRoot; if (syncQueueItem2 == null) { this.mRoot = syncQueueItem; return; } while (syncQueueItem2.next != null) { syncQueueItem2 = syncQueueItem2.next; } syncQueueItem2.next = syncQueueItem; } } void removeMessages(int i) { synchronized (this.mLock) { while (true) { SyncQueueItem syncQueueItem = this.mRoot; if (syncQueueItem == null || syncQueueItem.what != i) { break; } SyncQueueItem syncQueueItem2 = this.mRoot; this.mRoot = syncQueueItem2.next; syncQueueItem2.recycle(); } SyncQueueItem syncQueueItem3 = this.mRoot; if (syncQueueItem3 != null) { SyncQueueItem syncQueueItem4 = syncQueueItem3.next; while (syncQueueItem4 != null) { SyncQueueItem syncQueueItem5 = syncQueueItem4.next; if (syncQueueItem4.what == i) { syncQueueItem3.next = syncQueueItem5; syncQueueItem4.recycle(); } else { syncQueueItem3 = syncQueueItem4; } syncQueueItem4 = syncQueueItem5; } } } } } }