sunny_lifecycle library

Classes

AnalyticsNavigatorObserver
AnalyticsProvider
Any new provider can adapt this.
AnalyticsService
ApiKeyAuth
AppBootstrap
This class accepts a wide array of strategies for various things, and then loads the app in a way that makes sure everything is scoped properly.
AppContextEvents
It's common that you want to fire an event, but only within the "app" context, ie. inside of a MaterialApp or CupertinoApp. This service lets you fire those events anywhere in the codebase, and they will get picked up and run inside the appropriate context.
AppInfo
AppleLoginProvider
AppWidgets
Authentication
AuthEvent
AuthIcons
AuthIconsData
AuthResponse
AuthUserProfile
The combination of a firebase user + a reliveit user profile. Most places in the app want to subscribe to auth events after the user profile has been loaded to distinguish from an account that's in the process of being created.
BearerAuthentication
BuildContextResolver
DeviceInfo
DualResolver
Resolves first against a kiwi context as well as the normal Provider. Registrations are done against kiwi only.
EmailPasswordCredentials
EmailPasswordLoginProvider
FadeAnimationPage<T>
FallbackAppInfo
Contains fallback app info, in case we can't look up app info from apple's servers
FirebaseAuthState
ForcedUpgrade
FRouterChildInfoProvider
FRouterDelegate
FRouterInformationParser
FRouterNavigatorObserver
FRouterRootProvider
FRouterRootProviderPlatform
FRouteState
GeoPoint
GoogleLoginProvider
HelpSnippet
HttpBasicAuthentication
IAuthState
IHelpService
InfoX
Inst<T extends Object>
Class used for defining container instances
IUserPreferencesService
JsonUri
LifecycleAware
LifecycleAwareBase
LifecycleExtensions
LifecycleInit
These are the variables loaded before we attempt to start the flutter runtime.
LoginProvider
Notification
OAuth
PendingRoute
PushDestinationUrlBody
PushEventsBody
PushMessageContent
PushMessageType
PushNotificationService
Service that configures FCM messaging. Any component can subscribe to inbound push notifications via PushNotificationService.pushStream, but a PushHandlerService is required for exclusive handling of an inbound message. Basically, if you want to display something.
RootNavigatorObserver
SourcedPushMessage
SunnyCore
Context holder for sunny-related services
SunnyCrashlytics
SunnyGet
Base interface for doing service lookups. This can work with the provider package, or a injector framework like kiwi
SunnyGetLib
Makes it easier to import
SunnyInfoX
SunnyInjector
SunnyLocalization
Based on the timezone package - provides the user's timezone and location (not GPS, just generalized)
TabDisplay
Represents the display parameters of a tab
TabRouteObserver
Passes events from a child router up to the root. It's assumed that the root provider will not receive these events without this connector and that it should only report the url out to the navigator
TabSet
A set of tabs, including the default tab.
TabState
The state of a single tab.
UserDetails

Constants

analyticsIdKey → const UserPrefKey
appValueKey → const ValueKey<String>
kForbidden → const int
kPreconditionFailed → const int
kPreconditionRequired → const int
kUnauthorized → const int
loginValueKey → const ValueKey<String>
rootValueKey → const ValueKey<String>
splashValueKey → const ValueKey<String>

Properties

analytics AnalyticsService
no setter
appContextEvents AppContextEvents
no setter
appErrors Stream<ErrorStack>
no setter
appErrorStream StreamController<ErrorStack>
final
defaultAnalyticsProviders List<AnalyticsProvider>
getter/setter pair
deviceInfo FutureOr<DeviceInfo>
getter/setter pair
enUs Locale
no setter
globalUserStateChanged Stream<AuthUserProfile>
no setter
helpService IHelpService
no setter
infoX InfoX
no setter
rootKeys Set<String>
final
rootNavigatorKey GlobalKey<NavigatorState>
final
sunny SunnyGet
getter/setter pair
sunnyLocalization SunnyLocalization
Global getter for the sunny localization object. Requires that the instance has been registered with a SunnyGet container somewhere.
no setter
userIds StreamController<String>
final
userStateChangedStream → SyncStream<AuthUserProfile>
final

Functions

analyticsValue(dynamic value, [int depth = 0]) → dynamic
backgroundMessageHandler(Map<String, dynamic> message) Future
buildDefaultPlatformApp(BuildContext context, Widget app) Widget
buildDefaultThemes(Brightness? brightness) → Themes
extractUri(dynamic json) Uri?
goToAppStore(BuildContext context, AppInfo info) Future
loadDeviceInfo() Future<DeviceInfo>
loginModalConstraints(BuildContext context) BoxConstraints?
never<T>(T a, T b) bool
notEquals<T>(T a, T b) bool
provider<E>(LifecycleAwareBuilder<E> create, {bool lazy = true, Widget? child}) → Provider<E>
proxy<E, A>(LifecycleAwareBuilder2<E, A> create, {bool lazy = true, Widget? child}) → ProxyProvider<A, E>
proxy2<E, A, B>(LifecycleAwareBuilder3<E, A, B> create, {bool lazy = true, Widget? child}) → ProxyProvider2<A, B, E>
proxy3<E, A, B, C>(LifecycleAwareBuilder4<E, A, B, C> create, {bool lazy = true, Widget? child}) → ProxyProvider3<A, B, C, E>
rootAppRouteMatch([Widget splashPage()?]) → AppRouteMatch<dynamic, RouteParams>
routeGo() → void
whenNotNull<T>(T a, T b) bool
xprovider<E>(LifecycleAwareContextBuilder<E> create, {bool lazy = true, Widget? child}) → Provider<E>
xproxy<E, A>(LifecycleAwareContextBuilder2<E, A> create, {bool lazy = true, Widget? child}) → ProxyProvider<A, E>
xproxy2<E, A, B>(LifecycleAwareContextBuilder3<E, A, B> create, {bool lazy = true, Widget? child}) → ProxyProvider2<A, B, E>

Typedefs

AccountCompleter<P extends UserDetails> = Future<P> Function(BuildContext context, User? profile, String accessToken)
AppContextHandler = FutureOr Function(BuildContext context)
AsyncOrCallback = FutureOr Function()
ChildWidgetBuilder = Widget Function(BuildContext context, Widget child)
DeepLinkHandler<T> = Future<T?> Function(BuildContext context)
InjectorInit = FutureOr Function(Container container)
InstDispose<T> = FutureOr Function(T t)
InstInitFn<T> = T Function(BuildContext context)
LifecycleAwareBuilder<L> = L Function()
LifecycleAwareBuilder2<L, T> = L Function(T other)
LifecycleAwareBuilder3<L, A, B> = L Function(A other, B other2)
LifecycleAwareBuilder4<L, A, B, C> = L Function(A a, B b, C c)
LifecycleAwareContextBuilder<L> = L Function(BuildContext context)
LifecycleAwareContextBuilder2<L, T> = L Function(BuildContext context, T other)
LifecycleAwareContextBuilder3<L, A, B> = L Function(BuildContext context, A other, B other2)
LifecycleCallback<T> = FutureOr<T> Function()
ProfileLoader = Future<UserDetails> Function(User firebaseUser)
ProfileName<P> = String Function(P profile)
PushMessageConsumer = FutureOr<bool> Function(PushSource source, PushMessageContent message)
ShouldNotify<T> = bool Function(T a, T b)
ThemesBuilder = Themes Function(Brightness? brightness)