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