AppCubit class

Mixed-in types
Implementers

Constructors

AppCubit({Uri? entranceUri, bool networkRequired = true})

Properties

connectionFactoryForTest ↔ InternetConnection Function(String primaryUrl)?
Test-only seam (BEH-12): overrides how the InternetConnection is constructed in _initializeNetworkChecking so the leak/idempotency test (BEH-3) can inject a fake that records dispose()/subscription lifecycle. When null, the real InternetConnection.createInstance is used.
getter/setter pair
entranceUri Uri?
getter/setter pair
hashCode int
The hash code for this object.
no setterinherited
hasProcessedEntrance bool
getter/setter pair
isClosed bool
Whether the bloc is closed.
no setterinherited
networkRequired bool
getter/setter pair
probeOnceForTest Future<bool> Function()
Test-only seam (BEH-12, additive): inject the single-probe function so tests can drive the startup retry loop / confirmation without a real checker. A leading-underscore field is library-private and unsettable from an external test library; @visibleForTesting on a private member raises invalid_visibility_annotation, so a public setter is required (mirrors the existing handleVersionUpdateForTest / emitStartupStatusForTest seams).
no getter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
state AppState
The current state.
no setterinherited
stream Stream<AppState>
The current stream of states.
no setterinherited

Methods

addError(Object error, [StackTrace? stackTrace]) → void
Reports an error which triggers onError with an optional StackTrace.
inherited
buildCheckOptionsForTest(String primaryUrl) List<InternetCheckOption>
Test-only seam (BEH-12): build the check-option list so the responseStatusFn table (BEH-7) can be asserted directly.
checkForAppUpdates() Future<void>
checkNetworkWithTimeoutForTest() Future<bool>
Test-only seam (BEH-12): run the budget-bounded startup retry loop in isolation. Call computeEffectiveNetworkConfigForTest first so _effectiveProbeTimeoutMs is populated as in production.
clearUnreadNotificationCount() → void
Clears the unread notification count (sets to 0).
close() Future<void>
Closes the instance. This method should be called when the instance is no longer needed. Once close is called, the instance can no longer be used.
computeEffectiveNetworkConfigForTest() → ({int confirmCount, int connectedMs, int offlineMs, int probeTimeoutMs})
Test-only seam (BEH-12): recompute the cross-validated effective config and return the resolved values so NET-022 clamping can be asserted.
dismissVersionUpdateBanner() → void
emit(AppState state) → void
Updates the state to the provided state. emit does nothing if the state being emitted is equal to the current state.
inherited
emitSafe(AppState state) → void
inherited
emitStartupStatusForTest(AppState newState) → void
Test-only seam: emit a startup-path status through the sticky-updateRequired guarded setter (Issues 88/91), modelling the cold-start sequence where the version microtask sets updateRequired before a startup downgrade runs.
enterStartupNetworkErrorSelfHealForTest() Future<void>
Test-only seam (BEH-12, additive): drive the shared startup self-heal helper (_enterStartupNetworkErrorSelfHeal) directly so the exception-path self-heal (NET-021) — otherwise only reachable via a genuine init exception inside _initializeNetworkChecking — can be exercised in isolation.
getInitialData() Future<void>
handleAppResumedForTest() Future<void>
Test-only seam (BEH-12, additive): drive the guarded resume re-probe (_handleAppResumedNetworkReprobe) directly. The production wiring in _initializeLifecycleService runs only after getInitialData (Firebase- coupled); this seam exercises the hook's guards (loading gate, kill-switch, epoch/close fencing, resume-recovery resync) in isolation.
handleInternetStatusForTest(InternetStatus status) Future<void>
Test-only seam (BEH-12, additive): drive the confirm-before-flip handler directly (mirrors handleVersionUpdateForTest). Returns the handler's future so the confirmation pass can be awaited to completion.
handleVersionUpdateForTest(VersionUpdateInfo updateInfo) → void
Test-only seam: deliver a VersionUpdateInfo to the version-update handler without driving the real (platform-coupled) AppVersionUpdateService.
incrementUnreadNotificationCount() → void
Increments the unread notification count by 1.
initializeNotificationSync() Future<void>
Initializes notification state sync with NotificationService.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onChange(Change<AppState> change) → void
Called whenever a change occurs with the given change. A change occurs when a new state is emitted. onChange is called before the state of the cubit is updated. onChange is a great spot to add logging/analytics for a specific cubit.
inherited
onError(Object error, StackTrace stackTrace) → void
Called whenever an error occurs and notifies BlocObserver.onError.
inherited
onNavHappened(String path) Future<void>
overlayFullScreenFinish() → void
overlayFullScreenSetChild(Widget child()) → void
overlayFullScreenSetChildAndStart(Widget child()?) → void
overlayFullScreenStart() → void
overlayLoadingFinish() → void
overlayLoadingStart() → void
overlayProgressingFinish() → void
overlayProgressingStart({String? headerText}) → void
overlayProgressingUpdate(double progress) → void
refreshNotificationPermissionStatus() Future<void>
Refreshes the notification permission status from the system.
requestNotificationPermissions({bool provisional = false}) Future<NotificationPermissionStatus>
Requests notification permissions and syncs the result to state.
retryNetworkConnection() Future<void>
setColorThemeIndex(int index) Future<void>
toString() String
A string representation of this object.
inherited
updateNotificationPermissionStatus(NotificationPermissionStatus status) → void
Updates the notification permission status.
updateUnreadNotificationCount(int count) → void
Updates the unread notification count.

Operators

operator ==(Object other) bool
The equality operator.
inherited