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:
Abu Ghalib
2023-03-09 22:49:39 +05:30
committed by GitHub
parent 777f54cdf3
commit 0363affc81
45 changed files with 526 additions and 153 deletions

View File

@ -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),
);