Package-level declarations
Types
Mark a class that can be injected by a Injector. This should be implemented by classes that cannot directly have their dependencies injected through constructor and need to have them injected through lateinit properties.
Mark a class that can inject into Injectables.
Annotation to identify an Injector instance.
A registry to maintain Injector instances so that they can be retrieved from Activitys and Fragments. This registry is needed for dagger injection because the SDK can't access Application, and thus Activitys can't get required Component from by downcasting Activity.getApplication.
Mark a class that can be injected by a Injector and does not support fallback. It's implemented by ViewModel Factories when the ViewModel lifecycle is shorter than the activity that contains it. In those cases, they receive the Injector directly as a constructor parameter and should not be responsible for recreating the dependency graph.
Mark an Injector that can inject into NonFallbackInjectable classes.
A InjectorRegistry implemented with a weak map. An entry from the map will be will be garbage collected once the Injector instance is no longer held elsewhere.
Functions
Try to use an InjectorKey to retrieve an Injector and inject, if no Injector is found, invoke Injectable.fallbackInitialize with fallbackInitializeParam.