diff --git a/lib/main.dart b/lib/main.dart index d147802..c3f6158 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -104,7 +104,6 @@ class _HomeState extends State { return MaterialApp( theme: ThemeData(), home: Scaffold( - // appBar: AppBar(title: Text('Home')), body: _buildScreen(active), bottomNavigationBar: BottomNavigationBar( items: _buildNavigationItems(), diff --git a/lib/providers/settings.dart b/lib/providers/settings.dart index 2ae9faa..99dbdb1 100644 --- a/lib/providers/settings.dart +++ b/lib/providers/settings.dart @@ -79,7 +79,7 @@ class _SettingsProviderState extends State { super.initState(); _initDataFromPref(); - _sub = getUriLinksStream().listen(_loginWithGithub, onError: (err) { + _sub = getUriLinksStream().listen(_onSchemeDetected, onError: (err) { print(err); }); } @@ -91,7 +91,7 @@ class _SettingsProviderState extends State { } // https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow - void _loginWithGithub(Uri uri) async { + void _onSchemeDetected(Uri uri) async { // get token by code var code = uri.queryParameters['code']; // print(code); @@ -157,7 +157,7 @@ class _SettingsProviderState extends State { } else if (Platform.isIOS) { theme = ThemeMap.cupertino; } - // theme = ThemeMap.material; + theme = ThemeMap.material; setState(() { ready = true; diff --git a/lib/scaffolds/list.dart b/lib/scaffolds/list.dart index b784369..66e39b3 100644 --- a/lib/scaffolds/list.dart +++ b/lib/scaffolds/list.dart @@ -80,7 +80,11 @@ class _ListScaffoldState extends State { } catch (err) { print(err); } finally { - loadingMore = false; + if (mounted) { + setState(() { + loadingMore = false; + }); + } } } diff --git a/lib/screens/news.dart b/lib/screens/news.dart index 8d659bb..0bc9257 100644 --- a/lib/screens/news.dart +++ b/lib/screens/news.dart @@ -31,16 +31,20 @@ class NewsScreenState extends State { onRefresh: () async { page = 1; var items = await fetchEvents(page); - setState(() { - _events = items; - }); + if (mounted) { + setState(() { + _events = items; + }); + } }, onLoadMore: () async { page = page + 1; var items = await fetchEvents(page); - setState(() { - _events.addAll(items); - }); + if (mounted) { + setState(() { + _events.addAll(items); + }); + } }, ); } diff --git a/lib/screens/notifications.dart b/lib/screens/notifications.dart index 6726e18..8887b74 100644 --- a/lib/screens/notifications.dart +++ b/lib/screens/notifications.dart @@ -144,9 +144,11 @@ $key: pullRequest(number: ${item.number}) { return NotificationItem( payload: item, markAsRead: () { - setState(() { - groupMap[entry.key].items[index].unread = false; - }); + if (mounted) { + setState(() { + groupMap[entry.key].items[index].unread = false; + }); + } }, ); }); diff --git a/lib/screens/repo.dart b/lib/screens/repo.dart index 8b5f110..baf3198 100644 --- a/lib/screens/repo.dart +++ b/lib/screens/repo.dart @@ -85,11 +85,13 @@ class _RepoScreenState extends State { queryRepo(context), fetchReadme(context), ]); - setState(() { - loading = false; - payload = items[0]; - readme = items[1]; - }); + if (mounted) { + setState(() { + loading = false; + payload = items[0]; + readme = items[1]; + }); + } } @override