mirror of https://github.com/flutter/samples.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.7 KiB
82 lines
2.7 KiB
// Copyright 2019 The Flutter team. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import 'dart:io';
|
|
|
|
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter/scheduler.dart' show timeDilation;
|
|
import 'package:flutter_localized_locales/flutter_localized_locales.dart';
|
|
import 'package:google_fonts/google_fonts.dart';
|
|
import 'package:gallery/constants.dart';
|
|
import 'package:gallery/data/gallery_options.dart';
|
|
import 'package:gallery/l10n/gallery_localizations.dart';
|
|
import 'package:gallery/pages/backdrop.dart';
|
|
import 'package:gallery/pages/splash.dart';
|
|
import 'package:gallery/themes/gallery_theme_data.dart';
|
|
|
|
void setOverrideForDesktop() {
|
|
if (kIsWeb) return;
|
|
|
|
if (Platform.isMacOS) {
|
|
debugDefaultTargetPlatformOverride = TargetPlatform.iOS;
|
|
} else if (Platform.isLinux || Platform.isWindows) {
|
|
debugDefaultTargetPlatformOverride = TargetPlatform.android;
|
|
} else if (Platform.isFuchsia) {
|
|
debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia;
|
|
}
|
|
}
|
|
|
|
void main() {
|
|
setOverrideForDesktop();
|
|
GoogleFonts.config.allowHttp = false;
|
|
runApp(GalleryApp());
|
|
}
|
|
|
|
class GalleryApp extends StatelessWidget {
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return ModelBinding(
|
|
initialModel: GalleryOptions(
|
|
themeMode: ThemeMode.system,
|
|
textScaleFactor: systemTextScaleFactorOption,
|
|
customTextDirection: CustomTextDirection.localeBased,
|
|
locale: null,
|
|
timeDilation: timeDilation,
|
|
platform: defaultTargetPlatform,
|
|
),
|
|
child: Builder(
|
|
builder: (context) {
|
|
return MaterialApp(
|
|
title: 'Gallery',
|
|
debugShowCheckedModeBanner: false,
|
|
themeMode: GalleryOptions.of(context).themeMode,
|
|
theme: GalleryThemeData.lightThemeData.copyWith(
|
|
platform: GalleryOptions.of(context).platform,
|
|
),
|
|
darkTheme: GalleryThemeData.darkThemeData.copyWith(
|
|
platform: GalleryOptions.of(context).platform,
|
|
),
|
|
localizationsDelegates: [
|
|
...GalleryLocalizations.localizationsDelegates,
|
|
LocaleNamesLocalizationsDelegate()
|
|
],
|
|
supportedLocales: GalleryLocalizations.supportedLocales,
|
|
locale: GalleryOptions.of(context).locale,
|
|
localeResolutionCallback: (locale, supportedLocales) {
|
|
deviceLocale = locale;
|
|
return locale;
|
|
},
|
|
home: ApplyTextOptions(
|
|
child: SplashPage(
|
|
child: AnimatedBackdrop(),
|
|
),
|
|
),
|
|
);
|
|
},
|
|
),
|
|
);
|
|
}
|
|
}
|