Files
rr3-apk/decompiled-community/sources/com/google/firebase/messaging/EnhancedIntentService.java
Daniel Elliott c080f0d97f Add Discord community version (64-bit only)
- Added realracing3-community.apk (71.57 MB)
- Removed 32-bit support (armeabi-v7a)
- Only includes arm64-v8a libraries
- Decompiled source code included
- Added README-community.md with analysis
2026-02-18 15:48:36 -08:00

139 lines
4.8 KiB
Java

package com.google.firebase.messaging;
import android.annotation.SuppressLint;
import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.util.Log;
import androidx.annotation.CallSuper;
import androidx.annotation.VisibleForTesting;
import androidx.credentials.CredentialManager$$ExternalSyntheticLambda0;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.android.gms.tasks.TaskCompletionSource;
import com.google.android.gms.tasks.Tasks;
import com.google.firebase.messaging.WithinAppServiceBinder;
import java.util.concurrent.ExecutorService;
@SuppressLint({"UnwrappedWakefulBroadcastReceiver"})
/* loaded from: classes3.dex */
public abstract class EnhancedIntentService extends Service {
static final long MESSAGE_TIMEOUT_S = 20;
private static final String TAG = "EnhancedIntentService";
private Binder binder;
private int lastStartId;
@VisibleForTesting
final ExecutorService executor = FcmExecutors.newIntentHandleExecutor();
private final Object lock = new Object();
private int runningTasks = 0;
public Intent getStartCommandIntent(Intent intent) {
return intent;
}
public abstract void handleIntent(Intent intent);
public boolean handleIntentOnMainThread(Intent intent) {
return false;
}
@Override // android.app.Service
public final synchronized IBinder onBind(Intent intent) {
try {
Log.isLoggable(TAG, 3);
if (this.binder == null) {
this.binder = new WithinAppServiceBinder(new WithinAppServiceBinder.IntentHandler() { // from class: com.google.firebase.messaging.EnhancedIntentService.1
@Override // com.google.firebase.messaging.WithinAppServiceBinder.IntentHandler
public Task handle(Intent intent2) {
return EnhancedIntentService.this.processIntent(intent2);
}
});
}
} catch (Throwable th) {
throw th;
}
return this.binder;
}
public final Task processIntent(final Intent intent) {
if (handleIntentOnMainThread(intent)) {
return Tasks.forResult(null);
}
final TaskCompletionSource taskCompletionSource = new TaskCompletionSource();
this.executor.execute(new Runnable() { // from class: com.google.firebase.messaging.EnhancedIntentService$$ExternalSyntheticLambda0
@Override // java.lang.Runnable
public final void run() {
EnhancedIntentService.this.lambda$processIntent$0(intent, taskCompletionSource);
}
});
return taskCompletionSource.getTask();
}
public final /* synthetic */ void lambda$processIntent$0(Intent intent, TaskCompletionSource taskCompletionSource) {
try {
handleIntent(intent);
} finally {
taskCompletionSource.setResult(null);
}
}
@Override // android.app.Service
public final int onStartCommand(final Intent intent, int i, int i2) {
synchronized (this.lock) {
this.lastStartId = i2;
this.runningTasks++;
}
Intent startCommandIntent = getStartCommandIntent(intent);
if (startCommandIntent == null) {
finishTask(intent);
return 2;
}
Task processIntent = processIntent(startCommandIntent);
if (processIntent.isComplete()) {
finishTask(intent);
return 2;
}
processIntent.addOnCompleteListener(new CredentialManager$$ExternalSyntheticLambda0(), new OnCompleteListener() { // from class: com.google.firebase.messaging.EnhancedIntentService$$ExternalSyntheticLambda1
@Override // com.google.android.gms.tasks.OnCompleteListener
public final void onComplete(Task task) {
EnhancedIntentService.this.lambda$onStartCommand$1(intent, task);
}
});
return 3;
}
public final /* synthetic */ void lambda$onStartCommand$1(Intent intent, Task task) {
finishTask(intent);
}
@Override // android.app.Service
@CallSuper
public void onDestroy() {
this.executor.shutdown();
super.onDestroy();
}
public final void finishTask(Intent intent) {
if (intent != null) {
WakeLockHolder.completeWakefulIntent(intent);
}
synchronized (this.lock) {
try {
int i = this.runningTasks - 1;
this.runningTasks = i;
if (i == 0) {
stopSelfResultHook(this.lastStartId);
}
} catch (Throwable th) {
throw th;
}
}
}
public boolean stopSelfResultHook(int i) {
return stopSelfResult(i);
}
}