Test boot and startup screens

This commit is contained in:
Feodor Fitsner 2025-03-04 11:45:55 -08:00
parent e6a8434ff2
commit 7ddff9625a
2 changed files with 32 additions and 21 deletions

View File

@ -15,14 +15,22 @@ import 'package:window_manager/window_manager.dart';
import "python.dart"; import "python.dart";
/* /*
{% set splash_screen = get_pyproject("tool.flet." ~ cookiecutter.options.config_platform ~ ".loading_screen") {% set show_boot_screen = get_pyproject("tool.flet." ~ cookiecutter.options.config_platform ~ ".app.boot_screen.show")
or get_pyproject("tool.flet.loading_screen") or get_pyproject("tool.flet.app.boot_screen")
or False %} or False %}
{% set splash_screen_text = get_pyproject("tool.flet." ~ cookiecutter.options.config_platform ~ ".loading_screen_text") {% set boot_screen_message = get_pyproject("tool.flet." ~ cookiecutter.options.config_platform ~ ".app.boot_screen.message")
or get_pyproject("tool.flet.loading_screen_text") %} or get_pyproject("tool.flet.app.boot_screen.message") %}
splash_screen: {{ splash_screen }} {% set show_startup_screen = get_pyproject("tool.flet." ~ cookiecutter.options.config_platform ~ ".app.startup_screen.show")
splash_screen_text: {{ splash_screen_text }} or get_pyproject("tool.flet.app.startup_screen")
or False %}
{% set startup_screen_message = get_pyproject("tool.flet." ~ cookiecutter.options.config_platform ~ ".app.startup_screen.message")
or get_pyproject("tool.flet.app.startup_screen.message") %}
show_boot_screen: {{ show_boot_screen }}
boot_screen_message: {{ boot_screen_message }}
show_startup_screen: {{ show_startup_screen }}
startup_screen_message: {{ startup_screen_message }}
*/ */
{% for dep in cookiecutter.flutter.dependencies %} {% for dep in cookiecutter.flutter.dependencies %}
@ -33,9 +41,10 @@ const bool isProduction = bool.fromEnvironment('dart.vm.product');
const assetPath = "app/app.zip"; const assetPath = "app/app.zip";
const pythonModuleName = "{{ cookiecutter.python_module_name }}"; const pythonModuleName = "{{ cookiecutter.python_module_name }}";
final hideLoadingPage = final showAppBootScreen = bool.tryParse("{{ show_boot_screen }}".toLowerCase()) ?? false;
bool.tryParse("{{ cookiecutter.hide_loading_animation }}".toLowerCase()) ?? const appBootScreenMessage = '{{ boot_screen_message | default("Preparing the app for its first launch…", true) }}';
true; final showAppStartupScreen = bool.tryParse("{{ show_startup_screen }}".toLowerCase()) ?? false;
const appStartupScreenMessage = '{{ startup_screen_message | default("Getting things ready…", true) }}';
List<CreateControlFactory> createControlFactories = [ List<CreateControlFactory> createControlFactories = [
{% for dep in cookiecutter.flutter.dependencies %} {% for dep in cookiecutter.flutter.dependencies %}
@ -64,7 +73,8 @@ void main(List<String> args) async {
? FletApp( ? FletApp(
pageUrl: pageUrl, pageUrl: pageUrl,
assetsDir: assetsDir, assetsDir: assetsDir,
hideLoadingPage: hideLoadingPage, showAppStartupScreen: showAppStartupScreen,
appStartupScreenMessage: appStartupScreenMessage,
createControlFactories: createControlFactories) createControlFactories: createControlFactories)
: FutureBuilder( : FutureBuilder(
future: runPythonApp(args), future: runPythonApp(args),
@ -82,7 +92,8 @@ void main(List<String> args) async {
return FletApp( return FletApp(
pageUrl: pageUrl, pageUrl: pageUrl,
assetsDir: assetsDir, assetsDir: assetsDir,
hideLoadingPage: hideLoadingPage, showAppStartupScreen: showAppStartupScreen,
appStartupScreenMessage: appStartupScreenMessage,
createControlFactories: createControlFactories); createControlFactories: createControlFactories);
} }
}); });
@ -94,7 +105,7 @@ void main(List<String> args) async {
text: snapshot.error.toString())); text: snapshot.error.toString()));
} else { } else {
// loading // loading
return const MaterialApp(home: {% if splash_screen == "True" %}SplashScreen(){% else %}BlankScreen(){% endif %}); return MaterialApp(home: showAppBootScreen ? const BootScreen() : const BlankScreen());
} }
})); }));
} }
@ -305,8 +316,8 @@ class ErrorScreen extends StatelessWidget {
} }
} }
class SplashScreen extends StatelessWidget { class BootScreen extends StatelessWidget {
const SplashScreen({ const BootScreen({
super.key, super.key,
}); });
@ -325,7 +336,7 @@ class SplashScreen extends StatelessWidget {
const SizedBox( const SizedBox(
height: 10, height: 10,
), ),
Text("{% if splash_screen_text %}{{ splash_screen_text }}{% else %}Getting things ready…{% endif %}", style: Theme.of(context).textTheme.bodySmall,) Text("{{ appBootScreenMessage }}", style: Theme.of(context).textTheme.bodySmall,)
], ],
), ),
), ),

View File

@ -21,13 +21,13 @@ dependencies:
window_manager: ^0.4.3 window_manager: ^0.4.3
dependency_overrides: dependency_overrides:
flet: 0.27.4 #flet: 0.27.4
# flet: flet:
# git: git:
# path: packages/flet path: packages/flet
# ref: main ref: feodor/flet-0-27-5-fixes
# url: https://github.com/flet-dev/flet.git url: https://github.com/flet-dev/flet.git
# serious_python: # serious_python:
# git: # git: