use of com.google.firebase.crashlytics.internal.settings.SettingsController in project GreenHouse by utsanjan.
the class FirebaseCrashlytics method init.
/* JADX INFO: Access modifiers changed from: package-private */
public static FirebaseCrashlytics init(FirebaseApp app, FirebaseInstanceIdInternal instanceId, CrashlyticsNativeComponent nativeComponent, AnalyticsConnector analyticsConnector) {
CrashlyticsNativeComponent nativeComponent2;
Context context = app.getApplicationContext();
String appIdentifier = context.getPackageName();
IdManager idManager = new IdManager(context, appIdentifier, instanceId);
DataCollectionArbiter arbiter = new DataCollectionArbiter(app);
if (nativeComponent == null) {
nativeComponent2 = new MissingNativeComponent();
} else {
nativeComponent2 = nativeComponent;
}
final Onboarding onboarding = new Onboarding(app, context, idManager, arbiter);
final CrashlyticsCore core = new CrashlyticsCore(app, idManager, nativeComponent2, arbiter, analyticsConnector);
if (!onboarding.onPreExecute()) {
Logger.getLogger().e("Unable to start Crashlytics.");
return null;
}
final ExecutorService threadPoolExecutor = ExecutorUtils.buildSingleThreadExecutorService("com.google.firebase.crashlytics.startup");
final SettingsController settingsController = onboarding.retrieveSettingsData(context, app, threadPoolExecutor);
final boolean finishCoreInBackground = core.onPreExecute(settingsController);
Tasks.call(threadPoolExecutor, new // from class: com.google.firebase.crashlytics.FirebaseCrashlytics.1
Callable<Void>() {
// java.util.concurrent.Callable
@Override
public Void call() throws Exception {
Onboarding.this.doOnboarding(threadPoolExecutor, settingsController);
if (!finishCoreInBackground) {
return null;
}
core.doBackgroundInitializationAsync(settingsController);
return null;
}
});
return new FirebaseCrashlytics(core);
}
use of com.google.firebase.crashlytics.internal.settings.SettingsController in project firebase-android-sdk by firebase.
the class FirebaseCrashlytics method init.
@Nullable
static FirebaseCrashlytics init(@NonNull FirebaseApp app, @NonNull FirebaseInstallationsApi firebaseInstallationsApi, @NonNull Deferred<CrashlyticsNativeComponent> nativeComponent, @NonNull Deferred<AnalyticsConnector> analyticsConnector) {
Context context = app.getApplicationContext();
final String appIdentifier = context.getPackageName();
Logger.getLogger().i("Initializing Firebase Crashlytics " + CrashlyticsCore.getVersion() + " for " + appIdentifier);
FileStore fileStore = new FileStore(context);
final DataCollectionArbiter arbiter = new DataCollectionArbiter(app);
final IdManager idManager = new IdManager(context, appIdentifier, firebaseInstallationsApi, arbiter);
final CrashlyticsNativeComponentDeferredProxy deferredNativeComponent = new CrashlyticsNativeComponentDeferredProxy(nativeComponent);
// Integration with Firebase Analytics
final AnalyticsDeferredProxy analyticsDeferredProxy = new AnalyticsDeferredProxy(analyticsConnector);
final ExecutorService crashHandlerExecutor = ExecutorUtils.buildSingleThreadExecutorService("Crashlytics Exception Handler");
final CrashlyticsCore core = new CrashlyticsCore(app, idManager, deferredNativeComponent, arbiter, analyticsDeferredProxy.getDeferredBreadcrumbSource(), analyticsDeferredProxy.getAnalyticsEventLogger(), fileStore, crashHandlerExecutor);
final String googleAppId = app.getOptions().getApplicationId();
final String mappingFileId = CommonUtils.getMappingFileId(context);
Logger.getLogger().d("Mapping file ID is: " + mappingFileId);
final DevelopmentPlatformProvider developmentPlatformProvider = new DevelopmentPlatformProvider(context);
AppData appData;
try {
appData = AppData.create(context, idManager, googleAppId, mappingFileId, developmentPlatformProvider);
} catch (PackageManager.NameNotFoundException e) {
Logger.getLogger().e("Error retrieving app package info.", e);
return null;
}
Logger.getLogger().v("Installer package name is: " + appData.installerPackageName);
final ExecutorService threadPoolExecutor = ExecutorUtils.buildSingleThreadExecutorService("com.google.firebase.crashlytics.startup");
final SettingsController settingsController = SettingsController.create(context, googleAppId, idManager, new HttpRequestFactory(), appData.versionCode, appData.versionName, fileStore, arbiter);
// Kick off actually fetching the settings.
settingsController.loadSettingsData(threadPoolExecutor).continueWith(threadPoolExecutor, new Continuation<Void, Object>() {
@Override
public Object then(@NonNull Task<Void> task) throws Exception {
if (!task.isSuccessful()) {
Logger.getLogger().e("Error fetching settings.", task.getException());
}
return null;
}
});
final boolean finishCoreInBackground = core.onPreExecute(appData, settingsController);
Tasks.call(threadPoolExecutor, new Callable<Void>() {
@Override
public Void call() throws Exception {
if (finishCoreInBackground) {
core.doBackgroundInitializationAsync(settingsController);
}
return null;
}
});
return new FirebaseCrashlytics(core);
}
use of com.google.firebase.crashlytics.internal.settings.SettingsController in project firebase-android-sdk by firebase.
the class CrashlyticsCoreTest method startCoreAsync.
// Starts the given CrashlyticsCore.
private Task<CrashlyticsCore> startCoreAsync(CrashlyticsCore crashlyticsCore) {
// Swallow exceptions so tests don't crash.
Thread.setDefaultUncaughtExceptionHandler(NOOP_HANDLER);
SettingsController mockSettingsController = mock(SettingsController.class);
final Settings settings = new TestSettings(3);
when(mockSettingsController.getSettingsSync()).thenReturn(settings);
when(mockSettingsController.getSettingsAsync()).thenReturn(Tasks.forResult(settings));
AppData appData = new AppData(GOOGLE_APP_ID, "buildId", "installerPackageName", "packageName", "versionCode", "versionName", mock(DevelopmentPlatformProvider.class));
crashlyticsCore.onPreExecute(appData, mockSettingsController);
return crashlyticsCore.doBackgroundInitializationAsync(mockSettingsController).onSuccessTask(new SuccessContinuation<Void, CrashlyticsCore>() {
@NonNull
@Override
public Task<CrashlyticsCore> then(@Nullable Void aVoid) throws Exception {
return Tasks.forResult(crashlyticsCore);
}
});
}
use of com.google.firebase.crashlytics.internal.settings.SettingsController in project GreenHouse by utsanjan.
the class Onboarding method retrieveSettingsData.
public SettingsController retrieveSettingsData(Context context, FirebaseApp app, Executor backgroundExecutor) {
String googleAppId = app.getOptions().getApplicationId();
SettingsController controller = SettingsController.create(context, googleAppId, this.idManager, this.requestFactory, this.versionCode, this.versionName, getOverridenSpiEndpoint(), this.dataCollectionArbiter);
controller.loadSettingsData(backgroundExecutor).continueWith(backgroundExecutor, new // from class: com.google.firebase.crashlytics.internal.Onboarding.3
Continuation<Void, Object>() {
// com.google.android.gms.tasks.Continuation
@Override
public Object then(Task<Void> task) throws Exception {
if (task.isSuccessful()) {
return null;
}
Logger.getLogger().e("Error fetching settings.", task.getException());
return null;
}
});
return controller;
}
Aggregations