diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 818c237..f134231 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - Tests + My Finance Planner CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -13,7 +13,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - tests + My Finance Planner CFBundlePackageType APPL CFBundleShortVersionString diff --git a/lib/assets/mfa_logo.png b/lib/assets/mfa_logo.png new file mode 100644 index 0000000..1c9aa9b Binary files /dev/null and b/lib/assets/mfa_logo.png differ diff --git a/lib/main.dart b/lib/main.dart index 18f40b8..bb04eca 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -15,17 +15,16 @@ import 'account/account_detail.dart'; Future main() async { WidgetsFlutterBinding.ensureInitialized(); await EasyLocalization.ensureInitialized(); - runApp( - ChangeNotifierProvider( - create: (context) => ThemeManager(), - child: EasyLocalization( - supportedLocales: const [Locale('en', 'US'), Locale('de', 'DE')], - path: 'lib/assets/translations', - // <-- change the path of the translation files - fallbackLocale: const Locale('en', 'US'), - child: const FinancialPlannerApp()), - )); - } + runApp(ChangeNotifierProvider( + create: (context) => ThemeManager(), + child: EasyLocalization( + supportedLocales: const [Locale('en', 'US'), Locale('de', 'DE')], + path: 'lib/assets/translations', + // <-- change the path of the translation files + fallbackLocale: const Locale('en', 'US'), + child: const FinancialPlannerApp()), + )); +} ThemeManager _themeManager = ThemeManager(); @@ -34,8 +33,8 @@ class FinancialPlannerApp extends StatelessWidget { @override Widget build(BuildContext context) { - SystemChrome.setEnabledSystemUIMode( - SystemUiMode.manual, overlays: [SystemUiOverlay.top]); + SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, + overlays: [SystemUiOverlay.top]); return MaterialApp( localizationsDelegates: context.localizationDelegates, supportedLocales: context.supportedLocales, @@ -112,7 +111,7 @@ class HomePageState extends State { Future saveAccounts() async { SharedPreferences prefs = await SharedPreferences.getInstance(); List accountJsonList = - accounts.map((account) => json.encode(account.toJson())).toList(); + accounts.map((account) => json.encode(account.toJson())).toList(); await prefs.setStringList('accounts', accountJsonList); } @@ -149,14 +148,19 @@ class HomePageState extends State { centerTitle: true, backgroundColor: Colors.transparent, elevation: 0, + leading: Padding( + padding: EdgeInsets.only(left: 5), + child: Image.asset( + 'lib/assets/mfa_logo.png', + width: 32, + height: 32, + )), title: Text( 'title'.tr(), style: TextStyle( fontSize: 18, fontWeight: FontWeight.bold, - color: Theme - .of(context) - .brightness == Brightness.dark + color: Theme.of(context).brightness == Brightness.dark ? Colors.white70 : Colors.black87), ), @@ -178,29 +182,18 @@ class HomePageState extends State { depth: 8, intensity: 0.9, shadowLightColor: - Theme - .of(context) - .brightness == Brightness.light - ? const NeumorphicStyle().shadowLightColor - : Theme - .of(context) - .shadowColor, - shadowDarkColor: - Theme - .of(context) - .brightness == Brightness.dark + Theme.of(context).brightness == Brightness.light + ? const NeumorphicStyle().shadowLightColor + : Theme.of(context).shadowColor, + shadowDarkColor: Theme.of(context).brightness == Brightness.dark ? const NeumorphicStyle().shadowDarkColor : grey400, - color: Theme - .of(context) - .brightness == Brightness.light + color: Theme.of(context).brightness == Brightness.light ? grey200 : grey800, ), child: Icon(Icons.settings, - color: Theme - .of(context) - .unselectedWidgetColor), + color: Theme.of(context).unselectedWidgetColor), ), ), ], @@ -216,9 +209,7 @@ class HomePageState extends State { AwesomeDialog( btnOkText: "Delete".tr(), btnOkColor: Colors.lightGreen, - btnCancelColor: Theme - .of(context) - .shadowColor, + btnCancelColor: Theme.of(context).shadowColor, context: context, animType: AnimType.bottomSlide, dialogType: DialogType.info, @@ -237,41 +228,31 @@ class HomePageState extends State { depth: 8, intensity: 1, shadowLightColor: - Theme - .of(context) - .brightness == Brightness.light - ? const NeumorphicStyle().shadowLightColor - : grey800, + Theme.of(context).brightness == Brightness.light + ? const NeumorphicStyle().shadowLightColor + : grey800, shadowDarkColor: - Theme - .of(context) - .brightness == Brightness.dark - ? const NeumorphicStyle().shadowDarkColor - : Theme - .of(context) - .shadowColor, - color: Theme - .of(context) - .brightness == Brightness.light + Theme.of(context).brightness == Brightness.dark + ? const NeumorphicStyle().shadowDarkColor + : Theme.of(context).shadowColor, + color: Theme.of(context).brightness == Brightness.light ? grey200 : grey800, boxShape: - NeumorphicBoxShape.roundRect(BorderRadius.circular(15)), + NeumorphicBoxShape.roundRect(BorderRadius.circular(15)), ), child: ListTile( title: Text(accounts[index].name), subtitle: Text( - '${'balance'.tr()}: $_selectedCurrency${accounts[index] - .balance.toStringAsFixed(2)}'), + '${'balance'.tr()}: $_selectedCurrency${accounts[index].balance.toStringAsFixed(2)}'), onTap: () { Navigator.push( context, MaterialPageRoute( - builder: (context) => - AccountDetailPage( - account: accounts[index], - updateAccountBalance: updateAccountBalance, - ), + builder: (context) => AccountDetailPage( + account: accounts[index], + updateAccountBalance: updateAccountBalance, + ), ), ); }, @@ -294,21 +275,13 @@ class HomePageState extends State { style: NeumorphicStyle( depth: 8, intensity: 1, - shadowLightColor: Theme - .of(context) - .brightness == Brightness.light + shadowLightColor: Theme.of(context).brightness == Brightness.light ? const NeumorphicStyle().shadowLightColor - : Theme - .of(context) - .shadowColor, - shadowDarkColor: Theme - .of(context) - .brightness == Brightness.dark + : Theme.of(context).shadowColor, + shadowDarkColor: Theme.of(context).brightness == Brightness.dark ? const NeumorphicStyle().shadowDarkColor : grey400, - color: Theme - .of(context) - .brightness == Brightness.light + color: Theme.of(context).brightness == Brightness.light ? grey200 : grey800, boxShape: const NeumorphicBoxShape.circle(), @@ -316,9 +289,7 @@ class HomePageState extends State { child: Icon( Icons.add, size: 60, - color: Theme - .of(context) - .brightness == Brightness.light + color: Theme.of(context).brightness == Brightness.light ? Colors.black12 : Colors.white12, ), diff --git a/pubspec.lock b/pubspec.lock index 9011e9a..67329b9 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,6 +1,14 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + archive: + dependency: transitive + description: + name: archive + sha256: "0c8368c9b3f0abbc193b9d6133649a614204b528982bebc7026372d61677ce3a" + url: "https://pub.dev" + source: hosted + version: "3.3.7" args: dependency: transitive description: @@ -65,6 +73,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.12.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff + url: "https://pub.dev" + source: hosted + version: "2.0.3" circular_seek_bar: dependency: "direct main" description: @@ -73,6 +89,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0+2" + cli_util: + dependency: transitive + description: + name: cli_util + sha256: b8db3080e59b2503ca9e7922c3df2072cf13992354d5e944074ffa836fba43b7 + url: "https://pub.dev" + source: hosted + version: "0.4.0" clock: dependency: transitive description: @@ -89,6 +113,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.17.0" + convert: + dependency: transitive + description: + name: convert + sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + crypto: + dependency: transitive + description: + name: crypto + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + url: "https://pub.dev" + source: hosted + version: "3.0.3" cupertino_icons: dependency: "direct main" description: @@ -142,6 +182,14 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_launcher_icons: + dependency: "direct dev" + description: + name: flutter_launcher_icons + sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea" + url: "https://pub.dev" + source: hosted + version: "0.13.1" flutter_lints: dependency: "direct dev" description: @@ -205,6 +253,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.2" + image: + dependency: transitive + description: + name: image + sha256: a72242c9a0ffb65d03de1b7113bc4e189686fc07c7147b8b41811d0dd0e0d9bf + url: "https://pub.dev" + source: hosted + version: "4.0.17" intl: dependency: "direct main" description: @@ -221,6 +277,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.5" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467 + url: "https://pub.dev" + source: hosted + version: "4.8.1" lints: dependency: transitive description: @@ -333,6 +397,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + pointycastle: + dependency: transitive + description: + name: pointycastle + sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c" + url: "https://pub.dev" + source: hosted + version: "3.7.3" process: dependency: transitive description: @@ -562,6 +634,14 @@ packages: url: "https://pub.dev" source: hosted version: "6.2.2" + yaml: + dependency: transitive + description: + name: yaml + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + url: "https://pub.dev" + source: hosted + version: "3.1.2" sdks: dart: ">=2.19.6 <3.0.0" flutter: ">=3.7.0-0" diff --git a/pubspec.yaml b/pubspec.yaml index 6e2f66f..82560de 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -21,18 +21,11 @@ version: 1.0.0+1 environment: sdk: '>=2.19.6 <3.0.0' -# Dependencies specify other packages that your package needs in order to work. -# To automatically upgrade your package dependencies to the latest versions -# consider running `flutter pub upgrade --major-versions`. Alternatively, -# dependencies can be manually updated by changing the version numbers below to -# the latest version available on pub.dev. To see which dependencies have newer -# versions available, run `flutter pub outdated`. dependencies: flutter: sdk: flutter intl: ^0.17.0 - # The following adds the Cupertino Icons font to your application. - # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 shared_preferences: ^2.1.2 charts_flutter: ^0.12.0 @@ -49,28 +42,23 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - - # The "flutter_lints" package below contains a set of recommended lints to - # encourage good coding practices. The lint set provided by the package is - # activated in the `analysis_options.yaml` file located at the root of your - # package. See that file for information about deactivating specific lint - # rules and activating additional ones. flutter_lints: ^2.0.0 + flutter_launcher_icons: ^0.13.1 + +flutter_launcher_icons: + image_path: "lib/assets/mfa_logo.png" + android: true + ios: true -# For information on the generic Dart part of this file, see the -# following page: https://dart.dev/tools/pub/pubspec -# The following section is specific to Flutter packages. flutter: - # The following line ensures that the Material Icons font is - # included with your application, so that you can use the icons in - # the material Icons class. uses-material-design: true assets: - lib/assets/translations/ - lib/assets/savings_icon.svg + - lib/assets/mfa_logo.png fonts: - family: Montserrat