Rebrand as TPSchedule and refine clear liquid glass dock
This commit is contained in:
@@ -28,7 +28,7 @@ class HepanApp extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) => MaterialApp(
|
||||
debugShowCheckedModeBanner: false,
|
||||
title: 'RSchedule',
|
||||
title: 'TPSchedule',
|
||||
theme: hepanTheme(),
|
||||
locale: const Locale('zh', 'CN'),
|
||||
supportedLocales: const [Locale('zh', 'CN')],
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
import '../widgets/tp_logo.dart';
|
||||
|
||||
/// The first Flutter frame while saved data and reminder services initialize.
|
||||
class TpLaunchPage extends StatelessWidget {
|
||||
const TpLaunchPage({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) => AnnotatedRegion<SystemUiOverlayStyle>(
|
||||
value: const SystemUiOverlayStyle(
|
||||
statusBarColor: Colors.transparent,
|
||||
statusBarIconBrightness: Brightness.light,
|
||||
statusBarBrightness: Brightness.dark,
|
||||
systemNavigationBarColor: Color(0xFF38B3FF),
|
||||
systemNavigationBarIconBrightness: Brightness.light,
|
||||
),
|
||||
child: Scaffold(
|
||||
backgroundColor: const Color(0xFF38B3FF),
|
||||
body: DecoratedBox(
|
||||
decoration: const BoxDecoration(gradient: tpBrandGradient),
|
||||
child: SizedBox.expand(
|
||||
child: Center(
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
const TpLogo(size: 120, background: false),
|
||||
const SizedBox(height: 20),
|
||||
Text(
|
||||
'TPSchedule',
|
||||
style: Theme.of(context).textTheme.headlineSmall?.copyWith(
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w600,
|
||||
letterSpacing: 0.4,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
import 'tp_launch_page.dart';
|
||||
|
||||
/// Displays the brand during real initialization, without a minimum wait.
|
||||
class TpStartup extends StatelessWidget {
|
||||
const TpStartup({super.key, required this.ready, required this.child});
|
||||
final Future<void> ready;
|
||||
final Widget child;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) => FutureBuilder<void>(
|
||||
future: ready,
|
||||
builder: (context, snapshot) {
|
||||
final complete = snapshot.connectionState == ConnectionState.done;
|
||||
final reduceMotion =
|
||||
MediaQuery.maybeOf(context)?.disableAnimations ??
|
||||
WidgetsBinding
|
||||
.instance
|
||||
.platformDispatcher
|
||||
.accessibilityFeatures
|
||||
.disableAnimations;
|
||||
return AnimatedSwitcher(
|
||||
duration: reduceMotion
|
||||
? Duration.zero
|
||||
: const Duration(milliseconds: 220),
|
||||
switchInCurve: Curves.easeOut,
|
||||
switchOutCurve: Curves.easeIn,
|
||||
child: complete
|
||||
? AnnotatedRegion<SystemUiOverlayStyle>(
|
||||
key: const ValueKey('tp-ready'),
|
||||
value: SystemUiOverlayStyle.dark.copyWith(
|
||||
statusBarColor: Colors.transparent,
|
||||
systemNavigationBarColor: const Color(0xFFF3F7FF),
|
||||
systemNavigationBarIconBrightness: Brightness.dark,
|
||||
),
|
||||
child: child,
|
||||
)
|
||||
: const MaterialApp(
|
||||
key: ValueKey('tp-launch'),
|
||||
debugShowCheckedModeBanner: false,
|
||||
home: TpLaunchPage(),
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user