Compare commits

..

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

10 changed files with 43 additions and 111 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
.metadata
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
- Updated README
- Removed check if the introductions should be shown.

3
example/.gitignore vendored
View file

@ -31,9 +31,6 @@ migrate_working_dir/
.pub/
/build/
# platforms
/web
# Symbolication related
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:
path: ../
flutter_introduction_shared_preferences:
hosted: https://forgejo.internal.iconica.nl/api/packages/internal/pub/
version: ^5.0.0
git:
url: https://github.com/Iconica-Development/flutter_introduction
ref: 3.1.0
path: packages/flutter_introduction_shared_preferences
dev_dependencies:
flutter_test:

View file

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

View file

@ -2,5 +2,5 @@ import 'package:flutter/material.dart';
Text defaultSplashScreen(BuildContext context) => Text(
'iconinstagram',
style: Theme.of(context).textTheme.headlineLarge,
style: Theme.of(context).textTheme.titleLarge,
);

View file

@ -1,8 +1,7 @@
name: flutter_start
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: https://forgejo.internal.iconica.nl/api/packages/internal/pub
publish_to: "none"
version: 4.1.0
environment:
sdk: ">=3.2.5 <4.0.0"
@ -10,16 +9,20 @@ environment:
dependencies:
flutter:
sdk: flutter
cupertino_icons: ">=1.0.2 <2.0.0"
go_router: ">=14.2.0 <15.0.0"
http: ">=1.2.1 <2.0.0"
package_info_plus: ">=8.0.0 <9.0.0"
cupertino_icons: ^1.0.2
go_router: any
http: any
package_info_plus: any
flutter_introduction:
hosted: https://forgejo.internal.iconica.nl/api/packages/internal/pub
version: ^5.0.0
git:
url: https://github.com/Iconica-Development/flutter_introduction
ref: 3.1.0
path: packages/flutter_introduction
flutter_introduction_shared_preferences:
hosted: https://forgejo.internal.iconica.nl/api/packages/internal/pub/
version: ^5.0.0
git:
url: https://github.com/Iconica-Development/flutter_introduction
ref: 3.1.0
path: packages/flutter_introduction_shared_preferences
dev_dependencies:
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);
});
});
}