ADD week 5
This commit is contained in:
@@ -0,0 +1,168 @@
|
||||
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: classes.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;
|
||||
|
||||
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());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user