44 lines
1.1 KiB
Java
44 lines
1.1 KiB
Java
|
package androidx.activity;
|
||
|
|
||
|
import androidx.annotation.MainThread;
|
||
|
import androidx.annotation.NonNull;
|
||
|
import java.util.Iterator;
|
||
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||
|
public abstract class OnBackPressedCallback {
|
||
|
private CopyOnWriteArrayList<Cancellable> mCancellables = new CopyOnWriteArrayList<>();
|
||
|
private boolean mEnabled;
|
||
|
|
||
|
public OnBackPressedCallback(boolean z2) {
|
||
|
this.mEnabled = z2;
|
||
|
}
|
||
|
|
||
|
public void addCancellable(@NonNull Cancellable cancellable) {
|
||
|
this.mCancellables.add(cancellable);
|
||
|
}
|
||
|
|
||
|
@MainThread
|
||
|
public abstract void handleOnBackPressed();
|
||
|
|
||
|
@MainThread
|
||
|
public final boolean isEnabled() {
|
||
|
return this.mEnabled;
|
||
|
}
|
||
|
|
||
|
@MainThread
|
||
|
public final void remove() {
|
||
|
Iterator<Cancellable> it = this.mCancellables.iterator();
|
||
|
while (it.hasNext()) {
|
||
|
it.next().cancel();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void removeCancellable(@NonNull Cancellable cancellable) {
|
||
|
this.mCancellables.remove(cancellable);
|
||
|
}
|
||
|
|
||
|
@MainThread
|
||
|
public final void setEnabled(boolean z2) {
|
||
|
this.mEnabled = z2;
|
||
|
}
|
||
|
}
|