@@ -433,17 +433,11 @@ CrashlyticsController getController() {
433
433
* initialization to upload crash result. 4 seconds is chosen for the lock to prevent ANR
434
434
*/
435
435
private void finishInitSynchronously (SettingsProvider settingsProvider ) {
436
-
437
- final Runnable runnable =
438
- new Runnable () {
439
- @ Override
440
- public void run () {
441
- doBackgroundInitialization (settingsProvider );
442
- }
443
- };
444
-
445
- // TODO(mrober): Refactor to Tasks. Maybe just re-use async task and awaitEvenIfOnMain?
446
- final Future <?> future = crashlyticsWorkers .common .getExecutor ().submit (runnable );
436
+ Future <?> future =
437
+ crashlyticsWorkers
438
+ .common
439
+ .getExecutor ()
440
+ .submit (() -> doBackgroundInitialization (settingsProvider ));
447
441
448
442
Logger .getLogger ()
449
443
.d (
@@ -452,12 +446,13 @@ public void run() {
452
446
453
447
try {
454
448
future .get (DEFAULT_MAIN_HANDLER_TIMEOUT_SEC , TimeUnit .SECONDS );
455
- } catch (InterruptedException e ) {
456
- Logger .getLogger ().e ("Crashlytics was interrupted during initialization." , e );
457
- } catch (ExecutionException e ) {
458
- Logger .getLogger ().e ("Crashlytics encountered a problem during initialization." , e );
459
- } catch (TimeoutException e ) {
460
- Logger .getLogger ().e ("Crashlytics timed out during initialization." , e );
449
+ } catch (InterruptedException ex ) {
450
+ Logger .getLogger ().e ("Crashlytics was interrupted during initialization." , ex );
451
+ Thread .currentThread ().interrupt ();
452
+ } catch (ExecutionException ex ) {
453
+ Logger .getLogger ().e ("Crashlytics encountered a problem during initialization." , ex );
454
+ } catch (TimeoutException ex ) {
455
+ Logger .getLogger ().e ("Crashlytics timed out during initialization." , ex );
461
456
}
462
457
}
463
458
@@ -496,13 +491,16 @@ boolean didPreviousInitializationFail() {
496
491
// region Previous crash handling
497
492
498
493
private void checkForPreviousCrash () {
499
- Task <Boolean > task =
500
- crashlyticsWorkers .common .submit (() -> controller .didCrashOnPreviousExecution ());
494
+ Future <Boolean > future =
495
+ crashlyticsWorkers
496
+ .common
497
+ .getExecutor ()
498
+ .submit (() -> controller .didCrashOnPreviousExecution ());
501
499
502
500
Boolean result ;
503
501
try {
504
- result = Utils . awaitEvenIfOnMainThread ( task );
505
- } catch (Exception e ) {
502
+ result = future . get ( DEFAULT_MAIN_HANDLER_TIMEOUT_SEC , TimeUnit . SECONDS );
503
+ } catch (Exception ignored ) {
506
504
didCrashOnPreviousExecution = false ;
507
505
return ;
508
506
}
0 commit comments