Merge remote-tracking branch 'origin/redesign' into minor-redesign-fixes

This commit is contained in:
vishnukvmd 2022-06-07 10:35:54 +05:30
commit f80122a5e0
19 changed files with 89 additions and 77 deletions

BIN
assets/family sharing.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

View file

@ -21,7 +21,6 @@ final lightThemeData = ThemeData(
primaryColorLight: Colors.black54, primaryColorLight: Colors.black54,
iconTheme: IconThemeData(color: Colors.black), iconTheme: IconThemeData(color: Colors.black),
primaryIconTheme: IconThemeData(color: Colors.red, opacity: 1.0, size: 50.0), primaryIconTheme: IconThemeData(color: Colors.red, opacity: 1.0, size: 50.0),
bottomAppBarColor: Color.fromRGBO(196, 196, 196, 0.6),
colorScheme: ColorScheme.light( colorScheme: ColorScheme.light(
primary: Colors.black, secondary: Color.fromARGB(255, 163, 163, 163)), primary: Colors.black, secondary: Color.fromARGB(255, 163, 163, 163)),
accentColor: Color.fromRGBO(0, 0, 0, 0.6), accentColor: Color.fromRGBO(0, 0, 0, 0.6),
@ -89,15 +88,12 @@ final darkThemeData = ThemeData(
iconTheme: IconThemeData(color: Colors.white), iconTheme: IconThemeData(color: Colors.white),
primaryIconTheme: IconThemeData(color: Colors.red, opacity: 1.0, size: 50.0), primaryIconTheme: IconThemeData(color: Colors.red, opacity: 1.0, size: 50.0),
hintColor: Colors.grey, hintColor: Colors.grey,
bottomAppBarColor: Color.fromRGBO(255, 255, 255, 0.7),
colorScheme: ColorScheme.dark(primary: Colors.white), colorScheme: ColorScheme.dark(primary: Colors.white),
accentColor: Color.fromRGBO(45, 194, 98, 0.2), accentColor: Color.fromRGBO(45, 194, 98, 0.2),
buttonColor: Color.fromRGBO(45, 194, 98, 1.0), buttonColor: Color.fromRGBO(45, 194, 98, 1.0),
buttonTheme: ButtonThemeData().copyWith( buttonTheme: ButtonThemeData().copyWith(
buttonColor: Color.fromRGBO(45, 194, 98, 1.0), buttonColor: Color.fromRGBO(45, 194, 98, 1.0),
), ),
// primaryColor: Colors.red,
textTheme: _buildTextTheme(Colors.white), textTheme: _buildTextTheme(Colors.white),
toggleableActiveColor: Colors.green[400], toggleableActiveColor: Colors.green[400],
outlinedButtonTheme: buildOutlinedButtonThemeData( outlinedButtonTheme: buildOutlinedButtonThemeData(

View file

@ -66,6 +66,14 @@ extension CustomColorScheme on ColorScheme {
backgroundColor: Colors.black, backgroundColor: Colors.black,
itemStyle: TextStyle(color: Colors.white), itemStyle: TextStyle(color: Colors.white),
cancelStyle: TextStyle(color: Colors.white)); cancelStyle: TextStyle(color: Colors.white));
Color get stepProgressUnselectedColor => brightness == Brightness.light
? Color.fromRGBO(196, 196, 196, 0.6)
: Color.fromRGBO(255, 255, 255, 0.7);
Color get gNavBackgoundColor => brightness == Brightness.light
? Color.fromRGBO(196, 196, 196, 0.6)
: Color.fromRGBO(255, 255, 255, 0.7);
} }
OutlinedButtonThemeData buildOutlinedButtonThemeData( OutlinedButtonThemeData buildOutlinedButtonThemeData(

View file

@ -49,7 +49,6 @@ class _AppUpdateDialogState extends State<AppUpdateDialog> {
Container( Container(
width: double.infinity, width: double.infinity,
height: 64, height: 64,
padding: const EdgeInsets.fromLTRB(50, 0, 50, 0),
child: OutlinedButton( child: OutlinedButton(
child: Text( child: Text(
"Update", "Update",

View file

@ -9,16 +9,17 @@ class DynamicFAB extends StatelessWidget {
final String buttonText; final String buttonText;
final Function onPressedFunction; final Function onPressedFunction;
const DynamicFAB( DynamicFAB(
{this.isKeypadOpen, {Key key,
this.isKeypadOpen,
this.buttonText, this.buttonText,
this.isFormValid, this.isFormValid,
this.onPressedFunction}); this.onPressedFunction})
: super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (isKeypadOpen) { if (isKeypadOpen) {
//var here
return Container( return Container(
decoration: BoxDecoration( decoration: BoxDecoration(
boxShadow: [ boxShadow: [
@ -41,7 +42,7 @@ class DynamicFAB extends StatelessWidget {
foregroundColor: foregroundColor:
Theme.of(context).colorScheme.dynamicFABTextColor, Theme.of(context).colorScheme.dynamicFABTextColor,
child: Transform.rotate( child: Transform.rotate(
angle: isFormValid ? 0 : math.pi / 2, //var here angle: isFormValid ? 0 : math.pi / 2,
child: Icon( child: Icon(
Icons.chevron_right, Icons.chevron_right,
size: 36, size: 36,

View file

@ -8,6 +8,7 @@ import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:password_strength/password_strength.dart'; import 'package:password_strength/password_strength.dart';
import 'package:photos/core/configuration.dart'; import 'package:photos/core/configuration.dart';
import 'package:photos/ente_theme_data.dart';
import 'package:photos/models/billing_plan.dart'; import 'package:photos/models/billing_plan.dart';
import 'package:photos/services/billing_service.dart'; import 'package:photos/services/billing_service.dart';
import 'package:photos/services/user_service.dart'; import 'package:photos/services/user_service.dart';
@ -67,7 +68,7 @@ class _EmailEntryPageState extends State<EmailEntryPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom != 0; final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom > 125;
FloatingActionButtonLocation fabLocation() { FloatingActionButtonLocation fabLocation() {
if (isKeypadOpen) { if (isKeypadOpen) {
@ -95,7 +96,8 @@ class _EmailEntryPageState extends State<EmailEntryPage> {
currentStep: 1, currentStep: 1,
selectedColor: Theme.of(context).buttonColor, selectedColor: Theme.of(context).buttonColor,
roundedEdges: Radius.circular(10), roundedEdges: Radius.circular(10),
unselectedColor: Theme.of(context).bottomAppBarColor, unselectedColor:
Theme.of(context).colorScheme.stepProgressUnselectedColor,
)), )),
), ),
); );

View file

@ -117,7 +117,7 @@ class FadingAppBarState extends State<FadingAppBar> {
Padding( Padding(
padding: EdgeInsets.all(8), padding: EdgeInsets.all(8),
), ),
Text("download"), Text("Download"),
], ],
), ),
), ),
@ -141,7 +141,7 @@ class FadingAppBarState extends State<FadingAppBar> {
Padding( Padding(
padding: EdgeInsets.all(8), padding: EdgeInsets.all(8),
), ),
Text("edit time"), Text("Edit time"),
], ],
), ),
), ),
@ -162,7 +162,7 @@ class FadingAppBarState extends State<FadingAppBar> {
Padding( Padding(
padding: EdgeInsets.all(8), padding: EdgeInsets.all(8),
), ),
Text("delete"), Text("Delete"),
], ],
), ),
), ),
@ -211,7 +211,7 @@ class FadingAppBarState extends State<FadingAppBar> {
final shouldBlockUser = file.uploadedFileID == null; final shouldBlockUser = file.uploadedFileID == null;
ProgressDialog dialog; ProgressDialog dialog;
if (shouldBlockUser) { if (shouldBlockUser) {
dialog = createProgressDialog(context, "adding to favorites..."); dialog = createProgressDialog(context, "Ddding to favorites...");
await dialog.show(); await dialog.show();
} }
try { try {
@ -279,7 +279,7 @@ class FadingAppBarState extends State<FadingAppBar> {
final List<Widget> actions = []; final List<Widget> actions = [];
if (file.uploadedFileID == null || file.localID == null) { if (file.uploadedFileID == null || file.localID == null) {
actions.add(CupertinoActionSheetAction( actions.add(CupertinoActionSheetAction(
child: Text("everywhere"), child: Text("Everywhere"),
isDestructiveAction: true, isDestructiveAction: true,
onPressed: () async { onPressed: () async {
await deleteFilesFromEverywhere(context, [file]); await deleteFilesFromEverywhere(context, [file]);
@ -290,11 +290,11 @@ class FadingAppBarState extends State<FadingAppBar> {
} else { } else {
// uploaded file which is present locally too // uploaded file which is present locally too
actions.add(CupertinoActionSheetAction( actions.add(CupertinoActionSheetAction(
child: Text("device"), child: Text("Device"),
isDestructiveAction: true, isDestructiveAction: true,
onPressed: () async { onPressed: () async {
await deleteFilesOnDeviceOnly(context, [file]); await deleteFilesOnDeviceOnly(context, [file]);
showToast("file deleted from device"); showToast("File deleted from device");
Navigator.of(context, rootNavigator: true).pop(); Navigator.of(context, rootNavigator: true).pop();
// TODO: Fix behavior when inside a device folder // TODO: Fix behavior when inside a device folder
}, },
@ -305,14 +305,14 @@ class FadingAppBarState extends State<FadingAppBar> {
isDestructiveAction: true, isDestructiveAction: true,
onPressed: () async { onPressed: () async {
await deleteFilesFromRemoteOnly(context, [file]); await deleteFilesFromRemoteOnly(context, [file]);
showShortToast("moved to trash"); showShortToast("Moved to trash");
Navigator.of(context, rootNavigator: true).pop(); Navigator.of(context, rootNavigator: true).pop();
// TODO: Fix behavior when inside a collection // TODO: Fix behavior when inside a collection
}, },
)); ));
actions.add(CupertinoActionSheetAction( actions.add(CupertinoActionSheetAction(
child: Text("everywhere"), child: Text("Everywhere"),
isDestructiveAction: true, isDestructiveAction: true,
onPressed: () async { onPressed: () async {
await deleteFilesFromEverywhere(context, [file]); await deleteFilesFromEverywhere(context, [file]);
@ -322,10 +322,10 @@ class FadingAppBarState extends State<FadingAppBar> {
)); ));
} }
final action = CupertinoActionSheet( final action = CupertinoActionSheet(
title: Text("delete file?"), title: Text("Delete file?"),
actions: actions, actions: actions,
cancelButton: CupertinoActionSheetAction( cancelButton: CupertinoActionSheetAction(
child: Text("cancel"), child: Text("Cancel"),
onPressed: () { onPressed: () {
Navigator.of(context, rootNavigator: true).pop(); Navigator.of(context, rootNavigator: true).pop();
}, },
@ -335,7 +335,7 @@ class FadingAppBarState extends State<FadingAppBar> {
} }
Future<void> _download(File file) async { Future<void> _download(File file) async {
final dialog = createProgressDialog(context, "downloading..."); final dialog = createProgressDialog(context, "Downloading...");
await dialog.show(); await dialog.show();
FileType type = file.fileType; FileType type = file.fileType;
// save and track image for livePhoto/image and video for FileType.video // save and track image for livePhoto/image and video for FileType.video
@ -364,9 +364,9 @@ class FadingAppBarState extends State<FadingAppBar> {
Bus.instance.fire(LocalPhotosUpdatedEvent([file])); Bus.instance.fire(LocalPhotosUpdatedEvent([file]));
await dialog.hide(); await dialog.hide();
if (file.fileType == FileType.livePhoto) { if (file.fileType == FileType.livePhoto) {
showToast("photo and video saved to gallery"); showToast("Photo and video saved to gallery");
} else { } else {
showToast("file saved to gallery"); showToast("File saved to gallery");
} }
} }
} }

View file

@ -232,7 +232,7 @@ class _FileInfoWidgetState extends State<FileInfoWidget> {
Icon(Icons.feed_outlined, color: infoColor), Icon(Icons.feed_outlined, color: infoColor),
Padding(padding: EdgeInsets.all(4)), Padding(padding: EdgeInsets.all(4)),
Text( Text(
"view raw EXIF", "View raw EXIF",
style: TextStyle(color: infoColor), style: TextStyle(color: infoColor),
), ),
], ],
@ -260,7 +260,7 @@ class _FileInfoWidgetState extends State<FileInfoWidget> {
), ),
Padding(padding: EdgeInsets.all(4)), Padding(padding: EdgeInsets.all(4)),
Text( Text(
"no exif", "No exif",
style: TextStyle( style: TextStyle(
color: Colors.white.withOpacity(0.5), color: Colors.white.withOpacity(0.5),
), ),
@ -268,7 +268,7 @@ class _FileInfoWidgetState extends State<FileInfoWidget> {
], ],
), ),
onPressed: () { onPressed: () {
showToast("this image has no exif data"); showShortToast("This image has no exif data");
}, },
), ),
); );
@ -277,7 +277,7 @@ class _FileInfoWidgetState extends State<FileInfoWidget> {
actions.add( actions.add(
TextButton( TextButton(
child: Text( child: Text(
"close", "Close",
style: TextStyle( style: TextStyle(
color: infoColor, color: infoColor,
), ),

View file

@ -287,7 +287,7 @@ class _OverlayWidgetState extends State<OverlayWidget> {
widget.collection.type != CollectionType.favorites) { widget.collection.type != CollectionType.favorites) {
actions.add( actions.add(
Tooltip( Tooltip(
message: "move", message: "Move",
child: IconButton( child: IconButton(
color: Colors.black, //same for both themes color: Colors.black, //same for both themes
icon: Icon(Platform.isAndroid icon: Icon(Platform.isAndroid
@ -302,7 +302,7 @@ class _OverlayWidgetState extends State<OverlayWidget> {
} }
actions.add( actions.add(
Tooltip( Tooltip(
message: "share", message: "Share",
child: IconButton( child: IconButton(
color: Colors.black, //same for both themes color: Colors.black, //same for both themes
key: shareButtonKey, key: shareButtonKey,
@ -318,7 +318,7 @@ class _OverlayWidgetState extends State<OverlayWidget> {
widget.type == GalleryType.local_folder) { widget.type == GalleryType.local_folder) {
actions.add( actions.add(
Tooltip( Tooltip(
message: "delete", message: "Delete",
child: IconButton( child: IconButton(
color: Colors.black, //same for both themes color: Colors.black, //same for both themes
icon: icon:
@ -333,7 +333,7 @@ class _OverlayWidgetState extends State<OverlayWidget> {
if (widget.collection.type == CollectionType.folder) { if (widget.collection.type == CollectionType.folder) {
actions.add( actions.add(
Tooltip( Tooltip(
message: "delete", message: "Delete",
child: IconButton( child: IconButton(
color: Colors.black, //same for both themes color: Colors.black, //same for both themes
icon: Icon( icon: Icon(
@ -348,7 +348,7 @@ class _OverlayWidgetState extends State<OverlayWidget> {
} else { } else {
actions.add( actions.add(
Tooltip( Tooltip(
message: "remove", message: "Remove",
child: IconButton( child: IconButton(
color: Colors.black, //same for both themes color: Colors.black, //same for both themes
icon: Icon( icon: Icon(
@ -406,7 +406,7 @@ class _OverlayWidgetState extends State<OverlayWidget> {
)); ));
actions.add( actions.add(
Tooltip( Tooltip(
message: "delete permanently", message: "Delete permanently",
child: IconButton( child: IconButton(
color: Colors.black, //same for both themes color: Colors.black, //same for both themes
icon: Icon( icon: Icon(
@ -455,14 +455,14 @@ class _OverlayWidgetState extends State<OverlayWidget> {
final actions = <Widget>[]; final actions = <Widget>[];
if (containsUploadedFile && containsLocalFile) { if (containsUploadedFile && containsLocalFile) {
actions.add(CupertinoActionSheetAction( actions.add(CupertinoActionSheetAction(
child: Text("device"), child: Text("Device"),
isDestructiveAction: true, isDestructiveAction: true,
onPressed: () async { onPressed: () async {
Navigator.of(context, rootNavigator: true).pop(); Navigator.of(context, rootNavigator: true).pop();
await deleteFilesOnDeviceOnly( await deleteFilesOnDeviceOnly(
context, widget.selectedFiles.files.toList()); context, widget.selectedFiles.files.toList());
_clearSelectedFiles(); _clearSelectedFiles();
showToast("files deleted from device"); showToast("Files deleted from device");
}, },
)); ));
actions.add(CupertinoActionSheetAction( actions.add(CupertinoActionSheetAction(
@ -473,11 +473,11 @@ class _OverlayWidgetState extends State<OverlayWidget> {
await deleteFilesFromRemoteOnly( await deleteFilesFromRemoteOnly(
context, widget.selectedFiles.files.toList()); context, widget.selectedFiles.files.toList());
_clearSelectedFiles(); _clearSelectedFiles();
showShortToast("moved to trash"); showShortToast("Moved to trash");
}, },
)); ));
actions.add(CupertinoActionSheetAction( actions.add(CupertinoActionSheetAction(
child: Text("everywhere"), child: Text("Everywhere"),
isDestructiveAction: true, isDestructiveAction: true,
onPressed: () async { onPressed: () async {
Navigator.of(context, rootNavigator: true).pop(); Navigator.of(context, rootNavigator: true).pop();
@ -499,14 +499,14 @@ class _OverlayWidgetState extends State<OverlayWidget> {
)); ));
} }
final action = CupertinoActionSheet( final action = CupertinoActionSheet(
title: Text("delete " + title: Text("Delete " +
count.toString() + count.toString() +
" file" + " file" +
(count == 1 ? "" : "s") + (count == 1 ? "" : "s") +
(containsUploadedFile && containsLocalFile ? " from" : "?")), (containsUploadedFile && containsLocalFile ? " from" : "?")),
actions: actions, actions: actions,
cancelButton: CupertinoActionSheetAction( cancelButton: CupertinoActionSheetAction(
child: Text("cancel"), child: Text("Cancel"),
onPressed: () { onPressed: () {
Navigator.of(context, rootNavigator: true).pop(); Navigator.of(context, rootNavigator: true).pop();
}, },
@ -518,7 +518,7 @@ class _OverlayWidgetState extends State<OverlayWidget> {
void _showRemoveFromCollectionSheet(BuildContext context) { void _showRemoveFromCollectionSheet(BuildContext context) {
final count = widget.selectedFiles.files.length; final count = widget.selectedFiles.files.length;
final action = CupertinoActionSheet( final action = CupertinoActionSheet(
title: Text("remove " + title: Text("Remove " +
count.toString() + count.toString() +
" file" + " file" +
(count == 1 ? "" : "s") + (count == 1 ? "" : "s") +
@ -527,11 +527,11 @@ class _OverlayWidgetState extends State<OverlayWidget> {
"?"), "?"),
actions: <Widget>[ actions: <Widget>[
CupertinoActionSheetAction( CupertinoActionSheetAction(
child: Text("remove"), child: Text("Remove"),
isDestructiveAction: true, isDestructiveAction: true,
onPressed: () async { onPressed: () async {
Navigator.of(context, rootNavigator: true).pop(); Navigator.of(context, rootNavigator: true).pop();
final dialog = createProgressDialog(context, "removing files..."); final dialog = createProgressDialog(context, "Removing files...");
await dialog.show(); await dialog.show();
try { try {
await CollectionsService.instance.removeFromCollection( await CollectionsService.instance.removeFromCollection(
@ -547,7 +547,7 @@ class _OverlayWidgetState extends State<OverlayWidget> {
), ),
], ],
cancelButton: CupertinoActionSheetAction( cancelButton: CupertinoActionSheetAction(
child: Text("cancel"), child: Text("Cancel"),
onPressed: () { onPressed: () {
Navigator.of(context, rootNavigator: true).pop(); Navigator.of(context, rootNavigator: true).pop();
}, },

View file

@ -592,9 +592,9 @@ class _HomeBottomNavigationBarState extends State<HomeBottomNavigationBar> {
filter: ImageFilter.blur(sigmaX: 20, sigmaY: 20), filter: ImageFilter.blur(sigmaX: 20, sigmaY: 20),
child: GNav( child: GNav(
curve: Curves.easeOutExpo, curve: Curves.easeOutExpo,
// backgroundColor: Colors.white.withOpacity(0.6), backgroundColor: Theme.of(context)
backgroundColor: .colorScheme
Theme.of(context).bottomAppBarColor, .gNavBackgoundColor,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
rippleColor: Colors.white.withOpacity(0.2), rippleColor: Colors.white.withOpacity(0.2),
hoverColor: Colors.white.withOpacity(0.2), hoverColor: Colors.white.withOpacity(0.2),

View file

@ -29,7 +29,7 @@ class _LoginPageState extends State<LoginPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom != 0; final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom > 125;
FloatingActionButtonLocation fabLocation() { FloatingActionButtonLocation fabLocation() {
if (isKeypadOpen) { if (isKeypadOpen) {

View file

@ -1,5 +1,6 @@
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.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/ui/common/dynamicFAB.dart'; import 'package:photos/ui/common/dynamicFAB.dart';
import 'package:step_progress_indicator/step_progress_indicator.dart'; import 'package:step_progress_indicator/step_progress_indicator.dart';
@ -25,7 +26,7 @@ class _OTTVerificationPageState extends State<OTTVerificationPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom != 0; final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom > 125;
FloatingActionButtonLocation fabLocation() { FloatingActionButtonLocation fabLocation() {
if (isKeypadOpen) { if (isKeypadOpen) {
@ -49,14 +50,17 @@ class _OTTVerificationPageState extends State<OTTVerificationPage> {
? Hero( ? Hero(
tag: "sign_up", tag: "sign_up",
child: Material( child: Material(
type: MaterialType.transparency, type: MaterialType.transparency,
child: StepProgressIndicator( child: StepProgressIndicator(
totalSteps: 4, totalSteps: 4,
currentStep: 2, currentStep: 2,
selectedColor: Theme.of(context).buttonColor, selectedColor: Theme.of(context).buttonColor,
roundedEdges: Radius.circular(10), roundedEdges: Radius.circular(10),
unselectedColor: Theme.of(context).bottomAppBarColor, unselectedColor: Theme.of(context)
)), .colorScheme
.stepProgressUnselectedColor,
),
),
) )
: null, : null,
), ),

View file

@ -75,7 +75,7 @@ class _PasswordEntryPageState extends State<PasswordEntryPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom != 0; final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom > 125;
FloatingActionButtonLocation fabLocation() { FloatingActionButtonLocation fabLocation() {
if (isKeypadOpen) { if (isKeypadOpen) {

View file

@ -32,7 +32,7 @@ class _PasswordReentryPageState extends State<PasswordReentryPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom != 0; final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom > 125;
FloatingActionButtonLocation fabLocation() { FloatingActionButtonLocation fabLocation() {
if (isKeypadOpen) { if (isKeypadOpen) {

View file

@ -25,8 +25,9 @@ class ChildSubscriptionWidget extends StatelessWidget {
children: [ children: [
Center( Center(
child: Text( child: Text(
"you are on a family plan!", "You are on a family plan!",
style: TextStyle(fontSize: 14, color: Colors.white), style:
Theme.of(context).textTheme.bodyText1.copyWith(fontSize: 14),
), ),
), ),
Padding( Padding(
@ -39,7 +40,7 @@ class ChildSubscriptionWidget extends StatelessWidget {
text: TextSpan( text: TextSpan(
children: [ children: [
TextSpan( TextSpan(
text: "please contact ", text: "Please contact ",
), ),
TextSpan( TextSpan(
text: familyAdmin, text: familyAdmin,
@ -49,10 +50,10 @@ class ChildSubscriptionWidget extends StatelessWidget {
text: " to manage your family subscription", text: " to manage your family subscription",
), ),
], ],
style: TextStyle( style: Theme.of(context)
fontFamily: 'Ubuntu', .textTheme
fontSize: 14, .bodyText1
), .copyWith(fontSize: 14),
), ),
), ),
), ),
@ -60,7 +61,7 @@ class ChildSubscriptionWidget extends StatelessWidget {
padding: const EdgeInsets.symmetric(vertical: 8), padding: const EdgeInsets.symmetric(vertical: 8),
), ),
Image.asset( Image.asset(
"assets/family_sharing.jpg", "assets/family sharing.png",
height: 256, height: 256,
), ),
Padding( Padding(
@ -99,7 +100,7 @@ class ChildSubscriptionWidget extends StatelessWidget {
text: TextSpan( text: TextSpan(
children: const [ children: const [
TextSpan( TextSpan(
text: "please contact ", text: "Please contact ",
), ),
TextSpan( TextSpan(
text: "support@ente.io", text: "support@ente.io",
@ -109,10 +110,7 @@ class ChildSubscriptionWidget extends StatelessWidget {
text: " for help", text: " for help",
), ),
], ],
style: TextStyle( style: Theme.of(context).textTheme.overline,
fontFamily: 'Ubuntu-Regular',
fontSize: 12,
),
), ),
), ),
), ),

View file

@ -3,6 +3,7 @@ import 'dart:async';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:photos/ente_theme_data.dart';
import 'package:photos/models/billing_plan.dart'; import 'package:photos/models/billing_plan.dart';
import 'package:photos/models/subscription.dart'; import 'package:photos/models/subscription.dart';
import 'package:photos/models/user_details.dart'; import 'package:photos/models/user_details.dart';
@ -132,7 +133,9 @@ class _StripeSubscriptionPageState extends State<StripeSubscriptionPage> {
currentStep: 4, currentStep: 4,
selectedColor: Theme.of(context).buttonColor, selectedColor: Theme.of(context).buttonColor,
roundedEdges: Radius.circular(10), roundedEdges: Radius.circular(10),
unselectedColor: Theme.of(context).bottomAppBarColor, unselectedColor: Theme.of(context)
.colorScheme
.stepProgressUnselectedColor,
)), )),
) )
: AppBar( : AppBar(

View file

@ -61,7 +61,8 @@ class _RecoveryKeyPageState extends State<RecoveryKeyPage> {
currentStep: 3, currentStep: 3,
selectedColor: Theme.of(context).buttonColor, selectedColor: Theme.of(context).buttonColor,
roundedEdges: Radius.circular(10), roundedEdges: Radius.circular(10),
unselectedColor: Theme.of(context).bottomAppBarColor, unselectedColor:
Theme.of(context).colorScheme.stepProgressUnselectedColor,
), ),
), ),
) )

View file

@ -18,7 +18,7 @@ final _logger = Logger("ShareUtil");
// share is used to share media/files from ente to other apps // share is used to share media/files from ente to other apps
Future<void> share(BuildContext context, List<File> files, Future<void> share(BuildContext context, List<File> files,
{GlobalKey shareButtonKey}) async { {GlobalKey shareButtonKey}) async {
final dialog = createProgressDialog(context, "preparing..."); final dialog = createProgressDialog(context, "Preparing...");
await dialog.show(); await dialog.show();
final List<Future<String>> pathFutures = []; final List<Future<String>> pathFutures = [];
for (File file in files) { for (File file in files) {