ConsentStateService class
SSOT for privacy consent, gating which providers (analytics, personalization) are allowed to run.
Default-deny: a category that was never explicitly decided reads as
ConsentStatus.unknown — never ConsentStatus.granted — so
isGranted is false until a real grant() call happens. The same
default-deny applies to a corrupted or hand-edited save: an entry that
doesn't strictly parse (bad JSON, an unrecognized status string) is
treated as unknown, never coerced into granted.
Policy version: policyVersion is the app's current consent policy version (bump it whenever the privacy policy materially changes). A category persisted under an older policy version reads back as ConsentStatus.unknown regardless of what it was previously set to — the policy bump forces a fresh decision. Once re-decided under the new version, it stamps that version and stays valid until the next bump.
- Inheritance
-
- Object
- GetLifeCycle
- DisposableInterface
- GetxService
- ConsentStateService
Constructors
- ConsentStateService({required int policyVersion})
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- initialized → bool
-
Checks whether the controller has already been initialized.
no setterinherited
- isClosed → bool
-
Checks whether the controller has already been closed.
no setterinherited
-
onDelete
→ InternalFinalCallback<
void> -
Internal callback that starts the cycle of this controller.
finalinherited
-
onStart
→ InternalFinalCallback<
void> -
Called at the exact moment the widget is allocated in memory.
It uses an internal "callable" type, to avoid any @overrides in subclases.
This method should be internal and is required to define the
lifetime cycle of the subclass.
finalinherited
- policyVersion → int
-
final
- revision → RxInt
-
Bumped on every grant/deny/reset — wrap a read in
Obx(or listen to this directly) to rebuild when a category's decision changes.final - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
$configureLifeCycle(
) → void -
inherited
-
deny(
ConsentCategory category) → void -
grant(
ConsentCategory category) → void -
isGranted(
ConsentCategory category) → bool -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onClose(
) → void -
Called before
onDeletemethod.onClosemight be used to dispose resources used by the controller. Like closing events, or streams before the controller is destroyed. Or dispose objects that can potentially create some memory leaks, like TextEditingControllers, AnimationControllers. Might be useful as well to persist some data on disk.inherited -
onInit(
) → void -
Called immediately after the widget is allocated in memory.
You might use this to initialize something for the controller.
inherited
-
onReady(
) → void -
Called 1 frame after onInit(). It is the perfect place to enter
navigation events, like snackbar, dialogs, or a new route, or
async request.
inherited
-
recordOf(
ConsentCategory category) → ConsentRecord -
reset(
ConsentCategory category) → void -
statusOf(
ConsentCategory category) → ConsentStatus -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Properties
- maybe → ConsentStateService?
-
Gets the instance if already registered (safe to call from call
sites that may run before/without this service registered, e.g.
widget tests).
no setter