Files
rr3-apk/decompiled/sources/androidx/recyclerview/widget/ConcatAdapter.java
Daniel Elliott f9d20bb3fc Add decompiled APK source code (JADX)
- 28,932 files
- Full Java source code
- Smali files
- Resources

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 14:52:23 -08:00

180 lines
7.0 KiB
Java

package androidx.recyclerview.widget;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
/* loaded from: classes.dex */
public final class ConcatAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
static final String TAG = "ConcatAdapter";
private final ConcatAdapterController mController;
@SafeVarargs
public ConcatAdapter(@NonNull RecyclerView.Adapter<? extends RecyclerView.ViewHolder>... adapterArr) {
this(Config.DEFAULT, adapterArr);
}
@SafeVarargs
public ConcatAdapter(@NonNull Config config, @NonNull RecyclerView.Adapter<? extends RecyclerView.ViewHolder>... adapterArr) {
this(config, (List<? extends RecyclerView.Adapter<? extends RecyclerView.ViewHolder>>) Arrays.asList(adapterArr));
}
public ConcatAdapter(@NonNull List<? extends RecyclerView.Adapter<? extends RecyclerView.ViewHolder>> list) {
this(Config.DEFAULT, list);
}
public ConcatAdapter(@NonNull Config config, @NonNull List<? extends RecyclerView.Adapter<? extends RecyclerView.ViewHolder>> list) {
this.mController = new ConcatAdapterController(this, config);
Iterator<? extends RecyclerView.Adapter<? extends RecyclerView.ViewHolder>> it = list.iterator();
while (it.hasNext()) {
addAdapter(it.next());
}
super.setHasStableIds(this.mController.hasStableIds());
}
public boolean addAdapter(@NonNull RecyclerView.Adapter<? extends RecyclerView.ViewHolder> adapter) {
return this.mController.addAdapter(adapter);
}
public boolean addAdapter(int i, @NonNull RecyclerView.Adapter<? extends RecyclerView.ViewHolder> adapter) {
return this.mController.addAdapter(i, adapter);
}
public boolean removeAdapter(@NonNull RecyclerView.Adapter<? extends RecyclerView.ViewHolder> adapter) {
return this.mController.removeAdapter(adapter);
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public int getItemViewType(int i) {
return this.mController.getItemViewType(i);
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
@NonNull
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
return this.mController.onCreateViewHolder(viewGroup, i);
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
this.mController.onBindViewHolder(viewHolder, i);
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public void setHasStableIds(boolean z) {
throw new UnsupportedOperationException("Calling setHasStableIds is not allowed on the ConcatAdapter. Use the Config object passed in the constructor to control this behavior");
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public void setStateRestorationPolicy(@NonNull RecyclerView.Adapter.StateRestorationPolicy stateRestorationPolicy) {
throw new UnsupportedOperationException("Calling setStateRestorationPolicy is not allowed on the ConcatAdapter. This value is inferred from added adapters");
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public long getItemId(int i) {
return this.mController.getItemId(i);
}
public void internalSetStateRestorationPolicy(@NonNull RecyclerView.Adapter.StateRestorationPolicy stateRestorationPolicy) {
super.setStateRestorationPolicy(stateRestorationPolicy);
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public int getItemCount() {
return this.mController.getTotalCount();
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public boolean onFailedToRecycleView(@NonNull RecyclerView.ViewHolder viewHolder) {
return this.mController.onFailedToRecycleView(viewHolder);
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public void onViewAttachedToWindow(@NonNull RecyclerView.ViewHolder viewHolder) {
this.mController.onViewAttachedToWindow(viewHolder);
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public void onViewDetachedFromWindow(@NonNull RecyclerView.ViewHolder viewHolder) {
this.mController.onViewDetachedFromWindow(viewHolder);
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public void onViewRecycled(@NonNull RecyclerView.ViewHolder viewHolder) {
this.mController.onViewRecycled(viewHolder);
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) {
this.mController.onAttachedToRecyclerView(recyclerView);
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public void onDetachedFromRecyclerView(@NonNull RecyclerView recyclerView) {
this.mController.onDetachedFromRecyclerView(recyclerView);
}
@NonNull
public List<? extends RecyclerView.Adapter<? extends RecyclerView.ViewHolder>> getAdapters() {
return Collections.unmodifiableList(this.mController.getCopyOfAdapters());
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public int findRelativeAdapterPositionIn(@NonNull RecyclerView.Adapter<? extends RecyclerView.ViewHolder> adapter, @NonNull RecyclerView.ViewHolder viewHolder, int i) {
return this.mController.getLocalAdapterPosition(adapter, viewHolder, i);
}
public static final class Config {
@NonNull
public static final Config DEFAULT = new Config(true, StableIdMode.NO_STABLE_IDS);
public final boolean isolateViewTypes;
@NonNull
public final StableIdMode stableIdMode;
public enum StableIdMode {
NO_STABLE_IDS,
ISOLATED_STABLE_IDS,
SHARED_STABLE_IDS
}
public Config(boolean z, @NonNull StableIdMode stableIdMode) {
this.isolateViewTypes = z;
this.stableIdMode = stableIdMode;
}
public static final class Builder {
private boolean mIsolateViewTypes;
private StableIdMode mStableIdMode;
@NonNull
public Builder setIsolateViewTypes(boolean z) {
this.mIsolateViewTypes = z;
return this;
}
@NonNull
public Builder setStableIdMode(@NonNull StableIdMode stableIdMode) {
this.mStableIdMode = stableIdMode;
return this;
}
public Builder() {
Config config = Config.DEFAULT;
this.mIsolateViewTypes = config.isolateViewTypes;
this.mStableIdMode = config.stableIdMode;
}
@NonNull
public Config build() {
return new Config(this.mIsolateViewTypes, this.mStableIdMode);
}
}
}
}