2025-03-31 16:33:42 +02:00

94 lines
3.2 KiB
Java

package androidx.constraintlayout.widget;
import android.util.SparseIntArray;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
/* loaded from: classes.dex */
public class SharedValues {
public static final int UNSET = -1;
private SparseIntArray mValues = new SparseIntArray();
private HashMap<Integer, HashSet<WeakReference<SharedValuesListener>>> mValuesListeners = new HashMap<>();
public interface SharedValuesListener {
void onNewValue(int key, int newValue, int oldValue);
}
public void addListener(int key, SharedValuesListener listener) {
HashSet<WeakReference<SharedValuesListener>> hashSet = this.mValuesListeners.get(Integer.valueOf(key));
if (hashSet == null) {
hashSet = new HashSet<>();
this.mValuesListeners.put(Integer.valueOf(key), hashSet);
}
hashSet.add(new WeakReference<>(listener));
}
public void removeListener(int key, SharedValuesListener listener) {
HashSet<WeakReference<SharedValuesListener>> hashSet = this.mValuesListeners.get(Integer.valueOf(key));
if (hashSet == null) {
return;
}
ArrayList arrayList = new ArrayList();
Iterator<WeakReference<SharedValuesListener>> it = hashSet.iterator();
while (it.hasNext()) {
WeakReference<SharedValuesListener> next = it.next();
SharedValuesListener sharedValuesListener = next.get();
if (sharedValuesListener == null || sharedValuesListener == listener) {
arrayList.add(next);
}
}
hashSet.removeAll(arrayList);
}
public void removeListener(SharedValuesListener listener) {
Iterator<Integer> it = this.mValuesListeners.keySet().iterator();
while (it.hasNext()) {
removeListener(it.next().intValue(), listener);
}
}
public void clearListeners() {
this.mValuesListeners.clear();
}
public int getValue(int key) {
return this.mValues.get(key, -1);
}
public void fireNewValue(int key, int value) {
int i = this.mValues.get(key, -1);
if (i == value) {
return;
}
this.mValues.put(key, value);
HashSet<WeakReference<SharedValuesListener>> hashSet = this.mValuesListeners.get(Integer.valueOf(key));
if (hashSet == null) {
return;
}
Iterator<WeakReference<SharedValuesListener>> it = hashSet.iterator();
boolean z = false;
while (it.hasNext()) {
SharedValuesListener sharedValuesListener = it.next().get();
if (sharedValuesListener != null) {
sharedValuesListener.onNewValue(key, value, i);
} else {
z = true;
}
}
if (z) {
ArrayList arrayList = new ArrayList();
Iterator<WeakReference<SharedValuesListener>> it2 = hashSet.iterator();
while (it2.hasNext()) {
WeakReference<SharedValuesListener> next = it2.next();
if (next.get() == null) {
arrayList.add(next);
}
}
hashSet.removeAll(arrayList);
}
}
}