Compare commits

..

No commits in common. "7188c556609dc277e3b93d9a904e688cf4ced586" and "3acf5b289951b556279b235a10691a7f57622621" have entirely different histories.

5 changed files with 104 additions and 193 deletions

View file

@ -18,8 +18,6 @@
- Make pie chart values more visible by adding the category's corresponding color as background - Make pie chart values more visible by adding the category's corresponding color as background
- Welcome text on Setup view is now centered - Welcome text on Setup view is now centered
- Editing entries is now done by tapping the entry, instead of a dedicated button - Editing entries is now done by tapping the entry, instead of a dedicated button
- return iOS (Cupertino) widgets only on iOS/macOS
- Show action sheet in graph settings on iOS instead of InkWell
# 1.0.0-alpha+5 # 1.0.0-alpha+5
- Add tests - Add tests

View file

@ -465,7 +465,7 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = { buildSettings = {
ARCHS = "$(ARCHS_STANDARD)"; ARCHS = x86_64;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
@ -647,7 +647,7 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = { buildSettings = {
ARCHS = "$(ARCHS_STANDARD)"; ARCHS = x86_64;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
@ -672,7 +672,7 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = { buildSettings = {
ARCHS = "$(ARCHS_STANDARD)"; ARCHS = x86_64;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";

View file

@ -39,11 +39,15 @@
<key>UISupportedInterfaceOrientations</key> <key>UISupportedInterfaceOrientations</key>
<array> <array>
<string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array> </array>
<key>UISupportedInterfaceOrientations~ipad</key> <key>UISupportedInterfaceOrientations~ipad</key>
<array> <array>
<string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string> <string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array> </array>
<key>UTExportedTypeDeclarations</key> <key>UTExportedTypeDeclarations</key>
<array> <array>

View file

@ -11,10 +11,10 @@ abstract class PlatformWidget<A extends Widget, I extends Widget>
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (Platform.isIOS || Platform.isMacOS) { if (Platform.isAndroid) {
return createIosWidget(context);
} else {
return createAndroidWidget(context); return createAndroidWidget(context);
} else {
return createIosWidget(context);
} }
} }

View file

@ -1,6 +1,3 @@
import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:settings_ui/settings_ui.dart'; import 'package:settings_ui/settings_ui.dart';
@ -50,103 +47,59 @@ class _GraphTypeSettingsViewState extends State<GraphTypeSettingsView> {
? AppLocalizations.of(context).barChart ? AppLocalizations.of(context).barChart
: AppLocalizations.of(context).lineChart, : AppLocalizations.of(context).lineChart,
), ),
onPressed: (c) { onPressed: (c) => showAdaptiveDialog<void>(
if (Platform.isIOS) { context: c,
// iOS does not use Material widgets => no inkwell support builder: (ctx) => AlertDialog.adaptive(
showCupertinoModalPopup<void>( title: Text(AppLocalizations.of(context).selectType),
context: context, content: SizedBox(
builder: (ctx) => CupertinoActionSheet( height: 80,
title: Text(AppLocalizations.of(context).selectType), child: Column(
actions: [ children: [
CupertinoActionSheetAction( SizedBox(
onPressed: () async { width: MediaQuery.of(ctx).size.width,
final s = await SharedPreferences.getInstance(); child: InkWell(
await s.setInt("yearlygraph", 1); child: Padding(
_yearly = 1; padding: const EdgeInsets.all(8),
if (!ctx.mounted) return; child: Text(
Navigator.of(ctx).pop(); AppLocalizations.of(context).barChart,
setState(() {}); textAlign: TextAlign.center,
}, ),
child: Text( ),
AppLocalizations.of(context).barChart, onTap: () async {
textAlign: TextAlign.center, final s = await SharedPreferences.getInstance();
await s.setInt("yearlygraph", 1);
_yearly = 1;
if (!ctx.mounted) return;
Navigator.of(ctx).pop();
setState(() {});
},
), ),
), ),
CupertinoActionSheetAction( SizedBox(
onPressed: () async { width: MediaQuery.of(context).size.width,
final s = await SharedPreferences.getInstance(); child: InkWell(
await s.setInt("yearlygraph", 2); child: Padding(
_yearly = 2; padding: const EdgeInsets.all(8),
if (!ctx.mounted) return; child: Text(
Navigator.of(ctx).pop(); AppLocalizations.of(context).lineChart,
setState(() {}); textAlign: TextAlign.center,
}, ),
child: Text( ),
AppLocalizations.of(context).lineChart, onTap: () async {
textAlign: TextAlign.center, final s = await SharedPreferences.getInstance();
await s.setInt("yearlygraph", 2);
_yearly = 2;
if (!ctx.mounted) return;
Navigator.of(ctx).pop();
setState(() {});
},
), ),
), ),
], ],
), ),
); ),
} else { ),
showAdaptiveDialog<void>( ),
context: c,
builder: (ctx) => AlertDialog.adaptive(
title: Text(AppLocalizations.of(context).selectType),
content: SizedBox(
height: 80,
child: Column(
children: [
SizedBox(
width: MediaQuery.of(ctx).size.width,
child: InkWell(
child: Padding(
padding: const EdgeInsets.all(8),
child: Text(
AppLocalizations.of(context).barChart,
textAlign: TextAlign.center,
),
),
onTap: () async {
final s =
await SharedPreferences.getInstance();
await s.setInt("yearlygraph", 1);
_yearly = 1;
if (!ctx.mounted) return;
Navigator.of(ctx).pop();
setState(() {});
},
),
),
SizedBox(
width: MediaQuery.of(context).size.width,
child: InkWell(
child: Padding(
padding: const EdgeInsets.all(8),
child: Text(
AppLocalizations.of(context).lineChart,
textAlign: TextAlign.center,
),
),
onTap: () async {
final s =
await SharedPreferences.getInstance();
await s.setInt("yearlygraph", 2);
_yearly = 2;
if (!ctx.mounted) return;
Navigator.of(ctx).pop();
setState(() {});
},
),
),
],
),
),
),
);
}
},
), ),
SettingsTile.navigation( SettingsTile.navigation(
title: Text(AppLocalizations.of(context).monthly), title: Text(AppLocalizations.of(context).monthly),
@ -155,103 +108,59 @@ class _GraphTypeSettingsViewState extends State<GraphTypeSettingsView> {
? AppLocalizations.of(context).barChart ? AppLocalizations.of(context).barChart
: AppLocalizations.of(context).lineChart, : AppLocalizations.of(context).lineChart,
), ),
onPressed: (c) { onPressed: (c) => showAdaptiveDialog<void>(
if (Platform.isIOS) { context: c,
// iOS does not use Material widgets => no inkwell support builder: (ctx) => AlertDialog.adaptive(
showCupertinoModalPopup<void>( title: Text(AppLocalizations.of(context).selectType),
context: context, content: SizedBox(
builder: (ctx) => CupertinoActionSheet( height: 80,
title: Text(AppLocalizations.of(context).selectType), child: Column(
actions: [ children: [
CupertinoActionSheetAction( SizedBox(
onPressed: () async { width: MediaQuery.of(ctx).size.width,
final s = await SharedPreferences.getInstance(); child: InkWell(
await s.setInt("monthlygraph", 1); child: Padding(
_monthly = 1; padding: const EdgeInsets.all(8),
if (!ctx.mounted) return; child: Text(
Navigator.of(ctx).pop(); AppLocalizations.of(context).barChart,
setState(() {}); textAlign: TextAlign.center,
}, ),
child: Text( ),
AppLocalizations.of(context).barChart, onTap: () async {
textAlign: TextAlign.center, final s = await SharedPreferences.getInstance();
await s.setInt("monthlygraph", 1);
_monthly = 1;
if (!ctx.mounted) return;
Navigator.of(ctx).pop();
setState(() {});
},
), ),
), ),
CupertinoActionSheetAction( SizedBox(
onPressed: () async { width: MediaQuery.of(ctx).size.width,
final s = await SharedPreferences.getInstance(); child: InkWell(
await s.setInt("monthlygraph", 2); child: Padding(
_monthly = 2; padding: const EdgeInsets.all(8),
if (!ctx.mounted) return; child: Text(
Navigator.of(ctx).pop(); AppLocalizations.of(context).lineChart,
setState(() {}); textAlign: TextAlign.center,
}, ),
child: Text( ),
AppLocalizations.of(context).lineChart, onTap: () async {
textAlign: TextAlign.center, final s = await SharedPreferences.getInstance();
await s.setInt("monthlygraph", 2);
_monthly = 2;
if (!ctx.mounted) return;
Navigator.of(ctx).pop();
setState(() {});
},
), ),
), ),
], ],
), ),
); ),
} else { ),
showAdaptiveDialog<void>( ),
context: c,
builder: (ctx) => AlertDialog.adaptive(
title: Text(AppLocalizations.of(context).selectType),
content: SizedBox(
height: 80,
child: Column(
children: [
SizedBox(
width: MediaQuery.of(ctx).size.width,
child: InkWell(
child: Padding(
padding: const EdgeInsets.all(8),
child: Text(
AppLocalizations.of(context).barChart,
textAlign: TextAlign.center,
),
),
onTap: () async {
final s =
await SharedPreferences.getInstance();
await s.setInt("monthlygraph", 1);
_monthly = 1;
if (!ctx.mounted) return;
Navigator.of(ctx).pop();
setState(() {});
},
),
),
SizedBox(
width: MediaQuery.of(context).size.width,
child: InkWell(
child: Padding(
padding: const EdgeInsets.all(8),
child: Text(
AppLocalizations.of(context).lineChart,
textAlign: TextAlign.center,
),
),
onTap: () async {
final s =
await SharedPreferences.getInstance();
await s.setInt("monthlygraph", 2);
_monthly = 2;
if (!ctx.mounted) return;
Navigator.of(ctx).pop();
setState(() {});
},
),
),
],
),
),
),
);
}
},
), ),
], ],
), ),