Merge remote-tracking branch 'origin/redesign' into minor-redesign-fixes
This commit is contained in:
commit
f80122a5e0
BIN
assets/family sharing.png
Normal file
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 |
|
@ -21,7 +21,6 @@ final lightThemeData = ThemeData(
|
|||
primaryColorLight: Colors.black54,
|
||||
iconTheme: IconThemeData(color: Colors.black),
|
||||
primaryIconTheme: IconThemeData(color: Colors.red, opacity: 1.0, size: 50.0),
|
||||
bottomAppBarColor: Color.fromRGBO(196, 196, 196, 0.6),
|
||||
colorScheme: ColorScheme.light(
|
||||
primary: Colors.black, secondary: Color.fromARGB(255, 163, 163, 163)),
|
||||
accentColor: Color.fromRGBO(0, 0, 0, 0.6),
|
||||
|
@ -89,15 +88,12 @@ final darkThemeData = ThemeData(
|
|||
iconTheme: IconThemeData(color: Colors.white),
|
||||
primaryIconTheme: IconThemeData(color: Colors.red, opacity: 1.0, size: 50.0),
|
||||
hintColor: Colors.grey,
|
||||
bottomAppBarColor: Color.fromRGBO(255, 255, 255, 0.7),
|
||||
|
||||
colorScheme: ColorScheme.dark(primary: Colors.white),
|
||||
accentColor: Color.fromRGBO(45, 194, 98, 0.2),
|
||||
buttonColor: Color.fromRGBO(45, 194, 98, 1.0),
|
||||
buttonTheme: ButtonThemeData().copyWith(
|
||||
buttonColor: Color.fromRGBO(45, 194, 98, 1.0),
|
||||
),
|
||||
// primaryColor: Colors.red,
|
||||
textTheme: _buildTextTheme(Colors.white),
|
||||
toggleableActiveColor: Colors.green[400],
|
||||
outlinedButtonTheme: buildOutlinedButtonThemeData(
|
||||
|
|
|
@ -66,6 +66,14 @@ extension CustomColorScheme on ColorScheme {
|
|||
backgroundColor: Colors.black,
|
||||
itemStyle: 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(
|
||||
|
|
|
@ -49,7 +49,6 @@ class _AppUpdateDialogState extends State<AppUpdateDialog> {
|
|||
Container(
|
||||
width: double.infinity,
|
||||
height: 64,
|
||||
padding: const EdgeInsets.fromLTRB(50, 0, 50, 0),
|
||||
child: OutlinedButton(
|
||||
child: Text(
|
||||
"Update",
|
||||
|
|
|
@ -9,16 +9,17 @@ class DynamicFAB extends StatelessWidget {
|
|||
final String buttonText;
|
||||
final Function onPressedFunction;
|
||||
|
||||
const DynamicFAB(
|
||||
{this.isKeypadOpen,
|
||||
DynamicFAB(
|
||||
{Key key,
|
||||
this.isKeypadOpen,
|
||||
this.buttonText,
|
||||
this.isFormValid,
|
||||
this.onPressedFunction});
|
||||
this.onPressedFunction})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (isKeypadOpen) {
|
||||
//var here
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
boxShadow: [
|
||||
|
@ -41,7 +42,7 @@ class DynamicFAB extends StatelessWidget {
|
|||
foregroundColor:
|
||||
Theme.of(context).colorScheme.dynamicFABTextColor,
|
||||
child: Transform.rotate(
|
||||
angle: isFormValid ? 0 : math.pi / 2, //var here
|
||||
angle: isFormValid ? 0 : math.pi / 2,
|
||||
child: Icon(
|
||||
Icons.chevron_right,
|
||||
size: 36,
|
||||
|
|
|
@ -8,6 +8,7 @@ import 'package:flutter/services.dart';
|
|||
import 'package:flutter/widgets.dart';
|
||||
import 'package:password_strength/password_strength.dart';
|
||||
import 'package:photos/core/configuration.dart';
|
||||
import 'package:photos/ente_theme_data.dart';
|
||||
import 'package:photos/models/billing_plan.dart';
|
||||
import 'package:photos/services/billing_service.dart';
|
||||
import 'package:photos/services/user_service.dart';
|
||||
|
@ -67,7 +68,7 @@ class _EmailEntryPageState extends State<EmailEntryPage> {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom != 0;
|
||||
final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom > 125;
|
||||
|
||||
FloatingActionButtonLocation fabLocation() {
|
||||
if (isKeypadOpen) {
|
||||
|
@ -95,7 +96,8 @@ class _EmailEntryPageState extends State<EmailEntryPage> {
|
|||
currentStep: 1,
|
||||
selectedColor: Theme.of(context).buttonColor,
|
||||
roundedEdges: Radius.circular(10),
|
||||
unselectedColor: Theme.of(context).bottomAppBarColor,
|
||||
unselectedColor:
|
||||
Theme.of(context).colorScheme.stepProgressUnselectedColor,
|
||||
)),
|
||||
),
|
||||
);
|
||||
|
|
|
@ -117,7 +117,7 @@ class FadingAppBarState extends State<FadingAppBar> {
|
|||
Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
),
|
||||
Text("download"),
|
||||
Text("Download"),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
@ -141,7 +141,7 @@ class FadingAppBarState extends State<FadingAppBar> {
|
|||
Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
),
|
||||
Text("edit time"),
|
||||
Text("Edit time"),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
@ -162,7 +162,7 @@ class FadingAppBarState extends State<FadingAppBar> {
|
|||
Padding(
|
||||
padding: EdgeInsets.all(8),
|
||||
),
|
||||
Text("delete"),
|
||||
Text("Delete"),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
@ -211,7 +211,7 @@ class FadingAppBarState extends State<FadingAppBar> {
|
|||
final shouldBlockUser = file.uploadedFileID == null;
|
||||
ProgressDialog dialog;
|
||||
if (shouldBlockUser) {
|
||||
dialog = createProgressDialog(context, "adding to favorites...");
|
||||
dialog = createProgressDialog(context, "Ddding to favorites...");
|
||||
await dialog.show();
|
||||
}
|
||||
try {
|
||||
|
@ -279,7 +279,7 @@ class FadingAppBarState extends State<FadingAppBar> {
|
|||
final List<Widget> actions = [];
|
||||
if (file.uploadedFileID == null || file.localID == null) {
|
||||
actions.add(CupertinoActionSheetAction(
|
||||
child: Text("everywhere"),
|
||||
child: Text("Everywhere"),
|
||||
isDestructiveAction: true,
|
||||
onPressed: () async {
|
||||
await deleteFilesFromEverywhere(context, [file]);
|
||||
|
@ -290,11 +290,11 @@ class FadingAppBarState extends State<FadingAppBar> {
|
|||
} else {
|
||||
// uploaded file which is present locally too
|
||||
actions.add(CupertinoActionSheetAction(
|
||||
child: Text("device"),
|
||||
child: Text("Device"),
|
||||
isDestructiveAction: true,
|
||||
onPressed: () async {
|
||||
await deleteFilesOnDeviceOnly(context, [file]);
|
||||
showToast("file deleted from device");
|
||||
showToast("File deleted from device");
|
||||
Navigator.of(context, rootNavigator: true).pop();
|
||||
// TODO: Fix behavior when inside a device folder
|
||||
},
|
||||
|
@ -305,14 +305,14 @@ class FadingAppBarState extends State<FadingAppBar> {
|
|||
isDestructiveAction: true,
|
||||
onPressed: () async {
|
||||
await deleteFilesFromRemoteOnly(context, [file]);
|
||||
showShortToast("moved to trash");
|
||||
showShortToast("Moved to trash");
|
||||
Navigator.of(context, rootNavigator: true).pop();
|
||||
// TODO: Fix behavior when inside a collection
|
||||
},
|
||||
));
|
||||
|
||||
actions.add(CupertinoActionSheetAction(
|
||||
child: Text("everywhere"),
|
||||
child: Text("Everywhere"),
|
||||
isDestructiveAction: true,
|
||||
onPressed: () async {
|
||||
await deleteFilesFromEverywhere(context, [file]);
|
||||
|
@ -322,10 +322,10 @@ class FadingAppBarState extends State<FadingAppBar> {
|
|||
));
|
||||
}
|
||||
final action = CupertinoActionSheet(
|
||||
title: Text("delete file?"),
|
||||
title: Text("Delete file?"),
|
||||
actions: actions,
|
||||
cancelButton: CupertinoActionSheetAction(
|
||||
child: Text("cancel"),
|
||||
child: Text("Cancel"),
|
||||
onPressed: () {
|
||||
Navigator.of(context, rootNavigator: true).pop();
|
||||
},
|
||||
|
@ -335,7 +335,7 @@ class FadingAppBarState extends State<FadingAppBar> {
|
|||
}
|
||||
|
||||
Future<void> _download(File file) async {
|
||||
final dialog = createProgressDialog(context, "downloading...");
|
||||
final dialog = createProgressDialog(context, "Downloading...");
|
||||
await dialog.show();
|
||||
FileType type = file.fileType;
|
||||
// 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]));
|
||||
await dialog.hide();
|
||||
if (file.fileType == FileType.livePhoto) {
|
||||
showToast("photo and video saved to gallery");
|
||||
showToast("Photo and video saved to gallery");
|
||||
} else {
|
||||
showToast("file saved to gallery");
|
||||
showToast("File saved to gallery");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -232,7 +232,7 @@ class _FileInfoWidgetState extends State<FileInfoWidget> {
|
|||
Icon(Icons.feed_outlined, color: infoColor),
|
||||
Padding(padding: EdgeInsets.all(4)),
|
||||
Text(
|
||||
"view raw EXIF",
|
||||
"View raw EXIF",
|
||||
style: TextStyle(color: infoColor),
|
||||
),
|
||||
],
|
||||
|
@ -260,7 +260,7 @@ class _FileInfoWidgetState extends State<FileInfoWidget> {
|
|||
),
|
||||
Padding(padding: EdgeInsets.all(4)),
|
||||
Text(
|
||||
"no exif",
|
||||
"No exif",
|
||||
style: TextStyle(
|
||||
color: Colors.white.withOpacity(0.5),
|
||||
),
|
||||
|
@ -268,7 +268,7 @@ class _FileInfoWidgetState extends State<FileInfoWidget> {
|
|||
],
|
||||
),
|
||||
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(
|
||||
TextButton(
|
||||
child: Text(
|
||||
"close",
|
||||
"Close",
|
||||
style: TextStyle(
|
||||
color: infoColor,
|
||||
),
|
||||
|
|
|
@ -287,7 +287,7 @@ class _OverlayWidgetState extends State<OverlayWidget> {
|
|||
widget.collection.type != CollectionType.favorites) {
|
||||
actions.add(
|
||||
Tooltip(
|
||||
message: "move",
|
||||
message: "Move",
|
||||
child: IconButton(
|
||||
color: Colors.black, //same for both themes
|
||||
icon: Icon(Platform.isAndroid
|
||||
|
@ -302,7 +302,7 @@ class _OverlayWidgetState extends State<OverlayWidget> {
|
|||
}
|
||||
actions.add(
|
||||
Tooltip(
|
||||
message: "share",
|
||||
message: "Share",
|
||||
child: IconButton(
|
||||
color: Colors.black, //same for both themes
|
||||
key: shareButtonKey,
|
||||
|
@ -318,7 +318,7 @@ class _OverlayWidgetState extends State<OverlayWidget> {
|
|||
widget.type == GalleryType.local_folder) {
|
||||
actions.add(
|
||||
Tooltip(
|
||||
message: "delete",
|
||||
message: "Delete",
|
||||
child: IconButton(
|
||||
color: Colors.black, //same for both themes
|
||||
icon:
|
||||
|
@ -333,7 +333,7 @@ class _OverlayWidgetState extends State<OverlayWidget> {
|
|||
if (widget.collection.type == CollectionType.folder) {
|
||||
actions.add(
|
||||
Tooltip(
|
||||
message: "delete",
|
||||
message: "Delete",
|
||||
child: IconButton(
|
||||
color: Colors.black, //same for both themes
|
||||
icon: Icon(
|
||||
|
@ -348,7 +348,7 @@ class _OverlayWidgetState extends State<OverlayWidget> {
|
|||
} else {
|
||||
actions.add(
|
||||
Tooltip(
|
||||
message: "remove",
|
||||
message: "Remove",
|
||||
child: IconButton(
|
||||
color: Colors.black, //same for both themes
|
||||
icon: Icon(
|
||||
|
@ -406,7 +406,7 @@ class _OverlayWidgetState extends State<OverlayWidget> {
|
|||
));
|
||||
actions.add(
|
||||
Tooltip(
|
||||
message: "delete permanently",
|
||||
message: "Delete permanently",
|
||||
child: IconButton(
|
||||
color: Colors.black, //same for both themes
|
||||
icon: Icon(
|
||||
|
@ -455,14 +455,14 @@ class _OverlayWidgetState extends State<OverlayWidget> {
|
|||
final actions = <Widget>[];
|
||||
if (containsUploadedFile && containsLocalFile) {
|
||||
actions.add(CupertinoActionSheetAction(
|
||||
child: Text("device"),
|
||||
child: Text("Device"),
|
||||
isDestructiveAction: true,
|
||||
onPressed: () async {
|
||||
Navigator.of(context, rootNavigator: true).pop();
|
||||
await deleteFilesOnDeviceOnly(
|
||||
context, widget.selectedFiles.files.toList());
|
||||
_clearSelectedFiles();
|
||||
showToast("files deleted from device");
|
||||
showToast("Files deleted from device");
|
||||
},
|
||||
));
|
||||
actions.add(CupertinoActionSheetAction(
|
||||
|
@ -473,11 +473,11 @@ class _OverlayWidgetState extends State<OverlayWidget> {
|
|||
await deleteFilesFromRemoteOnly(
|
||||
context, widget.selectedFiles.files.toList());
|
||||
_clearSelectedFiles();
|
||||
showShortToast("moved to trash");
|
||||
showShortToast("Moved to trash");
|
||||
},
|
||||
));
|
||||
actions.add(CupertinoActionSheetAction(
|
||||
child: Text("everywhere"),
|
||||
child: Text("Everywhere"),
|
||||
isDestructiveAction: true,
|
||||
onPressed: () async {
|
||||
Navigator.of(context, rootNavigator: true).pop();
|
||||
|
@ -499,14 +499,14 @@ class _OverlayWidgetState extends State<OverlayWidget> {
|
|||
));
|
||||
}
|
||||
final action = CupertinoActionSheet(
|
||||
title: Text("delete " +
|
||||
title: Text("Delete " +
|
||||
count.toString() +
|
||||
" file" +
|
||||
(count == 1 ? "" : "s") +
|
||||
(containsUploadedFile && containsLocalFile ? " from" : "?")),
|
||||
actions: actions,
|
||||
cancelButton: CupertinoActionSheetAction(
|
||||
child: Text("cancel"),
|
||||
child: Text("Cancel"),
|
||||
onPressed: () {
|
||||
Navigator.of(context, rootNavigator: true).pop();
|
||||
},
|
||||
|
@ -518,7 +518,7 @@ class _OverlayWidgetState extends State<OverlayWidget> {
|
|||
void _showRemoveFromCollectionSheet(BuildContext context) {
|
||||
final count = widget.selectedFiles.files.length;
|
||||
final action = CupertinoActionSheet(
|
||||
title: Text("remove " +
|
||||
title: Text("Remove " +
|
||||
count.toString() +
|
||||
" file" +
|
||||
(count == 1 ? "" : "s") +
|
||||
|
@ -527,11 +527,11 @@ class _OverlayWidgetState extends State<OverlayWidget> {
|
|||
"?"),
|
||||
actions: <Widget>[
|
||||
CupertinoActionSheetAction(
|
||||
child: Text("remove"),
|
||||
child: Text("Remove"),
|
||||
isDestructiveAction: true,
|
||||
onPressed: () async {
|
||||
Navigator.of(context, rootNavigator: true).pop();
|
||||
final dialog = createProgressDialog(context, "removing files...");
|
||||
final dialog = createProgressDialog(context, "Removing files...");
|
||||
await dialog.show();
|
||||
try {
|
||||
await CollectionsService.instance.removeFromCollection(
|
||||
|
@ -547,7 +547,7 @@ class _OverlayWidgetState extends State<OverlayWidget> {
|
|||
),
|
||||
],
|
||||
cancelButton: CupertinoActionSheetAction(
|
||||
child: Text("cancel"),
|
||||
child: Text("Cancel"),
|
||||
onPressed: () {
|
||||
Navigator.of(context, rootNavigator: true).pop();
|
||||
},
|
||||
|
|
|
@ -592,9 +592,9 @@ class _HomeBottomNavigationBarState extends State<HomeBottomNavigationBar> {
|
|||
filter: ImageFilter.blur(sigmaX: 20, sigmaY: 20),
|
||||
child: GNav(
|
||||
curve: Curves.easeOutExpo,
|
||||
// backgroundColor: Colors.white.withOpacity(0.6),
|
||||
backgroundColor:
|
||||
Theme.of(context).bottomAppBarColor,
|
||||
backgroundColor: Theme.of(context)
|
||||
.colorScheme
|
||||
.gNavBackgoundColor,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
rippleColor: Colors.white.withOpacity(0.2),
|
||||
hoverColor: Colors.white.withOpacity(0.2),
|
||||
|
|
|
@ -29,7 +29,7 @@ class _LoginPageState extends State<LoginPage> {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom != 0;
|
||||
final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom > 125;
|
||||
|
||||
FloatingActionButtonLocation fabLocation() {
|
||||
if (isKeypadOpen) {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:photos/ente_theme_data.dart';
|
||||
import 'package:photos/services/user_service.dart';
|
||||
import 'package:photos/ui/common/dynamicFAB.dart';
|
||||
import 'package:step_progress_indicator/step_progress_indicator.dart';
|
||||
|
@ -25,7 +26,7 @@ class _OTTVerificationPageState extends State<OTTVerificationPage> {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom != 0;
|
||||
final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom > 125;
|
||||
|
||||
FloatingActionButtonLocation fabLocation() {
|
||||
if (isKeypadOpen) {
|
||||
|
@ -49,14 +50,17 @@ class _OTTVerificationPageState extends State<OTTVerificationPage> {
|
|||
? Hero(
|
||||
tag: "sign_up",
|
||||
child: Material(
|
||||
type: MaterialType.transparency,
|
||||
child: StepProgressIndicator(
|
||||
totalSteps: 4,
|
||||
currentStep: 2,
|
||||
selectedColor: Theme.of(context).buttonColor,
|
||||
roundedEdges: Radius.circular(10),
|
||||
unselectedColor: Theme.of(context).bottomAppBarColor,
|
||||
)),
|
||||
type: MaterialType.transparency,
|
||||
child: StepProgressIndicator(
|
||||
totalSteps: 4,
|
||||
currentStep: 2,
|
||||
selectedColor: Theme.of(context).buttonColor,
|
||||
roundedEdges: Radius.circular(10),
|
||||
unselectedColor: Theme.of(context)
|
||||
.colorScheme
|
||||
.stepProgressUnselectedColor,
|
||||
),
|
||||
),
|
||||
)
|
||||
: null,
|
||||
),
|
||||
|
|
|
@ -75,7 +75,7 @@ class _PasswordEntryPageState extends State<PasswordEntryPage> {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom != 0;
|
||||
final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom > 125;
|
||||
|
||||
FloatingActionButtonLocation fabLocation() {
|
||||
if (isKeypadOpen) {
|
||||
|
|
|
@ -32,7 +32,7 @@ class _PasswordReentryPageState extends State<PasswordReentryPage> {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom != 0;
|
||||
final isKeypadOpen = MediaQuery.of(context).viewInsets.bottom > 125;
|
||||
|
||||
FloatingActionButtonLocation fabLocation() {
|
||||
if (isKeypadOpen) {
|
||||
|
|
|
@ -25,8 +25,9 @@ class ChildSubscriptionWidget extends StatelessWidget {
|
|||
children: [
|
||||
Center(
|
||||
child: Text(
|
||||
"you are on a family plan!",
|
||||
style: TextStyle(fontSize: 14, color: Colors.white),
|
||||
"You are on a family plan!",
|
||||
style:
|
||||
Theme.of(context).textTheme.bodyText1.copyWith(fontSize: 14),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
|
@ -39,7 +40,7 @@ class ChildSubscriptionWidget extends StatelessWidget {
|
|||
text: TextSpan(
|
||||
children: [
|
||||
TextSpan(
|
||||
text: "please contact ",
|
||||
text: "Please contact ",
|
||||
),
|
||||
TextSpan(
|
||||
text: familyAdmin,
|
||||
|
@ -49,10 +50,10 @@ class ChildSubscriptionWidget extends StatelessWidget {
|
|||
text: " to manage your family subscription",
|
||||
),
|
||||
],
|
||||
style: TextStyle(
|
||||
fontFamily: 'Ubuntu',
|
||||
fontSize: 14,
|
||||
),
|
||||
style: Theme.of(context)
|
||||
.textTheme
|
||||
.bodyText1
|
||||
.copyWith(fontSize: 14),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -60,7 +61,7 @@ class ChildSubscriptionWidget extends StatelessWidget {
|
|||
padding: const EdgeInsets.symmetric(vertical: 8),
|
||||
),
|
||||
Image.asset(
|
||||
"assets/family_sharing.jpg",
|
||||
"assets/family sharing.png",
|
||||
height: 256,
|
||||
),
|
||||
Padding(
|
||||
|
@ -99,7 +100,7 @@ class ChildSubscriptionWidget extends StatelessWidget {
|
|||
text: TextSpan(
|
||||
children: const [
|
||||
TextSpan(
|
||||
text: "please contact ",
|
||||
text: "Please contact ",
|
||||
),
|
||||
TextSpan(
|
||||
text: "support@ente.io",
|
||||
|
@ -109,10 +110,7 @@ class ChildSubscriptionWidget extends StatelessWidget {
|
|||
text: " for help",
|
||||
),
|
||||
],
|
||||
style: TextStyle(
|
||||
fontFamily: 'Ubuntu-Regular',
|
||||
fontSize: 12,
|
||||
),
|
||||
style: Theme.of(context).textTheme.overline,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
|
@ -3,6 +3,7 @@ import 'dart:async';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:photos/ente_theme_data.dart';
|
||||
import 'package:photos/models/billing_plan.dart';
|
||||
import 'package:photos/models/subscription.dart';
|
||||
import 'package:photos/models/user_details.dart';
|
||||
|
@ -132,7 +133,9 @@ class _StripeSubscriptionPageState extends State<StripeSubscriptionPage> {
|
|||
currentStep: 4,
|
||||
selectedColor: Theme.of(context).buttonColor,
|
||||
roundedEdges: Radius.circular(10),
|
||||
unselectedColor: Theme.of(context).bottomAppBarColor,
|
||||
unselectedColor: Theme.of(context)
|
||||
.colorScheme
|
||||
.stepProgressUnselectedColor,
|
||||
)),
|
||||
)
|
||||
: AppBar(
|
||||
|
|
|
@ -61,7 +61,8 @@ class _RecoveryKeyPageState extends State<RecoveryKeyPage> {
|
|||
currentStep: 3,
|
||||
selectedColor: Theme.of(context).buttonColor,
|
||||
roundedEdges: Radius.circular(10),
|
||||
unselectedColor: Theme.of(context).bottomAppBarColor,
|
||||
unselectedColor:
|
||||
Theme.of(context).colorScheme.stepProgressUnselectedColor,
|
||||
),
|
||||
),
|
||||
)
|
||||
|
|
|
@ -18,7 +18,7 @@ final _logger = Logger("ShareUtil");
|
|||
// share is used to share media/files from ente to other apps
|
||||
Future<void> share(BuildContext context, List<File> files,
|
||||
{GlobalKey shareButtonKey}) async {
|
||||
final dialog = createProgressDialog(context, "preparing...");
|
||||
final dialog = createProgressDialog(context, "Preparing...");
|
||||
await dialog.show();
|
||||
final List<Future<String>> pathFutures = [];
|
||||
for (File file in files) {
|
||||
|
|
Loading…
Reference in a new issue