Skip to content

Commit

Permalink
Add tests for theme preview card
Browse files Browse the repository at this point in the history
  • Loading branch information
AhsanSarwar45 committed Aug 14, 2023
1 parent d331a36 commit 8354307
Show file tree
Hide file tree
Showing 45 changed files with 186 additions and 226 deletions.
2 changes: 2 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"cSpell.words": [
"AARRGGBB",
"Animatable",
"Cupertino",
"dartpad",
Expand All @@ -9,6 +10,7 @@
"Layouter",
"LTWH",
"RGBO",
"RRGGBB",
"sublist",
"Tappable",
"unawaited",
Expand Down
1 change: 0 additions & 1 deletion lib/alarm/logic/update_alarms.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import 'dart:isolate';
import 'dart:ui';

import 'package:clock_app/alarm/types/alarm.dart';
import 'package:clock_app/alarm/types/schedules/once_alarm_schedule.dart';
import 'package:clock_app/common/utils/list_storage.dart';

import 'alarm_controls.dart';
Expand Down
3 changes: 0 additions & 3 deletions lib/alarm/widgets/alarm_card.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,11 @@ import 'package:clock_app/alarm/logic/schedule_description.dart';
import 'package:clock_app/alarm/logic/time_icon.dart';
import 'package:clock_app/alarm/types/alarm.dart';
import 'package:clock_app/alarm/types/time_of_day_icon.dart';
import 'package:clock_app/common/logic/edit_tips.dart';
import 'package:clock_app/common/widgets/card_edit_menu.dart';
import 'package:clock_app/common/widgets/clock/clock_display.dart';
import 'package:clock_app/settings/data/settings_schema.dart';
import 'package:clock_app/settings/types/setting.dart';
import 'package:flutter/material.dart';
import 'package:flutter_slidable/flutter_slidable.dart';
import 'package:get_storage/get_storage.dart';

class AlarmCard extends StatefulWidget {
const AlarmCard({
Expand Down
15 changes: 0 additions & 15 deletions lib/app.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import 'package:auto_start_flutter/auto_start_flutter.dart';
import 'package:clock_app/alarm/screens/alarm_notification_screen.dart';
import 'package:clock_app/navigation/data/route_observer.dart';
import 'package:clock_app/navigation/screens/nav_scaffold.dart';
Expand All @@ -13,8 +12,6 @@ import 'package:clock_app/theme/utils/color_scheme.dart';
import 'package:clock_app/theme/utils/style_theme.dart';
import 'package:clock_app/timer/screens/timer_notification_screen.dart';
import 'package:flutter/material.dart';
import 'package:disable_battery_optimization/disable_battery_optimization.dart';
import 'package:flutter/services.dart';

class App extends StatefulWidget {
const App({super.key});
Expand Down Expand Up @@ -56,18 +53,6 @@ class _AppState extends State<App> {

setColorScheme(_colorSettings.getSetting("Color Scheme").value);
setStyleTheme(_styleSettings.getSetting("Style Theme").value);

initAutoStart();
}

Future<void> initAutoStart() async {
try {
//check auto-start availability.
var test = (await isAutoStartAvailable) ?? false;
//if available then navigate to auto-start setting page.
if (test) await getAutoStartPermission();
} on PlatformException catch (e) {}
if (!mounted) return;
}

setColorScheme(ColorSchemeData? colorSchemeDataParam) {
Expand Down
15 changes: 2 additions & 13 deletions lib/common/types/select_choice.dart
Original file line number Diff line number Diff line change
@@ -1,19 +1,8 @@
import 'package:flutter/material.dart';

// enum SelectType { color, string, audio }

class SelectChoice<T> {
final String description;
final String name;
final T value;
// SelectType type = SelectType.string;

SelectChoice(
{required this.value, required this.name, this.description = ""}) {
// if (value is Color) {
// type = SelectType.color;
// } else if (value is String) {
// type = SelectType.string;
// }
}
const SelectChoice(
{required this.value, required this.name, this.description = ""});
}
1 change: 0 additions & 1 deletion lib/common/utils/json_serialize.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import 'package:clock_app/alarm/types/alarm_task.dart';
import 'package:clock_app/common/types/time.dart';
import 'package:clock_app/clock/types/city.dart';
import 'package:clock_app/common/types/json.dart';
import 'package:clock_app/common/utils/date_time.dart';
import 'package:clock_app/stopwatch/types/stopwatch.dart';
import 'package:clock_app/theme/types/color_scheme.dart';
import 'package:clock_app/theme/types/style_theme.dart';
Expand Down
4 changes: 2 additions & 2 deletions lib/common/widgets/card_container.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:clock_app/theme/theme_extension.dart';
import 'package:clock_app/theme/types/theme_extension.dart';
import 'package:flutter/material.dart';

class CardContainer extends StatelessWidget {
Expand Down Expand Up @@ -29,7 +29,7 @@ class CardContainer extends StatelessWidget {
Widget build(BuildContext context) {
ThemeData theme = Theme.of(context);
ColorScheme colorScheme = theme.colorScheme;
ThemeStyle? themeStyle = theme.extension<ThemeStyle>();
ThemeStyleExtension? themeStyle = theme.extension<ThemeStyleExtension>();

return Container(
alignment: alignment,
Expand Down
63 changes: 0 additions & 63 deletions lib/common/widgets/color_picker/color_picker.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1264,7 +1264,6 @@ class _ColorPickerState extends State<ColorPicker> {
if (widget.customColorSwatchesAndNames.toString() !=
oldWidget.customColorSwatchesAndNames.toString() ||
!mapEquals(widget.pickersEnabled, oldWidget.pickersEnabled)) {
// TODO(rydmike): Investigate the mapEquals issue.
// In above un-equality check, the mapEquals, or with map != operator,
// does not work if you provide a map made with createPrimarySwatch or
// createAccentSwatch. It should, not sure why it does not. The Wheel
Expand Down Expand Up @@ -1964,67 +1963,6 @@ class _ColorPickerState extends State<ColorPicker> {
widget.onRecentColorsChanged?.call(_recentColors);
}

// Handle the keyboard events from the RawKeyboardListener.
void _handleKeyEvent(RawKeyEvent event) {
// If edit color code is focused and we do not use the parsed paste feature,
// we exit out of here. The TextField's normal paste action will then handle
// the paste as before in v1.x and normally in a TextField.
if (_editCodeFocused && !widget.copyPasteBehavior.editUsesParsedPaste) {
return;
}
// Make an OS independent copy/paste shortcut modifier key.
//
// Found the usage of these in the SDK TextField copy/paste implementation.
final bool isRawKeyMacOS = event.data is RawKeyEventDataMacOs;
if (_debug) {
debugPrint('KeyEvent isRawKeyMacOS: $isRawKeyMacOS');
}
final bool isRawKeyIos = event.data is RawKeyEventDataIos;
// **BUT**
// The above RawKeyEventData did not seem to work on Web when using an
// iPad+Safari and an Apple 10.5 Pro iPad keyboard, isRawKeyIos did not
// become true!
// So CMD modifier did not get used, only CTRL worked. We can use context
// based Theme.platform instead here and skip RawKeyEventData, or just
// combine it with RawKeyEventData. Since we have a context it works too.
final TargetPlatform platform = Theme.of(context).platform;
// Should COMMAND modifier be used instead of CTRL for keyboard COPY-PASTE?
// Use all sources we have to determine if it is iOS or macOS that should
// use CMD for copy/paste instead of CTRL.
final bool useCommandModifier = isRawKeyMacOS ||
isRawKeyIos ||
platform == TargetPlatform.iOS ||
platform == TargetPlatform.macOS;

// isModifierPressed will be true when COMMAND key is pressed on macOS/iOS
// OR when CTRL key is pressed on other platforms.
final bool isModifierPressed =
useCommandModifier ? event.isMetaPressed : event.isControlPressed;

// The raw keyboard listener reacts to both up and down events, we only use
// down, so that we only execute the copy and paste keyboard command once
// when the keys are pressed down. We do not want to do it 2nd time when
// the key goes up.
if (event.runtimeType == RawKeyDownEvent) {
// If logical key is paste OR modifier+V and we use ctrlV paste behavior,
// we get the latest clipboard data.
if ((event.logicalKey == LogicalKeyboardKey.paste ||
(isModifierPressed &&
event.logicalKey == LogicalKeyboardKey.keyV)) &&
widget.copyPasteBehavior.ctrlV) {
unawaited(_getClipboard());
}
// If logical key is copy or modifier+C and we used ctrlC copy behavior,
// we set the current color to the clipboard data.
if ((event.logicalKey == LogicalKeyboardKey.copy ||
(isModifierPressed &&
event.logicalKey == LogicalKeyboardKey.keyC)) &&
widget.copyPasteBehavior.ctrlC) {
unawaited(_setClipboard());
}
}
}

// Get the current clipboard data. Try to parse it to a Color object.
// If successful, set the current color to the resulting Color.
Future<void> _getClipboard() async {
Expand Down Expand Up @@ -2071,7 +2009,6 @@ class _ColorPickerState extends State<ColorPicker> {
}
// ELSE FOR: Clipboard could not parsed to a Color()
else {
// TODO(rydmike): Improve sound when it can be done with SDK features.
// This is a nice idea, but it does not do much on most platforms.
// Would just like to get a nice "error bleep" sound on all platforms
// without any plugin by using SDK only, but not doable, bummer.
Expand Down
1 change: 0 additions & 1 deletion lib/common/widgets/fields/color_bottom_sheet.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import 'package:clock_app/common/types/color_picker_type.dart';
import 'package:clock_app/common/widgets/color_picker/color_picker.dart';
import 'package:flex_color_picker/flex_color_picker.dart' show ColorPickerType;
import 'package:flutter/material.dart';
Expand Down
4 changes: 2 additions & 2 deletions lib/common/widgets/fields/date_picker_bottom_sheet.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:clock_app/theme/theme_extension.dart';
import 'package:clock_app/theme/types/theme_extension.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:table_calendar/table_calendar.dart';
Expand Down Expand Up @@ -47,7 +47,7 @@ class _DatePickerBottomSheetState extends State<DatePickerBottomSheet> {
Widget build(BuildContext context) {
ThemeData theme = Theme.of(context);
ColorScheme colorScheme = theme.colorScheme;
ThemeStyle? themeStyle = theme.extension<ThemeStyle>();
ThemeStyleExtension? themeStyle = theme.extension<ThemeStyleExtension>();
TextStyle? dateTextStyle = theme.textTheme.labelSmall;

Widget Function(BuildContext, DateTime, DateTime) dateLabelBuilder(
Expand Down
5 changes: 3 additions & 2 deletions lib/common/widgets/linear_progress_bar.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:clock_app/theme/theme_extension.dart';
import 'package:clock_app/theme/types/theme_extension.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

Expand Down Expand Up @@ -352,7 +352,8 @@ class _LinearProgressIndicatorState extends State<LinearProgressBar>
indicatorTheme.linearMinHeight ??
defaults.linearMinHeight!;

ThemeStyle? themeStyle = Theme.of(context).extension<ThemeStyle>();
ThemeStyleExtension? themeStyle =
Theme.of(context).extension<ThemeStyleExtension>();

return widget._buildSemanticsWrapper(
context: context,
Expand Down
1 change: 0 additions & 1 deletion lib/common/widgets/list/custom_list_view.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import 'package:clock_app/common/types/list_controller.dart';
import 'package:clock_app/common/types/list_filter.dart';
import 'package:clock_app/common/types/list_item.dart';
import 'package:clock_app/common/utils/reorderable_list_decorator.dart';
import 'package:clock_app/common/widgets/card_container.dart';
import 'package:clock_app/common/widgets/list/list_filter_chip.dart';
import 'package:clock_app/common/widgets/list/list_item_card.dart';
import 'package:flutter/material.dart';
Expand Down
4 changes: 2 additions & 2 deletions lib/common/widgets/slidable_action.dart
Original file line number Diff line number Diff line change
Expand Up @@ -194,8 +194,8 @@ class SlideActionState extends State<SlideAction>
animation.addListener(() {
if (mounted) {
setState(() {
double _delta = _endXPosition - _initialPosition;
_position = (_endXPosition - (_delta * animation.value));
double delta = _endXPosition - _initialPosition;
_position = (_endXPosition - (delta * animation.value));
});
}
});
Expand Down
12 changes: 6 additions & 6 deletions lib/common/widgets/time_picker.dart
Original file line number Diff line number Diff line change
Expand Up @@ -978,12 +978,12 @@ class DialPainter extends CustomPainter {
}

@override
bool shouldRepaint(DialPainter oldPainter) {
return oldPainter.primaryLabels != primaryLabels ||
oldPainter.secondaryLabels != secondaryLabels ||
oldPainter.backgroundColor != backgroundColor ||
oldPainter.accentColor != accentColor ||
oldPainter.theta != theta;
bool shouldRepaint(DialPainter oldDelegate) {
return oldDelegate.primaryLabels != primaryLabels ||
oldDelegate.secondaryLabels != secondaryLabels ||
oldDelegate.backgroundColor != backgroundColor ||
oldDelegate.accentColor != accentColor ||
oldDelegate.theta != theta;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import 'dart:ui';
import 'package:awesome_notifications/android_foreground_service.dart';
import 'package:awesome_notifications/awesome_notifications.dart';
import 'package:clock_app/alarm/logic/alarm_controls.dart';
import 'package:clock_app/alarm/types/alarm.dart';
import 'package:clock_app/app.dart';
import 'package:clock_app/notifications/data/notification_channel.dart';
import 'package:clock_app/alarm/logic/schedule_alarm.dart';
Expand Down
5 changes: 4 additions & 1 deletion lib/settings/data/settings_schema.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import 'package:clock_app/theme/utils/color_scheme.dart';
import 'package:clock_app/theme/utils/style_theme.dart';
import 'package:clock_app/timer/data/timer_settings_schema.dart';
import 'package:clock_app/timer/screens/presets_screen.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:intl/intl.dart';
Expand Down Expand Up @@ -80,7 +81,9 @@ SettingGroup appSettings = SettingGroup(
var test = await isAutoStartAvailable ?? false;
//if available then navigate to auto-start setting page.
if (test) await getAutoStartPermission();
} on PlatformException catch (e) {}
} on PlatformException catch (e) {
if (kDebugMode) print(e.message);
}
},
description:
"Enable auto start to allow alarms to go off when the app is closed",
Expand Down
5 changes: 1 addition & 4 deletions lib/settings/screens/restore_defaults_screen.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
// ignore_for_file: prefer_const_constructors

import 'package:clock_app/common/widgets/card_container.dart';
import 'package:clock_app/navigation/widgets/app_top_bar.dart';
import 'package:clock_app/settings/types/setting.dart';
import 'package:clock_app/settings/types/setting_group.dart';
import 'package:clock_app/settings/types/setting_item.dart';

Expand Down Expand Up @@ -104,7 +101,7 @@ class _RestoreDefaultScreenState extends State<RestoreDefaultScreen> {
Navigator.pop(context);
},
),
SizedBox(height: 16),
const SizedBox(height: 16),
...widget.settingGroup.settingItems
.map(
(settingItem) => SettingCheckBox(
Expand Down
4 changes: 0 additions & 4 deletions lib/settings/screens/settings_group_screen.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
// ignore_for_file: prefer_const_constructors

import 'package:clock_app/navigation/widgets/app_top_bar.dart';
import 'package:clock_app/settings/data/settings_schema.dart';
import 'package:clock_app/settings/logic/get_setting_widget.dart';
import 'package:clock_app/settings/screens/restore_defaults_screen.dart';
import 'package:clock_app/settings/types/setting.dart';
import 'package:clock_app/settings/types/setting_group.dart';
import 'package:clock_app/settings/types/setting_item.dart';
import 'package:clock_app/settings/types/setting_link.dart';
Expand Down
2 changes: 0 additions & 2 deletions lib/settings/types/setting.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ import 'package:clock_app/common/types/json.dart';
import 'package:clock_app/common/types/list_item.dart';
import 'package:clock_app/common/utils/json_serialize.dart';
import 'package:clock_app/common/utils/list_item.dart';
import 'package:clock_app/settings/types/setting_group.dart';
import 'package:clock_app/settings/types/setting_item.dart';
import 'package:clock_app/theme/types/color_scheme.dart';
import 'package:clock_app/timer/types/time_duration.dart';
import 'package:flutter/material.dart';

Expand Down
1 change: 0 additions & 1 deletion lib/settings/widgets/color_setting_card.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import 'package:clock_app/common/widgets/card_container.dart';
import 'package:clock_app/common/widgets/fields/color_field.dart';
import 'package:clock_app/common/widgets/fields/toggle_field.dart';
import 'package:clock_app/settings/types/setting.dart';
import 'package:flutter/material.dart';

Expand Down
1 change: 0 additions & 1 deletion lib/settings/widgets/custom_setting_card.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import 'package:clock_app/common/widgets/card_container.dart';
import 'package:clock_app/settings/types/setting.dart';
import 'package:clock_app/settings/types/setting_link.dart';
import 'package:flutter/material.dart';

class CustomSettingCard extends StatefulWidget {
Expand Down
1 change: 0 additions & 1 deletion lib/settings/widgets/search_setting_card.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import 'package:clock_app/common/widgets/card_container.dart';
import 'package:clock_app/settings/data/settings_schema.dart';
import 'package:clock_app/settings/logic/get_setting_widget.dart';
import 'package:clock_app/settings/screens/settings_group_screen.dart';
import 'package:clock_app/settings/types/setting_item.dart';
Expand Down
1 change: 0 additions & 1 deletion lib/settings/widgets/setting_page_link_card.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import 'package:clock_app/common/widgets/card_container.dart';
import 'package:clock_app/settings/types/setting.dart';
import 'package:clock_app/settings/types/setting_link.dart';
import 'package:flutter/material.dart';

Expand Down
1 change: 0 additions & 1 deletion lib/settings/widgets/settings_top_bar.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import 'package:clock_app/navigation/widgets/app_top_bar.dart';
import 'package:clock_app/settings/data/settings_schema.dart';
import 'package:clock_app/settings/types/setting.dart';
import 'package:clock_app/settings/types/setting_item.dart';
import 'package:fuzzywuzzy/fuzzywuzzy.dart';
import 'package:flutter/material.dart';
Expand Down
1 change: 0 additions & 1 deletion lib/stopwatch/types/stopwatch.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import 'package:clock_app/common/types/json.dart';
import 'package:clock_app/common/types/timer_state.dart';
import 'package:clock_app/common/utils/duration.dart';
import 'package:clock_app/common/utils/json_serialize.dart';
import 'package:clock_app/stopwatch/types/lap.dart';
import 'package:clock_app/timer/types/time_duration.dart';
import 'package:flutter/material.dart';
Expand Down
Loading

0 comments on commit 8354307

Please sign in to comment.