fix: optimization for iOS #30
6 changed files with 83 additions and 25 deletions
|
@ -7,6 +7,8 @@
|
|||
- Added sorting by oldest
|
||||
- Moved search into three-dot menu
|
||||
- Make search case-insensitive
|
||||
- Added titles above graphs
|
||||
- Some extra optimization for iOS
|
||||
# 1.0.0-alpha+5
|
||||
- Add tests
|
||||
- Add searching through entries to homepage
|
||||
|
|
|
@ -110,5 +110,8 @@
|
|||
"sortNewest":"Nejnovější první",
|
||||
"sortOldest":"Nejstarší první",
|
||||
"sort":"Seřadit",
|
||||
"search":"Prohledat"
|
||||
"search":"Prohledat",
|
||||
"expensesPerYear":"Měsíční výdaje v roce {year}",
|
||||
"expensesPerMonth":"Denní výdaje během měsíce {monthYear}",
|
||||
"expensesPerCategory":"Total expenses per category"
|
||||
}
|
|
@ -226,5 +226,26 @@
|
|||
"sortNewest":"Newest first",
|
||||
"sortOldest":"Oldest first",
|
||||
"sort":"Sort",
|
||||
"search":"Search"
|
||||
"search":"Search",
|
||||
"expensesPerYear":"Expenses per month in {year}",
|
||||
"@expensesPerYear":{
|
||||
"placeholders": {
|
||||
"year":{
|
||||
"description": "The year of the monthly expense sum",
|
||||
"example": "2024",
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"expensesPerMonth":"Expenses per day during {monthYear}",
|
||||
"@expensesPerMonth":{
|
||||
"placeholders": {
|
||||
"monthYear":{
|
||||
"description": "Month and year formatted through DateFormat class",
|
||||
"example": "June, 2024",
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"expensesPerCategory":"Total expenses per category"
|
||||
}
|
|
@ -78,8 +78,16 @@ class MyApp extends StatelessWidget {
|
|||
? darkColorScheme
|
||||
: lightColorScheme,
|
||||
),
|
||||
child: const CupertinoApp(
|
||||
localizationsDelegates: [
|
||||
child: CupertinoApp(
|
||||
theme: CupertinoThemeData(
|
||||
textTheme: CupertinoTextThemeData(
|
||||
primaryColor:
|
||||
((MediaQuery.of(context).platformBrightness ==
|
||||
Brightness.dark)
|
||||
? darkColorScheme
|
||||
: lightColorScheme)
|
||||
.onPrimary)),
|
||||
localizationsDelegates: const [
|
||||
AppLocalizations.delegate,
|
||||
...GlobalMaterialLocalizations.delegates,
|
||||
...GlobalCupertinoLocalizations.delegates,
|
||||
|
|
|
@ -71,6 +71,7 @@ class ExpensesLineChart extends StatelessWidget {
|
|||
LineChartData(
|
||||
lineTouchData: LineTouchData(
|
||||
touchTooltipData: LineTouchTooltipData(
|
||||
tooltipBgColor: Theme.of(context).colorScheme.secondaryContainer,
|
||||
getTooltipItems: (spots) => List<LineTooltipItem>.generate(
|
||||
spots.length,
|
||||
(index) => LineTooltipItem(
|
||||
|
@ -439,7 +440,9 @@ class _CategoriesPieChartState extends State<CategoriesPieChart> {
|
|||
const SizedBox(
|
||||
height: 5,
|
||||
),
|
||||
Expanded(
|
||||
LimitedBox(
|
||||
maxHeight: MediaQuery.of(context).size.height * 0.23,
|
||||
maxWidth: MediaQuery.of(context).size.width * 0.9,
|
||||
child: PieChart(
|
||||
PieChartData(
|
||||
centerSpaceRadius: double.infinity,
|
||||
|
|
|
@ -96,18 +96,8 @@ class _GraphViewState extends State<GraphView> {
|
|||
return Scaffold(
|
||||
floatingActionButton: Tooltip(
|
||||
message: AppLocalizations.of(context).changeDate,
|
||||
child: PlatformButton(
|
||||
style: ButtonStyle(
|
||||
backgroundColor: MaterialStateProperty.all(
|
||||
Theme.of(context).colorScheme.primary,
|
||||
),
|
||||
foregroundColor: MaterialStateProperty.all(
|
||||
Theme.of(context).colorScheme.onPrimary,
|
||||
),
|
||||
),
|
||||
text: yearly
|
||||
? DateFormat.y(locale).format(_selectedDate)
|
||||
: DateFormat.yMMMM(locale).format(_selectedDate),
|
||||
child: FloatingActionButton(
|
||||
child: const Icon(Icons.calendar_month),
|
||||
onPressed: () async {
|
||||
final firstDate = (selectedWallet!.entries
|
||||
..sort(
|
||||
|
@ -266,6 +256,23 @@ class _GraphViewState extends State<GraphView> {
|
|||
padding: const EdgeInsets.all(8),
|
||||
child: Column(
|
||||
children: [
|
||||
Text(
|
||||
yearly
|
||||
? AppLocalizations.of(context)
|
||||
.expensesPerYear(_selectedDate.year)
|
||||
: AppLocalizations.of(context)
|
||||
.expensesPerMonth(
|
||||
DateFormat.yMMMM()
|
||||
.format(_selectedDate),
|
||||
),
|
||||
style: const TextStyle(
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 15,
|
||||
),
|
||||
SizedBox(
|
||||
width: MediaQuery.of(context).size.width * 0.9,
|
||||
height:
|
||||
|
@ -328,14 +335,28 @@ class _GraphViewState extends State<GraphView> {
|
|||
Theme.of(context).colorScheme.secondaryContainer,
|
||||
),
|
||||
width: MediaQuery.of(context).size.width * 0.95,
|
||||
height: MediaQuery.of(context).size.height * 0.35,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8),
|
||||
child: CategoriesPieChart(
|
||||
symbol: selectedWallet!.currency.symbol,
|
||||
entries: selectedWallet!.entries,
|
||||
categories: selectedWallet!.categories,
|
||||
),
|
||||
height: MediaQuery.of(context).size.height * 0.4,
|
||||
child: Column(
|
||||
children: [
|
||||
const SizedBox(
|
||||
height: 10,
|
||||
),
|
||||
Text(
|
||||
AppLocalizations.of(context).expensesPerCategory,
|
||||
style: const TextStyle(
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(8),
|
||||
child: CategoriesPieChart(
|
||||
symbol: selectedWallet!.currency.symbol,
|
||||
entries: selectedWallet!.entries,
|
||||
categories: selectedWallet!.categories,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
|
|
Loading…
Reference in a new issue