General changes. CAKE-1.

This commit is contained in:
M
2020-07-06 23:09:03 +03:00
160 changed files with 5492 additions and 4033 deletions
@@ -0,0 +1,71 @@
import 'package:hive/hive.dart';
import 'package:mobx/mobx.dart';
import 'package:cake_wallet/core/wallet_base.dart';
import 'package:cake_wallet/src/domain/common/node.dart';
import 'package:cake_wallet/src/domain/common/wallet_type.dart';
import 'package:cake_wallet/view_model/node_list/node_create_or_edit_view_model_state.dart';
part 'node_create_or_edit_view_model.g.dart';
class NodeCreateOrEditViewModel = NodeCreateOrEditViewModelBase
with _$NodeCreateOrEditViewModel;
abstract class NodeCreateOrEditViewModelBase with Store {
NodeCreateOrEditViewModelBase(this._nodeSource, this._wallet)
: state = InitialNodeCreateOrEditViewModelState();
@observable
NodeCreateOrEditViewModelState state;
@observable
String address;
@observable
String port;
@observable
String login;
@observable
String password;
@computed
bool get isReady =>
(address?.isNotEmpty ?? false) && (port?.isNotEmpty ?? false);
bool get hasAuthCredentials => _wallet.type == WalletType.monero;
String get uri {
var uri = address;
if (port != null && port.isNotEmpty) {
uri += ':' + port;
}
return uri;
}
final WalletBase _wallet;
final Box<Node> _nodeSource;
@action
void reset() {
address = '';
port = '';
login = '';
password = '';
}
@action
Future<void> save() async {
try {
state = NodeIsCreating();
final node =
Node(uri: uri, type: _wallet.type, login: login, password: password);
await _nodeSource.add(node);
state = NodeCreatedSuccessfully();
} catch (e) {
state = NodeCreateOrEditViewModelFailure(e.toString());
}
}
}
@@ -0,0 +1,14 @@
abstract class NodeCreateOrEditViewModelState {}
class InitialNodeCreateOrEditViewModelState
extends NodeCreateOrEditViewModelState {}
class NodeIsCreating extends NodeCreateOrEditViewModelState {}
class NodeCreatedSuccessfully extends NodeCreateOrEditViewModelState {}
class NodeCreateOrEditViewModelFailure extends NodeCreateOrEditViewModelState {
NodeCreateOrEditViewModelFailure(this.error);
final String error;
}
@@ -0,0 +1,26 @@
import 'package:hive/hive.dart';
import 'package:mobx/mobx.dart';
import 'package:cake_wallet/core/wallet_base.dart';
import 'package:cake_wallet/src/domain/common/node.dart';
import 'package:cake_wallet/src/domain/common/node_list.dart';
import 'package:cake_wallet/store/node_list_store.dart';
part 'node_list_view_model.g.dart';
class NodeListViewModel = NodeListViewModelBase with _$NodeListViewModel;
abstract class NodeListViewModelBase with Store {
NodeListViewModelBase(this._nodeListStore, this._nodeSource, this._wallet);
@computed
ObservableList<Node> get nodes => ObservableList<Node>.of(
_nodeListStore.nodes.where((node) => node.type == _wallet.type));
final WalletBase _wallet;
final Box<Node> _nodeSource;
final NodeListStore _nodeListStore;
Future<void> reset() async => await resetToDefault(_nodeSource);
Future<void> delete(Node node) async => node.delete();
}