diff --git a/mobile/ios/Runner.xcodeproj/project.pbxproj b/mobile/ios/Runner.xcodeproj/project.pbxproj index 7e59194..7afd124 100644 --- a/mobile/ios/Runner.xcodeproj/project.pbxproj +++ b/mobile/ios/Runner.xcodeproj/project.pbxproj @@ -127,7 +127,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1320; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -254,6 +254,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -272,7 +273,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -326,6 +327,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -350,7 +352,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -381,6 +383,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -399,7 +402,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/mobile/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/mobile/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index c87d15a..6dd6010 100644 --- a/mobile/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/mobile/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ { ScrollController listController = ScrollController(); return Consumer( builder: (context, provider, _) => AerisPage( + floatingActionButton: FloatingActionButton( + onPressed: () => showAerisCardPage(context, (_) => const CreatePipelinePage()), + backgroundColor: Theme.of(context).colorScheme.secondary, + child: const Icon(Icons.add), + ), actions: [ HomePageSortMenu( collectionProvider: provider, @@ -51,29 +56,10 @@ class _HomePageState extends State { padding: const EdgeInsets.only(bottom: 20, top: 20, left: 10, right: 10), controller: listController, itemCount: provider.pipelineCount + 1, - itemBuilder: (BuildContext context, int index) { - if (index == provider.pipelineCount) { - return ClickableCard( - color: Theme.of(context).colorScheme.secondary, - body: Padding( - padding: const EdgeInsets.only(top: 20, bottom: 20), - child: Text("Create a pipeline", - textAlign: TextAlign.center, - style: TextStyle( - color: Theme.of(context).colorScheme.onSecondary, - fontSize: 20, - fontWeight: FontWeight.w600)), - ), - onTap: () { - showAerisCardPage(context, (_) => const CreatePipelinePage()); - }, - ); - } - return PipelineCard( - pipeline: provider.getPipelineAt(index)); - }, + itemBuilder: (BuildContext context, int index) => + PipelineCard(pipeline: provider.getPipelineAt(index), ), )), - ); + )); } } diff --git a/mobile/lib/src/widgets/action_form.dart b/mobile/lib/src/widgets/action_form.dart index ca862a9..2cb7626 100644 --- a/mobile/lib/src/widgets/action_form.dart +++ b/mobile/lib/src/widgets/action_form.dart @@ -44,7 +44,7 @@ class _ActionFormState extends State { validator: FormBuilderValidators.compose([ FormBuilderValidators.required(context), ]), - keyboardType: (widget.initValues.containsKey(name)) && widget.initValues[name] is Int ? TextInputType.number : null, + keyboardType: (widget.initValues.containsKey(name)) && widget.initValues[name] is int ? TextInputType.number : null, )), ...[ ElevatedButton( diff --git a/mobile/lib/src/widgets/aeris_page.dart b/mobile/lib/src/widgets/aeris_page.dart index 3fb2553..dc0ecfc 100644 --- a/mobile/lib/src/widgets/aeris_page.dart +++ b/mobile/lib/src/widgets/aeris_page.dart @@ -9,18 +9,22 @@ class AerisPage extends StatelessWidget { /// Display appbar or not final bool displayAppbar; + final Widget? floatingActionButton; + /// Actions for appbar final List actions; const AerisPage( {Key? key, required this.body, this.displayAppbar = true, + this.floatingActionButton, this.actions = const []}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( + floatingActionButton: floatingActionButton, resizeToAvoidBottomInset: false, body: SizedBox( width: MediaQuery.of(context).size.width,