Add release notes on launch (#375)

* Add markdown release notes

* Show release notes on first launch

* Update release notes and styles
This commit is contained in:
Tommy Chow 2024-08-13 00:41:06 -07:00 • committed by GitHub
parent d3b548075a
commit 7ddd0ac26a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 129 additions and 7 deletions

View file

@ -9,8 +9,11 @@ import 'package:frosty/screens/home/top/top.dart';
import 'package:frosty/screens/settings/settings.dart';
import 'package:frosty/screens/settings/stores/auth_store.dart';
import 'package:frosty/screens/settings/stores/settings_store.dart';
import 'package:frosty/screens/settings/widgets/release_notes.dart';
import 'package:frosty/widgets/profile_picture.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
class Home extends StatefulWidget {
const Home({super.key});
@ -24,6 +27,31 @@ class _HomeState extends State<Home> {
late final _homeStore = HomeStore(authStore: _authStore);
Future<void> checkAndShowReleaseNotes() async {
final packageInfo = await PackageInfo.fromPlatform();
final prefs = await SharedPreferences.getInstance();
final currentVersion = packageInfo.version;
final storedVersion = prefs.getString('last_shown_version');
if (storedVersion == null || storedVersion != currentVersion) {
if (!mounted) return;
Navigator.push(
context,
MaterialPageRoute(builder: (context) => const ReleaseNotes()),
);
await prefs.setString('last_shown_version', currentVersion);
}
}
@override
void initState() {
super.initState();
checkAndShowReleaseNotes();
}
@override
Widget build(BuildContext context) {
SystemChrome.setPreferredOrientations([]);