FfiFlutterInactiveTimer class

An implementation of FlutterInactiveTimerPlatform that reads the Idle duration through dart:ffi instead of a method channel (ADR-0004).

Not the default yet. FlutterInactiveTimerPlatform.instance still resolves to the method-channel implementation; this class is built and verified alongside it so the two can be compared on a real machine before either is retired. Switching the default is a separate change.

The getIdleDuration override is async only because the platform interface says so — the read underneath is a synchronous OS call. That distinction matters more than it looks: the method-channel path suspends at an await, which is where four bugs in this package's history came from (docs/agents/lessons.md). Here nothing is read after a suspension point, because there is no suspension point. If you ever add one, the shell's generation check is what has to be revisited.

Inheritance

Constructors

FfiFlutterInactiveTimer({IdleSource? source})
Creates an FFI-backed platform reading from source, defaulting to the host's own source. Tests inject their own rather than reaching the OS.

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
source IdleSource
The source this platform reads from — exposed so the parity harness can label which binding produced a value.
final

Methods

getIdleDuration() Future<int>
Milliseconds since the user's last keyboard or mouse input, computed per platform and returned as a single value. See ADR-0001.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

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