104 lines
2.8 KiB
Java
104 lines
2.8 KiB
Java
package com.google.android.material.snackbar;
|
|
|
|
import android.os.Handler;
|
|
import android.os.Looper;
|
|
import android.os.Message;
|
|
import com.google.android.gms.common.ConnectionResult;
|
|
import java.lang.ref.WeakReference;
|
|
|
|
/* loaded from: classes.dex */
|
|
class SnackbarManager {
|
|
private static SnackbarManager e;
|
|
private final Object a = new Object();
|
|
private final Handler b = new Handler(Looper.getMainLooper(), new Handler.Callback() { // from class: com.google.android.material.snackbar.SnackbarManager.1
|
|
@Override // android.os.Handler.Callback
|
|
public boolean handleMessage(Message message) {
|
|
if (message.what != 0) {
|
|
return false;
|
|
}
|
|
SnackbarManager.this.a((SnackbarRecord) message.obj);
|
|
return true;
|
|
}
|
|
});
|
|
private SnackbarRecord c;
|
|
private SnackbarRecord d;
|
|
|
|
interface Callback {
|
|
void a(int i);
|
|
}
|
|
|
|
private static class SnackbarRecord {
|
|
final WeakReference<Callback> a;
|
|
int b;
|
|
boolean c;
|
|
|
|
boolean a(Callback callback) {
|
|
return callback != null && this.a.get() == callback;
|
|
}
|
|
}
|
|
|
|
private SnackbarManager() {
|
|
}
|
|
|
|
static SnackbarManager a() {
|
|
if (e == null) {
|
|
e = new SnackbarManager();
|
|
}
|
|
return e;
|
|
}
|
|
|
|
private boolean c(Callback callback) {
|
|
SnackbarRecord snackbarRecord = this.c;
|
|
return snackbarRecord != null && snackbarRecord.a(callback);
|
|
}
|
|
|
|
public void b(Callback callback) {
|
|
synchronized (this.a) {
|
|
if (c(callback) && this.c.c) {
|
|
this.c.c = false;
|
|
b(this.c);
|
|
}
|
|
}
|
|
}
|
|
|
|
public void a(Callback callback) {
|
|
synchronized (this.a) {
|
|
if (c(callback) && !this.c.c) {
|
|
this.c.c = true;
|
|
this.b.removeCallbacksAndMessages(this.c);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void b(SnackbarRecord snackbarRecord) {
|
|
int i = snackbarRecord.b;
|
|
if (i == -2) {
|
|
return;
|
|
}
|
|
if (i <= 0) {
|
|
i = i == -1 ? ConnectionResult.DRIVE_EXTERNAL_STORAGE_REQUIRED : 2750;
|
|
}
|
|
this.b.removeCallbacksAndMessages(snackbarRecord);
|
|
Handler handler = this.b;
|
|
handler.sendMessageDelayed(Message.obtain(handler, 0, snackbarRecord), i);
|
|
}
|
|
|
|
private boolean a(SnackbarRecord snackbarRecord, int i) {
|
|
Callback callback = snackbarRecord.a.get();
|
|
if (callback == null) {
|
|
return false;
|
|
}
|
|
this.b.removeCallbacksAndMessages(snackbarRecord);
|
|
callback.a(i);
|
|
return true;
|
|
}
|
|
|
|
void a(SnackbarRecord snackbarRecord) {
|
|
synchronized (this.a) {
|
|
if (this.c == snackbarRecord || this.d == snackbarRecord) {
|
|
a(snackbarRecord, 2);
|
|
}
|
|
}
|
|
}
|
|
}
|