Compare commits

...

3 commits

Author SHA1 Message Date
Kiril Tijsma
87bf58e6e7
Merge pull request #40 from Iconica-Development/fix/splashscreen-future
fix: always call the splashHandler with the splashScreenFuture and killswitchService when a splashScreenBuilder is provided
2025-04-30 10:01:30 +02:00
Freek van de Ven
ada23abbc5 fix: always call the splashHandler with the splashScreenFuture and killswitchService when a splashScreenBuilder is provided 2025-04-30 09:50:45 +02:00
Jacques
2c61f8d7db fix: Check with the service if the introduction should be shown before actually showing
When removing this, the introduction is briefly shown before calling the onComplete
2025-04-29 15:16:35 +02:00
4 changed files with 41 additions and 17 deletions

View file

@ -1,3 +1,9 @@
## 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 ## 4.2.2
- Added custom navigator in the root of the navigator user-story - Added custom navigator in the root of the navigator user-story

View file

@ -104,12 +104,16 @@ Widget _splashScreen(
if (configuration.useKillswitch && isAllowedToPassThrough) return; if (configuration.useKillswitch && isAllowedToPassThrough) return;
if ((!configuration.showIntroduction) && context.mounted) { var introService = configuration.introductionService ??
onComplete(context); IntroductionService(SharedPreferencesIntroductionDataProvider());
return;
} var shouldShowIntroduction =
configuration.showIntroduction && await introService.shouldShow();
if (!context.mounted) return;
if (!shouldShowIntroduction) return onComplete(context);
if (context.mounted) {
await navigator.pushReplacement( await navigator.pushReplacement(
MaterialPageRoute( MaterialPageRoute(
builder: (context) => _introduction( builder: (context) => _introduction(
@ -120,12 +124,12 @@ Widget _splashScreen(
), ),
); );
} }
}
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,6 +1,6 @@
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.2 version: 4.2.4
publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub
@ -16,7 +16,7 @@ dependencies:
package_info_plus: ">=8.0.0 <9.0.0" package_info_plus: ">=8.0.0 <9.0.0"
flutter_introduction: flutter_introduction:
hosted: https://forgejo.internal.iconica.nl/api/packages/internal/pub hosted: https://forgejo.internal.iconica.nl/api/packages/internal/pub
version: "^5.0.0" version: ^5.0.0
flutter_introduction_shared_preferences: flutter_introduction_shared_preferences:
hosted: https://forgejo.internal.iconica.nl/api/packages/internal/pub/ hosted: https://forgejo.internal.iconica.nl/api/packages/internal/pub/
version: ^5.0.0 version: ^5.0.0

14
test/_test.dart Normal file
View file

@ -0,0 +1,14 @@
// 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);
});
});
}