extract string + code refractor

This commit is contained in:
AmanRajSinghMourya
2025-07-31 15:15:51 +05:30
parent 97b4b6080a
commit 8da1f638e1
8 changed files with 45 additions and 85 deletions

View File

@@ -1808,5 +1808,24 @@
"automaticallyAnalyzeAndSplitGrouping": "We will automatically analyze the grouping to determine if there are multiple people present, and separate them out again. This may take a few seconds.",
"layout": "Layout",
"day": "Day",
"peopleAutoAddDesc": "Select the people you want to automatically add to the album"
"peopleAutoAddDesc": "Select the people you want to automatically add to the album",
"undo": "Undo",
"redo": "Redo",
"filter": "Filter",
"adjust": "Adjust",
"draw": "Draw",
"sticker": "Sticker",
"brushColor": "Brush Color",
"font": "Font",
"background": "Background",
"align": "Align",
"addedToAlbums": "{count, plural, =1{Added successfully to 1 album} other{Added successfully to {count} albums}}",
"@addedToAlbums": {
"description": "Message shown when items are added to albums",
"placeholders": {
"count": {
"type": "int"
}
}
}
}

View File

@@ -310,9 +310,7 @@ class _CollectionActionSheetState extends State<CollectionActionSheet> {
if (result) {
showShortToast(
context,
"Added successfully to " +
_selectedCollections.length.toString() +
" albums",
S.of(context).addedToAlbums(_selectedCollections.length),
);
widget.selectedFiles?.clearAll();
}

View File

@@ -1,7 +1,8 @@
import 'package:flutter/material.dart';
import "package:flutter_svg/svg.dart";
import "package:photos/ente_theme_data.dart";
import "package:photos/theme/ente_theme.dart";
import "package:photos/generated/l10n.dart";
import "package:photos/theme/ente_theme.dart";
import "package:pro_image_editor/models/editor_configs/pro_image_editor_configs.dart";
class ImageEditorAppBar extends StatelessWidget implements PreferredSizeWidget {
@@ -43,7 +44,7 @@ class ImageEditorAppBar extends StatelessWidget implements PreferredSizeWidget {
enableUndo ? close() : Navigator.of(context).pop();
},
child: Text(
'Cancel',
S.of(context).cancel,
style: getEnteTextTheme(context).body,
),
),
@@ -52,7 +53,7 @@ class ImageEditorAppBar extends StatelessWidget implements PreferredSizeWidget {
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
IconButton(
tooltip: 'Undo',
tooltip: S.of(context).undo,
onPressed: () {
undo != null ? undo!() : null;
},
@@ -66,7 +67,7 @@ class ImageEditorAppBar extends StatelessWidget implements PreferredSizeWidget {
),
const SizedBox(width: 12),
IconButton(
tooltip: 'Redo',
tooltip: S.of(context).redo,
onPressed: () {
redo != null ? redo!() : null;
},
@@ -88,7 +89,7 @@ class ImageEditorAppBar extends StatelessWidget implements PreferredSizeWidget {
key: ValueKey(isMainEditor ? 'save_copy' : 'done'),
onPressed: done,
child: Text(
isMainEditor ? 'Save Copy' : 'Done',
isMainEditor ? S.of(context).saveCopy : S.of(context).done,
style: getEnteTextTheme(context).body.copyWith(
color: isMainEditor
? (enableUndo

View File

@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import "package:flutter_svg/svg.dart";
import "package:photos/generated/l10n.dart";
import "package:photos/theme/ente_theme.dart";
import "package:photos/ui/tools/editor/image_editor/circular_icon_button.dart";
import "package:photos/ui/tools/editor/image_editor/image_editor_configs_mixin.dart";
@@ -113,7 +114,7 @@ class _ImageEditorCropRotateBarState extends State<ImageEditorCropRotateBar>
children: [
CircularIconButton(
svgPath: "assets/image-editor/image-editor-crop-rotate.svg",
label: "Rotate",
label: S.of(context).rotate,
onTap: () {
widget.editor.rotate();
},
@@ -121,7 +122,7 @@ class _ImageEditorCropRotateBarState extends State<ImageEditorCropRotateBar>
const SizedBox(width: 6),
CircularIconButton(
svgPath: "assets/image-editor/image-editor-flip.svg",
label: "Flip",
label: S.of(context).flip,
onTap: () {
widget.editor.flip();
},

View File

@@ -1,6 +1,7 @@
import 'dart:math';
import 'package:flutter/material.dart';
import "package:photos/generated/l10n.dart";
import "package:photos/ui/tools/editor/image_editor/circular_icon_button.dart";
import "package:photos/ui/tools/editor/image_editor/image_editor_configs_mixin.dart";
import "package:photos/ui/tools/editor/image_editor/image_editor_constants.dart";
@@ -90,7 +91,7 @@ class ImageEditorMainBottomBarState extends State<ImageEditorMainBottomBar>
children: <Widget>[
CircularIconButton(
svgPath: "assets/image-editor/image-editor-crop.svg",
label: "Crop",
label: S.of(context).crop,
onTap: () {
widget.editor.openCropRotateEditor();
},
@@ -98,21 +99,21 @@ class ImageEditorMainBottomBarState extends State<ImageEditorMainBottomBar>
CircularIconButton(
svgPath:
"assets/image-editor/image-editor-filter.svg",
label: "Filter",
label: S.of(context).filter,
onTap: () {
widget.editor.openFilterEditor();
},
),
CircularIconButton(
svgPath: "assets/image-editor/image-editor-tune.svg",
label: "Adjust",
label: S.of(context).adjust,
onTap: () {
widget.editor.openTuneEditor();
},
),
CircularIconButton(
svgPath: "assets/image-editor/image-editor-paint.svg",
label: "Draw",
label: S.of(context).draw,
onTap: () {
widget.editor.openPaintingEditor();
},
@@ -120,7 +121,7 @@ class ImageEditorMainBottomBarState extends State<ImageEditorMainBottomBar>
CircularIconButton(
svgPath:
"assets/image-editor/image-editor-sticker.svg",
label: "Sticker",
label: S.of(context).sticker,
onTap: () {
widget.editor.openEmojiEditor();
},

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import "package:photos/generated/l10n.dart";
import "package:photos/theme/ente_theme.dart";
import "package:photos/ui/tools/editor/image_editor/image_editor_color_picker.dart";
import "package:photos/ui/tools/editor/image_editor/image_editor_configs_mixin.dart";
@@ -63,7 +64,7 @@ class _ImageEditorPaintBarState extends State<ImageEditorPaintBar>
Padding(
padding: const EdgeInsets.only(left: 20.0),
child: Text(
"Brush Color",
S.of(context).brushColor,
style: getEnteTextTheme(context).body,
),
),

View File

@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import "package:flutter_svg/svg.dart";
import "package:photos/generated/l10n.dart";
import "package:photos/theme/ente_theme.dart";
import "package:photos/ui/tools/editor/image_editor/circular_icon_button.dart";
import "package:photos/ui/tools/editor/image_editor/image_editor_color_picker.dart";
@@ -75,7 +76,7 @@ class _ImageEditorTextBarState extends State<ImageEditorTextBar>
children: [
CircularIconButton(
svgPath: "assets/image-editor/image-editor-text-color.svg",
label: "Color",
label: S.of(context).color,
isSelected: selectedActionIndex == 0,
onTap: () {
_selectAction(0);
@@ -83,7 +84,7 @@ class _ImageEditorTextBarState extends State<ImageEditorTextBar>
),
CircularIconButton(
svgPath: "assets/image-editor/image-editor-text-font.svg",
label: "Font",
label: S.of(context).font,
isSelected: selectedActionIndex == 1,
onTap: () {
_selectAction(1);
@@ -91,7 +92,7 @@ class _ImageEditorTextBarState extends State<ImageEditorTextBar>
),
CircularIconButton(
svgPath: "assets/image-editor/image-editor-text-background.svg",
label: "Background",
label: S.of(context).background,
isSelected: selectedActionIndex == 2,
onTap: () {
setState(() {
@@ -101,7 +102,7 @@ class _ImageEditorTextBarState extends State<ImageEditorTextBar>
),
CircularIconButton(
svgPath: "assets/image-editor/image-editor-text-align-left.svg",
label: "Align",
label: S.of(context).align,
isSelected: selectedActionIndex == 3,
onTap: () {
setState(() {

View File

@@ -20,7 +20,6 @@ import "package:photos/states/detail_page_state.dart";
import "package:photos/ui/common/fast_scroll_physics.dart";
import 'package:photos/ui/notification/toast.dart';
import "package:photos/ui/tools/editor/image_editor/image_editor_page_new.dart";
import 'package:photos/ui/tools/editor/image_editor_page.dart';
import "package:photos/ui/tools/editor/video_editor_page.dart";
import "package:photos/ui/viewer/file/file_app_bar.dart";
import "package:photos/ui/viewer/file/file_bottom_bar.dart";
@@ -176,7 +175,7 @@ class _DetailPageState extends State<DetailPage> {
builder: (BuildContext context, int selectedIndex, _) {
return FileBottomBar(
_files![selectedIndex],
_onNewImageEditor,
_onEditFileRequested,
widget.config.mode == DetailPageMode.minimalistic &&
!isGuestView,
onFileRemoved: _onFileRemoved,
@@ -358,7 +357,7 @@ class _DetailPageState extends State<DetailPage> {
}
}
Future<void> _onNewImageEditor(EnteFile file) async {
Future<void> _onEditFileRequested(EnteFile file) async {
if (file.uploadedFileID != null &&
file.ownerID != Configuration.instance.getUserID()) {
_logger.severe(
@@ -420,67 +419,6 @@ class _DetailPageState extends State<DetailPage> {
}
}
Future<void> _onEditFileRequested(EnteFile file) async {
if (file.uploadedFileID != null &&
file.ownerID != Configuration.instance.getUserID()) {
_logger.severe(
"Attempt to edit unowned file",
UnauthorizedEditError(),
StackTrace.current,
);
// ignore: unawaited_futures
showErrorDialog(
context,
S.of(context).sorry,
S.of(context).weDontSupportEditingPhotosAndAlbumsThatYouDont,
);
return;
}
final dialog = createProgressDialog(context, S.of(context).pleaseWait);
await dialog.show();
try {
final ioFile = await getFile(file);
if (ioFile == null) {
showShortToast(context, S.of(context).failedToFetchOriginalForEdit);
await dialog.hide();
return;
}
if (file.fileType == FileType.video) {
await dialog.hide();
replacePage(
context,
VideoEditorPage(
file: file,
ioFile: ioFile,
detailPageConfig: widget.config.copyWith(
files: _files,
selectedIndex: _selectedIndexNotifier.value,
),
),
);
return;
}
final imageProvider =
ExtendedFileImageProvider(ioFile, cacheRawData: true);
await precacheImage(imageProvider, context);
await dialog.hide();
replacePage(
context,
ImageEditorPage(
imageProvider,
file,
widget.config.copyWith(
files: _files,
selectedIndex: _selectedIndexNotifier.value,
),
),
);
} catch (e) {
await dialog.hide();
_logger.warning("Failed to initiate edit", e);
}
}
Future<bool> _requestAuthentication() async {
return await LocalAuthenticationService.instance.requestLocalAuthentication(
context,