@@ -10,6 +10,7 @@ import 'package:flutter/foundation.dart';
1010import 'package:flutter/material.dart' ;
1111import 'package:flutter_markdown/flutter_markdown.dart' ;
1212import 'package:http/http.dart' as http;
13+ import 'package:provider/provider.dart' ;
1314
1415import '../../../devtools.dart' as devtools;
1516import '../../config_specific/launch_url/launch_url.dart' ;
@@ -24,12 +25,9 @@ const debugTestReleaseNotes = false;
2425class ReleaseNotesViewer extends StatefulWidget {
2526 const ReleaseNotesViewer ({
2627 Key ? key,
27- required this .releaseNotesController,
2828 required this .child,
2929 }) : super (key: key);
3030
31- final ReleaseNotesController releaseNotesController;
32-
3331 final Widget ? child;
3432
3533 @override
@@ -50,20 +48,23 @@ class _ReleaseNotesViewerState extends State<ReleaseNotesViewer>
5048
5149 late bool isVisible;
5250
51+ late ReleaseNotesController releaseNotesController;
52+
5353 @override
54- void initState () {
55- super .initState ();
56- isVisible = widget.releaseNotesController.releaseNotesVisible.value;
57- markdownData = widget.releaseNotesController.releaseNotesMarkdown.value;
54+ void didChangeDependencies () {
55+ super .didChangeDependencies ();
56+ releaseNotesController = Provider .of <ReleaseNotesController >(context);
57+
58+ isVisible = releaseNotesController.releaseNotesVisible.value;
59+ markdownData = releaseNotesController.releaseNotesMarkdown.value;
5860
5961 visibilityController = longAnimationController (this );
6062 visibilityAnimation =
6163 Tween <double >(begin: 1.0 , end: 0 ).animate (visibilityController);
6264
63- addAutoDisposeListener (widget.releaseNotesController.releaseNotesVisible,
64- () {
65+ addAutoDisposeListener (releaseNotesController.releaseNotesVisible, () {
6566 setState (() {
66- isVisible = widget. releaseNotesController.releaseNotesVisible.value;
67+ isVisible = releaseNotesController.releaseNotesVisible.value;
6768 if (isVisible) {
6869 visibilityController.forward ();
6970 } else {
@@ -72,11 +73,10 @@ class _ReleaseNotesViewerState extends State<ReleaseNotesViewer>
7273 });
7374 });
7475
75- markdownData = widget.releaseNotesController.releaseNotesMarkdown.value;
76- addAutoDisposeListener (widget.releaseNotesController.releaseNotesMarkdown,
77- () {
76+ markdownData = releaseNotesController.releaseNotesMarkdown.value;
77+ addAutoDisposeListener (releaseNotesController.releaseNotesMarkdown, () {
7878 setState (() {
79- markdownData = widget. releaseNotesController.releaseNotesMarkdown.value;
79+ markdownData = releaseNotesController.releaseNotesMarkdown.value;
8080 });
8181 });
8282 }
@@ -96,7 +96,7 @@ class _ReleaseNotesViewerState extends State<ReleaseNotesViewer>
9696 children: [
9797 if (child != null ) child,
9898 ReleaseNotes (
99- releaseNotesController: widget. releaseNotesController,
99+ releaseNotesController: releaseNotesController,
100100 visibilityAnimation: visibilityAnimation,
101101 markdownData: markdownData,
102102 width: width,
@@ -197,19 +197,19 @@ class ReleaseNotesController {
197197 final _releaseNotesVisible = ValueNotifier <bool >(false );
198198
199199 void _init () {
200- if (server.isDevToolsServerAvailable) {
200+ if (debugTestReleaseNotes || server.isDevToolsServerAvailable) {
201201 _maybeFetchReleaseNotes ();
202202 }
203203 }
204204
205205 void _maybeFetchReleaseNotes () async {
206- final lastReleaseNotesShownVersion =
207- await server.getLastShownReleaseNotesVersion ();
208- SemanticVersion previousVersion;
209- if (debugTestReleaseNotes || lastReleaseNotesShownVersion.isEmpty) {
210- previousVersion = SemanticVersion ();
211- } else {
212- previousVersion = SemanticVersion . parse (lastReleaseNotesShownVersion);
206+ SemanticVersion previousVersion = SemanticVersion ();
207+ if ( server.isDevToolsServerAvailable) {
208+ final lastReleaseNotesShownVersion =
209+ await server. getLastShownReleaseNotesVersion ();
210+ if (lastReleaseNotesShownVersion.isNotEmpty) {
211+ previousVersion = SemanticVersion . parse (lastReleaseNotesShownVersion);
212+ }
213213 }
214214 // Parse the current version instead of using [devtools.version] directly to
215215 // strip off any build metadata (any characters following a '+' character).
0 commit comments