Compare commits

...

11 commits

Author SHA1 Message Date
Matyáš Caras
bd17e12e1b
fix: show correct indicator on pie chart 2024-02-26 23:26:11 +01:00
Matyáš Caras
af04accabf
fix: update state after creating recurring entry 2024-02-26 23:26:02 +01:00
Matyáš Caras
c7e40b12b7
fix: icons in iconpicker per platform 2024-02-26 22:59:08 +01:00
Matyáš Caras
4a3f097b02
fix: showing created entry after OCR 2024-02-26 22:58:01 +01:00
Matyáš Caras
e5e803057a
fix: localization mistakes 2024-02-26 22:53:51 +01:00
Matyáš Caras
a6872408fa
fix: set kotlin version everywhere 2024-02-26 22:53:38 +01:00
Matyáš Caras
4d7144267e
fix: downgrade iconpicker 2024-02-26 22:53:10 +01:00
Matyáš Caras
aeda571f35
chore: upgrade flutter 2024-02-26 21:58:18 +01:00
Matyáš Caras
776e9b056a
Merge branch 'main' into dev 2024-02-26 21:50:24 +01:00
Matyáš Caras
ecf15ba559 chore: fix iOS building (#35)
Reviewed-on: #35
2024-02-12 19:38:10 +01:00
Matyáš Caras
7188c55660 fix: last minute fixes (mainly iOS) (#34)
Reviewed-on: #34
2024-02-12 19:19:00 +01:00
11 changed files with 114 additions and 64 deletions

@ -1 +1 @@
Subproject commit b7e7d46a046ba8a22897a514bf2311a0f81ab198 Subproject commit 1751123cde4ffad08ae27bdee4f8ddebd033fe76

View file

@ -20,7 +20,7 @@ pluginManagement {
plugins { plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "7.3.0" apply false id "com.android.application" version "7.3.0" apply false
id "org.jetbrains.kotlin.android" version "1.7.10" apply false id "org.jetbrains.kotlin.android" version "1.9.22" apply false
} }
include ":app" include ":app"

View file

@ -7,7 +7,7 @@
"next": "Další", "next": "Další",
"back": "Zpět", "back": "Zpět",
"finish": "Dokončit", "finish": "Dokončit",
"errorEmptyName": "Název peněženky nemůže být prázdný!", "errorEmptyName": "Název nemůže být prázdný!",
"welcome": "Vítejte!", "welcome": "Vítejte!",
"welcomeAboutPrasule": "Prašule je správce výdajů navržený pro lidi, kteří nechtějí vyplňovat každý malý detail.", "welcomeAboutPrasule": "Prašule je správce výdajů navržený pro lidi, kteří nechtějí vyplňovat každý malý detail.",
"welcomeInstruction": "Na této obrazovce si nastavíte svoji 'peněženku', ve které budou zaznamenány vaše výdaje uspořádané do kategorií, které si nastavíte hned potom.", "welcomeInstruction": "Na této obrazovce si nastavíte svoji 'peněženku', ve které budou zaznamenány vaše výdaje uspořádané do kategorií, které si nastavíte hned potom.",

View file

@ -7,7 +7,7 @@
"next": "Next", "next": "Next",
"back": "Back", "back": "Back",
"finish": "Finish", "finish": "Finish",
"errorEmptyName": "Wallet name cannot be empty", "errorEmptyName": "Name cannot be empty",
"welcome": "Welcome!", "welcome": "Welcome!",
"welcomeAboutPrasule": "Prašule is an expense tracker tool designed for people, who don't want to spend too much time filling in all the little details.", "welcomeAboutPrasule": "Prašule is an expense tracker tool designed for people, who don't want to spend too much time filling in all the little details.",
"welcomeInstruction": "On this screen you will set up your 'wallet', in which you will track your expenses categorized under categories, which you can later set in the settings menu.", "welcomeInstruction": "On this screen you will set up your 'wallet', in which you will track your expenses categorized under categories, which you can later set in the settings menu.",

View file

@ -428,11 +428,39 @@ class _CategoriesPieChartState extends State<CategoriesPieChart> {
(index) => Padding( (index) => Padding(
padding: const EdgeInsets.all(8), padding: const EdgeInsets.all(8),
child: Indicator( child: Indicator(
size: touchedIndex == index ? 18 : 16, size: (touchedIndex != -1 &&
touchedIndex ==
widget.categories
.where(
(element) => widget.entries
.where(
(w) =>
w.category.id ==
element
.id, // TODO: more elegant fix
)
.isNotEmpty,
)
.toList()
.indexOf(widget.categories[index]))
? 18
: 16,
color: widget.categories[index].color, color: widget.categories[index].color,
text: widget.categories[index].name, text: widget.categories[index].name,
textStyle: TextStyle( textStyle: TextStyle(
fontWeight: (touchedIndex == index) fontWeight: (touchedIndex != -1 &&
touchedIndex ==
widget.categories
.where(
(element) => widget.entries
.where(
(w) =>
w.category.id == element.id,
)
.isNotEmpty,
)
.toList()
.indexOf(widget.categories[index]))
? FontWeight.bold ? FontWeight.bold
: FontWeight.normal, : FontWeight.normal,
), ),

View file

@ -247,7 +247,9 @@ class _HomeViewState extends State<HomeView> {
.then((value) async { .then((value) async {
wallets = await WalletManager.listWallets(); wallets = await WalletManager.listWallets();
selectedWallet = await WalletManager.loadWallet( selectedWallet = await WalletManager.loadWallet(
selectedWallet!.name,); selectedWallet!.name,
);
setState(() {});
}); });
} else if (value == AppLocalizations.of(context).about) { } else if (value == AppLocalizations.of(context).about) {
showAbout(context); showAbout(context);
@ -650,7 +652,7 @@ class _HomeViewState extends State<HomeView> {
await showAdaptiveDialog<void>( await showAdaptiveDialog<void>(
context: context, context: context,
builder: (c) => StatefulBuilder( builder: (c) => StatefulBuilder(
builder: (ctx, setState) => AlertDialog.adaptive( builder: (ctx, setDialogState) => AlertDialog.adaptive(
actions: [ actions: [
TextButton( TextButton(
onPressed: () async { onPressed: () async {
@ -764,7 +766,7 @@ class _HomeViewState extends State<HomeView> {
1 && 1 &&
!value)) return; !value)) return;
selectedLanguages[index] = value; selectedLanguages[index] = value;
setState(() {}); setDialogState(() {});
}, },
), ),
const SizedBox( const SizedBox(

View file

@ -125,14 +125,16 @@ class _RecurringEntriesViewState extends State<RecurringEntriesView> {
floatingActionButton: FloatingActionButton( floatingActionButton: FloatingActionButton(
child: const Icon(Icons.add), child: const Icon(Icons.add),
onPressed: () { onPressed: () {
Navigator.of(context).push( Navigator.of(context)
platformRoute( .push(
(p0) => CreateRecurringEntryView( platformRoute(
w: selectedWallet!, (p0) => CreateRecurringEntryView(
locale: locale, w: selectedWallet!,
), locale: locale,
), ),
); ),
)
.then((value) => setState(() {}));
}, },
), ),
body: Center( body: Center(

View file

@ -1,4 +1,5 @@
import 'dart:async'; import 'dart:async';
import 'dart:io';
import 'package:dynamic_color/dynamic_color.dart'; import 'package:dynamic_color/dynamic_color.dart';
import 'package:flex_color_picker/flex_color_picker.dart'; import 'package:flex_color_picker/flex_color_picker.dart';
@ -152,6 +153,13 @@ class _EditCategoriesViewState extends State<EditCategoriesView> {
onTap: () async { onTap: () async {
final icon = await showIconPicker( final icon = await showIconPicker(
context, context,
iconPackModes: [
if (!Platform.isIOS && !Platform.isMacOS)
IconPack.material,
if (Platform.isIOS || Platform.isMacOS)
IconPack.cupertino,
],
// adaptiveDialog: true,
); );
if (icon != null) { if (icon != null) {
selectedWallet!.categories[i].icon = icon; selectedWallet!.categories[i].icon = icon;

View file

@ -1,4 +1,5 @@
import 'dart:async'; import 'dart:async';
import 'dart:io';
import 'package:currency_picker/currency_picker.dart'; import 'package:currency_picker/currency_picker.dart';
import 'package:dynamic_color/dynamic_color.dart'; import 'package:dynamic_color/dynamic_color.dart';
@ -153,10 +154,11 @@ class _SetupViewState extends State<SetupView> {
return; return;
} }
final wallet = Wallet( final wallet = Wallet(
name: name, name: name,
currency: _selectedCurrency, currency: _selectedCurrency,
categories: categories, categories: categories,
starterBalance: double.parse(_balanceController.text),); starterBalance: double.parse(_balanceController.text),
);
await WalletManager.saveWallet(wallet); await WalletManager.saveWallet(wallet);
if (widget.newWallet && context.mounted) { if (widget.newWallet && context.mounted) {
@ -340,6 +342,14 @@ class _SetupViewState extends State<SetupView> {
onTap: () async { onTap: () async {
final icon = await showIconPicker( final icon = await showIconPicker(
context, context,
iconPackModes: [
if (!Platform.isIOS &&
!Platform.isMacOS)
IconPack.material,
if (Platform.isIOS || Platform.isMacOS)
IconPack.cupertino,
],
// adaptiveDialog: true,
); );
if (icon != null) categories[i].icon = icon; if (icon != null) categories[i].icon = icon;
final materialEnabled = final materialEnabled =

View file

@ -109,10 +109,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: built_value name: built_value
sha256: a3ec2e0f967bc47f69f95009bb93db936288d61d5343b9436e378b28a2f830c6 sha256: fedde275e0a6b798c3296963c5cd224e3e1b55d0e478d5b7e65e6b540f363a0e
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "8.9.0" version: "8.9.1"
characters: characters:
dependency: transitive dependency: transitive
description: description:
@ -213,10 +213,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: dio name: dio
sha256: "797e1e341c3dd2f69f2dad42564a6feff3bfb87187d05abb93b9609e6f1645c3" sha256: "49af28382aefc53562459104f64d16b9dfd1e8ef68c862d5af436cc8356ce5a8"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.4.0" version: "5.4.1"
dots_indicator: dots_indicator:
dependency: transitive dependency: transitive
description: description:
@ -277,10 +277,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: fl_chart name: fl_chart
sha256: b5e2b0f13d93f8c532b5a2786bfb44580de1f50b927bf95813fa1af617e9caf8 sha256: "00b74ae680df6b1135bdbea00a7d1fc072a9180b7c3f3702e4b19a9943f5ed7d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.66.1" version: "0.66.2"
flex_color_picker: flex_color_picker:
dependency: "direct main" dependency: "direct main"
description: description:
@ -499,10 +499,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: image name: image
sha256: "49a0d4b0c12402853d3f227fe7c315601b238d126aa4caa5dbb2dcf99421aa4a" sha256: "4c68bfd5ae83e700b5204c1e74451e7bf3cf750e6843c6e158289cf56bda018e"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.1.6" version: "4.1.7"
integration_test: integration_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter
@ -560,26 +560,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker name: leak_tracker
sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" sha256: cdd14e3836065a1f6302a236ec8b5f700695c803c57ae11a1c84df31e6bcf831
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "10.0.0" version: "10.0.3"
leak_tracker_flutter_testing: leak_tracker_flutter_testing:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker_flutter_testing name: leak_tracker_flutter_testing
sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 sha256: "9b2ef90589911d665277464e0482b209d39882dffaaf4ef69a3561a3354b2ebc"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.1" version: "3.0.2"
leak_tracker_testing: leak_tracker_testing:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker_testing name: leak_tracker_testing
sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 sha256: fd3cd66cb2bcd7b50dcd3b413af49d78051f809c8b3f6e047962765c15a0d23d
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.1" version: "3.0.0"
lints: lints:
dependency: transitive dependency: transitive
description: description:
@ -840,10 +840,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_web name: shared_preferences_web
sha256: "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21" sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.2" version: "2.3.0"
shared_preferences_windows: shared_preferences_windows:
dependency: transitive dependency: transitive
description: description:
@ -981,26 +981,26 @@ packages:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: test name: test
sha256: a1f7595805820fcc05e5c52e3a231aedd0b72972cb333e8c738a8b1239448b6f sha256: "7ee446762c2c50b3bd4ea96fe13ffac69919352bd3b4b17bac3f3465edc58073"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.24.9" version: "1.25.2"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.6.1" version: "0.7.0"
test_core: test_core:
dependency: transitive dependency: transitive
description: description:
name: test_core name: test_core
sha256: a757b14fc47507060a162cc2530d9a4a2f92f5100a952c7443b5cad5ef5b106a sha256: "2bc4b4ecddd75309300d8096f781c0e3280ca1ef85beda558d33fcbedc2eead4"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.5.9" version: "0.6.0"
timing: timing:
dependency: transitive dependency: transitive
description: description:
@ -1021,26 +1021,26 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: url_launcher name: url_launcher
sha256: c512655380d241a337521703af62d2c122bf7b77a46ff7dd750092aa9433499c sha256: "0ecc004c62fd3ed36a2ffcbe0dd9700aee63bd7532d0b642a488b1ec310f492e"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.2.4" version: "6.2.5"
url_launcher_android: url_launcher_android:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_android name: url_launcher_android
sha256: "507dc655b1d9cb5ebc756032eb785f114e415f91557b73bf60b7e201dfedeb2f" sha256: d4ed0711849dd8e33eb2dd69c25db0d0d3fdc37e0a62e629fe32f57a22db2745
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.2.2" version: "6.3.0"
url_launcher_ios: url_launcher_ios:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_ios name: url_launcher_ios
sha256: "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03" sha256: "9149d493b075ed740901f3ee844a38a00b33116c7c5c10d7fb27df8987fb51d5"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.2.4" version: "6.2.5"
url_launcher_linux: url_launcher_linux:
dependency: transitive dependency: transitive
description: description:
@ -1061,18 +1061,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_platform_interface name: url_launcher_platform_interface
sha256: a932c3a8082e118f80a475ce692fde89dc20fddb24c57360b96bc56f7035de1f sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.1" version: "2.3.2"
url_launcher_web: url_launcher_web:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_web name: url_launcher_web
sha256: fff0932192afeedf63cdd50ecbb1bc825d31aed259f02bb8dba0f3b729a5e88b sha256: "3692a459204a33e04bc94f5fb91158faf4f2c8903281ddd82915adecdb1a901d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.3" version: "2.3.0"
url_launcher_windows: url_launcher_windows:
dependency: transitive dependency: transitive
description: description:
@ -1101,10 +1101,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: vm_service name: vm_service
sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 sha256: a2662fb1f114f4296cf3f5a50786a2d888268d7776cf681aa17d660ffa23b246
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "13.0.0" version: "14.0.0"
watcher: watcher:
dependency: transitive dependency: transitive
description: description:
@ -1117,18 +1117,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: web name: web
sha256: "4188706108906f002b3a293509234588823c8c979dc83304e229ff400c996b05" sha256: "1d9158c616048c38f712a6646e317a3426da10e884447626167240d45209cbad"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.4.2" version: "0.5.0"
web_socket_channel: web_socket_channel:
dependency: transitive dependency: transitive
description: description:
name: web_socket_channel name: web_socket_channel
sha256: "939ab60734a4f8fa95feacb55804fa278de28bdeef38e616dc08e44a84adea23" sha256: "1d8e795e2a8b3730c41b8a98a2dff2e0fb57ae6f0764a1c46ec5915387d257b2"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.4.3" version: "2.4.4"
webdriver: webdriver:
dependency: transitive dependency: transitive
description: description:
@ -1157,10 +1157,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: win32 name: win32
sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" sha256: "5a751eddf9db89b3e5f9d50c20ab8612296e4e8db69009788d6c8b060a84191c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.2.0" version: "4.1.4"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:
@ -1186,5 +1186,5 @@ packages:
source: hosted source: hosted
version: "3.1.2" version: "3.1.2"
sdks: sdks:
dart: ">=3.3.0-279.1.beta <4.0.0" dart: ">=3.3.0 <4.0.0"
flutter: ">=3.16.0" flutter: ">=3.19.0"

View file

@ -23,7 +23,7 @@ dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
flutter_file_dialog: ^3.0.2 flutter_file_dialog: ^3.0.2
flutter_iconpicker: ^3.2.4 flutter_iconpicker: <3.4.0
flutter_localizations: flutter_localizations:
sdk: flutter sdk: flutter
flutter_slidable: ^3.0.0 flutter_slidable: ^3.0.0