Compare commits

..

No commits in common. "master" and "4.2.0" have entirely different histories.

9 changed files with 42 additions and 110 deletions

View file

@ -1,14 +0,0 @@
name: Iconica Standard Component Release Workflow
# Workflow Caller version: 1.0.0
on:
release:
types: [published]
workflow_dispatch:
jobs:
call-global-iconica-workflow:
uses: Iconica-Development/.github/.github/workflows/component-release.yml@master
secrets: inherit
permissions: write-all

4
.gitignore vendored
View file

@ -44,7 +44,3 @@ app.*.map.json
ios ios
.metadata .metadata
pubspec.lock pubspec.lock
# FVM Version Cache
.fvm/
.fvmrc

View file

@ -1,15 +1,3 @@
## 4.2.4
- Fixed the userstory to always call the splashScreenFuture and killswitchservice logic when a custom splashScreenBuilder is provided
## 4.2.3
- Added check if introduction should be shown according to the service before showing the introduction at all
## 4.2.2
- Added custom navigator in the root of the navigator user-story
## 4.2.1
- Updated flutter_introduction to 5.0.0
## 4.1.0 ## 4.1.0
- Updated README - Updated README
- Removed check if the introductions should be shown. - Removed check if the introductions should be shown.

3
example/.gitignore vendored
View file

@ -31,9 +31,6 @@ migrate_working_dir/
.pub/ .pub/
/build/ /build/
# platforms
/web
# Symbolication related # Symbolication related
app.*.symbols app.*.symbols

View file

@ -1,16 +0,0 @@
# example
A new Flutter project.
## Getting Started
This project is a starting point for a Flutter application.
A few resources to get you started if this is your first Flutter project:
- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)
For help getting started with Flutter development, view the
[online documentation](https://docs.flutter.dev/), which offers tutorials,
samples, guidance on mobile development, and a full API reference.

View file

@ -12,8 +12,10 @@ dependencies:
flutter_start: flutter_start:
path: ../ path: ../
flutter_introduction_shared_preferences: flutter_introduction_shared_preferences:
hosted: https://forgejo.internal.iconica.nl/api/packages/internal/pub/ git:
version: ^5.0.0 url: https://github.com/Iconica-Development/flutter_introduction
ref: 4.0.0
path: packages/flutter_introduction_shared_preferences
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:

View file

@ -19,11 +19,13 @@ class NavigatorStartUserStory extends StatelessWidget {
final void Function(BuildContext context) onComplete; final void Function(BuildContext context) onComplete;
@override @override
Widget build(BuildContext context) => Navigator( Widget build(BuildContext context) {
onGenerateInitialRoutes: (_, __) => [ if (!configuration.showSplashScreen) {
_getInitialRoute(configuration, onComplete), return _introduction(configuration, context, onComplete);
], }
);
return _splashScreen(configuration, context, onComplete);
}
} }
/// Enter the start user story with the Navigator 1.0 API. /// Enter the start user story with the Navigator 1.0 API.
@ -40,15 +42,6 @@ Future<void> startNavigatorUserStory(
StartUserStoryConfiguration configuration, { StartUserStoryConfiguration configuration, {
required void Function(BuildContext context) onComplete, required void Function(BuildContext context) onComplete,
}) async { }) async {
var initialRoute = _getInitialRoute(configuration, onComplete);
await Navigator.of(context).push(initialRoute);
}
MaterialPageRoute<dynamic> _getInitialRoute(
StartUserStoryConfiguration configuration,
void Function(BuildContext context) onComplete,
) {
var initialRoute = MaterialPageRoute( var initialRoute = MaterialPageRoute(
builder: (context) => _splashScreen( builder: (context) => _splashScreen(
configuration, configuration,
@ -66,7 +59,8 @@ MaterialPageRoute<dynamic> _getInitialRoute(
), ),
); );
} }
return initialRoute;
await Navigator.of(context).push(initialRoute);
} }
Widget _splashScreen( Widget _splashScreen(
@ -104,32 +98,28 @@ Widget _splashScreen(
if (configuration.useKillswitch && isAllowedToPassThrough) return; if (configuration.useKillswitch && isAllowedToPassThrough) return;
var introService = configuration.introductionService ?? if ((!configuration.showIntroduction) && context.mounted) {
IntroductionService(SharedPreferencesIntroductionDataProvider()); onComplete(context);
return;
}
var shouldShowIntroduction = if (context.mounted) {
configuration.showIntroduction && await introService.shouldShow(); await navigator.pushReplacement(
MaterialPageRoute(
if (!context.mounted) return; builder: (context) => _introduction(
configuration,
if (!shouldShowIntroduction) return onComplete(context); context,
onComplete,
await navigator.pushReplacement( ),
MaterialPageRoute(
builder: (context) => _introduction(
configuration,
context,
onComplete,
), ),
), );
); }
} }
unawaited(splashHandler());
var builder = configuration.splashScreenBuilder; var builder = configuration.splashScreenBuilder;
if (builder == null) { if (builder == null) {
unawaited(splashHandler());
return Scaffold( return Scaffold(
backgroundColor: configuration.splashScreenBackgroundColor, backgroundColor: configuration.splashScreenBackgroundColor,
body: Center( body: Center(

View file

@ -1,8 +1,7 @@
name: flutter_start name: flutter_start
description: "Flutter_start is a package that allows you to jumpstart your application with a splashScreen, introduction and a home." description: "Flutter_start is a package that allows you to jumpstart your application with a splashScreen, introduction and a home."
version: 4.2.4 publish_to: "none"
version: 4.2.0
publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub
environment: environment:
sdk: ">=3.2.5 <4.0.0" sdk: ">=3.2.5 <4.0.0"
@ -10,16 +9,20 @@ environment:
dependencies: dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
cupertino_icons: ">=1.0.2 <2.0.0" cupertino_icons: ^1.0.2
go_router: ">=14.2.0 <15.0.0" go_router: any
http: ">=1.2.1 <2.0.0" http: any
package_info_plus: ">=8.0.0 <9.0.0" package_info_plus: any
flutter_introduction: flutter_introduction:
hosted: https://forgejo.internal.iconica.nl/api/packages/internal/pub git:
version: ^5.0.0 url: https://github.com/Iconica-Development/flutter_introduction
ref: 4.0.0
path: packages/flutter_introduction
flutter_introduction_shared_preferences: flutter_introduction_shared_preferences:
hosted: https://forgejo.internal.iconica.nl/api/packages/internal/pub/ git:
version: ^5.0.0 url: https://github.com/Iconica-Development/flutter_introduction
ref: 4.0.0
path: packages/flutter_introduction_shared_preferences
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:

View file

@ -1,14 +0,0 @@
// This is an example unit test.
//
// A unit test tests a single function, method, or class. To learn more about
// writing unit tests, visit
// https://flutter.dev/docs/cookbook/testing/unit/introduction
import 'package:flutter_test/flutter_test.dart';
void main() {
group('Plus Operator', () {
test('should add two numbers together', () {
expect(1 + 1, 2);
});
});
}