From c5f1a4e9ba18388bffd855b64c1f7e3d700c20e2 Mon Sep 17 00:00:00 2001 From: Hyperling Date: Thu, 27 Mar 2025 14:02:18 -0700 Subject: [PATCH] Add app version to menu. --- lib/pages/home.dart | 25 ++++++++++++ macos/Flutter/GeneratedPluginRegistrant.swift | 2 + pubspec.lock | 40 +++++++++++++++++++ pubspec.yaml | 2 + 4 files changed, 69 insertions(+) diff --git a/lib/pages/home.dart b/lib/pages/home.dart index 26f53d3..e105c4f 100644 --- a/lib/pages/home.dart +++ b/lib/pages/home.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import '/models/item_type.dart'; import 'dart:io'; +import 'package:package_info_plus/package_info_plus.dart'; // Local import '/pages/tracked_item.dart'; @@ -26,10 +27,32 @@ class _HomePageState extends State { setState(() {}); } + PackageInfo _packageInfo = PackageInfo( + appName: 'Unknown', + packageName: 'Unknown', + version: 'Unknown', + buildNumber: 'Unknown', + ); + + Future _initPackageInfo() async { + final PackageInfo info = await PackageInfo.fromPlatform(); + setState(() { + _packageInfo = info; + }); + } + + @override + void initState() { + super.initState(); + // Get package details + _initPackageInfo(); + } + @override Widget build(BuildContext context) { Widget page; Widget? dialog; + switch (pageSelected) { case 0: page = TrackedItemPage( @@ -129,6 +152,8 @@ class _HomePageState extends State { } }); }, + leading: Text("Menu"), + trailing: Text("v${_packageInfo.version}"), ); Widget main = Container( diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 368554e..3bfbaf1 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,11 +5,13 @@ import FlutterMacOS import Foundation +import package_info_plus import path_provider_foundation import sqflite_darwin import url_launcher_macos func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) diff --git a/pubspec.lock b/pubspec.lock index 203886b..6a06204 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -80,6 +80,22 @@ packages: description: flutter source: sdk version: "0.0.0" + http: + dependency: transitive + description: + name: http + sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f + url: "https://pub.dev" + source: hosted + version: "1.3.0" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + url: "https://pub.dev" + source: hosted + version: "4.1.2" leak_tracker: dependency: transitive description: @@ -136,6 +152,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.16.0" + package_info_plus: + dependency: "direct main" + description: + name: package_info_plus + sha256: "7976bfe4c583170d6cdc7077e3237560b364149fcd268b5f53d95a991963b191" + url: "https://pub.dev" + source: hosted + version: "8.3.0" + package_info_plus_platform_interface: + dependency: transitive + description: + name: package_info_plus_platform_interface + sha256: "6c935fb612dff8e3cc9632c2b301720c77450a126114126ffaafe28d2e87956c" + url: "https://pub.dev" + source: hosted + version: "3.2.0" path: dependency: "direct main" description: @@ -421,6 +453,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.1" + win32: + dependency: transitive + description: + name: win32 + sha256: dc6ecaa00a7c708e5b4d10ee7bec8c270e9276dfcab1783f57e9962d7884305f + url: "https://pub.dev" + source: hosted + version: "5.12.0" xdg_directories: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 4e758fb..88b6289 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,4 +1,5 @@ name: expense_tracker +homepage: https://git.hyperling.com/me/flutter-expense-tracker description: Track recurring expenses against income and liquid assets. publish_to: 'none' version: 0.1.3 @@ -9,6 +10,7 @@ environment: dependencies: flutter: sdk: flutter + package_info_plus: ^8.3.0 path: ^1.9.0 path_provider: ^2.1.5 sqflite: ^2.4.1