ReleaseNotesController class
Controller for release notes management.
Handles changelog fetching, caching, parsing, and display of release notes to the user.
- Inheritance
-
- Object
- Listenable
- ListNotifier
- SintController
- ReleaseNotesController
Constructors
Properties
- appVersion → String
-
Current app version.
final
- changelogCache → RxString
-
In-memory cache of changelog content.
final
- changelogFetched → RxBool
-
Whether changelog has been fetched.
final
- configHomeDir → String
-
The config home directory for cache file storage.
final
- 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
- isDisposed → bool
-
no setterinherited
- isEssentialTrafficOnly → bool
-
Whether essential-traffic-only mode is enabled.
final
- isNonInteractive → bool
-
Whether this is a non-interactive session.
final
- listenersLength → int
-
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
addListener(
SintStateUpdate listener) → Disposer -
Register a closure to be called when the object notifies its listeners.
inherited
-
addListenerId(
Object? key, SintStateUpdate listener) → Disposer -
inherited
-
checkForReleaseNotes(
{String? lastSeenVersion}) → Future< ReleaseNotesResult> - Checks if there are release notes to show based on the last seen version. Also triggers a fetch of the latest changelog if the version has changed.
-
checkForReleaseNotesSync(
{String? lastSeenVersion}) → ReleaseNotesResult - Synchronous variant of checkForReleaseNotes for UI render paths.
-
containsListener(
SintStateUpdate listener) → bool -
inherited
-
debounce<
T> (RxInterface< T> rx, void callback(T), {Duration duration = const Duration(milliseconds: 400)}) → void -
Calls
callbackafterrxstops changing forduration. Useful for search-as-you-type, form validation, etc.inherited -
dispose(
) → void -
inherited
-
ever<
T> (RxInterface< T> rx, void callback(T)) → void -
Calls
callbackevery timerxchanges. Auto-cancels on controller disposal.inherited -
fetchAndStoreChangelog(
) → Future< void> - Fetch the changelog from GitHub and store it in cache file. This runs in the background and does not block the UI.
-
getAllReleaseNotes(
{String? changelogContent}) → List< (String, List< String> )> - Gets all release notes as a list of (version, notes) pairs. Versions are sorted with oldest first.
-
getRecentReleaseNotes(
{required String currentVersion, String? previousVersion, String? changelogContent}) → List< String> - Gets release notes to show based on the previously seen version.
-
getStoredChangelog(
) → Future< String> - Get the stored changelog from cache file if available.
-
getStoredChangelogFromMemory(
) → String - Synchronous accessor for the changelog from memory cache.
-
interval<
T> (RxInterface< T> rx, void callback(T), {Duration duration = const Duration(seconds: 1)}) → void -
Calls
callbackat most once perduration, ignoring intermediate changes. Useful for rate-limiting UI updates.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
once<
T> (RxInterface< T> rx, void callback(T)) → void -
Calls
callbackonly the first timerxchanges, then cancels.inherited -
onClose(
) → void -
Called before onDelete method. onClose might 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
-
onDelete(
) → void -
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
-
onStart(
) → void -
Called at the exact moment the widget is allocated in memory.
It uses an internal "callable" type, to avoid any @overrides in subclasses.
This method should be internal and is required to define the
lifetime cycle of the subclass.
inherited
-
parseChangelog(
String content) → Map< String, List< String> > - Parses a changelog string in markdown format into a structured format.
-
refresh(
) → void -
inherited
-
refreshGroup(
Object id) → void -
inherited
-
removeListener(
VoidCallback listener) → void -
Remove a previously registered closure from the list of closures that the
object notifies.
inherited
-
removeListenerId(
Object id, VoidCallback listener) → void -
inherited
-
reportAdd(
VoidCallback disposer) → void -
inherited
-
reportRead(
) → void -
inherited
-
resetChangelogCache(
) → void - Reset the changelog cache (for testing).
-
toString(
) → String -
A string representation of this object.
inherited
-
update(
[List< Object> ? ids, bool condition = true]) → void -
Notifies listeners to update the UI.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited