mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-01-03 17:40:43 +00:00
Merge pull request #625 from cake-tech/CW-122-Rework-filter-on-the-transactions-list-screen
[CW-122] rework filter on the transactions list screen
This commit is contained in:
commit
9bd0de6d08
42 changed files with 314 additions and 284 deletions
|
@ -24,6 +24,9 @@ class ExchangeProviderDescription extends EnumerableItem<int>
|
||||||
static const simpleSwap =
|
static const simpleSwap =
|
||||||
ExchangeProviderDescription(title: 'SimpleSwap', raw: 4, image: 'assets/images/simpleSwap.png');
|
ExchangeProviderDescription(title: 'SimpleSwap', raw: 4, image: 'assets/images/simpleSwap.png');
|
||||||
|
|
||||||
|
static const all =
|
||||||
|
ExchangeProviderDescription(title: 'All trades', raw: 5, image:'');
|
||||||
|
|
||||||
static ExchangeProviderDescription deserialize({required int raw}) {
|
static ExchangeProviderDescription deserialize({required int raw}) {
|
||||||
switch (raw) {
|
switch (raw) {
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -36,6 +39,8 @@ class ExchangeProviderDescription extends EnumerableItem<int>
|
||||||
return sideShift;
|
return sideShift;
|
||||||
case 4:
|
case 4:
|
||||||
return simpleSwap;
|
return simpleSwap;
|
||||||
|
case 5:
|
||||||
|
return all;
|
||||||
default:
|
default:
|
||||||
throw Exception('Unexpected token: $raw for ExchangeProviderDescription deserialize');
|
throw Exception('Unexpected token: $raw for ExchangeProviderDescription deserialize');
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,12 +9,7 @@ class FilterTile extends StatelessWidget {
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Container(
|
return Container(
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
padding: EdgeInsets.only(
|
padding: EdgeInsets.symmetric(vertical: 8.0, horizontal: 24.0),
|
||||||
top: 18,
|
|
||||||
bottom: 18,
|
|
||||||
left: 24,
|
|
||||||
right: 24
|
|
||||||
),
|
|
||||||
child: child,
|
child: child,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,25 +1,26 @@
|
||||||
import 'dart:ui';
|
import 'dart:ui';
|
||||||
import 'package:cake_wallet/palette.dart';
|
import 'package:cake_wallet/palette.dart';
|
||||||
import 'package:cake_wallet/src/screens/dashboard/widgets/filter_tile.dart';
|
import 'package:cake_wallet/src/screens/dashboard/widgets/filter_tile.dart';
|
||||||
|
import 'package:cake_wallet/src/widgets/section_divider.dart';
|
||||||
|
import 'package:cake_wallet/src/widgets/standard_checkbox.dart';
|
||||||
import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
|
import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:cake_wallet/src/widgets/alert_background.dart';
|
import 'package:cake_wallet/src/widgets/alert_background.dart';
|
||||||
import 'package:cake_wallet/src/widgets/alert_close_button.dart';
|
import 'package:cake_wallet/src/widgets/alert_close_button.dart';
|
||||||
import 'package:cake_wallet/src/widgets/checkbox_widget.dart';
|
|
||||||
import 'package:cake_wallet/generated/i18n.dart';
|
import 'package:cake_wallet/generated/i18n.dart';
|
||||||
|
import 'package:flutter_mobx/flutter_mobx.dart';
|
||||||
//import 'package:date_range_picker/date_range_picker.dart' as date_rage_picker;
|
//import 'package:date_range_picker/date_range_picker.dart' as date_rage_picker;
|
||||||
|
|
||||||
class FilterWidget extends StatelessWidget {
|
class FilterWidget extends StatelessWidget {
|
||||||
FilterWidget({required this.dashboardViewModel});
|
FilterWidget({required this.dashboardViewModel});
|
||||||
|
|
||||||
final DashboardViewModel dashboardViewModel;
|
final DashboardViewModel dashboardViewModel;
|
||||||
final backVector = Image.asset('assets/images/back_vector.png',
|
final closeIcon = Image.asset('assets/images/close.png', color: Palette.darkBlueCraiola);
|
||||||
color: Palette.darkBlueCraiola
|
|
||||||
);
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
const sectionDivider = const SectionDivider();
|
||||||
return AlertBackground(
|
return AlertBackground(
|
||||||
child: Stack(
|
child: Stack(
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
|
@ -27,129 +28,82 @@ class FilterWidget extends StatelessWidget {
|
||||||
Column(
|
Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Text(
|
|
||||||
S.of(context).filters,
|
|
||||||
style: TextStyle(
|
|
||||||
color: Colors.white,
|
|
||||||
fontSize: 18,
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
fontFamily: 'Lato',
|
|
||||||
decoration: TextDecoration.none,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(
|
padding: EdgeInsets.only(left: 24, right: 24, top: 24),
|
||||||
left: 24,
|
|
||||||
right: 24,
|
|
||||||
top: 24
|
|
||||||
),
|
|
||||||
child: ClipRRect(
|
child: ClipRRect(
|
||||||
borderRadius: BorderRadius.all(Radius.circular(14)),
|
borderRadius: BorderRadius.all(Radius.circular(24)),
|
||||||
child: Container(
|
child: Container(
|
||||||
color: Theme.of(context).textTheme!.bodyText1!.decorationColor!,
|
color: Theme.of(context).textTheme!.bodyText1!.decorationColor!,
|
||||||
child: ListView.separated(
|
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
||||||
shrinkWrap: true,
|
Padding(
|
||||||
physics: const NeverScrollableScrollPhysics(),
|
padding: EdgeInsets.all(24.0),
|
||||||
itemCount: dashboardViewModel.filterItems.length,
|
child: Text(
|
||||||
separatorBuilder: (context, _) => Container(
|
S.of(context).filter_by,
|
||||||
height: 1,
|
style: TextStyle(
|
||||||
color: Theme.of(context).accentTextTheme!.subtitle1!.backgroundColor!,
|
color: Theme.of(context).primaryTextTheme.overline!.color!,
|
||||||
|
fontSize: 16,
|
||||||
|
fontFamily: 'Lato',
|
||||||
|
decoration: TextDecoration.none,
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
itemBuilder: (_, index1) {
|
sectionDivider,
|
||||||
final title = dashboardViewModel.filterItems.keys.elementAt(index1);
|
ListView.separated(
|
||||||
final section = dashboardViewModel.filterItems.values.elementAt(index1);
|
padding: EdgeInsets.zero,
|
||||||
|
shrinkWrap: true,
|
||||||
return Column(
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
itemCount: dashboardViewModel.filterItems.length,
|
||||||
children: <Widget>[
|
separatorBuilder: (context, _) => sectionDivider,
|
||||||
Padding(
|
itemBuilder: (_, index1) {
|
||||||
padding: EdgeInsets.only(
|
final title = dashboardViewModel.filterItems.keys.elementAt(index1);
|
||||||
top: 20,
|
final section = dashboardViewModel.filterItems.values.elementAt(index1);
|
||||||
left: 24,
|
return Column(
|
||||||
right: 24
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
),
|
children: <Widget>[
|
||||||
child: Text(
|
Padding(
|
||||||
title,
|
padding: EdgeInsets.only(top: 20, left: 24, right: 24),
|
||||||
style: TextStyle(
|
child: Text(
|
||||||
color: Theme.of(context).accentTextTheme!.subtitle1!.color!,
|
title,
|
||||||
fontSize: 16,
|
style: TextStyle(
|
||||||
fontWeight: FontWeight.w500,
|
color: Theme.of(context).primaryTextTheme!.headline6!.color!,
|
||||||
fontFamily: 'Lato',
|
fontSize: 16,
|
||||||
decoration: TextDecoration.none
|
fontFamily: 'Lato',
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
decoration: TextDecoration.none),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
ListView.builder(
|
||||||
ListView.separated(
|
padding: EdgeInsets.symmetric(vertical: 8.0),
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
physics: const NeverScrollableScrollPhysics(),
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
itemCount: section.length,
|
itemCount: section.length,
|
||||||
separatorBuilder: (context, _) => Container(
|
itemBuilder: (_, index2) {
|
||||||
height: 1,
|
final item = section[index2];
|
||||||
padding: EdgeInsets.only(left: 24),
|
final content = Observer(
|
||||||
color: Theme.of(context).textTheme!.bodyText1!.decorationColor!,
|
builder: (_) => StandardCheckbox(
|
||||||
child: Container(
|
value: item.value(),
|
||||||
height: 1,
|
caption: item.caption,
|
||||||
color: Theme.of(context).accentTextTheme!.subtitle1!.backgroundColor!,
|
gradientBackground: true,
|
||||||
),
|
borderColor: Theme.of(context).dividerColor,
|
||||||
),
|
iconColor: Colors.white,
|
||||||
itemBuilder: (_, index2) {
|
onChanged: (value) => item.onChanged(),
|
||||||
|
));
|
||||||
final item = section[index2];
|
return FilterTile(child: content);
|
||||||
final content = item.onChanged != null
|
},
|
||||||
? CheckboxWidget(
|
)
|
||||||
value: item.value(),
|
],
|
||||||
caption: item.caption,
|
);
|
||||||
onChanged: item.onChanged
|
},
|
||||||
)
|
),
|
||||||
: GestureDetector(
|
]),
|
||||||
onTap: () async {
|
|
||||||
//final List<DateTime> picked =
|
|
||||||
//await date_rage_picker.showDatePicker(
|
|
||||||
// context: context,
|
|
||||||
// initialFirstDate: DateTime.now()
|
|
||||||
// .subtract(Duration(days: 1)),
|
|
||||||
// initialLastDate: (DateTime.now()),
|
|
||||||
// firstDate: DateTime(2015),
|
|
||||||
// lastDate: DateTime.now()
|
|
||||||
// .add(Duration(days: 1)));
|
|
||||||
|
|
||||||
//if (picked != null && picked.length == 2) {
|
|
||||||
// dashboardViewModel.transactionFilterStore
|
|
||||||
// .changeStartDate(picked.first);
|
|
||||||
// dashboardViewModel.transactionFilterStore
|
|
||||||
// .changeEndDate(picked.last);
|
|
||||||
//}
|
|
||||||
},
|
|
||||||
child: Padding(
|
|
||||||
padding: EdgeInsets.only(left: 32),
|
|
||||||
child: Text(
|
|
||||||
item.caption,
|
|
||||||
style: TextStyle(
|
|
||||||
color: Theme.of(context).primaryTextTheme!.headline6!.color!,
|
|
||||||
fontSize: 18,
|
|
||||||
fontFamily: 'Lato',
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
decoration: TextDecoration.none
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
return FilterTile(child: content);
|
|
||||||
},
|
|
||||||
)
|
|
||||||
],
|
|
||||||
);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
AlertCloseButton(image: backVector)
|
AlertCloseButton(image: closeIcon)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,6 @@ class ExchangePage extends BasePage {
|
||||||
final ExchangeViewModel exchangeViewModel;
|
final ExchangeViewModel exchangeViewModel;
|
||||||
final depositKey = GlobalKey<ExchangeCardState>();
|
final depositKey = GlobalKey<ExchangeCardState>();
|
||||||
final receiveKey = GlobalKey<ExchangeCardState>();
|
final receiveKey = GlobalKey<ExchangeCardState>();
|
||||||
final checkBoxKey = GlobalKey<StandardCheckboxState>();
|
|
||||||
final _formKey = GlobalKey<FormState>();
|
final _formKey = GlobalKey<FormState>();
|
||||||
final _depositAmountFocus = FocusNode();
|
final _depositAmountFocus = FocusNode();
|
||||||
final _depositAddressFocus = FocusNode();
|
final _depositAddressFocus = FocusNode();
|
||||||
|
@ -339,7 +338,6 @@ class ExchangePage extends BasePage {
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
StandardCheckbox(
|
StandardCheckbox(
|
||||||
key: checkBoxKey,
|
|
||||||
value: exchangeViewModel.isFixedRateMode,
|
value: exchangeViewModel.isFixedRateMode,
|
||||||
caption: S.of(context).fixed_rate,
|
caption: S.of(context).fixed_rate,
|
||||||
onChanged: (value) =>
|
onChanged: (value) =>
|
||||||
|
@ -682,12 +680,6 @@ class ExchangePage extends BasePage {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
reaction((_) => exchangeViewModel.isFixedRateMode, (bool value) {
|
|
||||||
if (checkBoxKey.currentState!.value != exchangeViewModel.isFixedRateMode) {
|
|
||||||
checkBoxKey.currentState!.value = exchangeViewModel.isFixedRateMode;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
depositAddressController.addListener(
|
depositAddressController.addListener(
|
||||||
() => exchangeViewModel.depositAddress = depositAddressController.text);
|
() => exchangeViewModel.depositAddress = depositAddressController.text);
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ import 'package:cake_wallet/generated/i18n.dart';
|
||||||
import 'package:cake_wallet/core/execution_state.dart';
|
import 'package:cake_wallet/core/execution_state.dart';
|
||||||
import 'package:cake_wallet/src/screens/exchange_trade/information_page.dart';
|
import 'package:cake_wallet/src/screens/exchange_trade/information_page.dart';
|
||||||
import 'package:cake_wallet/src/screens/send/widgets/confirm_sending_alert.dart';
|
import 'package:cake_wallet/src/screens/send/widgets/confirm_sending_alert.dart';
|
||||||
import 'package:cake_wallet/src/widgets/standart_list_row.dart';
|
import 'package:cake_wallet/src/widgets/list_row.dart';
|
||||||
import 'package:cake_wallet/utils/show_bar.dart';
|
import 'package:cake_wallet/utils/show_bar.dart';
|
||||||
import 'package:cake_wallet/utils/show_pop_up.dart';
|
import 'package:cake_wallet/utils/show_pop_up.dart';
|
||||||
import 'package:cake_wallet/view_model/exchange/exchange_trade_view_model.dart';
|
import 'package:cake_wallet/view_model/exchange/exchange_trade_view_model.dart';
|
||||||
|
@ -194,7 +194,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
|
||||||
final item = widget.exchangeTradeViewModel.items[index];
|
final item = widget.exchangeTradeViewModel.items[index];
|
||||||
final value = item.data ?? fetchingLabel;
|
final value = item.data ?? fetchingLabel;
|
||||||
|
|
||||||
final content = StandartListRow(
|
final content = ListRow(
|
||||||
title: item.title,
|
title: item.title,
|
||||||
value: value,
|
value: value,
|
||||||
valueFontSize: 14,
|
valueFontSize: 14,
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import 'dart:ui';
|
import 'dart:ui';
|
||||||
|
import 'package:cake_wallet/src/widgets/section_divider.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter_mobx/flutter_mobx.dart';
|
import 'package:flutter_mobx/flutter_mobx.dart';
|
||||||
|
@ -84,10 +85,7 @@ class MoneroAccountListPage extends StatelessWidget {
|
||||||
padding: EdgeInsets.zero,
|
padding: EdgeInsets.zero,
|
||||||
controller: controller,
|
controller: controller,
|
||||||
separatorBuilder: (context, index) =>
|
separatorBuilder: (context, index) =>
|
||||||
Container(
|
const SectionDivider(),
|
||||||
height: 1,
|
|
||||||
color: Theme.of(context).dividerColor,
|
|
||||||
),
|
|
||||||
itemCount: accounts.length ?? 0,
|
itemCount: accounts.length ?? 0,
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
final account = accounts[index];
|
final account = accounts[index];
|
||||||
|
|
|
@ -7,7 +7,7 @@ import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_mobx/flutter_mobx.dart';
|
import 'package:flutter_mobx/flutter_mobx.dart';
|
||||||
import 'package:cake_wallet/generated/i18n.dart';
|
import 'package:cake_wallet/generated/i18n.dart';
|
||||||
import 'package:cake_wallet/src/screens/base_page.dart';
|
import 'package:cake_wallet/src/screens/base_page.dart';
|
||||||
import 'package:cake_wallet/src/widgets/standart_list_row.dart';
|
import 'package:cake_wallet/src/widgets/list_row.dart';
|
||||||
import 'package:cake_wallet/src/screens/trade_details/track_trade_list_item.dart';
|
import 'package:cake_wallet/src/screens/trade_details/track_trade_list_item.dart';
|
||||||
|
|
||||||
class OrderDetailsPage extends BasePage {
|
class OrderDetailsPage extends BasePage {
|
||||||
|
@ -57,7 +57,7 @@ class OrderDetailsPageBodyState extends State<OrderDetailsPageBody> {
|
||||||
if (item is TrackTradeListItem) {
|
if (item is TrackTradeListItem) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: item.onTap,
|
onTap: item.onTap,
|
||||||
child: StandartListRow(
|
child: ListRow(
|
||||||
title: '${item.title}', value: '${item.value}'));
|
title: '${item.title}', value: '${item.value}'));
|
||||||
} else {
|
} else {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
|
@ -65,7 +65,7 @@ class OrderDetailsPageBodyState extends State<OrderDetailsPageBody> {
|
||||||
Clipboard.setData(ClipboardData(text: '${item.value}'));
|
Clipboard.setData(ClipboardData(text: '${item.value}'));
|
||||||
showBar<void>(context, S.of(context).copied_to_clipboard);
|
showBar<void>(context, S.of(context).copied_to_clipboard);
|
||||||
},
|
},
|
||||||
child: StandartListRow(
|
child: ListRow(
|
||||||
title: '${item.title}', value: '${item.value}'));
|
title: '${item.title}', value: '${item.value}'));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import 'package:cake_wallet/src/widgets/keyboard_done_button.dart';
|
import 'package:cake_wallet/src/widgets/keyboard_done_button.dart';
|
||||||
|
import 'package:cake_wallet/src/widgets/section_divider.dart';
|
||||||
import 'package:cake_wallet/themes/theme_base.dart';
|
import 'package:cake_wallet/themes/theme_base.dart';
|
||||||
import 'package:cake_wallet/utils/show_pop_up.dart';
|
import 'package:cake_wallet/utils/show_pop_up.dart';
|
||||||
import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
|
import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
|
||||||
|
@ -135,8 +136,7 @@ class ReceivePage extends BasePage {
|
||||||
Observer(
|
Observer(
|
||||||
builder: (_) => ListView.separated(
|
builder: (_) => ListView.separated(
|
||||||
padding: EdgeInsets.all(0),
|
padding: EdgeInsets.all(0),
|
||||||
separatorBuilder: (context, _) => Container(
|
separatorBuilder: (context, _) => const SectionDivider(),
|
||||||
height: 1, color: Theme.of(context).dividerColor),
|
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
physics: NeverScrollableScrollPhysics(),
|
physics: NeverScrollableScrollPhysics(),
|
||||||
itemCount: addressListViewModel.items.length,
|
itemCount: addressListViewModel.items.length,
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import 'package:cake_wallet/src/widgets/cake_scrollbar.dart';
|
import 'package:cake_wallet/src/widgets/cake_scrollbar.dart';
|
||||||
|
import 'package:cake_wallet/src/widgets/section_divider.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:cake_wallet/src/widgets/base_alert_dialog.dart';
|
import 'package:cake_wallet/src/widgets/base_alert_dialog.dart';
|
||||||
|
|
||||||
|
@ -70,10 +71,7 @@ class ChooseYatAddressButtonsState extends State<ChooseYatAddressButtons> {
|
||||||
controller: controller,
|
controller: controller,
|
||||||
padding: EdgeInsets.all(0),
|
padding: EdgeInsets.all(0),
|
||||||
itemCount: itemCount,
|
itemCount: itemCount,
|
||||||
separatorBuilder: (_, __) => Container(
|
separatorBuilder: (_, __) => const SectionDivider(),
|
||||||
height: 1,
|
|
||||||
color: Theme.of(context).dividerColor,
|
|
||||||
),
|
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
final address = addresses[index];
|
final address = addresses[index];
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:cake_wallet/src/widgets/standard_list.dart';
|
import 'package:cake_wallet/src/widgets/standard_list.dart';
|
||||||
import 'package:cake_wallet/src/widgets/standart_switch.dart';
|
import 'package:cake_wallet/src/widgets/standard_switch.dart';
|
||||||
|
|
||||||
class SettingsSwitcherCell extends StandardListRow {
|
class SettingsSwitcherCell extends StandardListRow {
|
||||||
SettingsSwitcherCell(
|
SettingsSwitcherCell(
|
||||||
|
@ -11,6 +11,6 @@ class SettingsSwitcherCell extends StandardListRow {
|
||||||
final void Function(BuildContext context, bool value)? onValueChange;
|
final void Function(BuildContext context, bool value)? onValueChange;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget buildTrailing(BuildContext context) => StandartSwitch(
|
Widget buildTrailing(BuildContext context) => StandardSwitch(
|
||||||
value: value, onTaped: () => onValueChange?.call(context, !value));
|
value: value, onTaped: () => onValueChange?.call(context, !value));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:cake_wallet/src/widgets/standard_list.dart';
|
import 'package:cake_wallet/src/widgets/standard_list.dart';
|
||||||
import 'package:cake_wallet/src/widgets/standart_list_card.dart';
|
import 'package:cake_wallet/src/widgets/standard_list_card.dart';
|
||||||
import 'package:cake_wallet/src/widgets/standart_list_status_row.dart';
|
import 'package:cake_wallet/src/widgets/standard_list_status_row.dart';
|
||||||
import 'package:cake_wallet/utils/show_bar.dart';
|
import 'package:cake_wallet/utils/show_bar.dart';
|
||||||
import 'package:cake_wallet/view_model/trade_details_view_model.dart';
|
import 'package:cake_wallet/view_model/trade_details_view_model.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
@ -9,7 +9,7 @@ import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_mobx/flutter_mobx.dart';
|
import 'package:flutter_mobx/flutter_mobx.dart';
|
||||||
import 'package:cake_wallet/generated/i18n.dart';
|
import 'package:cake_wallet/generated/i18n.dart';
|
||||||
import 'package:cake_wallet/src/screens/base_page.dart';
|
import 'package:cake_wallet/src/screens/base_page.dart';
|
||||||
import 'package:cake_wallet/src/widgets/standart_list_row.dart';
|
import 'package:cake_wallet/src/widgets/list_row.dart';
|
||||||
import 'package:cake_wallet/src/screens/trade_details/track_trade_list_item.dart';
|
import 'package:cake_wallet/src/screens/trade_details/track_trade_list_item.dart';
|
||||||
import 'package:cake_wallet/src/screens/trade_details/trade_details_list_card.dart';
|
import 'package:cake_wallet/src/screens/trade_details/trade_details_list_card.dart';
|
||||||
import 'package:cake_wallet/src/screens/trade_details/trade_details_status_item.dart';
|
import 'package:cake_wallet/src/screens/trade_details/trade_details_status_item.dart';
|
||||||
|
@ -62,18 +62,18 @@ class TradeDetailsPageBodyState extends State<TradeDetailsPageBody> {
|
||||||
if (item is TrackTradeListItem) {
|
if (item is TrackTradeListItem) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: item.onTap,
|
onTap: item.onTap,
|
||||||
child: StandartListRow(
|
child: ListRow(
|
||||||
title: '${item.title}', value: '${item.value}'));
|
title: '${item.title}', value: '${item.value}'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item is DetailsListStatusItem) {
|
if (item is DetailsListStatusItem) {
|
||||||
return StandartListStatusRow(
|
return StandardListStatusRow(
|
||||||
title: item.title,
|
title: item.title,
|
||||||
value: item.value);
|
value: item.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item is TradeDetailsListCardItem) {
|
if (item is TradeDetailsListCardItem) {
|
||||||
return TradeDatailsStandartListCard(
|
return TradeDetailsStandardListCard(
|
||||||
id: item.id,
|
id: item.id,
|
||||||
create: item.createdAt,
|
create: item.createdAt,
|
||||||
pair: item.pair,
|
pair: item.pair,
|
||||||
|
@ -86,7 +86,7 @@ class TradeDetailsPageBodyState extends State<TradeDetailsPageBody> {
|
||||||
Clipboard.setData(ClipboardData(text: '${item.value}'));
|
Clipboard.setData(ClipboardData(text: '${item.value}'));
|
||||||
showBar<void>(context, S.of(context).copied_to_clipboard);
|
showBar<void>(context, S.of(context).copied_to_clipboard);
|
||||||
},
|
},
|
||||||
child: StandartListRow(
|
child: ListRow(
|
||||||
title: '${item.title}', value: '${item.value}'));
|
title: '${item.title}', value: '${item.value}'));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -6,7 +6,7 @@ import 'package:cake_wallet/view_model/transaction_details_view_model.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:cake_wallet/generated/i18n.dart';
|
import 'package:cake_wallet/generated/i18n.dart';
|
||||||
import 'package:cake_wallet/src/widgets/standart_list_row.dart';
|
import 'package:cake_wallet/src/widgets/list_row.dart';
|
||||||
import 'package:cake_wallet/src/screens/transaction_details/blockexplorer_list_item.dart';
|
import 'package:cake_wallet/src/screens/transaction_details/blockexplorer_list_item.dart';
|
||||||
import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart';
|
import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart';
|
||||||
import 'package:cake_wallet/src/screens/base_page.dart';
|
import 'package:cake_wallet/src/screens/base_page.dart';
|
||||||
|
@ -42,7 +42,7 @@ class TransactionDetailsPage extends BasePage {
|
||||||
S.of(context).transaction_details_copied(item.title));
|
S.of(context).transaction_details_copied(item.title));
|
||||||
},
|
},
|
||||||
child:
|
child:
|
||||||
StandartListRow(title: '${item.title}:', value: item.value),
|
ListRow(title: '${item.title}:', value: item.value),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ class TransactionDetailsPage extends BasePage {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: item.onTap,
|
onTap: item.onTap,
|
||||||
child:
|
child:
|
||||||
StandartListRow(title: '${item.title}:', value: item.value),
|
ListRow(title: '${item.title}:', value: item.value),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ import 'package:cake_wallet/src/widgets/standard_list.dart';
|
||||||
import 'package:cake_wallet/view_model/unspent_coins/unspent_coins_details_view_model.dart';
|
import 'package:cake_wallet/view_model/unspent_coins/unspent_coins_details_view_model.dart';
|
||||||
import 'package:cake_wallet/view_model/unspent_coins/unspent_coins_switch_item.dart';
|
import 'package:cake_wallet/view_model/unspent_coins/unspent_coins_switch_item.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:cake_wallet/src/widgets/standart_list_row.dart';
|
import 'package:cake_wallet/src/widgets/list_row.dart';
|
||||||
import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart';
|
import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart';
|
||||||
import 'package:cake_wallet/src/screens/base_page.dart';
|
import 'package:cake_wallet/src/screens/base_page.dart';
|
||||||
import 'package:flutter_mobx/flutter_mobx.dart';
|
import 'package:flutter_mobx/flutter_mobx.dart';
|
||||||
|
@ -30,7 +30,7 @@ class UnspentCoinsDetailsPage extends BasePage {
|
||||||
final item = unspentCoinsDetailsViewModel.items[index];
|
final item = unspentCoinsDetailsViewModel.items[index];
|
||||||
|
|
||||||
if (item is StandartListItem) {
|
if (item is StandartListItem) {
|
||||||
return StandartListRow(
|
return ListRow(
|
||||||
title: '${item.title}:',
|
title: '${item.title}:',
|
||||||
value: item.value);
|
value: item.value);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import 'package:cake_wallet/src/widgets/standart_switch.dart';
|
import 'package:cake_wallet/src/widgets/standard_switch.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class UnspentCoinsSwitchRow extends StatelessWidget {
|
class UnspentCoinsSwitchRow extends StatelessWidget {
|
||||||
|
@ -33,7 +33,7 @@ class UnspentCoinsSwitchRow extends StatelessWidget {
|
||||||
textAlign: TextAlign.left),
|
textAlign: TextAlign.left),
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(top: 12),
|
padding: EdgeInsets.only(top: 12),
|
||||||
child: StandartSwitch(
|
child: StandardSwitch(
|
||||||
value: switchValue,
|
value: switchValue,
|
||||||
onTaped: () => onSwitchValueChange(!switchValue))
|
onTaped: () => onSwitchValueChange(!switchValue))
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import 'package:auto_size_text/auto_size_text.dart';
|
import 'package:auto_size_text/auto_size_text.dart';
|
||||||
|
import 'package:cake_wallet/src/widgets/section_divider.dart';
|
||||||
import 'package:cake_wallet/utils/show_bar.dart';
|
import 'package:cake_wallet/utils/show_bar.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
|
@ -6,7 +7,7 @@ import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_mobx/flutter_mobx.dart';
|
import 'package:flutter_mobx/flutter_mobx.dart';
|
||||||
import 'package:cake_wallet/generated/i18n.dart';
|
import 'package:cake_wallet/generated/i18n.dart';
|
||||||
import 'package:cake_wallet/src/screens/base_page.dart';
|
import 'package:cake_wallet/src/screens/base_page.dart';
|
||||||
import 'package:cake_wallet/src/widgets/standart_list_row.dart';
|
import 'package:cake_wallet/src/widgets/list_row.dart';
|
||||||
import 'package:cake_wallet/view_model/wallet_keys_view_model.dart';
|
import 'package:cake_wallet/view_model/wallet_keys_view_model.dart';
|
||||||
|
|
||||||
class WalletKeysPage extends BasePage {
|
class WalletKeysPage extends BasePage {
|
||||||
|
@ -57,10 +58,7 @@ class WalletKeysPage extends BasePage {
|
||||||
height: 1,
|
height: 1,
|
||||||
padding: EdgeInsets.only(left: 24),
|
padding: EdgeInsets.only(left: 24),
|
||||||
color: Theme.of(context).accentTextTheme!.headline6!.backgroundColor!,
|
color: Theme.of(context).accentTextTheme!.headline6!.backgroundColor!,
|
||||||
child: Container(
|
child: const SectionDivider(),
|
||||||
height: 1,
|
|
||||||
color: Theme.of(context).dividerColor,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
itemCount: walletKeysViewModel.items.length,
|
itemCount: walletKeysViewModel.items.length,
|
||||||
itemBuilder: (BuildContext context, int index) {
|
itemBuilder: (BuildContext context, int index) {
|
||||||
|
@ -71,7 +69,7 @@ class WalletKeysPage extends BasePage {
|
||||||
Clipboard.setData(ClipboardData(text: item.value));
|
Clipboard.setData(ClipboardData(text: item.value));
|
||||||
showBar<void>(context, S.of(context).copied_key_to_clipboard(item.title));
|
showBar<void>(context, S.of(context).copied_key_to_clipboard(item.title));
|
||||||
},
|
},
|
||||||
child: StandartListRow(
|
child: ListRow(
|
||||||
title: item.title + ':',
|
title: item.title + ':',
|
||||||
value: item.value,
|
value: item.value,
|
||||||
),
|
),
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import 'dart:ui';
|
import 'dart:ui';
|
||||||
|
import 'package:cake_wallet/src/widgets/section_divider.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:cake_wallet/palette.dart';
|
import 'package:cake_wallet/palette.dart';
|
||||||
|
|
||||||
|
@ -76,10 +77,7 @@ class BaseAlertDialog extends StatelessWidget {
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
),
|
),
|
||||||
Container(
|
const SectionDivider(),
|
||||||
width: 1,
|
|
||||||
color: Theme.of(context).dividerColor,
|
|
||||||
),
|
|
||||||
Expanded(
|
Expanded(
|
||||||
child: TextButton(
|
child: TextButton(
|
||||||
onPressed: actionRight,
|
onPressed: actionRight,
|
||||||
|
@ -140,10 +138,7 @@ class BaseAlertDialog extends StatelessWidget {
|
||||||
isDividerExists
|
isDividerExists
|
||||||
? Padding(
|
? Padding(
|
||||||
padding: EdgeInsets.only(top: 16, bottom: 8),
|
padding: EdgeInsets.only(top: 16, bottom: 8),
|
||||||
child: Container(
|
child: const SectionDivider(),
|
||||||
height: 1,
|
|
||||||
color: Theme.of(context).dividerColor,
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
: Offstage(),
|
: Offstage(),
|
||||||
Padding(
|
Padding(
|
||||||
|
@ -152,10 +147,7 @@ class BaseAlertDialog extends StatelessWidget {
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
Container(
|
const SectionDivider(),
|
||||||
height: 1,
|
|
||||||
color: Theme.of(context).dividerColor,
|
|
||||||
),
|
|
||||||
actionButtons(context)
|
actionButtons(context)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class StandartListRow extends StatelessWidget {
|
class ListRow extends StatelessWidget {
|
||||||
StandartListRow(
|
ListRow(
|
||||||
{required this.title,
|
{required this.title,
|
||||||
required this.value,
|
required this.value,
|
||||||
this.titleFontSize = 14,
|
this.titleFontSize = 14,
|
13
lib/src/widgets/section_divider.dart
Normal file
13
lib/src/widgets/section_divider.dart
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class SectionDivider extends StatelessWidget {
|
||||||
|
const SectionDivider();
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Container(
|
||||||
|
height: 1,
|
||||||
|
color: Theme.of(context).dividerColor,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,42 +2,42 @@ import 'dart:ui';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class StandardCheckbox extends StatefulWidget {
|
class StandardCheckbox extends StatelessWidget {
|
||||||
StandardCheckbox({
|
StandardCheckbox(
|
||||||
Key? key,
|
{required this.value,
|
||||||
required this.value,
|
this.caption = '',
|
||||||
this.caption = '',
|
this.gradientBackground = false,
|
||||||
required this.onChanged})
|
this.borderColor,
|
||||||
: super(key: key);
|
this.iconColor,
|
||||||
|
required this.onChanged});
|
||||||
|
|
||||||
final bool value;
|
final bool value;
|
||||||
final String caption;
|
final String caption;
|
||||||
|
final bool gradientBackground;
|
||||||
|
final Color? borderColor;
|
||||||
|
final Color? iconColor;
|
||||||
final Function(bool) onChanged;
|
final Function(bool) onChanged;
|
||||||
|
|
||||||
@override
|
|
||||||
StandardCheckboxState createState() =>
|
|
||||||
StandardCheckboxState(value, caption, onChanged);
|
|
||||||
}
|
|
||||||
|
|
||||||
class StandardCheckboxState extends State<StandardCheckbox> {
|
|
||||||
StandardCheckboxState(this.value, this.caption, this.onChanged);
|
|
||||||
|
|
||||||
bool value;
|
|
||||||
String caption;
|
|
||||||
Function(bool) onChanged;
|
|
||||||
|
|
||||||
void changeValue(bool newValue) {
|
|
||||||
setState(() => value = newValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final baseGradient = LinearGradient(colors: [
|
||||||
|
Theme.of(context).primaryTextTheme.subtitle1!.color!,
|
||||||
|
Theme.of(context).primaryTextTheme.subtitle1!.decorationColor!,
|
||||||
|
], begin: Alignment.centerLeft, end: Alignment.centerRight);
|
||||||
|
|
||||||
|
final boxBorder = Border.all(
|
||||||
|
color: borderColor ?? Theme.of(context).primaryTextTheme.caption!.color!, width: 1.0);
|
||||||
|
|
||||||
|
final checkedBoxDecoration = BoxDecoration(
|
||||||
|
gradient: gradientBackground ? baseGradient : null,
|
||||||
|
border: gradientBackground ? null : boxBorder,
|
||||||
|
borderRadius: BorderRadius.all(Radius.circular(8.0)));
|
||||||
|
|
||||||
|
final uncheckedBoxDecoration =
|
||||||
|
BoxDecoration(border: boxBorder, borderRadius: BorderRadius.all(Radius.circular(8.0)));
|
||||||
|
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: () {
|
onTap: () => onChanged(!value),
|
||||||
value = !value;
|
|
||||||
onChanged(value);
|
|
||||||
setState(() {});
|
|
||||||
},
|
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
|
@ -45,38 +45,25 @@ class StandardCheckboxState extends State<StandardCheckbox> {
|
||||||
Container(
|
Container(
|
||||||
height: 24.0,
|
height: 24.0,
|
||||||
width: 24.0,
|
width: 24.0,
|
||||||
decoration: BoxDecoration(
|
decoration: value ? checkedBoxDecoration : uncheckedBoxDecoration,
|
||||||
border: Border.all(
|
|
||||||
color: Theme.of(context)
|
|
||||||
.primaryTextTheme!
|
|
||||||
.caption!
|
|
||||||
.color!,
|
|
||||||
width: 1.0),
|
|
||||||
borderRadius: BorderRadius.all(
|
|
||||||
Radius.circular(8.0)),
|
|
||||||
color: Theme.of(context).backgroundColor),
|
|
||||||
child: value
|
child: value
|
||||||
? Icon(
|
? Icon(
|
||||||
Icons.check,
|
Icons.check,
|
||||||
color: Colors.blue,
|
color: iconColor ?? Colors.blue,
|
||||||
size: 20.0,
|
size: 20.0,
|
||||||
)
|
)
|
||||||
: Offstage(),
|
: Offstage(),
|
||||||
),
|
),
|
||||||
if (caption.isNotEmpty) Padding(
|
if (caption.isNotEmpty)
|
||||||
padding: EdgeInsets.only(left: 10),
|
Padding(
|
||||||
child: Text(
|
padding: EdgeInsets.only(left: 10),
|
||||||
caption,
|
child: Text(
|
||||||
style: TextStyle(
|
caption,
|
||||||
fontSize: 16.0,
|
style: TextStyle(
|
||||||
color: Theme.of(context)
|
fontSize: 16.0, color: Theme.of(context).primaryTextTheme!.headline6!.color!),
|
||||||
.primaryTextTheme!
|
))
|
||||||
.headline6!
|
|
||||||
.color!),
|
|
||||||
)
|
|
||||||
)
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:cake_wallet/palette.dart';
|
import 'package:cake_wallet/palette.dart';
|
||||||
import 'package:cake_wallet/src/widgets/standart_list_card.dart';
|
import 'package:cake_wallet/src/widgets/standard_list_card.dart';
|
||||||
import 'package:cake_wallet/src/widgets/standart_list_status_row.dart';
|
import 'package:cake_wallet/src/widgets/standard_list_status_row.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class StandardListRow extends StatelessWidget {
|
class StandardListRow extends StatelessWidget {
|
||||||
|
@ -217,7 +217,7 @@ class SectionStandardList extends StatelessWidget {
|
||||||
return Container();
|
return Container();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (row is StandartListStatusRow || row is TradeDatailsStandartListCard) {
|
if (row is StandardListStatusRow || row is TradeDetailsStandardListCard) {
|
||||||
return Container();
|
return Container();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,8 @@ import 'package:cake_wallet/palette.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:cake_wallet/themes/theme_base.dart';
|
import 'package:cake_wallet/themes/theme_base.dart';
|
||||||
|
|
||||||
class TradeDatailsStandartListCard extends StatelessWidget {
|
class TradeDetailsStandardListCard extends StatelessWidget {
|
||||||
TradeDatailsStandartListCard(
|
TradeDetailsStandardListCard(
|
||||||
{required this.id,
|
{required this.id,
|
||||||
required this.create,
|
required this.create,
|
||||||
required this.pair,
|
required this.pair,
|
|
@ -3,8 +3,8 @@ import 'package:cake_wallet/src/screens/dashboard/widgets/sync_indicator_icon.da
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class StandartListStatusRow extends StatelessWidget {
|
class StandardListStatusRow extends StatelessWidget {
|
||||||
StandartListStatusRow({required this.title, required this.value});
|
StandardListStatusRow({required this.title, required this.value});
|
||||||
|
|
||||||
final String title;
|
final String title;
|
||||||
final String value;
|
final String value;
|
|
@ -1,17 +1,17 @@
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class StandartSwitch extends StatefulWidget {
|
class StandardSwitch extends StatefulWidget {
|
||||||
const StandartSwitch({required this.value, required this.onTaped});
|
const StandardSwitch({required this.value, required this.onTaped});
|
||||||
|
|
||||||
final bool value;
|
final bool value;
|
||||||
final VoidCallback onTaped;
|
final VoidCallback onTaped;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
StandartSwitchState createState() => StandartSwitchState();
|
StandardSwitchState createState() => StandardSwitchState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class StandartSwitchState extends State<StandartSwitch> {
|
class StandardSwitchState extends State<StandardSwitch> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
|
@ -8,12 +8,11 @@ part'trade_filter_store.g.dart';
|
||||||
class TradeFilterStore = TradeFilterStoreBase with _$TradeFilterStore;
|
class TradeFilterStore = TradeFilterStoreBase with _$TradeFilterStore;
|
||||||
|
|
||||||
abstract class TradeFilterStoreBase with Store {
|
abstract class TradeFilterStoreBase with Store {
|
||||||
TradeFilterStoreBase(
|
TradeFilterStoreBase() : displayXMRTO = true,
|
||||||
{this.displayXMRTO = true,
|
displayChangeNow = true,
|
||||||
this.displayChangeNow = true,
|
displaySideShift = true,
|
||||||
this.displayMorphToken = true,
|
displayMorphToken = true,
|
||||||
this.displaySimpleSwap = true,
|
displaySimpleSwap = true;
|
||||||
});
|
|
||||||
|
|
||||||
@observable
|
@observable
|
||||||
bool displayXMRTO;
|
bool displayXMRTO;
|
||||||
|
@ -21,26 +20,50 @@ abstract class TradeFilterStoreBase with Store {
|
||||||
@observable
|
@observable
|
||||||
bool displayChangeNow;
|
bool displayChangeNow;
|
||||||
|
|
||||||
|
@observable
|
||||||
|
bool displaySideShift;
|
||||||
|
|
||||||
@observable
|
@observable
|
||||||
bool displayMorphToken;
|
bool displayMorphToken;
|
||||||
|
|
||||||
@observable
|
@observable
|
||||||
bool displaySimpleSwap;
|
bool displaySimpleSwap;
|
||||||
|
|
||||||
|
@computed
|
||||||
|
bool get displayAllTrades => displayChangeNow && displaySideShift && displaySimpleSwap;
|
||||||
|
|
||||||
@action
|
@action
|
||||||
void toggleDisplayExchange(ExchangeProviderDescription provider) {
|
void toggleDisplayExchange(ExchangeProviderDescription provider) {
|
||||||
switch (provider) {
|
switch (provider) {
|
||||||
case ExchangeProviderDescription.changeNow:
|
case ExchangeProviderDescription.changeNow:
|
||||||
displayChangeNow = !displayChangeNow;
|
displayChangeNow = !displayChangeNow;
|
||||||
break;
|
break;
|
||||||
|
case ExchangeProviderDescription.sideShift:
|
||||||
|
displaySideShift = !displaySideShift;
|
||||||
|
break;
|
||||||
|
case ExchangeProviderDescription.simpleSwap:
|
||||||
|
displaySimpleSwap = !displaySimpleSwap;
|
||||||
|
break;
|
||||||
case ExchangeProviderDescription.xmrto:
|
case ExchangeProviderDescription.xmrto:
|
||||||
displayXMRTO = !displayXMRTO;
|
displayXMRTO = !displayXMRTO;
|
||||||
break;
|
break;
|
||||||
case ExchangeProviderDescription.morphToken:
|
case ExchangeProviderDescription.morphToken:
|
||||||
displayMorphToken = !displayMorphToken;
|
displayMorphToken = !displayMorphToken;
|
||||||
break;
|
break;
|
||||||
case ExchangeProviderDescription.simpleSwap:
|
case ExchangeProviderDescription.all:
|
||||||
displaySimpleSwap = !displaySimpleSwap;
|
if (displayAllTrades) {
|
||||||
|
displayChangeNow = false;
|
||||||
|
displaySideShift = false;
|
||||||
|
displayXMRTO = false;
|
||||||
|
displayMorphToken = false;
|
||||||
|
displaySimpleSwap = false;
|
||||||
|
} else {
|
||||||
|
displayChangeNow = true;
|
||||||
|
displaySideShift = true;
|
||||||
|
displayXMRTO = true;
|
||||||
|
displayMorphToken = true;
|
||||||
|
displaySimpleSwap = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -48,13 +71,15 @@ abstract class TradeFilterStoreBase with Store {
|
||||||
List<TradeListItem> filtered({required List<TradeListItem> trades, required WalletBase wallet}) {
|
List<TradeListItem> filtered({required List<TradeListItem> trades, required WalletBase wallet}) {
|
||||||
final _trades =
|
final _trades =
|
||||||
trades.where((item) => item.trade.walletId == wallet.id).toList();
|
trades.where((item) => item.trade.walletId == wallet.id).toList();
|
||||||
final needToFilter = !displayChangeNow || !displayXMRTO || !displayMorphToken || !displaySimpleSwap;
|
final needToFilter = !displayAllTrades;
|
||||||
|
|
||||||
return needToFilter
|
return needToFilter
|
||||||
? _trades
|
? _trades
|
||||||
.where((item) =>
|
.where((item) =>
|
||||||
(displayXMRTO &&
|
(displayXMRTO &&
|
||||||
item.trade.provider == ExchangeProviderDescription.xmrto) ||
|
item.trade.provider == ExchangeProviderDescription.xmrto) ||
|
||||||
|
(displaySideShift &&
|
||||||
|
item.trade.provider == ExchangeProviderDescription.sideShift) ||
|
||||||
(displayChangeNow &&
|
(displayChangeNow &&
|
||||||
item.trade.provider ==
|
item.trade.provider ==
|
||||||
ExchangeProviderDescription.changeNow) ||
|
ExchangeProviderDescription.changeNow) ||
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
import 'package:mobx/mobx.dart';
|
import 'package:mobx/mobx.dart';
|
||||||
import 'package:cw_core/transaction_direction.dart';
|
import 'package:cw_core/transaction_direction.dart';
|
||||||
import 'package:cake_wallet/view_model/dashboard/transaction_list_item.dart';
|
import 'package:cake_wallet/view_model/dashboard/transaction_list_item.dart';
|
||||||
|
import 'package:cake_wallet/view_model/dashboard/filter_item.dart';
|
||||||
|
import 'package:cake_wallet/generated/i18n.dart';
|
||||||
|
|
||||||
part 'transaction_filter_store.g.dart';
|
part 'transaction_filter_store.g.dart';
|
||||||
|
|
||||||
|
@ -8,8 +10,8 @@ class TransactionFilterStore = TransactionFilterStoreBase
|
||||||
with _$TransactionFilterStore;
|
with _$TransactionFilterStore;
|
||||||
|
|
||||||
abstract class TransactionFilterStoreBase with Store {
|
abstract class TransactionFilterStoreBase with Store {
|
||||||
TransactionFilterStoreBase(
|
TransactionFilterStoreBase() : displayIncoming = true,
|
||||||
{this.displayIncoming = true, this.displayOutgoing = true});
|
displayOutgoing = true;
|
||||||
|
|
||||||
@observable
|
@observable
|
||||||
bool displayIncoming;
|
bool displayIncoming;
|
||||||
|
@ -23,11 +25,31 @@ abstract class TransactionFilterStoreBase with Store {
|
||||||
@observable
|
@observable
|
||||||
DateTime? endDate;
|
DateTime? endDate;
|
||||||
|
|
||||||
@action
|
@computed
|
||||||
void toggleIncoming() => displayIncoming = !displayIncoming;
|
bool get displayAll => displayIncoming && displayOutgoing;
|
||||||
|
|
||||||
@action
|
@action
|
||||||
void toggleOutgoing() => displayOutgoing = !displayOutgoing;
|
void toggleAll() {
|
||||||
|
if (displayAll) {
|
||||||
|
displayOutgoing = false;
|
||||||
|
displayIncoming = false;
|
||||||
|
} else {
|
||||||
|
displayOutgoing = true;
|
||||||
|
displayIncoming = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@action
|
||||||
|
void toggleIncoming() {
|
||||||
|
displayIncoming = !displayIncoming;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@action
|
||||||
|
void toggleOutgoing() {
|
||||||
|
displayOutgoing = !displayOutgoing;
|
||||||
|
}
|
||||||
|
|
||||||
@action
|
@action
|
||||||
void changeStartDate(DateTime date) => startDate = date;
|
void changeStartDate(DateTime date) => startDate = date;
|
||||||
|
@ -37,8 +59,7 @@ abstract class TransactionFilterStoreBase with Store {
|
||||||
|
|
||||||
List<TransactionListItem> filtered({required List<TransactionListItem> transactions}) {
|
List<TransactionListItem> filtered({required List<TransactionListItem> transactions}) {
|
||||||
var _transactions = <TransactionListItem>[];
|
var _transactions = <TransactionListItem>[];
|
||||||
final needToFilter = !displayOutgoing ||
|
final needToFilter = !displayAll ||
|
||||||
!displayIncoming ||
|
|
||||||
(startDate != null && endDate != null);
|
(startDate != null && endDate != null);
|
||||||
|
|
||||||
if (needToFilter) {
|
if (needToFilter) {
|
||||||
|
@ -50,7 +71,7 @@ abstract class TransactionFilterStoreBase with Store {
|
||||||
&& (endDate?.isAfter(item.transaction.date) ?? false);
|
&& (endDate?.isAfter(item.transaction.date) ?? false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (allowed && (!displayOutgoing || !displayIncoming)) {
|
if (allowed && (!displayAll)) {
|
||||||
allowed = (displayOutgoing &&
|
allowed = (displayOutgoing &&
|
||||||
item.transaction.direction ==
|
item.transaction.direction ==
|
||||||
TransactionDirection.outgoing) ||
|
TransactionDirection.outgoing) ||
|
||||||
|
|
|
@ -58,25 +58,44 @@ abstract class DashboardViewModelBase with Store {
|
||||||
isShowThirdYatIntroduction = false,
|
isShowThirdYatIntroduction = false,
|
||||||
filterItems = {
|
filterItems = {
|
||||||
S.current.transactions: [
|
S.current.transactions: [
|
||||||
|
FilterItem(
|
||||||
|
value: () => transactionFilterStore.displayAll,
|
||||||
|
caption: S.current.all_transactions,
|
||||||
|
onChanged: transactionFilterStore.toggleAll),
|
||||||
FilterItem(
|
FilterItem(
|
||||||
value: () => transactionFilterStore.displayIncoming,
|
value: () => transactionFilterStore.displayIncoming,
|
||||||
caption: S.current.incoming,
|
caption: S.current.incoming,
|
||||||
onChanged: (value) => transactionFilterStore.toggleIncoming()),
|
onChanged:transactionFilterStore.toggleIncoming),
|
||||||
FilterItem(
|
FilterItem(
|
||||||
value: () => transactionFilterStore.displayOutgoing,
|
value: () => transactionFilterStore.displayOutgoing,
|
||||||
caption: S.current.outgoing,
|
caption: S.current.outgoing,
|
||||||
onChanged: (value) => transactionFilterStore.toggleOutgoing()),
|
onChanged: transactionFilterStore.toggleOutgoing),
|
||||||
// FilterItem(
|
// FilterItem(
|
||||||
// value: () => false,
|
// value: () => false,
|
||||||
// caption: S.current.transactions_by_date,
|
// caption: S.current.transactions_by_date,
|
||||||
// onChanged: null),
|
// onChanged: null),
|
||||||
],
|
],
|
||||||
S.current.trades: [
|
S.current.trades: [
|
||||||
|
FilterItem(
|
||||||
|
value: () => tradeFilterStore.displayAllTrades,
|
||||||
|
caption: S.current.all_trades,
|
||||||
|
onChanged: () => tradeFilterStore
|
||||||
|
.toggleDisplayExchange(ExchangeProviderDescription.all)),
|
||||||
FilterItem(
|
FilterItem(
|
||||||
value: () => tradeFilterStore.displayChangeNow,
|
value: () => tradeFilterStore.displayChangeNow,
|
||||||
caption: 'Change.NOW',
|
caption: ExchangeProviderDescription.changeNow.title,
|
||||||
onChanged: (value) => tradeFilterStore
|
onChanged: () => tradeFilterStore
|
||||||
.toggleDisplayExchange(ExchangeProviderDescription.changeNow)),
|
.toggleDisplayExchange(ExchangeProviderDescription.changeNow)),
|
||||||
|
FilterItem(
|
||||||
|
value: () => tradeFilterStore.displaySideShift,
|
||||||
|
caption: ExchangeProviderDescription.sideShift.title,
|
||||||
|
onChanged: () => tradeFilterStore
|
||||||
|
.toggleDisplayExchange(ExchangeProviderDescription.sideShift)),
|
||||||
|
FilterItem(
|
||||||
|
value: () => tradeFilterStore.displaySimpleSwap,
|
||||||
|
caption: ExchangeProviderDescription.simpleSwap.title,
|
||||||
|
onChanged: () => tradeFilterStore
|
||||||
|
.toggleDisplayExchange(ExchangeProviderDescription.simpleSwap)),
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
subname = '',
|
subname = '',
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import 'package:mobx/mobx.dart';
|
||||||
|
|
||||||
class FilterItem {
|
class FilterItem {
|
||||||
FilterItem({
|
FilterItem({
|
||||||
required this.value,
|
required this.value,
|
||||||
|
@ -6,5 +8,5 @@ class FilterItem {
|
||||||
|
|
||||||
bool Function() value;
|
bool Function() value;
|
||||||
String caption;
|
String caption;
|
||||||
Function(bool) onChanged;
|
Function onChanged;
|
||||||
}
|
}
|
|
@ -48,7 +48,7 @@
|
||||||
"outgoing" : "Ausgehend",
|
"outgoing" : "Ausgehend",
|
||||||
"transactions_by_date" : "Transaktionen nach Datum",
|
"transactions_by_date" : "Transaktionen nach Datum",
|
||||||
"trades" : "Börsen",
|
"trades" : "Börsen",
|
||||||
"filters" : "Filter",
|
"filter_by": "Filtern nach",
|
||||||
"today" : "Heute",
|
"today" : "Heute",
|
||||||
"yesterday" : "Gestern",
|
"yesterday" : "Gestern",
|
||||||
"received" : "Empfangen",
|
"received" : "Empfangen",
|
||||||
|
@ -656,6 +656,8 @@
|
||||||
"use_suggested": "Vorgeschlagen verwenden",
|
"use_suggested": "Vorgeschlagen verwenden",
|
||||||
"do_not_share_warning_text" : "Teilen Sie diese nicht mit anderen, einschließlich Support.\n\nIhr Geld kann und wird gestohlen werden!",
|
"do_not_share_warning_text" : "Teilen Sie diese nicht mit anderen, einschließlich Support.\n\nIhr Geld kann und wird gestohlen werden!",
|
||||||
"help": "hilfe",
|
"help": "hilfe",
|
||||||
|
"all_transactions": "Alle Transaktionen",
|
||||||
|
"all_trades": "Alle Gewerke",
|
||||||
"connection_sync": "Verbindung und Synchronisierung",
|
"connection_sync": "Verbindung und Synchronisierung",
|
||||||
"security_and_backup": "Sicherheit und Datensicherung",
|
"security_and_backup": "Sicherheit und Datensicherung",
|
||||||
"create_backup": "Backup erstellen",
|
"create_backup": "Backup erstellen",
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
"outgoing" : "Outgoing",
|
"outgoing" : "Outgoing",
|
||||||
"transactions_by_date" : "Transactions by date",
|
"transactions_by_date" : "Transactions by date",
|
||||||
"trades" : "Trades",
|
"trades" : "Trades",
|
||||||
"filters" : "Filter",
|
"filter_by": "Filter by",
|
||||||
"today" : "Today",
|
"today" : "Today",
|
||||||
"yesterday" : "Yesterday",
|
"yesterday" : "Yesterday",
|
||||||
"received" : "Received",
|
"received" : "Received",
|
||||||
|
@ -656,6 +656,8 @@
|
||||||
"use_suggested": "Use Suggested",
|
"use_suggested": "Use Suggested",
|
||||||
"do_not_share_warning_text" : "Do not share these with anyone else, including support.\n\nYour funds can and will be stolen!",
|
"do_not_share_warning_text" : "Do not share these with anyone else, including support.\n\nYour funds can and will be stolen!",
|
||||||
"help": "help",
|
"help": "help",
|
||||||
|
"all_transactions": "All transactions",
|
||||||
|
"all_trades": "All trades",
|
||||||
"connection_sync": "Connection and sync",
|
"connection_sync": "Connection and sync",
|
||||||
"security_and_backup": "Security and backup",
|
"security_and_backup": "Security and backup",
|
||||||
"create_backup": "Create backup",
|
"create_backup": "Create backup",
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
"outgoing" : "Saliente",
|
"outgoing" : "Saliente",
|
||||||
"transactions_by_date" : "Transacciones por fecha",
|
"transactions_by_date" : "Transacciones por fecha",
|
||||||
"trades" : "Cambios",
|
"trades" : "Cambios",
|
||||||
"filters" : "Filtrar",
|
"filter_by": "Filtrado por",
|
||||||
"today" : "Hoy",
|
"today" : "Hoy",
|
||||||
"yesterday" : "Ayer",
|
"yesterday" : "Ayer",
|
||||||
"received" : "Recibido",
|
"received" : "Recibido",
|
||||||
|
@ -656,6 +656,8 @@
|
||||||
"use_suggested": "Usar sugerido",
|
"use_suggested": "Usar sugerido",
|
||||||
"do_not_share_warning_text" : "No comparta estos con nadie más, incluido el soporte.\n\n¡Sus fondos pueden ser y serán robados!",
|
"do_not_share_warning_text" : "No comparta estos con nadie más, incluido el soporte.\n\n¡Sus fondos pueden ser y serán robados!",
|
||||||
"help": "ayuda",
|
"help": "ayuda",
|
||||||
|
"all_transactions": "Todas las transacciones",
|
||||||
|
"all_trades": "Todos los oficios",
|
||||||
"connection_sync": "Conexión y sincronización",
|
"connection_sync": "Conexión y sincronización",
|
||||||
"security_and_backup": "Seguridad y respaldo",
|
"security_and_backup": "Seguridad y respaldo",
|
||||||
"create_backup": "Crear copia de seguridad",
|
"create_backup": "Crear copia de seguridad",
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
"outgoing" : "Sortantes",
|
"outgoing" : "Sortantes",
|
||||||
"transactions_by_date" : "Transactions par date",
|
"transactions_by_date" : "Transactions par date",
|
||||||
"trades" : "Échanges",
|
"trades" : "Échanges",
|
||||||
"filters" : "Filtre",
|
"filter_by": "Filtrer par",
|
||||||
"today" : "Aujourd'hui",
|
"today" : "Aujourd'hui",
|
||||||
"yesterday" : "Hier",
|
"yesterday" : "Hier",
|
||||||
"received" : "Reçus",
|
"received" : "Reçus",
|
||||||
|
@ -654,6 +654,8 @@
|
||||||
"use_suggested": "Utilisation suggérée",
|
"use_suggested": "Utilisation suggérée",
|
||||||
"do_not_share_warning_text" : "Ne les partagez avec personne d'autre, y compris avec l'assistance.\n\nVos fonds peuvent et seront volés!",
|
"do_not_share_warning_text" : "Ne les partagez avec personne d'autre, y compris avec l'assistance.\n\nVos fonds peuvent et seront volés!",
|
||||||
"help": "aider",
|
"help": "aider",
|
||||||
|
"all_transactions": "Toutes transactions",
|
||||||
|
"all_trades": "Tous métiers",
|
||||||
"connection_sync": "Connexion et synchronisation",
|
"connection_sync": "Connexion et synchronisation",
|
||||||
"security_and_backup": "Sécurité et sauvegarde",
|
"security_and_backup": "Sécurité et sauvegarde",
|
||||||
"create_backup": "Créer une sauvegarde",
|
"create_backup": "Créer une sauvegarde",
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
"outgoing" : "निवर्तमान",
|
"outgoing" : "निवर्तमान",
|
||||||
"transactions_by_date" : "तारीख से लेन-देन",
|
"transactions_by_date" : "तारीख से लेन-देन",
|
||||||
"trades" : "ट्रेडों",
|
"trades" : "ट्रेडों",
|
||||||
"filters" : "फ़िल्टर",
|
"filter_by": "के द्वारा छनित",
|
||||||
"today" : "आज",
|
"today" : "आज",
|
||||||
"yesterday" : "बिता कल",
|
"yesterday" : "बिता कल",
|
||||||
"received" : "प्राप्त किया",
|
"received" : "प्राप्त किया",
|
||||||
|
@ -656,6 +656,8 @@
|
||||||
"use_suggested": "सुझाए गए का प्रयोग करें",
|
"use_suggested": "सुझाए गए का प्रयोग करें",
|
||||||
"do_not_share_warning_text" : "समर्थन सहित, इन्हें किसी और के साथ साझा न करें।\n\nआपके धन की चोरी हो सकती है और होगी!",
|
"do_not_share_warning_text" : "समर्थन सहित, इन्हें किसी और के साथ साझा न करें।\n\nआपके धन की चोरी हो सकती है और होगी!",
|
||||||
"help": "मदद करना",
|
"help": "मदद करना",
|
||||||
|
"all_transactions": "सभी लेन - देन",
|
||||||
|
"all_trades": "सभी व्यापार",
|
||||||
"connection_sync": "कनेक्शन और सिंक",
|
"connection_sync": "कनेक्शन और सिंक",
|
||||||
"security_and_backup": "सुरक्षा और बैकअप",
|
"security_and_backup": "सुरक्षा और बैकअप",
|
||||||
"create_backup": "बैकअप बनाएँ",
|
"create_backup": "बैकअप बनाएँ",
|
||||||
|
@ -670,6 +672,7 @@
|
||||||
"advanced_privacy_settings": "उन्नत गोपनीयता सेटिंग्स",
|
"advanced_privacy_settings": "उन्नत गोपनीयता सेटिंग्स",
|
||||||
"settings_can_be_changed_later": "इन सेटिंग्स को बाद में ऐप सेटिंग में बदला जा सकता है",
|
"settings_can_be_changed_later": "इन सेटिंग्स को बाद में ऐप सेटिंग में बदला जा सकता है",
|
||||||
"add_custom_node": "नया कस्टम नोड जोड़ें",
|
"add_custom_node": "नया कस्टम नोड जोड़ें",
|
||||||
|
"disable_fiat": "िएट को अक्षम करें",
|
||||||
"fiat_api": "फिएट पैसे API",
|
"fiat_api": "फिएट पैसे API",
|
||||||
"disabled": "अक्षम",
|
"disabled": "अक्षम",
|
||||||
"enabled": "सक्रिय",
|
"enabled": "सक्रिय",
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
"outgoing" : "Odlazno",
|
"outgoing" : "Odlazno",
|
||||||
"transactions_by_date" : "Transakcije prema datumu",
|
"transactions_by_date" : "Transakcije prema datumu",
|
||||||
"trades" : "Razmjene",
|
"trades" : "Razmjene",
|
||||||
"filters" : "Filter",
|
"filter_by": "Filtrirati po",
|
||||||
"today" : "Danas",
|
"today" : "Danas",
|
||||||
"yesterday" : "Jučer",
|
"yesterday" : "Jučer",
|
||||||
"received" : "Primljeno",
|
"received" : "Primljeno",
|
||||||
|
@ -656,6 +656,8 @@
|
||||||
"use_suggested": "Koristite predloženo",
|
"use_suggested": "Koristite predloženo",
|
||||||
"do_not_share_warning_text" : "Nemojte ih dijeliti ni s kim, uključujući podršku.\n\nVaša sredstva mogu i bit će ukradena!",
|
"do_not_share_warning_text" : "Nemojte ih dijeliti ni s kim, uključujući podršku.\n\nVaša sredstva mogu i bit će ukradena!",
|
||||||
"help": "pomozite",
|
"help": "pomozite",
|
||||||
|
"all_transactions": "Sve transakcije",
|
||||||
|
"all_trades": "Svi obrti",
|
||||||
"connection_sync": "Povezivanje i sinkronizacija",
|
"connection_sync": "Povezivanje i sinkronizacija",
|
||||||
"security_and_backup": "Sigurnost i sigurnosna kopija",
|
"security_and_backup": "Sigurnost i sigurnosna kopija",
|
||||||
"create_backup": "Stvori sigurnosnu kopiju",
|
"create_backup": "Stvori sigurnosnu kopiju",
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
"outgoing" : "In uscita",
|
"outgoing" : "In uscita",
|
||||||
"transactions_by_date" : "Transazioni per data",
|
"transactions_by_date" : "Transazioni per data",
|
||||||
"trades" : "Scambi",
|
"trades" : "Scambi",
|
||||||
"filters" : "Filtri",
|
"filter_by": "Filtrirati po",
|
||||||
"today" : "Oggi",
|
"today" : "Oggi",
|
||||||
"yesterday" : "Ieri",
|
"yesterday" : "Ieri",
|
||||||
"received" : "Ricevuto",
|
"received" : "Ricevuto",
|
||||||
|
@ -656,6 +656,8 @@
|
||||||
"use_suggested": "Usa suggerito",
|
"use_suggested": "Usa suggerito",
|
||||||
"do_not_share_warning_text" : "Non condividerli con nessun altro, incluso il supporto.\n\nI tuoi fondi possono e saranno rubati!",
|
"do_not_share_warning_text" : "Non condividerli con nessun altro, incluso il supporto.\n\nI tuoi fondi possono e saranno rubati!",
|
||||||
"help": "aiuto",
|
"help": "aiuto",
|
||||||
|
"all_transactions": "Sve transakcije",
|
||||||
|
"all_trades": "Svi obrti",
|
||||||
"connection_sync": "Connessione e sincronizzazione",
|
"connection_sync": "Connessione e sincronizzazione",
|
||||||
"security_and_backup": "Sicurezza e backup",
|
"security_and_backup": "Sicurezza e backup",
|
||||||
"create_backup": "Crea backup",
|
"create_backup": "Crea backup",
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
"outgoing" : "発信",
|
"outgoing" : "発信",
|
||||||
"transactions_by_date" : "日付ごとの取引",
|
"transactions_by_date" : "日付ごとの取引",
|
||||||
"trades" : "取引",
|
"trades" : "取引",
|
||||||
"filters" : "フィルタ",
|
"filter_by": "でフィルタリング",
|
||||||
"today" : "今日",
|
"today" : "今日",
|
||||||
"yesterday" : "昨日",
|
"yesterday" : "昨日",
|
||||||
"received" : "受け取った",
|
"received" : "受け取った",
|
||||||
|
@ -656,6 +656,8 @@
|
||||||
"use_suggested": "推奨を使用",
|
"use_suggested": "推奨を使用",
|
||||||
"do_not_share_warning_text" : "サポートを含め、これらを他の誰とも共有しないでください。\n\nあなたの資金は盗まれる可能性があります!",
|
"do_not_share_warning_text" : "サポートを含め、これらを他の誰とも共有しないでください。\n\nあなたの資金は盗まれる可能性があります!",
|
||||||
"help": "ヘルプ",
|
"help": "ヘルプ",
|
||||||
|
"all_transactions": "全取引",
|
||||||
|
"all_trades": "すべての取引",
|
||||||
"connection_sync": "接続と同期",
|
"connection_sync": "接続と同期",
|
||||||
"security_and_backup": "セキュリティとバックアップ",
|
"security_and_backup": "セキュリティとバックアップ",
|
||||||
"create_backup": "バックアップを作成",
|
"create_backup": "バックアップを作成",
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
"outgoing" : "나가는",
|
"outgoing" : "나가는",
|
||||||
"transactions_by_date" : "날짜 별 거래",
|
"transactions_by_date" : "날짜 별 거래",
|
||||||
"trades" : "거래",
|
"trades" : "거래",
|
||||||
"filters" : "필터",
|
"filter_by": "필터링 기준",
|
||||||
"today" : "오늘",
|
"today" : "오늘",
|
||||||
"yesterday" : "어제",
|
"yesterday" : "어제",
|
||||||
"received" : "받았습니다",
|
"received" : "받았습니다",
|
||||||
|
@ -656,6 +656,8 @@
|
||||||
"use_suggested": "추천 사용",
|
"use_suggested": "추천 사용",
|
||||||
"do_not_share_warning_text" : "지원을 포함하여 다른 사람과 이러한 정보를 공유하지 마십시오.\n\n귀하의 자금은 도난당할 수 있고 도난당할 수 있습니다!",
|
"do_not_share_warning_text" : "지원을 포함하여 다른 사람과 이러한 정보를 공유하지 마십시오.\n\n귀하의 자금은 도난당할 수 있고 도난당할 수 있습니다!",
|
||||||
"help": "돕다",
|
"help": "돕다",
|
||||||
|
"all_transactions": "모든 거래 창구",
|
||||||
|
"all_trades": "A모든 거래",
|
||||||
"connection_sync": "연결 및 동기화",
|
"connection_sync": "연결 및 동기화",
|
||||||
"security_and_backup": "보안 및 백업",
|
"security_and_backup": "보안 및 백업",
|
||||||
"create_backup": "백업 생성",
|
"create_backup": "백업 생성",
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
"outgoing" : "Uitgaande",
|
"outgoing" : "Uitgaande",
|
||||||
"transactions_by_date" : "Transacties op datum",
|
"transactions_by_date" : "Transacties op datum",
|
||||||
"trades" : "Trades",
|
"trades" : "Trades",
|
||||||
"filters" : "Filter",
|
"filter_by": "Filteren op",
|
||||||
"today" : "Vandaag",
|
"today" : "Vandaag",
|
||||||
"yesterday" : "Gisteren",
|
"yesterday" : "Gisteren",
|
||||||
"received" : "Ontvangen",
|
"received" : "Ontvangen",
|
||||||
|
@ -656,6 +656,8 @@
|
||||||
"use_suggested": "Gebruik aanbevolen",
|
"use_suggested": "Gebruik aanbevolen",
|
||||||
"do_not_share_warning_text" : "Deel deze met niemand anders, ook niet met support.\n\nUw geld kan en zal worden gestolen!",
|
"do_not_share_warning_text" : "Deel deze met niemand anders, ook niet met support.\n\nUw geld kan en zal worden gestolen!",
|
||||||
"help": "helpen",
|
"help": "helpen",
|
||||||
|
"all_transactions": "Alle transacties",
|
||||||
|
"all_trades": "Alle transacties",
|
||||||
"connection_sync": "Verbinding en synchronisatie",
|
"connection_sync": "Verbinding en synchronisatie",
|
||||||
"security_and_backup": "Beveiliging en back-up",
|
"security_and_backup": "Beveiliging en back-up",
|
||||||
"create_backup": "Maak een back-up",
|
"create_backup": "Maak een back-up",
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
"outgoing" : "Towarzyski",
|
"outgoing" : "Towarzyski",
|
||||||
"transactions_by_date" : "Transakcje według daty",
|
"transactions_by_date" : "Transakcje według daty",
|
||||||
"trades" : "Transakcje",
|
"trades" : "Transakcje",
|
||||||
"filters" : "Filtr",
|
"filter_by": "Filtruj według",
|
||||||
"today" : "Dzisiaj",
|
"today" : "Dzisiaj",
|
||||||
"yesterday" : "Wczoraj",
|
"yesterday" : "Wczoraj",
|
||||||
"received" : "Odebrane",
|
"received" : "Odebrane",
|
||||||
|
@ -656,6 +656,8 @@
|
||||||
"use_suggested": "Użyj sugerowane",
|
"use_suggested": "Użyj sugerowane",
|
||||||
"do_not_share_warning_text" : "Nie udostępniaj ich nikomu innemu, w tym pomocy.\n\nTwoje środki mogą i zostaną skradzione!",
|
"do_not_share_warning_text" : "Nie udostępniaj ich nikomu innemu, w tym pomocy.\n\nTwoje środki mogą i zostaną skradzione!",
|
||||||
"help": "pomoc",
|
"help": "pomoc",
|
||||||
|
"all_transactions": "Wszystkie transakcje",
|
||||||
|
"all_trades": "Wszystkie operacje",
|
||||||
"connection_sync": "Połączenie i synchronizacja",
|
"connection_sync": "Połączenie i synchronizacja",
|
||||||
"security_and_backup": "Bezpieczeństwo i kopia zapasowa",
|
"security_and_backup": "Bezpieczeństwo i kopia zapasowa",
|
||||||
"create_backup": "Utwórz kopię zapasową",
|
"create_backup": "Utwórz kopię zapasową",
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
"outgoing" : "Enviadas",
|
"outgoing" : "Enviadas",
|
||||||
"transactions_by_date" : "Transações por data",
|
"transactions_by_date" : "Transações por data",
|
||||||
"trades" : "Trocas",
|
"trades" : "Trocas",
|
||||||
"filters" : "Filtro",
|
"filter_by": "Filtrar por",
|
||||||
"today" : "Hoje",
|
"today" : "Hoje",
|
||||||
"yesterday" : "Ontem",
|
"yesterday" : "Ontem",
|
||||||
"received" : "Recebida",
|
"received" : "Recebida",
|
||||||
|
@ -655,6 +655,8 @@
|
||||||
"use_suggested": "Uso sugerido",
|
"use_suggested": "Uso sugerido",
|
||||||
"do_not_share_warning_text" : "Não os compartilhe com mais ninguém, incluindo suporte.\n\nSeus fundos podem e serão roubados!",
|
"do_not_share_warning_text" : "Não os compartilhe com mais ninguém, incluindo suporte.\n\nSeus fundos podem e serão roubados!",
|
||||||
"help": "ajuda",
|
"help": "ajuda",
|
||||||
|
"all_transactions": "Todas as transacções",
|
||||||
|
"all_trades": "Todas as negociações",
|
||||||
"connection_sync": "Conexão e sincronização",
|
"connection_sync": "Conexão e sincronização",
|
||||||
"security_and_backup": "Segurança e backup",
|
"security_and_backup": "Segurança e backup",
|
||||||
"create_backup": "Criar backup",
|
"create_backup": "Criar backup",
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
"outgoing" : "Исходящие",
|
"outgoing" : "Исходящие",
|
||||||
"transactions_by_date" : "Сортировать по дате",
|
"transactions_by_date" : "Сортировать по дате",
|
||||||
"trades" : "Сделки",
|
"trades" : "Сделки",
|
||||||
"filters" : "Фильтр",
|
"filter_by": "Фильтровать по",
|
||||||
"today" : "Сегодня",
|
"today" : "Сегодня",
|
||||||
"yesterday" : "Вчера",
|
"yesterday" : "Вчера",
|
||||||
"received" : "Полученные",
|
"received" : "Полученные",
|
||||||
|
@ -656,6 +656,8 @@
|
||||||
"use_suggested": "Использовать предложенный",
|
"use_suggested": "Использовать предложенный",
|
||||||
"do_not_share_warning_text" : "Не сообщайте их никому, включая техподдержку.\n\nВаши средства могут и будут украдены!",
|
"do_not_share_warning_text" : "Не сообщайте их никому, включая техподдержку.\n\nВаши средства могут и будут украдены!",
|
||||||
"help": "помощь",
|
"help": "помощь",
|
||||||
|
"all_transactions": "Все транзакции",
|
||||||
|
"all_trades": "Все сделки",
|
||||||
"connection_sync": "Подключение и синхронизация",
|
"connection_sync": "Подключение и синхронизация",
|
||||||
"security_and_backup": "Безопасность и резервное копирование",
|
"security_and_backup": "Безопасность и резервное копирование",
|
||||||
"create_backup": "Создать резервную копию",
|
"create_backup": "Создать резервную копию",
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
"outgoing" : "Вихідні",
|
"outgoing" : "Вихідні",
|
||||||
"transactions_by_date" : "Сортувати по даті",
|
"transactions_by_date" : "Сортувати по даті",
|
||||||
"trades" : "Торгові операції",
|
"trades" : "Торгові операції",
|
||||||
"filters" : "Фільтр",
|
"filter_by": "Фільтрувати по",
|
||||||
"today" : "Сьогодні",
|
"today" : "Сьогодні",
|
||||||
"yesterday" : "Вчора",
|
"yesterday" : "Вчора",
|
||||||
"received" : "Отримані",
|
"received" : "Отримані",
|
||||||
|
@ -655,6 +655,8 @@
|
||||||
"use_suggested": "Використати запропоноване",
|
"use_suggested": "Використати запропоноване",
|
||||||
"do_not_share_warning_text" : "Не діліться цим нікому, включно зі службою підтримки.\n\nВаші кошти можуть і будуть вкрадені!",
|
"do_not_share_warning_text" : "Не діліться цим нікому, включно зі службою підтримки.\n\nВаші кошти можуть і будуть вкрадені!",
|
||||||
"help": "допомога",
|
"help": "допомога",
|
||||||
|
"all_transactions": "Всі транзакції",
|
||||||
|
"all_trades": "Всі операції",
|
||||||
"connection_sync": "Підключення та синхронізація",
|
"connection_sync": "Підключення та синхронізація",
|
||||||
"security_and_backup": "Безпека та резервне копіювання",
|
"security_and_backup": "Безпека та резервне копіювання",
|
||||||
"create_backup": "Створити резервну копію",
|
"create_backup": "Створити резервну копію",
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
"outgoing" : "发送",
|
"outgoing" : "发送",
|
||||||
"transactions_by_date" : "按日期交易",
|
"transactions_by_date" : "按日期交易",
|
||||||
"trades" : "交易",
|
"trades" : "交易",
|
||||||
"filters" : "过滤",
|
"filter_by": "过滤",
|
||||||
"today" : "今天",
|
"today" : "今天",
|
||||||
"yesterday" : "昨天",
|
"yesterday" : "昨天",
|
||||||
"received" : "已收到",
|
"received" : "已收到",
|
||||||
|
@ -654,6 +654,8 @@
|
||||||
"use_suggested": "使用建议",
|
"use_suggested": "使用建议",
|
||||||
"do_not_share_warning_text" : "请勿与其他任何人分享这些信息,包括支持人员。\n\n您的资金可能而且将会被盗!",
|
"do_not_share_warning_text" : "请勿与其他任何人分享这些信息,包括支持人员。\n\n您的资金可能而且将会被盗!",
|
||||||
"help": "帮助",
|
"help": "帮助",
|
||||||
|
"all_transactions": "所有交易",
|
||||||
|
"all_trades": "所有的变化",
|
||||||
"connection_sync": "连接和同步",
|
"connection_sync": "连接和同步",
|
||||||
"security_and_backup": "安全和备份",
|
"security_and_backup": "安全和备份",
|
||||||
"create_backup": "创建备份",
|
"create_backup": "创建备份",
|
||||||
|
|
Loading…
Reference in a new issue