62 lines
2.2 KiB
Dart
62 lines
2.2 KiB
Dart
import 'package:aitrainer_app/util/loading_screen_state.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
|
/// Loading Screen Widget that updates the screen once all inistializer methods
|
|
/// are called
|
|
// ignore: must_be_immutable
|
|
class LoadingScreen extends StatefulWidget {
|
|
/// List of methods that are called once the Loading Screen is rendered
|
|
/// for the first time. These are the methods that can update the messages
|
|
/// that are shown under the loading symbol
|
|
final List<dynamic> initializers;
|
|
|
|
/// The name of the application that is shown at the top of the loading screen
|
|
RichText title = RichText(text: TextSpan(text: 'AI Trainer'));
|
|
//final Text title;
|
|
|
|
/// The background colour which is used as a filler when the image doesn't
|
|
/// occupy the full screen
|
|
final Color backgroundColor;
|
|
|
|
/// The styling that is used with the text (messages) that are displayed under
|
|
/// the loader symbol
|
|
final TextStyle styleTextUnderTheLoader;
|
|
|
|
/// The Layout/Scaffold Widget that is loaded once all the initializer methods
|
|
/// have been executed
|
|
final dynamic navigateToWidget;
|
|
|
|
/// The colour that is used for the loader symbol
|
|
final Color loaderColor;
|
|
|
|
/// The image widget that is used as a background cover to the loading screen
|
|
final Image image;
|
|
|
|
/// The message that is displayed on the first load of the widget
|
|
final String initialMessage;
|
|
|
|
/// Constructor for the LoadingScreen widget with all the required
|
|
/// initializers
|
|
LoadingScreen(
|
|
{this.initializers,
|
|
this.navigateToWidget,
|
|
this.loaderColor,
|
|
this.image,
|
|
//this.title = Text("Welcome"),
|
|
this.backgroundColor = Colors.white,
|
|
this.styleTextUnderTheLoader = const TextStyle(
|
|
fontSize: 18.0, fontWeight: FontWeight.bold, color: Colors.black),
|
|
this.initialMessage})
|
|
// The Widget depends on the initializers and navigateToWidget to have a
|
|
// valid value. Thus we assert that the values passed are valid and
|
|
// not null
|
|
: assert(initializers != null && initializers.length > 0),
|
|
assert(navigateToWidget != null);
|
|
|
|
/// Bind the Widget to the custom State object
|
|
@override
|
|
LoadingScreenState createState() => LoadingScreenState();
|
|
}
|
|
|