CWA-180 | fixed local date format in dashboard_page, date_section_raw, trade_details_page, transaction_details_page, added currentLocale parameter to settings store

Oleksandr Sobol committed Mar 6, 2020 at 20:38 UTC 75c33370f18db34fd86b712e25dca317ba12420c
5 files changed +24 -7
lib/src/screens/dashboard/dashboard_page.dart
+3 -1
@@ -125,7 +125,9 @@ class DashboardPageBodyState extends State<DashboardPageBody> {
125 final actionListStore = Provider.of<ActionListStore>(context);
126 final syncStore = Provider.of<SyncStore>(context);
127 final settingsStore = Provider.of<SettingsStore>(context);
128 - final transactionDateFormat = DateFormat("MMMM d, yyyy HH:mm", settingsStore.languageCode);
128 + final transactionDateFormat = settingsStore.currentLocale == 'en_US'
129 + ? DateFormat("MMMM d, yyyy, HH:mm", settingsStore.languageCode)
130 + : DateFormat("d MMMM yyyy, HH:mm", settingsStore.languageCode);
131
132 return Observer(
133 key: _listObserverKey,
lib/src/screens/dashboard/date_section_raw.dart
+3 -1
@@ -19,7 +19,9 @@ class DateSectionRaw extends StatelessWidget {
19 nowDate.year == date.year;
20 final settingsStore = Provider.of<SettingsStore>(context);
21 final currentLanguage = settingsStore.languageCode;
22 - final dateSectionDateFormat = DateFormat("d MMM", currentLanguage);
22 + final dateSectionDateFormat = settingsStore.currentLocale == 'en_US'
23 + ? DateFormat("MMM d", settingsStore.languageCode)
24 + : DateFormat("d MMM", settingsStore.languageCode);
25 var title = "";
26
27 if (isToday) {
lib/src/screens/trade_details/trade_details_page.dart
+5 -2
@@ -5,6 +5,7 @@ import 'package:flutter/services.dart';
5 import 'package:flutter_mobx/flutter_mobx.dart';
6 import 'package:cake_wallet/generated/i18n.dart';
7 import 'package:cake_wallet/src/stores/exchange_trade/exchange_trade_store.dart';
8 +import 'package:cake_wallet/src/stores/settings/settings_store.dart';
9 import 'package:cake_wallet/src/screens/base_page.dart';
10 import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart';
11 import 'package:cake_wallet/src/screens/transaction_details/standart_list_row.dart';
@@ -17,11 +18,13 @@ class TradeDetailsPage extends BasePage {
18 @override
19 bool get isModalBackButton => true;
20
20 - final createdAtFormat = DateFormat('yyyy-MM-dd HH:mm:ss');
21 -
21 @override
22 Widget body(BuildContext context) {
23 final exchangeStore = Provider.of<ExchangeTradeStore>(context);
24 + final settingsStore = Provider.of<SettingsStore>(context);
25 + final createdAtFormat = settingsStore.currentLocale == 'en_US'
26 + ? DateFormat('yyyy.MM.dd, HH:mm')
27 + : DateFormat('dd.MM.yyyy, HH:mm');
28
29 return Container(
30 padding: EdgeInsets.only(top: 10.0, bottom: 10.0, left: 20, right: 15),
lib/src/screens/transaction_details/transaction_details_page.dart
+3 -1
@@ -42,11 +42,13 @@ class TransactionDetailsForm extends StatefulWidget {
42 }
43
44 class TransactionDetailsFormState extends State<TransactionDetailsForm> {
45 - final DateFormat _dateFormat = DateFormat('dd.MM.yyyy, HH:mm');
45 final _items = List<StandartListItem>();
46
47 @override
48 void initState() {
49 + final _dateFormat = widget.settingsStore.currentLocale == 'en_US'
50 + ? DateFormat('yyyy.MM.dd, HH:mm')
51 + : DateFormat('dd.MM.yyyy, HH:mm');
52 final items = [
53 StandartListItem(
54 title: S.current.transaction_details_transaction_id,
lib/src/stores/settings/settings_store.dart
+10 -2
@@ -14,6 +14,7 @@ import 'package:cake_wallet/generated/i18n.dart';
14 import 'package:cake_wallet/src/domain/common/default_settings_migration.dart';
15 import 'package:package_info/package_info.dart';
16 import 'package:cake_wallet/src/domain/common/language.dart';
17 +import 'package:devicelocale/devicelocale.dart';
18
19 part 'settings_store.g.dart';
20
@@ -31,7 +32,8 @@ abstract class SettingsStoreBase with Store {
32 @required bool initialDarkTheme,
33 this.actionlistDisplayMode,
34 @required int initialPinLength,
34 - @required String initialLanguageCode}) {
35 + @required String initialLanguageCode,
36 + @required String initialCurrentLocale}) {
37 fiatCurrency = initialFiatCurrency;
38 transactionPriority = initialTransactionPriority;
39 balanceDisplayMode = initialBalanceDisplayMode;
@@ -42,6 +44,7 @@ abstract class SettingsStoreBase with Store {
44 isDarkTheme = initialDarkTheme;
45 defaultPinLength = initialPinLength;
46 languageCode = initialLanguageCode;
47 + currentLocale = initialCurrentLocale;
48 itemHeaders = Map();
49
50 actionlistDisplayMode.observe(
@@ -96,6 +99,7 @@ abstract class SettingsStoreBase with Store {
99 sharedPreferences.getString(currentLanguageCode) == null
100 ? await Language.localeDetection()
101 : sharedPreferences.getString(currentLanguageCode);
102 + final initialCurrentLocale = await Devicelocale.currentLocale;
103
104 final store = SettingsStore(
105 sharedPreferences: sharedPreferences,
@@ -108,7 +112,8 @@ abstract class SettingsStoreBase with Store {
112 initialDarkTheme: savedDarkTheme,
113 actionlistDisplayMode: actionlistDisplayMode,
114 initialPinLength: defaultPinLength,
111 - initialLanguageCode: savedLanguageCode);
115 + initialLanguageCode: savedLanguageCode,
116 + initialCurrentLocale: initialCurrentLocale);
117
118 await store.loadSettings();
119
@@ -141,8 +146,11 @@ abstract class SettingsStoreBase with Store {
146
147 @observable
148 int defaultPinLength;
149 +
150 String languageCode;
151
152 + String currentLocale;
153 +
154 @observable
155 Map<String, String> itemHeaders;
156