diff --git a/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/FirebaseCrashlytics.java b/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/FirebaseCrashlytics.java index 5abad779107..e9bd06b4b1c 100644 --- a/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/FirebaseCrashlytics.java +++ b/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/FirebaseCrashlytics.java @@ -48,6 +48,7 @@ import com.google.firebase.sessions.api.FirebaseSessionsDependencies; import java.util.List; import java.util.concurrent.Callable; +import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; /** @@ -71,7 +72,7 @@ public class FirebaseCrashlytics { @NonNull Deferred nativeComponent, @NonNull Deferred analyticsConnector, @NonNull Deferred remoteConfigInteropDeferred, - @Background ExecutorService liteExecutorService, + @Background ExecutorService backgroundExecutorService, @Blocking ExecutorService blockingExecutorService) { Context context = app.getApplicationContext(); @@ -151,8 +152,8 @@ public class FirebaseCrashlytics { Logger.getLogger().v("Installer package name is: " + appData.installerPackageName); - final ExecutorService threadPoolExecutor = - ExecutorUtils.buildSingleThreadExecutorService("com.google.firebase.crashlytics.startup"); + final Executor threadPoolExecutor = + ExecutorUtils.buildSequentialExecutor(backgroundExecutorService); final SettingsController settingsController = SettingsController.create( @@ -182,17 +183,9 @@ public Object then(@NonNull Task task) throws Exception { final boolean finishCoreInBackground = core.onPreExecute(appData, settingsController); - Tasks.call( - threadPoolExecutor, - new Callable() { - @Override - public Void call() throws Exception { - if (finishCoreInBackground) { - core.doBackgroundInitializationAsync(settingsController); - } - return null; - } - }); + if (finishCoreInBackground) { + core.doBackgroundInitializationAsync(settingsController); + } return new FirebaseCrashlytics(core); } diff --git a/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/ExecutorUtils.java b/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/ExecutorUtils.java index 77fafe9adc5..30976a962f4 100644 --- a/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/ExecutorUtils.java +++ b/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/ExecutorUtils.java @@ -17,8 +17,11 @@ import static java.util.concurrent.TimeUnit.SECONDS; import android.annotation.SuppressLint; + +import com.google.firebase.concurrent.FirebaseExecutors; import com.google.firebase.crashlytics.internal.Logger; import java.util.Locale; +import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.LinkedBlockingQueue; @@ -34,6 +37,10 @@ public final class ExecutorUtils { private ExecutorUtils() {} + public static Executor buildSequentialExecutor(Executor commonExecutor) { + return FirebaseExecutors.newSequentialExecutor(commonExecutor); + } + public static ExecutorService buildSingleThreadExecutorService(String name) { final ThreadFactory threadFactory = ExecutorUtils.getNamedThreadFactory(name); final ExecutorService executor =