Initial import of ADIF API reverse-engineering toolkit
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
package com.google.firebase.messaging;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import com.google.android.gms.stats.WakeLock;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public final class WakeLockHolder {
|
||||
private static final String EXTRA_WAKEFUL_INTENT = "com.google.firebase.iid.WakeLockHolder.wakefulintent";
|
||||
static final long WAKE_LOCK_ACQUIRE_TIMEOUT_MILLIS = TimeUnit.MINUTES.toMillis(1);
|
||||
private static final Object syncObject = new Object();
|
||||
private static WakeLock wakeLock;
|
||||
|
||||
public static void acquireWakeLock(Intent intent, long j4) {
|
||||
synchronized (syncObject) {
|
||||
try {
|
||||
if (wakeLock != null) {
|
||||
setAsWakefulIntent(intent, true);
|
||||
wakeLock.acquire(j4);
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void checkAndInitWakeLock(Context context) {
|
||||
if (wakeLock == null) {
|
||||
WakeLock wakeLock2 = new WakeLock(context, 1, "wake:com.google.firebase.iid.WakeLockHolder");
|
||||
wakeLock = wakeLock2;
|
||||
wakeLock2.setReferenceCounted(true);
|
||||
}
|
||||
}
|
||||
|
||||
public static void completeWakefulIntent(Intent intent) {
|
||||
synchronized (syncObject) {
|
||||
try {
|
||||
if (wakeLock != null && isWakefulIntent(intent)) {
|
||||
setAsWakefulIntent(intent, false);
|
||||
wakeLock.release();
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void initWakeLock(Context context) {
|
||||
synchronized (syncObject) {
|
||||
checkAndInitWakeLock(context);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isWakefulIntent(Intent intent) {
|
||||
return intent.getBooleanExtra(EXTRA_WAKEFUL_INTENT, false);
|
||||
}
|
||||
|
||||
public static void reset() {
|
||||
synchronized (syncObject) {
|
||||
wakeLock = null;
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint({"TaskMainThread"})
|
||||
public static void sendWakefulServiceIntent(Context context, WithinAppServiceConnection withinAppServiceConnection, Intent intent) {
|
||||
synchronized (syncObject) {
|
||||
try {
|
||||
checkAndInitWakeLock(context);
|
||||
boolean isWakefulIntent = isWakefulIntent(intent);
|
||||
setAsWakefulIntent(intent, true);
|
||||
if (!isWakefulIntent) {
|
||||
wakeLock.acquire(WAKE_LOCK_ACQUIRE_TIMEOUT_MILLIS);
|
||||
}
|
||||
withinAppServiceConnection.sendIntent(intent).addOnCompleteListener(new p(intent, 0));
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void setAsWakefulIntent(Intent intent, boolean z3) {
|
||||
intent.putExtra(EXTRA_WAKEFUL_INTENT, z3);
|
||||
}
|
||||
|
||||
public static ComponentName startWakefulService(Context context, Intent intent) {
|
||||
synchronized (syncObject) {
|
||||
try {
|
||||
checkAndInitWakeLock(context);
|
||||
boolean isWakefulIntent = isWakefulIntent(intent);
|
||||
setAsWakefulIntent(intent, true);
|
||||
ComponentName startService = context.startService(intent);
|
||||
if (startService == null) {
|
||||
return null;
|
||||
}
|
||||
if (!isWakefulIntent) {
|
||||
wakeLock.acquire(WAKE_LOCK_ACQUIRE_TIMEOUT_MILLIS);
|
||||
}
|
||||
return startService;
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user