196 lines
4.9 KiB
Java
196 lines
4.9 KiB
Java
package com.ubt.jimu.utils.topsnackbar;
|
|
|
|
import android.os.Handler;
|
|
import android.os.Message;
|
|
import com.google.android.gms.common.ConnectionResult;
|
|
import java.lang.ref.WeakReference;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public class SnackbarManager {
|
|
private static SnackbarManager d;
|
|
private static StaticHandler e;
|
|
private final Object a = new Object();
|
|
private SnackbarRecord b;
|
|
private SnackbarRecord c;
|
|
|
|
interface Callback {
|
|
void a();
|
|
|
|
void a(int i);
|
|
}
|
|
|
|
private static class SnackbarRecord {
|
|
final WeakReference<Callback> a;
|
|
int b;
|
|
|
|
SnackbarRecord(int i, Callback callback) {
|
|
this.a = new WeakReference<>(callback);
|
|
this.b = i;
|
|
}
|
|
|
|
boolean a(Callback callback) {
|
|
return callback != null && this.a.get() == callback;
|
|
}
|
|
}
|
|
|
|
public static class StaticHandler extends Handler {
|
|
private final WeakReference<SnackbarManager> a;
|
|
|
|
public StaticHandler(SnackbarManager snackbarManager) {
|
|
this.a = new WeakReference<>(snackbarManager);
|
|
}
|
|
|
|
public WeakReference<SnackbarManager> a() {
|
|
return this.a;
|
|
}
|
|
|
|
@Override // android.os.Handler
|
|
public void handleMessage(Message message) {
|
|
super.handleMessage(message);
|
|
if (message.what != 0) {
|
|
return;
|
|
}
|
|
a().get().a((SnackbarRecord) message.obj);
|
|
}
|
|
}
|
|
|
|
private SnackbarManager() {
|
|
e = new StaticHandler(a());
|
|
}
|
|
|
|
static SnackbarManager a() {
|
|
if (d == null) {
|
|
d = new SnackbarManager();
|
|
}
|
|
return d;
|
|
}
|
|
|
|
private boolean f(Callback callback) {
|
|
SnackbarRecord snackbarRecord = this.b;
|
|
return snackbarRecord != null && snackbarRecord.a(callback);
|
|
}
|
|
|
|
private boolean g(Callback callback) {
|
|
SnackbarRecord snackbarRecord = this.c;
|
|
return snackbarRecord != null && snackbarRecord.a(callback);
|
|
}
|
|
|
|
public boolean b(Callback callback) {
|
|
boolean z;
|
|
synchronized (this.a) {
|
|
z = f(callback) || g(callback);
|
|
}
|
|
return z;
|
|
}
|
|
|
|
public void c(Callback callback) {
|
|
synchronized (this.a) {
|
|
if (f(callback)) {
|
|
this.b = null;
|
|
if (this.c != null) {
|
|
b();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public void d(Callback callback) {
|
|
synchronized (this.a) {
|
|
if (f(callback)) {
|
|
b(this.b);
|
|
}
|
|
}
|
|
}
|
|
|
|
public void e(Callback callback) {
|
|
synchronized (this.a) {
|
|
if (f(callback)) {
|
|
b(this.b);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void b() {
|
|
SnackbarRecord snackbarRecord = this.c;
|
|
if (snackbarRecord != null) {
|
|
this.b = snackbarRecord;
|
|
this.c = null;
|
|
Callback callback = this.b.a.get();
|
|
if (callback != null) {
|
|
callback.a();
|
|
} else {
|
|
this.b = null;
|
|
}
|
|
}
|
|
}
|
|
|
|
public void a(int i, Callback callback) {
|
|
synchronized (this.a) {
|
|
if (f(callback)) {
|
|
this.b.b = i;
|
|
e.removeCallbacksAndMessages(this.b);
|
|
b(this.b);
|
|
return;
|
|
}
|
|
if (g(callback)) {
|
|
this.c.b = i;
|
|
} else {
|
|
this.c = new SnackbarRecord(i, callback);
|
|
}
|
|
if (this.b == null || !a(this.b, 4)) {
|
|
this.b = null;
|
|
b();
|
|
}
|
|
}
|
|
}
|
|
|
|
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;
|
|
}
|
|
e.removeCallbacksAndMessages(snackbarRecord);
|
|
StaticHandler staticHandler = e;
|
|
staticHandler.sendMessageDelayed(Message.obtain(staticHandler, 0, snackbarRecord), i);
|
|
}
|
|
|
|
public void a(Callback callback, int i) {
|
|
synchronized (this.a) {
|
|
if (f(callback)) {
|
|
a(this.b, i);
|
|
} else if (g(callback)) {
|
|
a(this.c, i);
|
|
}
|
|
}
|
|
}
|
|
|
|
public void a(Callback callback) {
|
|
synchronized (this.a) {
|
|
if (f(callback)) {
|
|
e.removeCallbacksAndMessages(this.b);
|
|
}
|
|
}
|
|
}
|
|
|
|
private boolean a(SnackbarRecord snackbarRecord, int i) {
|
|
Callback callback = snackbarRecord.a.get();
|
|
if (callback == null) {
|
|
return false;
|
|
}
|
|
e.removeCallbacksAndMessages(snackbarRecord);
|
|
callback.a(i);
|
|
return true;
|
|
}
|
|
|
|
void a(SnackbarRecord snackbarRecord) {
|
|
synchronized (this.a) {
|
|
if (this.b == snackbarRecord || this.c == snackbarRecord) {
|
|
a(snackbarRecord, 2);
|
|
}
|
|
}
|
|
}
|
|
}
|