Merge pull request #593 from ente-io/menuitem-on-pressed-state
Menuitem on pressed state
This commit is contained in:
commit
9d422621e6
|
@ -60,7 +60,7 @@ class _ExpandableMenuItemWidgetState extends State<ExpandableMenuItemWidget> {
|
||||||
title: widget.title,
|
title: widget.title,
|
||||||
makeTextBold: true,
|
makeTextBold: true,
|
||||||
),
|
),
|
||||||
isHeaderOfExpansion: true,
|
isExpandable: true,
|
||||||
leadingIcon: widget.leadingIcon,
|
leadingIcon: widget.leadingIcon,
|
||||||
trailingIcon: Icons.expand_more,
|
trailingIcon: Icons.expand_more,
|
||||||
menuItemColor: enteColorScheme.fillFaint,
|
menuItemColor: enteColorScheme.fillFaint,
|
||||||
|
|
|
@ -4,7 +4,7 @@ import 'package:photos/ente_theme_data.dart';
|
||||||
|
|
||||||
class MenuItemWidget extends StatefulWidget {
|
class MenuItemWidget extends StatefulWidget {
|
||||||
final Widget captionedTextWidget;
|
final Widget captionedTextWidget;
|
||||||
final bool isHeaderOfExpansion;
|
final bool isExpandable;
|
||||||
// leading icon can be passed without specifing size of icon, this component sets size to 20x20 irrespective of passed icon's size
|
// leading icon can be passed without specifing size of icon, this component sets size to 20x20 irrespective of passed icon's size
|
||||||
final IconData? leadingIcon;
|
final IconData? leadingIcon;
|
||||||
final Color? leadingIconColor;
|
final Color? leadingIconColor;
|
||||||
|
@ -17,10 +17,11 @@ class MenuItemWidget extends StatefulWidget {
|
||||||
final Color? menuItemColor;
|
final Color? menuItemColor;
|
||||||
final bool alignCaptionedTextToLeft;
|
final bool alignCaptionedTextToLeft;
|
||||||
final double borderRadius;
|
final double borderRadius;
|
||||||
|
final Color? pressedColor;
|
||||||
final ExpandableController? expandableController;
|
final ExpandableController? expandableController;
|
||||||
const MenuItemWidget({
|
const MenuItemWidget({
|
||||||
required this.captionedTextWidget,
|
required this.captionedTextWidget,
|
||||||
this.isHeaderOfExpansion = false,
|
this.isExpandable = false,
|
||||||
this.leadingIcon,
|
this.leadingIcon,
|
||||||
this.leadingIconColor,
|
this.leadingIconColor,
|
||||||
this.trailingIcon,
|
this.trailingIcon,
|
||||||
|
@ -31,6 +32,7 @@ class MenuItemWidget extends StatefulWidget {
|
||||||
this.menuItemColor,
|
this.menuItemColor,
|
||||||
this.alignCaptionedTextToLeft = false,
|
this.alignCaptionedTextToLeft = false,
|
||||||
this.borderRadius = 4.0,
|
this.borderRadius = 4.0,
|
||||||
|
this.pressedColor,
|
||||||
this.expandableController,
|
this.expandableController,
|
||||||
Key? key,
|
Key? key,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
@ -40,8 +42,10 @@ class MenuItemWidget extends StatefulWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
class _MenuItemWidgetState extends State<MenuItemWidget> {
|
class _MenuItemWidgetState extends State<MenuItemWidget> {
|
||||||
|
Color? menuItemColor;
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
|
menuItemColor = widget.menuItemColor;
|
||||||
if (widget.expandableController != null) {
|
if (widget.expandableController != null) {
|
||||||
widget.expandableController!.addListener(() {
|
widget.expandableController!.addListener(() {
|
||||||
setState(() {});
|
setState(() {});
|
||||||
|
@ -50,6 +54,12 @@ class _MenuItemWidgetState extends State<MenuItemWidget> {
|
||||||
super.initState();
|
super.initState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didChangeDependencies() {
|
||||||
|
menuItemColor = widget.menuItemColor;
|
||||||
|
super.didChangeDependencies();
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
if (widget.expandableController != null) {
|
if (widget.expandableController != null) {
|
||||||
|
@ -60,11 +70,14 @@ class _MenuItemWidgetState extends State<MenuItemWidget> {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return widget.isHeaderOfExpansion
|
return widget.isExpandable
|
||||||
? menuItemWidget(context)
|
? menuItemWidget(context)
|
||||||
: GestureDetector(
|
: GestureDetector(
|
||||||
onTap: widget.onTap,
|
onTap: widget.onTap,
|
||||||
onDoubleTap: widget.onDoubleTap,
|
onDoubleTap: widget.onDoubleTap,
|
||||||
|
onTapDown: _onTapDown,
|
||||||
|
onTapUp: _onTapUp,
|
||||||
|
onTapCancel: _onCancel,
|
||||||
child: menuItemWidget(context),
|
child: menuItemWidget(context),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -77,7 +90,7 @@ class _MenuItemWidgetState extends State<MenuItemWidget> {
|
||||||
? const Radius.circular(0)
|
? const Radius.circular(0)
|
||||||
: borderRadius;
|
: borderRadius;
|
||||||
return AnimatedContainer(
|
return AnimatedContainer(
|
||||||
duration: const Duration(milliseconds: 200),
|
duration: const Duration(milliseconds: 20),
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 12),
|
padding: const EdgeInsets.symmetric(horizontal: 12),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
|
@ -87,7 +100,7 @@ class _MenuItemWidgetState extends State<MenuItemWidget> {
|
||||||
bottomLeft: bottomBorderRadius,
|
bottomLeft: bottomBorderRadius,
|
||||||
bottomRight: bottomBorderRadius,
|
bottomRight: bottomBorderRadius,
|
||||||
),
|
),
|
||||||
color: widget.menuItemColor,
|
color: menuItemColor,
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
@ -139,4 +152,25 @@ class _MenuItemWidgetState extends State<MenuItemWidget> {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _onTapDown(details) {
|
||||||
|
setState(() {
|
||||||
|
menuItemColor = widget.pressedColor;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void _onTapUp(details) {
|
||||||
|
Future.delayed(
|
||||||
|
const Duration(milliseconds: 100),
|
||||||
|
() => setState(() {
|
||||||
|
menuItemColor = widget.menuItemColor;
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void _onCancel() {
|
||||||
|
setState(() {
|
||||||
|
menuItemColor = widget.menuItemColor;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:photos/services/update_service.dart';
|
import 'package:photos/services/update_service.dart';
|
||||||
|
import 'package:photos/theme/ente_theme.dart';
|
||||||
import 'package:photos/ui/common/web_page.dart';
|
import 'package:photos/ui/common/web_page.dart';
|
||||||
import 'package:photos/ui/components/captioned_text_widget.dart';
|
import 'package:photos/ui/components/captioned_text_widget.dart';
|
||||||
import 'package:photos/ui/components/expandable_menu_item_widget.dart';
|
import 'package:photos/ui/components/expandable_menu_item_widget.dart';
|
||||||
|
@ -47,6 +48,7 @@ class AboutSectionWidget extends StatelessWidget {
|
||||||
captionedTextWidget: const CaptionedTextWidget(
|
captionedTextWidget: const CaptionedTextWidget(
|
||||||
title: "Source code",
|
title: "Source code",
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
|
@ -61,6 +63,7 @@ class AboutSectionWidget extends StatelessWidget {
|
||||||
captionedTextWidget: const CaptionedTextWidget(
|
captionedTextWidget: const CaptionedTextWidget(
|
||||||
title: "Check for updates",
|
title: "Check for updates",
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
|
@ -111,6 +114,7 @@ class AboutMenuItemWidget extends StatelessWidget {
|
||||||
captionedTextWidget: CaptionedTextWidget(
|
captionedTextWidget: CaptionedTextWidget(
|
||||||
title: title,
|
title: title,
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
|
|
|
@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_sodium/flutter_sodium.dart';
|
import 'package:flutter_sodium/flutter_sodium.dart';
|
||||||
import 'package:photos/services/local_authentication_service.dart';
|
import 'package:photos/services/local_authentication_service.dart';
|
||||||
import 'package:photos/services/user_service.dart';
|
import 'package:photos/services/user_service.dart';
|
||||||
|
import 'package:photos/theme/ente_theme.dart';
|
||||||
import 'package:photos/ui/account/change_email_dialog.dart';
|
import 'package:photos/ui/account/change_email_dialog.dart';
|
||||||
import 'package:photos/ui/account/password_entry_page.dart';
|
import 'package:photos/ui/account/password_entry_page.dart';
|
||||||
import 'package:photos/ui/account/recovery_key_page.dart';
|
import 'package:photos/ui/account/recovery_key_page.dart';
|
||||||
|
@ -34,6 +35,7 @@ class AccountSectionWidget extends StatelessWidget {
|
||||||
captionedTextWidget: const CaptionedTextWidget(
|
captionedTextWidget: const CaptionedTextWidget(
|
||||||
title: "Recovery key",
|
title: "Recovery key",
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
|
@ -67,6 +69,7 @@ class AccountSectionWidget extends StatelessWidget {
|
||||||
captionedTextWidget: const CaptionedTextWidget(
|
captionedTextWidget: const CaptionedTextWidget(
|
||||||
title: "Change email",
|
title: "Change email",
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
|
@ -92,6 +95,7 @@ class AccountSectionWidget extends StatelessWidget {
|
||||||
captionedTextWidget: const CaptionedTextWidget(
|
captionedTextWidget: const CaptionedTextWidget(
|
||||||
title: "Change password",
|
title: "Change password",
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
|
|
|
@ -9,6 +9,7 @@ import 'package:photos/models/backup_status.dart';
|
||||||
import 'package:photos/models/duplicate_files.dart';
|
import 'package:photos/models/duplicate_files.dart';
|
||||||
import 'package:photos/services/deduplication_service.dart';
|
import 'package:photos/services/deduplication_service.dart';
|
||||||
import 'package:photos/services/sync_service.dart';
|
import 'package:photos/services/sync_service.dart';
|
||||||
|
import 'package:photos/theme/ente_theme.dart';
|
||||||
import 'package:photos/ui/backup_folder_selection_page.dart';
|
import 'package:photos/ui/backup_folder_selection_page.dart';
|
||||||
import 'package:photos/ui/common/dialogs.dart';
|
import 'package:photos/ui/common/dialogs.dart';
|
||||||
import 'package:photos/ui/components/captioned_text_widget.dart';
|
import 'package:photos/ui/components/captioned_text_widget.dart';
|
||||||
|
@ -48,6 +49,7 @@ class BackupSectionWidgetState extends State<BackupSectionWidget> {
|
||||||
captionedTextWidget: const CaptionedTextWidget(
|
captionedTextWidget: const CaptionedTextWidget(
|
||||||
title: "Backed up folders",
|
title: "Backed up folders",
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
|
@ -122,6 +124,7 @@ class BackupSectionWidgetState extends State<BackupSectionWidget> {
|
||||||
captionedTextWidget: const CaptionedTextWidget(
|
captionedTextWidget: const CaptionedTextWidget(
|
||||||
title: "Free up space",
|
title: "Free up space",
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
|
@ -157,6 +160,7 @@ class BackupSectionWidgetState extends State<BackupSectionWidget> {
|
||||||
captionedTextWidget: const CaptionedTextWidget(
|
captionedTextWidget: const CaptionedTextWidget(
|
||||||
title: "Deduplicate files",
|
title: "Deduplicate files",
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:photos/ente_theme_data.dart';
|
import 'package:photos/ente_theme_data.dart';
|
||||||
import 'package:photos/services/user_service.dart';
|
import 'package:photos/services/user_service.dart';
|
||||||
|
import 'package:photos/theme/ente_theme.dart';
|
||||||
import 'package:photos/ui/account/delete_account_page.dart';
|
import 'package:photos/ui/account/delete_account_page.dart';
|
||||||
import 'package:photos/ui/components/captioned_text_widget.dart';
|
import 'package:photos/ui/components/captioned_text_widget.dart';
|
||||||
import 'package:photos/ui/components/expandable_menu_item_widget.dart';
|
import 'package:photos/ui/components/expandable_menu_item_widget.dart';
|
||||||
|
@ -30,6 +31,7 @@ class DangerSectionWidget extends StatelessWidget {
|
||||||
captionedTextWidget: const CaptionedTextWidget(
|
captionedTextWidget: const CaptionedTextWidget(
|
||||||
title: "Logout",
|
title: "Logout",
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
|
@ -41,6 +43,7 @@ class DangerSectionWidget extends StatelessWidget {
|
||||||
captionedTextWidget: const CaptionedTextWidget(
|
captionedTextWidget: const CaptionedTextWidget(
|
||||||
title: "Delete account",
|
title: "Delete account",
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
|
|
|
@ -6,6 +6,7 @@ import 'package:photos/core/configuration.dart';
|
||||||
import 'package:photos/services/ignored_files_service.dart';
|
import 'package:photos/services/ignored_files_service.dart';
|
||||||
import 'package:photos/services/local_sync_service.dart';
|
import 'package:photos/services/local_sync_service.dart';
|
||||||
import 'package:photos/services/sync_service.dart';
|
import 'package:photos/services/sync_service.dart';
|
||||||
|
import 'package:photos/theme/ente_theme.dart';
|
||||||
import 'package:photos/ui/components/captioned_text_widget.dart';
|
import 'package:photos/ui/components/captioned_text_widget.dart';
|
||||||
import 'package:photos/ui/components/expandable_menu_item_widget.dart';
|
import 'package:photos/ui/components/expandable_menu_item_widget.dart';
|
||||||
import 'package:photos/ui/components/menu_item_widget.dart';
|
import 'package:photos/ui/components/menu_item_widget.dart';
|
||||||
|
@ -32,6 +33,7 @@ class DebugSectionWidget extends StatelessWidget {
|
||||||
captionedTextWidget: const CaptionedTextWidget(
|
captionedTextWidget: const CaptionedTextWidget(
|
||||||
title: "Key attributes",
|
title: "Key attributes",
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
|
@ -43,6 +45,7 @@ class DebugSectionWidget extends StatelessWidget {
|
||||||
captionedTextWidget: const CaptionedTextWidget(
|
captionedTextWidget: const CaptionedTextWidget(
|
||||||
title: "Delete Local Import DB",
|
title: "Delete Local Import DB",
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
|
@ -55,6 +58,7 @@ class DebugSectionWidget extends StatelessWidget {
|
||||||
captionedTextWidget: const CaptionedTextWidget(
|
captionedTextWidget: const CaptionedTextWidget(
|
||||||
title: "Allow auto-upload for ignored files",
|
title: "Allow auto-upload for ignored files",
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
|
|
|
@ -11,6 +11,7 @@ import 'package:photos/ente_theme_data.dart';
|
||||||
import 'package:photos/events/two_factor_status_change_event.dart';
|
import 'package:photos/events/two_factor_status_change_event.dart';
|
||||||
import 'package:photos/services/local_authentication_service.dart';
|
import 'package:photos/services/local_authentication_service.dart';
|
||||||
import 'package:photos/services/user_service.dart';
|
import 'package:photos/services/user_service.dart';
|
||||||
|
import 'package:photos/theme/ente_theme.dart';
|
||||||
import 'package:photos/ui/account/sessions_page.dart';
|
import 'package:photos/ui/account/sessions_page.dart';
|
||||||
import 'package:photos/ui/common/loading_widget.dart';
|
import 'package:photos/ui/common/loading_widget.dart';
|
||||||
import 'package:photos/ui/components/captioned_text_widget.dart';
|
import 'package:photos/ui/components/captioned_text_widget.dart';
|
||||||
|
@ -216,6 +217,7 @@ class _SecuritySectionWidgetState extends State<SecuritySectionWidget> {
|
||||||
captionedTextWidget: const CaptionedTextWidget(
|
captionedTextWidget: const CaptionedTextWidget(
|
||||||
title: "Active sessions",
|
title: "Active sessions",
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
|
|
|
@ -4,6 +4,7 @@ import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:photos/services/update_service.dart';
|
import 'package:photos/services/update_service.dart';
|
||||||
|
import 'package:photos/theme/ente_theme.dart';
|
||||||
import 'package:photos/ui/components/captioned_text_widget.dart';
|
import 'package:photos/ui/components/captioned_text_widget.dart';
|
||||||
import 'package:photos/ui/components/expandable_menu_item_widget.dart';
|
import 'package:photos/ui/components/expandable_menu_item_widget.dart';
|
||||||
import 'package:photos/ui/components/menu_item_widget.dart';
|
import 'package:photos/ui/components/menu_item_widget.dart';
|
||||||
|
@ -61,6 +62,7 @@ class SocialsMenuItemWidget extends StatelessWidget {
|
||||||
captionedTextWidget: CaptionedTextWidget(
|
captionedTextWidget: CaptionedTextWidget(
|
||||||
title: text,
|
title: text,
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
|
|
|
@ -5,6 +5,7 @@ import 'dart:io';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:photos/core/configuration.dart';
|
import 'package:photos/core/configuration.dart';
|
||||||
import 'package:photos/core/constants.dart';
|
import 'package:photos/core/constants.dart';
|
||||||
|
import 'package:photos/theme/ente_theme.dart';
|
||||||
import 'package:photos/ui/common/web_page.dart';
|
import 'package:photos/ui/common/web_page.dart';
|
||||||
import 'package:photos/ui/components/captioned_text_widget.dart';
|
import 'package:photos/ui/components/captioned_text_widget.dart';
|
||||||
import 'package:photos/ui/components/expandable_menu_item_widget.dart';
|
import 'package:photos/ui/components/expandable_menu_item_widget.dart';
|
||||||
|
@ -34,6 +35,7 @@ class SupportSectionWidget extends StatelessWidget {
|
||||||
captionedTextWidget: const CaptionedTextWidget(
|
captionedTextWidget: const CaptionedTextWidget(
|
||||||
title: "Email",
|
title: "Email",
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
|
@ -45,6 +47,7 @@ class SupportSectionWidget extends StatelessWidget {
|
||||||
captionedTextWidget: const CaptionedTextWidget(
|
captionedTextWidget: const CaptionedTextWidget(
|
||||||
title: "Roadmap",
|
title: "Roadmap",
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
|
@ -67,6 +70,7 @@ class SupportSectionWidget extends StatelessWidget {
|
||||||
captionedTextWidget: const CaptionedTextWidget(
|
captionedTextWidget: const CaptionedTextWidget(
|
||||||
title: "Report a bug",
|
title: "Report a bug",
|
||||||
),
|
),
|
||||||
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
trailingIcon: Icons.chevron_right_outlined,
|
trailingIcon: Icons.chevron_right_outlined,
|
||||||
trailingIconIsMuted: true,
|
trailingIconIsMuted: true,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
|
|
|
@ -4,6 +4,7 @@ import 'package:adaptive_theme/adaptive_theme.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:photos/ente_theme_data.dart';
|
import 'package:photos/ente_theme_data.dart';
|
||||||
|
import 'package:photos/theme/ente_theme.dart';
|
||||||
import 'package:photos/ui/components/captioned_text_widget.dart';
|
import 'package:photos/ui/components/captioned_text_widget.dart';
|
||||||
import 'package:photos/ui/components/expandable_menu_item_widget.dart';
|
import 'package:photos/ui/components/expandable_menu_item_widget.dart';
|
||||||
import 'package:photos/ui/components/menu_item_widget.dart';
|
import 'package:photos/ui/components/menu_item_widget.dart';
|
||||||
|
@ -69,7 +70,8 @@ class _ThemeSwitchWidgetState extends State<ThemeSwitchWidget> {
|
||||||
title: toBeginningOfSentenceCase(themeMode.name),
|
title: toBeginningOfSentenceCase(themeMode.name),
|
||||||
textStyle: Theme.of(context).colorScheme.enteTheme.textTheme.body,
|
textStyle: Theme.of(context).colorScheme.enteTheme.textTheme.body,
|
||||||
),
|
),
|
||||||
isHeaderOfExpansion: false,
|
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||||
|
isExpandable: false,
|
||||||
trailingIcon: currentThemeMode == themeMode ? Icons.check : null,
|
trailingIcon: currentThemeMode == themeMode ? Icons.check : null,
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
AdaptiveTheme.of(context).setThemeMode(themeMode);
|
AdaptiveTheme.of(context).setThemeMode(themeMode);
|
||||||
|
|
Loading…
Reference in a new issue