Skip to content

Commit c762afd

Browse files
committed
minor cleanup
1 parent 2888ef9 commit c762afd

File tree

1 file changed

+18
-21
lines changed

1 file changed

+18
-21
lines changed

firebase-dataconnect/src/main/kotlin/com/google/firebase/dataconnect/core/FirebaseDataConnectImpl.kt

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,15 @@ internal class FirebaseDataConnectImpl(
414414

415415
override fun close() {
416416
logger.debug { "close() called" }
417+
@Suppress("DeferredResultUnused") closeInternal()
418+
}
419+
420+
override suspend fun suspendingClose() {
421+
logger.debug { "suspendingClose() called" }
422+
closeInternal()?.await()
423+
}
417424

425+
private fun closeInternal(): Deferred<Unit>? {
418426
coroutineScope.cancel()
419427

420428
// Remove the reference to this `FirebaseDataConnect` instance from the
@@ -437,10 +445,11 @@ internal class FirebaseDataConnectImpl(
437445
logger.debug { "close() completed successfully" }
438446
state.update { oldState ->
439447
check(oldState is State.Closing) {
440-
"oldState is ${oldState}, but expected Closed (error code hsee7gfxvz)"
448+
"oldState is ${oldState}, but expected Closing (error code hsee7gfxvz)"
441449
}
442450
check(oldState.closeJob === closeJob) {
443-
"oldState.closeJob is ${oldState.closeJob}, but expected $closeJob (error code n3x86pr6qn)"
451+
"oldState.closeJob is ${oldState.closeJob}, but expected $closeJob " +
452+
"(error code n3x86pr6qn)"
444453
}
445454
State.Closed
446455
}
@@ -461,31 +470,19 @@ internal class FirebaseDataConnectImpl(
461470
} else {
462471
oldState
463472
}
464-
is State.Closed -> oldState
473+
is State.Closed -> State.Closed
465474
}
466475
}
467476

468-
if (newState is State.Closing) {
469-
newState.closeJob.start()
470-
}
471-
}
472-
473-
override suspend fun suspendingClose() {
474-
logger.debug { "suspendingClose() called" }
475-
476-
close()
477-
478-
when (val state = state.value) {
479-
is State.Initialized ->
480-
throw IllegalStateException(
481-
"state.value should be Closed or Closing, but got Initialized (error code n3x86pr6qn)"
482-
)
477+
return when (newState) {
478+
is State.Initialized,
483479
is State.New ->
484480
throw IllegalStateException(
485-
"state.value should be Closed or Closing, but got New (error code mr6vccmvcf)"
481+
"internal error: newState is $newState, but expected Closing or Closed " +
482+
"(error code n3x86pr6qn)"
486483
)
487-
is State.Closing -> state.closeJob.await()
488-
State.Closed -> {}
484+
is State.Closing -> newState.closeJob.apply { start() }
485+
is State.Closed -> null
489486
}
490487
}
491488

0 commit comments

Comments
 (0)