Compare commits
11 commits
7dbf4c969a
...
bd17e12e1b
Author | SHA1 | Date | |
---|---|---|---|
|
bd17e12e1b | ||
|
af04accabf | ||
|
c7e40b12b7 | ||
|
4a3f097b02 | ||
|
e5e803057a | ||
|
a6872408fa | ||
|
4d7144267e | ||
|
aeda571f35 | ||
|
776e9b056a | ||
|
ecf15ba559 | ||
|
7188c55660 |
11 changed files with 114 additions and 64 deletions
2
.flutter
2
.flutter
|
@ -1 +1 @@
|
|||
Subproject commit b7e7d46a046ba8a22897a514bf2311a0f81ab198
|
||||
Subproject commit 1751123cde4ffad08ae27bdee4f8ddebd033fe76
|
|
@ -20,7 +20,7 @@ pluginManagement {
|
|||
plugins {
|
||||
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
|
||||
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"
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
"next": "Další",
|
||||
"back": "Zpět",
|
||||
"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!",
|
||||
"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.",
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
"next": "Next",
|
||||
"back": "Back",
|
||||
"finish": "Finish",
|
||||
"errorEmptyName": "Wallet name cannot be empty",
|
||||
"errorEmptyName": "Name cannot be empty",
|
||||
"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.",
|
||||
"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.",
|
||||
|
|
|
@ -428,11 +428,39 @@ class _CategoriesPieChartState extends State<CategoriesPieChart> {
|
|||
(index) => Padding(
|
||||
padding: const EdgeInsets.all(8),
|
||||
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,
|
||||
text: widget.categories[index].name,
|
||||
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.normal,
|
||||
),
|
||||
|
|
|
@ -247,7 +247,9 @@ class _HomeViewState extends State<HomeView> {
|
|||
.then((value) async {
|
||||
wallets = await WalletManager.listWallets();
|
||||
selectedWallet = await WalletManager.loadWallet(
|
||||
selectedWallet!.name,);
|
||||
selectedWallet!.name,
|
||||
);
|
||||
setState(() {});
|
||||
});
|
||||
} else if (value == AppLocalizations.of(context).about) {
|
||||
showAbout(context);
|
||||
|
@ -650,7 +652,7 @@ class _HomeViewState extends State<HomeView> {
|
|||
await showAdaptiveDialog<void>(
|
||||
context: context,
|
||||
builder: (c) => StatefulBuilder(
|
||||
builder: (ctx, setState) => AlertDialog.adaptive(
|
||||
builder: (ctx, setDialogState) => AlertDialog.adaptive(
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: () async {
|
||||
|
@ -764,7 +766,7 @@ class _HomeViewState extends State<HomeView> {
|
|||
1 &&
|
||||
!value)) return;
|
||||
selectedLanguages[index] = value;
|
||||
setState(() {});
|
||||
setDialogState(() {});
|
||||
},
|
||||
),
|
||||
const SizedBox(
|
||||
|
|
|
@ -125,14 +125,16 @@ class _RecurringEntriesViewState extends State<RecurringEntriesView> {
|
|||
floatingActionButton: FloatingActionButton(
|
||||
child: const Icon(Icons.add),
|
||||
onPressed: () {
|
||||
Navigator.of(context).push(
|
||||
platformRoute(
|
||||
(p0) => CreateRecurringEntryView(
|
||||
w: selectedWallet!,
|
||||
locale: locale,
|
||||
),
|
||||
),
|
||||
);
|
||||
Navigator.of(context)
|
||||
.push(
|
||||
platformRoute(
|
||||
(p0) => CreateRecurringEntryView(
|
||||
w: selectedWallet!,
|
||||
locale: locale,
|
||||
),
|
||||
),
|
||||
)
|
||||
.then((value) => setState(() {}));
|
||||
},
|
||||
),
|
||||
body: Center(
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:dynamic_color/dynamic_color.dart';
|
||||
import 'package:flex_color_picker/flex_color_picker.dart';
|
||||
|
@ -152,6 +153,13 @@ class _EditCategoriesViewState extends State<EditCategoriesView> {
|
|||
onTap: () async {
|
||||
final icon = await showIconPicker(
|
||||
context,
|
||||
iconPackModes: [
|
||||
if (!Platform.isIOS && !Platform.isMacOS)
|
||||
IconPack.material,
|
||||
if (Platform.isIOS || Platform.isMacOS)
|
||||
IconPack.cupertino,
|
||||
],
|
||||
// adaptiveDialog: true,
|
||||
);
|
||||
if (icon != null) {
|
||||
selectedWallet!.categories[i].icon = icon;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:currency_picker/currency_picker.dart';
|
||||
import 'package:dynamic_color/dynamic_color.dart';
|
||||
|
@ -153,10 +154,11 @@ class _SetupViewState extends State<SetupView> {
|
|||
return;
|
||||
}
|
||||
final wallet = Wallet(
|
||||
name: name,
|
||||
currency: _selectedCurrency,
|
||||
categories: categories,
|
||||
starterBalance: double.parse(_balanceController.text),);
|
||||
name: name,
|
||||
currency: _selectedCurrency,
|
||||
categories: categories,
|
||||
starterBalance: double.parse(_balanceController.text),
|
||||
);
|
||||
await WalletManager.saveWallet(wallet);
|
||||
|
||||
if (widget.newWallet && context.mounted) {
|
||||
|
@ -340,6 +342,14 @@ class _SetupViewState extends State<SetupView> {
|
|||
onTap: () async {
|
||||
final icon = await showIconPicker(
|
||||
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;
|
||||
final materialEnabled =
|
||||
|
|
84
pubspec.lock
84
pubspec.lock
|
@ -109,10 +109,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: built_value
|
||||
sha256: a3ec2e0f967bc47f69f95009bb93db936288d61d5343b9436e378b28a2f830c6
|
||||
sha256: fedde275e0a6b798c3296963c5cd224e3e1b55d0e478d5b7e65e6b540f363a0e
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.9.0"
|
||||
version: "8.9.1"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -213,10 +213,10 @@ packages:
|
|||
dependency: "direct main"
|
||||
description:
|
||||
name: dio
|
||||
sha256: "797e1e341c3dd2f69f2dad42564a6feff3bfb87187d05abb93b9609e6f1645c3"
|
||||
sha256: "49af28382aefc53562459104f64d16b9dfd1e8ef68c862d5af436cc8356ce5a8"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.4.0"
|
||||
version: "5.4.1"
|
||||
dots_indicator:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -277,10 +277,10 @@ packages:
|
|||
dependency: "direct main"
|
||||
description:
|
||||
name: fl_chart
|
||||
sha256: b5e2b0f13d93f8c532b5a2786bfb44580de1f50b927bf95813fa1af617e9caf8
|
||||
sha256: "00b74ae680df6b1135bdbea00a7d1fc072a9180b7c3f3702e4b19a9943f5ed7d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.66.1"
|
||||
version: "0.66.2"
|
||||
flex_color_picker:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -499,10 +499,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: image
|
||||
sha256: "49a0d4b0c12402853d3f227fe7c315601b238d126aa4caa5dbb2dcf99421aa4a"
|
||||
sha256: "4c68bfd5ae83e700b5204c1e74451e7bf3cf750e6843c6e158289cf56bda018e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.1.6"
|
||||
version: "4.1.7"
|
||||
integration_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
|
@ -560,26 +560,26 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker
|
||||
sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
|
||||
sha256: cdd14e3836065a1f6302a236ec8b5f700695c803c57ae11a1c84df31e6bcf831
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.0.0"
|
||||
version: "10.0.3"
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_flutter_testing
|
||||
sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
|
||||
sha256: "9b2ef90589911d665277464e0482b209d39882dffaaf4ef69a3561a3354b2ebc"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
version: "3.0.2"
|
||||
leak_tracker_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_testing
|
||||
sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
|
||||
sha256: fd3cd66cb2bcd7b50dcd3b413af49d78051f809c8b3f6e047962765c15a0d23d
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
version: "3.0.0"
|
||||
lints:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -840,10 +840,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_web
|
||||
sha256: "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21"
|
||||
sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.2"
|
||||
version: "2.3.0"
|
||||
shared_preferences_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -981,26 +981,26 @@ packages:
|
|||
dependency: "direct dev"
|
||||
description:
|
||||
name: test
|
||||
sha256: a1f7595805820fcc05e5c52e3a231aedd0b72972cb333e8c738a8b1239448b6f
|
||||
sha256: "7ee446762c2c50b3bd4ea96fe13ffac69919352bd3b4b17bac3f3465edc58073"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.24.9"
|
||||
version: "1.25.2"
|
||||
test_api:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
|
||||
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.1"
|
||||
version: "0.7.0"
|
||||
test_core:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_core
|
||||
sha256: a757b14fc47507060a162cc2530d9a4a2f92f5100a952c7443b5cad5ef5b106a
|
||||
sha256: "2bc4b4ecddd75309300d8096f781c0e3280ca1ef85beda558d33fcbedc2eead4"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.5.9"
|
||||
version: "0.6.0"
|
||||
timing:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1021,26 +1021,26 @@ packages:
|
|||
dependency: "direct main"
|
||||
description:
|
||||
name: url_launcher
|
||||
sha256: c512655380d241a337521703af62d2c122bf7b77a46ff7dd750092aa9433499c
|
||||
sha256: "0ecc004c62fd3ed36a2ffcbe0dd9700aee63bd7532d0b642a488b1ec310f492e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.2.4"
|
||||
version: "6.2.5"
|
||||
url_launcher_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_android
|
||||
sha256: "507dc655b1d9cb5ebc756032eb785f114e415f91557b73bf60b7e201dfedeb2f"
|
||||
sha256: d4ed0711849dd8e33eb2dd69c25db0d0d3fdc37e0a62e629fe32f57a22db2745
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.2.2"
|
||||
version: "6.3.0"
|
||||
url_launcher_ios:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_ios
|
||||
sha256: "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03"
|
||||
sha256: "9149d493b075ed740901f3ee844a38a00b33116c7c5c10d7fb27df8987fb51d5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.2.4"
|
||||
version: "6.2.5"
|
||||
url_launcher_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1061,18 +1061,18 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_platform_interface
|
||||
sha256: a932c3a8082e118f80a475ce692fde89dc20fddb24c57360b96bc56f7035de1f
|
||||
sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.1"
|
||||
version: "2.3.2"
|
||||
url_launcher_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_web
|
||||
sha256: fff0932192afeedf63cdd50ecbb1bc825d31aed259f02bb8dba0f3b729a5e88b
|
||||
sha256: "3692a459204a33e04bc94f5fb91158faf4f2c8903281ddd82915adecdb1a901d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.3"
|
||||
version: "2.3.0"
|
||||
url_launcher_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1101,10 +1101,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
|
||||
sha256: a2662fb1f114f4296cf3f5a50786a2d888268d7776cf681aa17d660ffa23b246
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "13.0.0"
|
||||
version: "14.0.0"
|
||||
watcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1117,18 +1117,18 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: web
|
||||
sha256: "4188706108906f002b3a293509234588823c8c979dc83304e229ff400c996b05"
|
||||
sha256: "1d9158c616048c38f712a6646e317a3426da10e884447626167240d45209cbad"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.4.2"
|
||||
version: "0.5.0"
|
||||
web_socket_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web_socket_channel
|
||||
sha256: "939ab60734a4f8fa95feacb55804fa278de28bdeef38e616dc08e44a84adea23"
|
||||
sha256: "1d8e795e2a8b3730c41b8a98a2dff2e0fb57ae6f0764a1c46ec5915387d257b2"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.3"
|
||||
version: "2.4.4"
|
||||
webdriver:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1157,10 +1157,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: win32
|
||||
sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8"
|
||||
sha256: "5a751eddf9db89b3e5f9d50c20ab8612296e4e8db69009788d6c8b060a84191c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.2.0"
|
||||
version: "4.1.4"
|
||||
xdg_directories:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1186,5 +1186,5 @@ packages:
|
|||
source: hosted
|
||||
version: "3.1.2"
|
||||
sdks:
|
||||
dart: ">=3.3.0-279.1.beta <4.0.0"
|
||||
flutter: ">=3.16.0"
|
||||
dart: ">=3.3.0 <4.0.0"
|
||||
flutter: ">=3.19.0"
|
||||
|
|
|
@ -23,7 +23,7 @@ dependencies:
|
|||
flutter:
|
||||
sdk: flutter
|
||||
flutter_file_dialog: ^3.0.2
|
||||
flutter_iconpicker: ^3.2.4
|
||||
flutter_iconpicker: <3.4.0
|
||||
flutter_localizations:
|
||||
sdk: flutter
|
||||
flutter_slidable: ^3.0.0
|
||||
|
|
Loading…
Reference in a new issue