mirror of
https://github.com/openfoodfacts/smooth-app.git
synced 2025-08-26 03:01:45 +08:00
feat: AMOLED Dark Mode (#3703)
* ignored some generated files * init amoled mode * color scheme * test updated for amoled * added accent color picker * localized accent color picker * added color provider * Dark Mode changed to Theme mode * Map key iteration only * Update packages/smooth_app/lib/l10n/app_en.arb Co-authored-by: Aman Raj <57723319+AshAman999@users.noreply.github.com> * removed external dep * updated golden test * added comments * using shade fun * color scheme localization * color scheme localization * added textContrast * color contrast app settings * merged upstream * typo fix * added color to DropDownMenuItems * SnackBar text, contrast level * text contrast change to pass WCAG2.1 * snackBar Color Change --------- Co-authored-by: Aman Raj <57723319+AshAman999@users.noreply.github.com>
This commit is contained in:
@ -29,6 +29,8 @@ import 'package:smooth_app/helpers/permission_helper.dart';
|
||||
import 'package:smooth_app/pages/onboarding/onboarding_flow_navigator.dart';
|
||||
import 'package:smooth_app/query/product_query.dart';
|
||||
import 'package:smooth_app/services/smooth_services.dart';
|
||||
import 'package:smooth_app/themes/color_provider.dart';
|
||||
import 'package:smooth_app/themes/contrast_provider.dart';
|
||||
import 'package:smooth_app/themes/smooth_theme.dart';
|
||||
import 'package:smooth_app/themes/theme_provider.dart';
|
||||
import 'package:smooth_app/widgets/smooth_scaffold.dart';
|
||||
@ -100,6 +102,8 @@ late UserPreferences _userPreferences;
|
||||
late ProductPreferences _productPreferences;
|
||||
late LocalDatabase _localDatabase;
|
||||
late ThemeProvider _themeProvider;
|
||||
late ColorProvider _colorProvider;
|
||||
late TextContrastProvider _textContrastProvider;
|
||||
final ContinuousScanModel _continuousScanModel = ContinuousScanModel();
|
||||
final PermissionListener _permissionListener =
|
||||
PermissionListener(permission: Permission.camera);
|
||||
@ -133,6 +137,8 @@ Future<bool> _init1(AppStore appStore) async {
|
||||
AnalyticsHelper.setCrashReports(_userPreferences.crashReports);
|
||||
ProductQuery.setCountry(_userPreferences.userCountryCode);
|
||||
_themeProvider = ThemeProvider(_userPreferences);
|
||||
_colorProvider = ColorProvider(_userPreferences);
|
||||
_textContrastProvider = TextContrastProvider(_userPreferences);
|
||||
ProductQuery.setQueryType(_userPreferences);
|
||||
|
||||
await CameraHelper.init();
|
||||
@ -204,6 +210,8 @@ class _SmoothAppState extends State<SmoothApp> {
|
||||
provide<ProductPreferences>(_productPreferences),
|
||||
provide<LocalDatabase>(_localDatabase),
|
||||
provide<ThemeProvider>(_themeProvider),
|
||||
provide<ColorProvider>(_colorProvider),
|
||||
provide<TextContrastProvider>(_textContrastProvider),
|
||||
provide<UserManagementProvider>(_userManagementProvider),
|
||||
provide<ContinuousScanModel>(_continuousScanModel),
|
||||
provide<SmoothAppDataImporter>(_appDataImporter),
|
||||
@ -223,6 +231,9 @@ class _SmoothAppState extends State<SmoothApp> {
|
||||
|
||||
Widget _buildApp(BuildContext context, Widget? child) {
|
||||
final ThemeProvider themeProvider = context.watch<ThemeProvider>();
|
||||
final ColorProvider colorProvider = context.watch<ColorProvider>();
|
||||
final TextContrastProvider textContrastProvider =
|
||||
context.watch<TextContrastProvider>();
|
||||
final OnboardingPage lastVisitedOnboardingPage =
|
||||
_userPreferences.lastVisitedOnboardingPage;
|
||||
final Widget appWidget = OnboardingFlowNavigator(_userPreferences)
|
||||
@ -246,13 +257,9 @@ class _SmoothAppState extends State<SmoothApp> {
|
||||
SentryNavigatorObserver(),
|
||||
],
|
||||
theme: SmoothTheme.getThemeData(
|
||||
Brightness.light,
|
||||
themeProvider,
|
||||
),
|
||||
Brightness.light, themeProvider, colorProvider, textContrastProvider),
|
||||
darkTheme: SmoothTheme.getThemeData(
|
||||
Brightness.dark,
|
||||
themeProvider,
|
||||
),
|
||||
Brightness.dark, themeProvider, colorProvider, textContrastProvider),
|
||||
themeMode: themeProvider.currentThemeMode,
|
||||
home: SmoothAppGetLanguage(appWidget, _userPreferences),
|
||||
);
|
||||
|
Reference in New Issue
Block a user