Skip to content

Commit 9826326

Browse files
committed
🎨 Make all text delegates const
1 parent 3e24c7e commit 9826326

File tree

3 files changed

+28
-10
lines changed

3 files changed

+28
-10
lines changed

example/lib/constants/picker_method.dart

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ class PickMethod {
8686
name: 'Pick from camera',
8787
description: 'Allow pick an asset through camera.',
8888
method: (BuildContext context, List<AssetEntity> assets) {
89+
const AssetPickerTextDelegate textDelegate = AssetPickerTextDelegate();
8990
return AssetPicker.pickAssets(
9091
context,
9192
pickerConfig: AssetPickerConfig(
@@ -102,9 +103,9 @@ class PickMethod {
102103
return null;
103104
}
104105
return Semantics(
105-
label: AssetPickerTextDelegate().sActionUseCameraHint,
106+
label: textDelegate.sActionUseCameraHint,
106107
button: true,
107-
onTapHint: AssetPickerTextDelegate().sActionUseCameraHint,
108+
onTapHint: textDelegate.sActionUseCameraHint,
108109
child: GestureDetector(
109110
behavior: HitTestBehavior.opaque,
110111
onTap: () async {
@@ -133,6 +134,7 @@ class PickMethod {
133134
description: 'Take a photo or video with the camera picker, '
134135
'select the result and stay in the entities list.',
135136
method: (BuildContext context, List<AssetEntity> assets) {
137+
const AssetPickerTextDelegate textDelegate = AssetPickerTextDelegate();
136138
return AssetPicker.pickAssets(
137139
context,
138140
pickerConfig: AssetPickerConfig(
@@ -149,9 +151,9 @@ class PickMethod {
149151
return null;
150152
}
151153
return Semantics(
152-
label: AssetPickerTextDelegate().sActionUseCameraHint,
154+
label: textDelegate.sActionUseCameraHint,
153155
button: true,
154-
onTapHint: AssetPickerTextDelegate().sActionUseCameraHint,
156+
onTapHint: textDelegate.sActionUseCameraHint,
155157
child: GestureDetector(
156158
behavior: HitTestBehavior.opaque,
157159
onTap: () async {
@@ -332,7 +334,7 @@ class PickMethod {
332334
pickerConfig: AssetPickerConfig(
333335
maxAssets: maxAssetsCount,
334336
selectedAssets: assets,
335-
textDelegate: EnglishAssetPickerTextDelegate(),
337+
textDelegate: const EnglishAssetPickerTextDelegate(),
336338
),
337339
);
338340
},

lib/src/delegates/asset_picker_text_delegate.dart

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import 'package:flutter/rendering.dart';
88
import 'package:photo_manager/photo_manager.dart' show AssetType;
99

1010
/// All text delegates.
11-
final List<AssetPickerTextDelegate> assetPickerTextDelegates =
11+
const List<AssetPickerTextDelegate> assetPickerTextDelegates =
1212
<AssetPickerTextDelegate>[
1313
AssetPickerTextDelegate(),
1414
EnglishAssetPickerTextDelegate(),
@@ -23,20 +23,22 @@ final List<AssetPickerTextDelegate> assetPickerTextDelegates =
2323
/// Obtain the text delegate from the given locale.
2424
AssetPickerTextDelegate assetPickerTextDelegateFromLocale(Locale? locale) {
2525
if (locale == null) {
26-
return AssetPickerTextDelegate();
26+
return const AssetPickerTextDelegate();
2727
}
2828
final String languageCode = locale.languageCode.toLowerCase();
2929
for (final AssetPickerTextDelegate delegate in assetPickerTextDelegates) {
3030
if (delegate.languageCode == languageCode) {
3131
return delegate;
3232
}
3333
}
34-
return AssetPickerTextDelegate();
34+
return const AssetPickerTextDelegate();
3535
}
3636

3737
/// Text delegate that controls text in widgets.
3838
/// 控制部件中的文字实现
3939
class AssetPickerTextDelegate {
40+
const AssetPickerTextDelegate();
41+
4042
String get languageCode => 'zh';
4143

4244
/// Confirm string for the confirm button.
@@ -164,6 +166,8 @@ class AssetPickerTextDelegate {
164166
/// [AssetPickerTextDelegate] implements with English.
165167
/// English Localization
166168
class EnglishAssetPickerTextDelegate extends AssetPickerTextDelegate {
169+
const EnglishAssetPickerTextDelegate();
170+
167171
@override
168172
String get languageCode => 'en';
169173

@@ -258,6 +262,8 @@ class EnglishAssetPickerTextDelegate extends AssetPickerTextDelegate {
258262
/// [AssetPickerTextDelegate] implements with Hebrew.
259263
/// תרגום בשפה העברית
260264
class HebrewAssetPickerTextDelegate extends AssetPickerTextDelegate {
265+
const HebrewAssetPickerTextDelegate();
266+
261267
@override
262268
String get languageCode => 'he';
263269

@@ -350,7 +356,7 @@ class HebrewAssetPickerTextDelegate extends AssetPickerTextDelegate {
350356
@override
351357
AssetPickerTextDelegate get semanticsTextDelegate {
352358
if (Platform.isAndroid) {
353-
return EnglishAssetPickerTextDelegate();
359+
return const EnglishAssetPickerTextDelegate();
354360
}
355361
return this;
356362
}
@@ -359,6 +365,8 @@ class HebrewAssetPickerTextDelegate extends AssetPickerTextDelegate {
359365
/// [AssetPickerTextDelegate] implementiert mit der deutschen Übersetzung.
360366
/// Deutsche Textimplementierung.
361367
class GermanAssetPickerTextDelegate extends AssetPickerTextDelegate {
368+
const GermanAssetPickerTextDelegate();
369+
362370
@override
363371
String get languageCode => 'de';
364372

@@ -451,6 +459,8 @@ class GermanAssetPickerTextDelegate extends AssetPickerTextDelegate {
451459
/// [AssetPickerTextDelegate] implements with Russian.
452460
/// Локализация на русский язык.
453461
class RussianAssetPickerTextDelegate extends AssetPickerTextDelegate {
462+
const RussianAssetPickerTextDelegate();
463+
454464
@override
455465
String get languageCode => 'ru';
456466

@@ -546,6 +556,8 @@ class RussianAssetPickerTextDelegate extends AssetPickerTextDelegate {
546556
/// [AssetPickerTextDelegate] implements with Japanese.
547557
/// 日本語の TextDelegate
548558
class JapaneseAssetPickerTextDelegate extends AssetPickerTextDelegate {
559+
const JapaneseAssetPickerTextDelegate();
560+
549561
@override
550562
String get languageCode => 'ja';
551563

@@ -640,6 +652,8 @@ class JapaneseAssetPickerTextDelegate extends AssetPickerTextDelegate {
640652
/// [AssetPickerTextDelegate] implements with Arabic.
641653
/// الترجمة العربية
642654
class ArabicAssetPickerTextDelegate extends AssetPickerTextDelegate {
655+
const ArabicAssetPickerTextDelegate();
656+
643657
@override
644658
String get languageCode => 'ar';
645659

@@ -735,6 +749,8 @@ class ArabicAssetPickerTextDelegate extends AssetPickerTextDelegate {
735749
/// [AssetPickerTextDelegate] implements with French.
736750
/// Délégué texte français
737751
class FrenchAssetPickerTextDelegate extends AssetPickerTextDelegate {
752+
const FrenchAssetPickerTextDelegate();
753+
738754
@override
739755
String get languageCode => 'fr';
740756

lib/src/internal/singleton.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class Singleton {
1313

1414
static GlobalKey pickerKey = GlobalKey();
1515

16-
static AssetPickerTextDelegate textDelegate = AssetPickerTextDelegate();
16+
static AssetPickerTextDelegate textDelegate = const AssetPickerTextDelegate();
1717
static SortPathDelegate<dynamic> sortPathDelegate = SortPathDelegate.common;
1818

1919
/// The last scroll position where the picker scrolled.

0 commit comments

Comments
 (0)