This commit is contained in:
M
2020-09-28 18:47:43 +03:00
parent 51cf11127c
commit e3678d2cf9
32 changed files with 482 additions and 904 deletions
@@ -1,9 +1,7 @@
import 'dart:async';
import 'package:cake_wallet/entities/contact_record.dart';
import 'package:hive/hive.dart';
import 'package:mobx/mobx.dart';
import 'package:cake_wallet/core/contact_service.dart';
import 'package:cake_wallet/store/contact_list_store.dart';
import 'package:cake_wallet/entities/contact_record.dart';
import 'package:cake_wallet/entities/contact.dart';
import 'package:cake_wallet/utils/mobx.dart';
@@ -13,24 +11,16 @@ class ContactListViewModel = ContactListViewModelBase
with _$ContactListViewModel;
abstract class ContactListViewModelBase with Store {
ContactListViewModelBase(
this.addressBookStore, this.contactService, this.contactSource) {
_subscription = contactSource.bindToListWithTransform(addressBookStore.contacts,
(Contact contact) => ContactRecord(contactSource, contact),
ContactListViewModelBase(this.contactSource)
: contacts = ObservableList<ContactRecord>() {
_subscription = contactSource.bindToListWithTransform(
contacts, (Contact contact) => ContactRecord(contactSource, contact),
initialFire: true);
}
final ContactListStore addressBookStore;
final ContactService contactService;
final Box<Contact> contactSource;
ObservableList<ContactRecord> get contacts => addressBookStore.contacts;
final ObservableList<ContactRecord> contacts;
StreamSubscription<BoxEvent> _subscription;
void dispose() {
// _subscription.cancel();
}
Future<void> delete(Contact contact) async => contactService.delete(contact);
Future<void> delete(ContactRecord contact) async => contact.original.delete();
}
@@ -3,7 +3,6 @@ import 'package:hive/hive.dart';
import 'package:mobx/mobx.dart';
import 'package:cake_wallet/core/execution_state.dart';
import 'package:cake_wallet/core/wallet_base.dart';
import 'package:cake_wallet/core/contact_service.dart';
import 'package:cake_wallet/entities/contact.dart';
import 'package:cake_wallet/entities/crypto_currency.dart';
@@ -12,13 +11,13 @@ part 'contact_view_model.g.dart';
class ContactViewModel = ContactViewModelBase with _$ContactViewModel;
abstract class ContactViewModelBase with Store {
ContactViewModelBase(this._contacts, this._wallet, {ContactRecord contact})
ContactViewModelBase(this._contacts, {ContactRecord contact})
: state = InitialExecutionState(),
currencies = CryptoCurrency.all,
_contact = contact {
name = _contact?.name;
address = _contact?.address;
currency = _contact?.type; //_wallet.currency;
currency = _contact?.type;
}
@observable
@@ -40,7 +39,6 @@ abstract class ContactViewModelBase with Store {
(address?.isNotEmpty ?? false);
final List<CryptoCurrency> currencies;
final WalletBase _wallet;
final Box<Contact> _contacts;
final ContactRecord _contact;
@@ -60,10 +58,7 @@ abstract class ContactViewModelBase with Store {
_contact.address = address;
_contact.type = currency;
await _contact.save();
// await _contacts.put(_contact.key, _contact);
} else {
// final contact = ContactRecordBase.create(_contacts, name, address, currency);
// await contact.save();
await _contacts
.add(Contact(name: name, address: address, type: currency));
}
+5 -3
View File
@@ -70,15 +70,17 @@ abstract class SendViewModelBase with Store {
@computed
String get balance {
String balance = '0.0';
if (_wallet is MoneroWallet) {
_wallet.balance.formattedUnlockedBalance;
balance = _wallet.balance.formattedUnlockedBalance as String ?? '';
}
if (_wallet is BitcoinWallet) {
_wallet.balance.confirmedFormatted;
balance = _wallet.balance.confirmedFormatted as String ?? '';
}
return '0.0';
return balance;
}
@computed
@@ -1,27 +1,24 @@
import 'package:cake_wallet/core/wallet_base.dart';
import 'package:cake_wallet/entities/biometric_auth.dart';
import 'package:cake_wallet/entities/wallet_type.dart';
import 'package:cake_wallet/di.dart';
import 'package:cake_wallet/store/theme_changer_store.dart';
import 'package:cake_wallet/themes.dart';
import 'package:cake_wallet/view_model/settings/version_list_item.dart';
import 'package:flutter/cupertino.dart';
import 'package:mobx/mobx.dart';
import 'package:package_info/package_info.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/core/wallet_base.dart';
import 'package:cake_wallet/store/settings_store.dart';
import 'package:cake_wallet/entities/biometric_auth.dart';
import 'package:cake_wallet/entities/wallet_type.dart';
import 'package:cake_wallet/entities/balance_display_mode.dart';
import 'package:cake_wallet/entities/fiat_currency.dart';
import 'package:cake_wallet/entities/node.dart';
import 'package:cake_wallet/entities/transaction_priority.dart';
import 'package:cake_wallet/entities/action_list_display_mode.dart';
import 'package:cake_wallet/src/screens/auth/auth_page.dart';
import 'package:cake_wallet/view_model/settings/version_list_item.dart';
import 'package:cake_wallet/view_model/settings/link_list_item.dart';
import 'package:cake_wallet/view_model/settings/picker_list_item.dart';
import 'package:cake_wallet/view_model/settings/regular_list_item.dart';
import 'package:cake_wallet/view_model/settings/settings_list_item.dart';
import 'package:cake_wallet/view_model/settings/switcher_list_item.dart';
import 'package:package_info/package_info.dart';
import 'package:cake_wallet/src/screens/auth/auth_page.dart';
part 'settings_view_model.g.dart';
@@ -111,13 +108,8 @@ abstract class SettingsViewModelBase with Store {
SwitcherListItem(
title: S.current.settings_dark_mode,
value: () => _settingsStore.isDarkTheme,
onValueChange: (_, bool value) {
_settingsStore.isDarkTheme = value;
getIt
.get<ThemeChangerStore>()
.themeChanger
.setTheme(value ? Themes.darkTheme : Themes.lightTheme);
})
onValueChange: (_, bool value) =>
_settingsStore.isDarkTheme = value)
],
[
LinkListItem(