mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2024-12-26 17:12:31 -06:00
169 lines
5.8 KiB
Java
169 lines
5.8 KiB
Java
package com.google.android.material.internal;
|
|
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import com.google.android.material.internal.MaterialCheckable;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.HashSet;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public class CheckableGroup<T extends MaterialCheckable<T>> {
|
|
private final Map<Integer, T> checkables = new HashMap();
|
|
private final Set<Integer> checkedIds = new HashSet();
|
|
private OnCheckedStateChangeListener onCheckedStateChangeListener;
|
|
private boolean selectionRequired;
|
|
private boolean singleSelection;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public interface OnCheckedStateChangeListener {
|
|
void onCheckedStateChanged(Set<Integer> set);
|
|
}
|
|
|
|
public boolean isSelectionRequired() {
|
|
return this.selectionRequired;
|
|
}
|
|
|
|
public boolean isSingleSelection() {
|
|
return this.singleSelection;
|
|
}
|
|
|
|
public void setOnCheckedStateChangeListener(OnCheckedStateChangeListener onCheckedStateChangeListener) {
|
|
this.onCheckedStateChangeListener = onCheckedStateChangeListener;
|
|
}
|
|
|
|
public void setSelectionRequired(boolean z) {
|
|
this.selectionRequired = z;
|
|
}
|
|
|
|
public void setSingleSelection(boolean z) {
|
|
if (this.singleSelection != z) {
|
|
this.singleSelection = z;
|
|
clearCheck();
|
|
}
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
public void addCheckable(T t) {
|
|
this.checkables.put(Integer.valueOf(t.getId()), t);
|
|
if (t.isChecked()) {
|
|
checkInternal(t);
|
|
}
|
|
t.setInternalOnCheckedChangeListener(new MaterialCheckable.OnCheckedChangeListener<T>() { // from class: com.google.android.material.internal.CheckableGroup.1
|
|
@Override // com.google.android.material.internal.MaterialCheckable.OnCheckedChangeListener
|
|
public void onCheckedChanged(T t2, boolean z) {
|
|
if (z) {
|
|
if (!CheckableGroup.this.checkInternal(t2)) {
|
|
return;
|
|
}
|
|
} else {
|
|
CheckableGroup checkableGroup = CheckableGroup.this;
|
|
if (!checkableGroup.uncheckInternal(t2, checkableGroup.selectionRequired)) {
|
|
return;
|
|
}
|
|
}
|
|
CheckableGroup.this.onCheckedStateChanged();
|
|
}
|
|
});
|
|
}
|
|
|
|
public void removeCheckable(T t) {
|
|
t.setInternalOnCheckedChangeListener(null);
|
|
this.checkables.remove(Integer.valueOf(t.getId()));
|
|
this.checkedIds.remove(Integer.valueOf(t.getId()));
|
|
}
|
|
|
|
public void check(int i) {
|
|
T t = this.checkables.get(Integer.valueOf(i));
|
|
if (t != null && checkInternal(t)) {
|
|
onCheckedStateChanged();
|
|
}
|
|
}
|
|
|
|
public void uncheck(int i) {
|
|
T t = this.checkables.get(Integer.valueOf(i));
|
|
if (t != null && uncheckInternal(t, this.selectionRequired)) {
|
|
onCheckedStateChanged();
|
|
}
|
|
}
|
|
|
|
public void clearCheck() {
|
|
boolean z = !this.checkedIds.isEmpty();
|
|
Iterator<T> it = this.checkables.values().iterator();
|
|
while (it.hasNext()) {
|
|
uncheckInternal(it.next(), false);
|
|
}
|
|
if (z) {
|
|
onCheckedStateChanged();
|
|
}
|
|
}
|
|
|
|
public int getSingleCheckedId() {
|
|
if (!this.singleSelection || this.checkedIds.isEmpty()) {
|
|
return -1;
|
|
}
|
|
return this.checkedIds.iterator().next().intValue();
|
|
}
|
|
|
|
public Set<Integer> getCheckedIds() {
|
|
return new HashSet(this.checkedIds);
|
|
}
|
|
|
|
public List<Integer> getCheckedIdsSortedByChildOrder(ViewGroup viewGroup) {
|
|
Set<Integer> checkedIds = getCheckedIds();
|
|
ArrayList arrayList = new ArrayList();
|
|
for (int i = 0; i < viewGroup.getChildCount(); i++) {
|
|
View childAt = viewGroup.getChildAt(i);
|
|
if ((childAt instanceof MaterialCheckable) && checkedIds.contains(Integer.valueOf(childAt.getId()))) {
|
|
arrayList.add(Integer.valueOf(childAt.getId()));
|
|
}
|
|
}
|
|
return arrayList;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public boolean checkInternal(MaterialCheckable<T> materialCheckable) {
|
|
int id = materialCheckable.getId();
|
|
if (this.checkedIds.contains(Integer.valueOf(id))) {
|
|
return false;
|
|
}
|
|
T t = this.checkables.get(Integer.valueOf(getSingleCheckedId()));
|
|
if (t != null) {
|
|
uncheckInternal(t, false);
|
|
}
|
|
boolean add = this.checkedIds.add(Integer.valueOf(id));
|
|
if (!materialCheckable.isChecked()) {
|
|
materialCheckable.setChecked(true);
|
|
}
|
|
return add;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public boolean uncheckInternal(MaterialCheckable<T> materialCheckable, boolean z) {
|
|
int id = materialCheckable.getId();
|
|
if (!this.checkedIds.contains(Integer.valueOf(id))) {
|
|
return false;
|
|
}
|
|
if (z && this.checkedIds.size() == 1 && this.checkedIds.contains(Integer.valueOf(id))) {
|
|
materialCheckable.setChecked(true);
|
|
return false;
|
|
}
|
|
boolean remove = this.checkedIds.remove(Integer.valueOf(id));
|
|
if (materialCheckable.isChecked()) {
|
|
materialCheckable.setChecked(false);
|
|
}
|
|
return remove;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public void onCheckedStateChanged() {
|
|
OnCheckedStateChangeListener onCheckedStateChangeListener = this.onCheckedStateChangeListener;
|
|
if (onCheckedStateChangeListener != null) {
|
|
onCheckedStateChangeListener.onCheckedStateChanged(getCheckedIds());
|
|
}
|
|
}
|
|
}
|