discord-jadx/app/src/main/java/androidx/preference/PreferenceGroupAdapter.java

332 lines
15 KiB
Java

package androidx.preference;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.core.view.ViewCompat;
import androidx.preference.Preference;
import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceManager;
import androidx.recyclerview.widget.DiffUtil;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
public class PreferenceGroupAdapter extends RecyclerView.Adapter<PreferenceViewHolder> implements Preference.OnPreferenceChangeInternalListener, PreferenceGroup.PreferencePositionCallback {
private Handler mHandler;
private PreferenceGroup mPreferenceGroup;
private List<PreferenceResourceDescriptor> mPreferenceResourceDescriptors;
private List<Preference> mPreferences;
private Runnable mSyncRunnable = new AnonymousClass1();
private List<Preference> mVisiblePreferences;
/* renamed from: androidx.preference.PreferenceGroupAdapter$1 reason: invalid class name */
public class AnonymousClass1 implements Runnable {
public AnonymousClass1() {
}
@Override // java.lang.Runnable
public void run() {
PreferenceGroupAdapter.this.updatePreferences();
}
}
/* renamed from: androidx.preference.PreferenceGroupAdapter$2 reason: invalid class name */
public class AnonymousClass2 extends DiffUtil.Callback {
public final /* synthetic */ PreferenceManager.PreferenceComparisonCallback val$comparisonCallback;
public final /* synthetic */ List val$oldVisibleList;
public final /* synthetic */ List val$visiblePreferenceList;
public AnonymousClass2(List list, List list2, PreferenceManager.PreferenceComparisonCallback preferenceComparisonCallback) {
this.val$oldVisibleList = list;
this.val$visiblePreferenceList = list2;
this.val$comparisonCallback = preferenceComparisonCallback;
}
@Override // androidx.recyclerview.widget.DiffUtil.Callback
public boolean areContentsTheSame(int i, int i2) {
return this.val$comparisonCallback.arePreferenceContentsTheSame((Preference) this.val$oldVisibleList.get(i), (Preference) this.val$visiblePreferenceList.get(i2));
}
@Override // androidx.recyclerview.widget.DiffUtil.Callback
public boolean areItemsTheSame(int i, int i2) {
return this.val$comparisonCallback.arePreferenceItemsTheSame((Preference) this.val$oldVisibleList.get(i), (Preference) this.val$visiblePreferenceList.get(i2));
}
@Override // androidx.recyclerview.widget.DiffUtil.Callback
public int getNewListSize() {
return this.val$visiblePreferenceList.size();
}
@Override // androidx.recyclerview.widget.DiffUtil.Callback
public int getOldListSize() {
return this.val$oldVisibleList.size();
}
}
/* renamed from: androidx.preference.PreferenceGroupAdapter$3 reason: invalid class name */
public class AnonymousClass3 implements Preference.OnPreferenceClickListener {
public final /* synthetic */ PreferenceGroup val$group;
public AnonymousClass3(PreferenceGroup preferenceGroup) {
this.val$group = preferenceGroup;
}
@Override // androidx.preference.Preference.OnPreferenceClickListener
public boolean onPreferenceClick(Preference preference) {
this.val$group.setInitialExpandedChildrenCount(Integer.MAX_VALUE);
PreferenceGroupAdapter.this.onPreferenceHierarchyChange(preference);
PreferenceGroup.OnExpandButtonClickListener onExpandButtonClickListener = this.val$group.getOnExpandButtonClickListener();
if (onExpandButtonClickListener == null) {
return true;
}
onExpandButtonClickListener.onExpandButtonClick();
return true;
}
}
public static class PreferenceResourceDescriptor {
public String mClassName;
public int mLayoutResId;
public int mWidgetLayoutResId;
public PreferenceResourceDescriptor(Preference preference) {
this.mClassName = preference.getClass().getName();
this.mLayoutResId = preference.getLayoutResource();
this.mWidgetLayoutResId = preference.getWidgetLayoutResource();
}
public boolean equals(Object obj) {
if (!(obj instanceof PreferenceResourceDescriptor)) {
return false;
}
PreferenceResourceDescriptor preferenceResourceDescriptor = (PreferenceResourceDescriptor) obj;
return this.mLayoutResId == preferenceResourceDescriptor.mLayoutResId && this.mWidgetLayoutResId == preferenceResourceDescriptor.mWidgetLayoutResId && TextUtils.equals(this.mClassName, preferenceResourceDescriptor.mClassName);
}
public int hashCode() {
return this.mClassName.hashCode() + ((((527 + this.mLayoutResId) * 31) + this.mWidgetLayoutResId) * 31);
}
}
public PreferenceGroupAdapter(PreferenceGroup preferenceGroup) {
this.mPreferenceGroup = preferenceGroup;
this.mHandler = new Handler();
this.mPreferenceGroup.setOnPreferenceChangeInternalListener(this);
this.mPreferences = new ArrayList();
this.mVisiblePreferences = new ArrayList();
this.mPreferenceResourceDescriptors = new ArrayList();
PreferenceGroup preferenceGroup2 = this.mPreferenceGroup;
if (preferenceGroup2 instanceof PreferenceScreen) {
setHasStableIds(((PreferenceScreen) preferenceGroup2).shouldUseGeneratedIds());
} else {
setHasStableIds(true);
}
updatePreferences();
}
private ExpandButton createExpandButton(PreferenceGroup preferenceGroup, List<Preference> list) {
ExpandButton expandButton = new ExpandButton(preferenceGroup.getContext(), list, preferenceGroup.getId());
expandButton.setOnPreferenceClickListener(new AnonymousClass3(preferenceGroup));
return expandButton;
}
private List<Preference> createVisiblePreferencesList(PreferenceGroup preferenceGroup) {
ArrayList arrayList = new ArrayList();
ArrayList arrayList2 = new ArrayList();
int preferenceCount = preferenceGroup.getPreferenceCount();
int i = 0;
for (int i2 = 0; i2 < preferenceCount; i2++) {
Preference preference = preferenceGroup.getPreference(i2);
if (preference.isVisible()) {
if (!isGroupExpandable(preferenceGroup) || i < preferenceGroup.getInitialExpandedChildrenCount()) {
arrayList.add(preference);
} else {
arrayList2.add(preference);
}
if (!(preference instanceof PreferenceGroup)) {
i++;
} else {
PreferenceGroup preferenceGroup2 = (PreferenceGroup) preference;
if (!preferenceGroup2.isOnSameScreenAsChildren()) {
continue;
} else if (!isGroupExpandable(preferenceGroup) || !isGroupExpandable(preferenceGroup2)) {
for (Preference preference2 : createVisiblePreferencesList(preferenceGroup2)) {
if (!isGroupExpandable(preferenceGroup) || i < preferenceGroup.getInitialExpandedChildrenCount()) {
arrayList.add(preference2);
} else {
arrayList2.add(preference2);
}
i++;
}
} else {
throw new IllegalStateException("Nesting an expandable group inside of another expandable group is not supported!");
}
}
}
}
if (isGroupExpandable(preferenceGroup) && i > preferenceGroup.getInitialExpandedChildrenCount()) {
arrayList.add(createExpandButton(preferenceGroup, arrayList2));
}
return arrayList;
}
private void flattenPreferenceGroup(List<Preference> list, PreferenceGroup preferenceGroup) {
preferenceGroup.sortPreferences();
int preferenceCount = preferenceGroup.getPreferenceCount();
for (int i = 0; i < preferenceCount; i++) {
Preference preference = preferenceGroup.getPreference(i);
list.add(preference);
PreferenceResourceDescriptor preferenceResourceDescriptor = new PreferenceResourceDescriptor(preference);
if (!this.mPreferenceResourceDescriptors.contains(preferenceResourceDescriptor)) {
this.mPreferenceResourceDescriptors.add(preferenceResourceDescriptor);
}
if (preference instanceof PreferenceGroup) {
PreferenceGroup preferenceGroup2 = (PreferenceGroup) preference;
if (preferenceGroup2.isOnSameScreenAsChildren()) {
flattenPreferenceGroup(list, preferenceGroup2);
}
}
preference.setOnPreferenceChangeInternalListener(this);
}
}
private boolean isGroupExpandable(PreferenceGroup preferenceGroup) {
return preferenceGroup.getInitialExpandedChildrenCount() != Integer.MAX_VALUE;
}
public Preference getItem(int i) {
if (i < 0 || i >= getItemCount()) {
return null;
}
return this.mVisiblePreferences.get(i);
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public int getItemCount() {
return this.mVisiblePreferences.size();
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public long getItemId(int i) {
if (!hasStableIds()) {
return -1;
}
return getItem(i).getId();
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public int getItemViewType(int i) {
PreferenceResourceDescriptor preferenceResourceDescriptor = new PreferenceResourceDescriptor(getItem(i));
int indexOf = this.mPreferenceResourceDescriptors.indexOf(preferenceResourceDescriptor);
if (indexOf != -1) {
return indexOf;
}
int size = this.mPreferenceResourceDescriptors.size();
this.mPreferenceResourceDescriptors.add(preferenceResourceDescriptor);
return size;
}
@Override // androidx.preference.PreferenceGroup.PreferencePositionCallback
public int getPreferenceAdapterPosition(Preference preference) {
int size = this.mVisiblePreferences.size();
for (int i = 0; i < size; i++) {
Preference preference2 = this.mVisiblePreferences.get(i);
if (preference2 != null && preference2.equals(preference)) {
return i;
}
}
return -1;
}
@Override // androidx.preference.PreferenceGroup.PreferencePositionCallback
public int getPreferenceAdapterPosition(String str) {
int size = this.mVisiblePreferences.size();
for (int i = 0; i < size; i++) {
if (TextUtils.equals(str, this.mVisiblePreferences.get(i).getKey())) {
return i;
}
}
return -1;
}
public void onBindViewHolder(@NonNull PreferenceViewHolder preferenceViewHolder, int i) {
getItem(i).onBindViewHolder(preferenceViewHolder);
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
@NonNull
public PreferenceViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
PreferenceResourceDescriptor preferenceResourceDescriptor = this.mPreferenceResourceDescriptors.get(i);
LayoutInflater from = LayoutInflater.from(viewGroup.getContext());
TypedArray obtainStyledAttributes = viewGroup.getContext().obtainStyledAttributes((AttributeSet) null, R.styleable.BackgroundStyle);
Drawable drawable = obtainStyledAttributes.getDrawable(R.styleable.BackgroundStyle_android_selectableItemBackground);
if (drawable == null) {
drawable = AppCompatResources.getDrawable(viewGroup.getContext(), 17301602);
}
obtainStyledAttributes.recycle();
View inflate = from.inflate(preferenceResourceDescriptor.mLayoutResId, viewGroup, false);
if (inflate.getBackground() == null) {
ViewCompat.setBackground(inflate, drawable);
}
ViewGroup viewGroup2 = (ViewGroup) inflate.findViewById(16908312);
if (viewGroup2 != null) {
int i2 = preferenceResourceDescriptor.mWidgetLayoutResId;
if (i2 != 0) {
from.inflate(i2, viewGroup2);
} else {
viewGroup2.setVisibility(8);
}
}
return new PreferenceViewHolder(inflate);
}
@Override // androidx.preference.Preference.OnPreferenceChangeInternalListener
public void onPreferenceChange(Preference preference) {
int indexOf = this.mVisiblePreferences.indexOf(preference);
if (indexOf != -1) {
notifyItemChanged(indexOf, preference);
}
}
@Override // androidx.preference.Preference.OnPreferenceChangeInternalListener
public void onPreferenceHierarchyChange(Preference preference) {
this.mHandler.removeCallbacks(this.mSyncRunnable);
this.mHandler.post(this.mSyncRunnable);
}
@Override // androidx.preference.Preference.OnPreferenceChangeInternalListener
public void onPreferenceVisibilityChange(Preference preference) {
onPreferenceHierarchyChange(preference);
}
public void updatePreferences() {
for (Preference preference : this.mPreferences) {
preference.setOnPreferenceChangeInternalListener(null);
}
ArrayList arrayList = new ArrayList(this.mPreferences.size());
this.mPreferences = arrayList;
flattenPreferenceGroup(arrayList, this.mPreferenceGroup);
List<Preference> list = this.mVisiblePreferences;
List<Preference> createVisiblePreferencesList = createVisiblePreferencesList(this.mPreferenceGroup);
this.mVisiblePreferences = createVisiblePreferencesList;
PreferenceManager preferenceManager = this.mPreferenceGroup.getPreferenceManager();
if (preferenceManager == null || preferenceManager.getPreferenceComparisonCallback() == null) {
notifyDataSetChanged();
} else {
DiffUtil.calculateDiff(new AnonymousClass2(list, createVisiblePreferencesList, preferenceManager.getPreferenceComparisonCallback())).dispatchUpdatesTo(this);
}
for (Preference preference2 : this.mPreferences) {
preference2.clearWasDetached();
}
}
}