Skip to content

Commit 2ca35fc

Browse files
authored
Merge pull request #1648 from wired-pasteque/improve-language-dropdown
refactor: remove stale code and replace language code by label in dropdown
2 parents 4392f99 + fbe9414 commit 2ca35fc

6 files changed

Lines changed: 40 additions & 113 deletions

File tree

lib/core/settings/domain/settings_entity.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,16 @@ enum BitcoinUnit {
4040
}
4141

4242
enum Language {
43-
unitedStatesEnglish('en', 'US'),
44-
canadianFrench('fr', 'CA'),
45-
franceFrench('fr', 'FR'),
46-
spanish('es', 'ES'),
47-
finnish('fi', 'FI');
43+
unitedStatesEnglish('en', 'US', 'English'),
44+
franceFrench('fr', 'FR', 'Français'),
45+
spanish('es', 'ES', 'Español'),
46+
finnish('fi', 'FI', 'Suomeksi');
4847

4948
final String languageCode;
5049
final String? countryCode;
50+
final String label;
5151

52-
const Language(this.languageCode, this.countryCode);
52+
const Language(this.languageCode, this.countryCode, this.label);
5353

5454
static Language fromName(String name) {
5555
try {

lib/features/settings/presentation/bloc/settings_cubit.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ class SettingsCubit extends Cubit<SettingsState> {
9797
Future<void> changeLanguage(Language language) async {
9898
final settings = state.storedSettings;
9999
log.config(
100-
'Language changed to: ${language.name} was ${settings?.language?.name}',
100+
'Language changed to: ${language.label} was ${settings?.language?.label}',
101101
);
102102
await _setLanguageUsecase.execute(language);
103103
emit(

lib/features/settings/ui/screens/app_settings/app_settings_screen.dart

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -66,17 +66,14 @@ class AppSettingsScreen extends StatelessWidget {
6666
trailing: DropdownButton<Language>(
6767
value: currentLanguage,
6868
underline: const SizedBox.shrink(),
69-
items:
70-
Language.values
71-
.map(
72-
(language) => DropdownMenuItem<Language>(
73-
value: language,
74-
child: Text(
75-
'${language.languageCode}${language.countryCode != null ? ' (${language.countryCode})' : ''}',
76-
),
77-
),
78-
)
79-
.toList(),
69+
items: Language.values
70+
.map(
71+
(language) => DropdownMenuItem<Language>(
72+
value: language,
73+
child: Text(language.label),
74+
),
75+
)
76+
.toList(),
8077
onChanged: (Language? newLanguage) {
8178
if (newLanguage != null) {
8279
context.read<SettingsCubit>().changeLanguage(

lib/features/settings/ui/screens/language/language_settings_screen.dart

Lines changed: 0 additions & 31 deletions
This file was deleted.

lib/features/settings/ui/settings_router.dart

Lines changed: 25 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import 'package:bb_mobile/features/settings/ui/screens/exchange/recipients_scree
3030
import 'package:bb_mobile/features/settings/ui/screens/exchange/referrals_screen.dart';
3131
import 'package:bb_mobile/features/settings/ui/screens/exchange/security_screen.dart';
3232
import 'package:bb_mobile/features/settings/ui/screens/exchange/transactions_screen.dart';
33-
import 'package:bb_mobile/features/settings/ui/screens/language/language_settings_screen.dart';
3433
import 'package:bb_mobile/features/settings/ui/screens/theme/theme_settings_screen.dart';
3534
import 'package:bb_mobile/features/settings/ui/widgets/failed_wallet_deletion_alert_dialog.dart';
3635
import 'package:bb_mobile/features/status_check/presentation/cubit.dart';
@@ -82,11 +81,10 @@ class SettingsRouter {
8281
static final route = GoRoute(
8382
name: SettingsRoute.settings.name,
8483
path: SettingsRoute.settings.path,
85-
builder:
86-
(context, state) => BlocProvider(
87-
create: (_) => locator<ServiceStatusCubit>()..checkStatus(),
88-
child: const AllSettingsScreen(),
89-
),
84+
builder: (context, state) => BlocProvider(
85+
create: (_) => locator<ServiceStatusCubit>()..checkStatus(),
86+
child: const AllSettingsScreen(),
87+
),
9088
routes: [
9189
GoRoute(
9290
name: SettingsRoute.exchangeAccount.name,
@@ -97,17 +95,15 @@ class SettingsRouter {
9795
name: SettingsRoute.exchangeSettings.name,
9896
path: SettingsRoute.exchangeSettings.path,
9997

100-
builder:
101-
(context, state) => BlocListener<ExchangeCubit, ExchangeState>(
102-
listenWhen:
103-
(previous, current) =>
104-
!previous.notLoggedIn && current.notLoggedIn,
105-
listener: (context, state) {
106-
// Redirect to landing page if the user logged out
107-
context.goNamed(ExchangeRoute.exchangeLanding.name);
108-
},
109-
child: const ExchangeSettingsScreen(),
110-
),
98+
builder: (context, state) => BlocListener<ExchangeCubit, ExchangeState>(
99+
listenWhen: (previous, current) =>
100+
!previous.notLoggedIn && current.notLoggedIn,
101+
listener: (context, state) {
102+
// Redirect to landing page if the user logged out
103+
context.goNamed(ExchangeRoute.exchangeLanding.name);
104+
},
105+
child: const ExchangeSettingsScreen(),
106+
),
111107
),
112108
GoRoute(
113109
name: SettingsRoute.exchangeAccountInfo.name,
@@ -176,11 +172,6 @@ class SettingsRouter {
176172
builder: (context, state) => const ThemeSettingsScreen(),
177173
),
178174

179-
GoRoute(
180-
name: SettingsRoute.language.name,
181-
path: SettingsRoute.language.path,
182-
builder: (context, state) => const LanguageSettingsScreen(),
183-
),
184175
GoRoute(
185176
path: SettingsRoute.pinCode.path,
186177
name: SettingsRoute.pinCode.name,
@@ -232,9 +223,8 @@ class SettingsRouter {
232223
listener: (context, state) {
233224
showDialog(
234225
context: context,
235-
builder:
236-
(dialogContext) =>
237-
const FailedWalletDeletionAlertDialog(),
226+
builder: (dialogContext) =>
227+
const FailedWalletDeletionAlertDialog(),
238228
);
239229
},
240230
),
@@ -249,9 +239,8 @@ class SettingsRouter {
249239
builder: (context, state) {
250240
final walletId = state.pathParameters['walletId']!;
251241
return BlocProvider(
252-
create:
253-
(_) =>
254-
locator<AddressViewBloc>(param1: walletId, param2: 10),
242+
create: (_) =>
243+
locator<AddressViewBloc>(param1: walletId, param2: 10),
255244
child: AddressesScreen(walletId: walletId),
256245
);
257246
},
@@ -266,20 +255,18 @@ class SettingsRouter {
266255
GoRoute(
267256
path: SettingsRoute.legacySeeds.path,
268257
name: SettingsRoute.legacySeeds.name,
269-
builder:
270-
(context, state) => BlocProvider(
271-
create: (_) => locator<LegacySeedViewCubit>(),
272-
child: const LegacySeedViewScreen(),
273-
),
258+
builder: (context, state) => BlocProvider(
259+
create: (_) => locator<LegacySeedViewCubit>(),
260+
child: const LegacySeedViewScreen(),
261+
),
274262
),
275263
GoRoute(
276264
path: SettingsRoute.allSeedView.path,
277265
name: SettingsRoute.allSeedView.name,
278-
builder:
279-
(context, state) => BlocProvider(
280-
create: (_) => locator<AllSeedViewCubit>(),
281-
child: const AllSeedViewScreen(),
282-
),
266+
builder: (context, state) => BlocProvider(
267+
create: (_) => locator<AllSeedViewCubit>(),
268+
child: const AllSeedViewScreen(),
269+
),
283270
),
284271
GoRoute(
285272
path: SettingsRoute.currency.path,

lib/features/settings/ui/widgets/language_option.dart

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)