Add Discord community version (64-bit only)

- Added realracing3-community.apk (71.57 MB)
- Removed 32-bit support (armeabi-v7a)
- Only includes arm64-v8a libraries
- Decompiled source code included
- Added README-community.md with analysis
This commit is contained in:
2026-02-18 15:48:36 -08:00
parent c19eb3d7ff
commit c080f0d97f
26930 changed files with 2529574 additions and 0 deletions

View File

@@ -0,0 +1,132 @@
package androidx.recyclerview.widget;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.util.Preconditions;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.StableIdStorage;
import androidx.recyclerview.widget.ViewTypeStorage;
/* loaded from: classes.dex */
class NestedAdapterWrapper {
public final RecyclerView.Adapter<RecyclerView.ViewHolder> adapter;
private RecyclerView.AdapterDataObserver mAdapterObserver = new RecyclerView.AdapterDataObserver() { // from class: androidx.recyclerview.widget.NestedAdapterWrapper.1
@Override // androidx.recyclerview.widget.RecyclerView.AdapterDataObserver
public void onChanged() {
NestedAdapterWrapper nestedAdapterWrapper = NestedAdapterWrapper.this;
nestedAdapterWrapper.mCachedItemCount = nestedAdapterWrapper.adapter.getItemCount();
NestedAdapterWrapper nestedAdapterWrapper2 = NestedAdapterWrapper.this;
nestedAdapterWrapper2.mCallback.onChanged(nestedAdapterWrapper2);
}
@Override // androidx.recyclerview.widget.RecyclerView.AdapterDataObserver
public void onItemRangeChanged(int i, int i2) {
NestedAdapterWrapper nestedAdapterWrapper = NestedAdapterWrapper.this;
nestedAdapterWrapper.mCallback.onItemRangeChanged(nestedAdapterWrapper, i, i2, null);
}
@Override // androidx.recyclerview.widget.RecyclerView.AdapterDataObserver
public void onItemRangeChanged(int i, int i2, @Nullable Object obj) {
NestedAdapterWrapper nestedAdapterWrapper = NestedAdapterWrapper.this;
nestedAdapterWrapper.mCallback.onItemRangeChanged(nestedAdapterWrapper, i, i2, obj);
}
@Override // androidx.recyclerview.widget.RecyclerView.AdapterDataObserver
public void onItemRangeInserted(int i, int i2) {
NestedAdapterWrapper nestedAdapterWrapper = NestedAdapterWrapper.this;
nestedAdapterWrapper.mCachedItemCount += i2;
nestedAdapterWrapper.mCallback.onItemRangeInserted(nestedAdapterWrapper, i, i2);
NestedAdapterWrapper nestedAdapterWrapper2 = NestedAdapterWrapper.this;
if (nestedAdapterWrapper2.mCachedItemCount <= 0 || nestedAdapterWrapper2.adapter.getStateRestorationPolicy() != RecyclerView.Adapter.StateRestorationPolicy.PREVENT_WHEN_EMPTY) {
return;
}
NestedAdapterWrapper nestedAdapterWrapper3 = NestedAdapterWrapper.this;
nestedAdapterWrapper3.mCallback.onStateRestorationPolicyChanged(nestedAdapterWrapper3);
}
@Override // androidx.recyclerview.widget.RecyclerView.AdapterDataObserver
public void onItemRangeRemoved(int i, int i2) {
NestedAdapterWrapper nestedAdapterWrapper = NestedAdapterWrapper.this;
nestedAdapterWrapper.mCachedItemCount -= i2;
nestedAdapterWrapper.mCallback.onItemRangeRemoved(nestedAdapterWrapper, i, i2);
NestedAdapterWrapper nestedAdapterWrapper2 = NestedAdapterWrapper.this;
if (nestedAdapterWrapper2.mCachedItemCount >= 1 || nestedAdapterWrapper2.adapter.getStateRestorationPolicy() != RecyclerView.Adapter.StateRestorationPolicy.PREVENT_WHEN_EMPTY) {
return;
}
NestedAdapterWrapper nestedAdapterWrapper3 = NestedAdapterWrapper.this;
nestedAdapterWrapper3.mCallback.onStateRestorationPolicyChanged(nestedAdapterWrapper3);
}
@Override // androidx.recyclerview.widget.RecyclerView.AdapterDataObserver
public void onItemRangeMoved(int i, int i2, int i3) {
Preconditions.checkArgument(i3 == 1, "moving more than 1 item is not supported in RecyclerView");
NestedAdapterWrapper nestedAdapterWrapper = NestedAdapterWrapper.this;
nestedAdapterWrapper.mCallback.onItemRangeMoved(nestedAdapterWrapper, i, i2);
}
@Override // androidx.recyclerview.widget.RecyclerView.AdapterDataObserver
public void onStateRestorationPolicyChanged() {
NestedAdapterWrapper nestedAdapterWrapper = NestedAdapterWrapper.this;
nestedAdapterWrapper.mCallback.onStateRestorationPolicyChanged(nestedAdapterWrapper);
}
};
int mCachedItemCount;
final Callback mCallback;
@NonNull
private final StableIdStorage.StableIdLookup mStableIdLookup;
@NonNull
private final ViewTypeStorage.ViewTypeLookup mViewTypeLookup;
public interface Callback {
void onChanged(@NonNull NestedAdapterWrapper nestedAdapterWrapper);
void onItemRangeChanged(@NonNull NestedAdapterWrapper nestedAdapterWrapper, int i, int i2);
void onItemRangeChanged(@NonNull NestedAdapterWrapper nestedAdapterWrapper, int i, int i2, @Nullable Object obj);
void onItemRangeInserted(@NonNull NestedAdapterWrapper nestedAdapterWrapper, int i, int i2);
void onItemRangeMoved(@NonNull NestedAdapterWrapper nestedAdapterWrapper, int i, int i2);
void onItemRangeRemoved(@NonNull NestedAdapterWrapper nestedAdapterWrapper, int i, int i2);
void onStateRestorationPolicyChanged(NestedAdapterWrapper nestedAdapterWrapper);
}
public int getCachedItemCount() {
return this.mCachedItemCount;
}
public NestedAdapterWrapper(RecyclerView.Adapter<RecyclerView.ViewHolder> adapter, Callback callback, ViewTypeStorage viewTypeStorage, StableIdStorage.StableIdLookup stableIdLookup) {
this.adapter = adapter;
this.mCallback = callback;
this.mViewTypeLookup = viewTypeStorage.createViewTypeWrapper(this);
this.mStableIdLookup = stableIdLookup;
this.mCachedItemCount = adapter.getItemCount();
adapter.registerAdapterDataObserver(this.mAdapterObserver);
}
public void dispose() {
this.adapter.unregisterAdapterDataObserver(this.mAdapterObserver);
this.mViewTypeLookup.dispose();
}
public int getItemViewType(int i) {
return this.mViewTypeLookup.localToGlobal(this.adapter.getItemViewType(i));
}
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
return this.adapter.onCreateViewHolder(viewGroup, this.mViewTypeLookup.globalToLocal(i));
}
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int i) {
this.adapter.bindViewHolder(viewHolder, i);
}
public long getItemId(int i) {
return this.mStableIdLookup.localToGlobal(this.adapter.getItemId(i));
}
}