Browse Source

fix create group in mobile

pull/18/head
Sun 4 years ago
parent
commit
64934111e1
  1. 30
      lib/apps/group/add.dart
  2. 4
      lib/apps/group/detail.dart
  3. 8
      lib/apps/wallet/page.dart
  4. 3
      lib/l10n/localizations.dart
  5. 6
      lib/l10n/localizations_en.dart
  6. 6
      lib/l10n/localizations_zh.dart
  7. 2
      lib/widgets/chat_message.dart
  8. 6
      src/apps/group/rpc.rs
  9. 1
      src/primitives.rs

30
lib/apps/group/add.dart

@ -38,18 +38,24 @@ class _GroupAddScreenState extends State<GroupAddScreen> {
_send(String name, bool isDesktop) async { _send(String name, bool isDesktop) async {
final res = await httpPost('group-create', [name]); final res = await httpPost('group-create', [name]);
if (res.isOk) { if (res.isOk) {
print(res.params); // use delayed because waiting this session added.
final id = res.params[0]; Future.delayed(Duration(seconds: 1), () async {
final w = GroupChatDetail(id: id); final fid = widget.fid;
if (w != null) { Navigator.pop(context);
if (isDesktop) { final sid = res.params[0];
Provider.of<AccountProvider>(context, listen: false).updateActivedWidget(w); final id = res.params[1];
rpc.send('group-member-join', [id, widget.fid]); final w = GroupChatDetail(id: id);
} else { rpc.send('group-member-join', [id, fid]);
Navigator.push(context, MaterialPageRoute(builder: (_) => w)); Provider.of<AccountProvider>(context, listen: false).updateActivedSession(sid);
} if (w != null) {
} if (isDesktop) {
Navigator.pop(context); Provider.of<AccountProvider>(context, listen: false).updateActivedWidget(w);
} else {
Navigator.pop(context);
Navigator.push(context, MaterialPageRoute(builder: (_) => w));
}
}
});
} else { } else {
setState(() { setState(() {
this._error = res.error; this._error = res.error;

4
lib/apps/group/detail.dart

@ -289,8 +289,8 @@ class _GroupChatDetailState extends State<GroupChatDetail> {
final msg = this._messages[recentMessageKeys[index]]!; final msg = this._messages[recentMessageKeys[index]]!;
return ChatMessage( return ChatMessage(
avatar: this._members[msg.mid]!.showAvatar(isOnline: false), avatar: this._members[msg.mid]!.showAvatar(isOnline: false),
fgid: this._group.gid, fgid: this._members[msg.mid]!.mid,
name: this._group.name, name: this._members[msg.mid]!.name,
message: msg, message: msg,
); );
} }

8
lib/apps/wallet/page.dart

@ -211,7 +211,7 @@ class _WalletDetailState extends State<WalletDetail> with SingleTickerProviderSt
children: [ children: [
const Icon(Icons.lock), const Icon(Icons.lock),
const SizedBox(width: 8.0), const SizedBox(width: 8.0),
const Text('生成以太坊地址'), Text(lang.walletGenerate),
] ]
) )
) )
@ -478,7 +478,7 @@ class _WalletDetailState extends State<WalletDetail> with SingleTickerProviderSt
unselectedLabelColor: color.onSurface, unselectedLabelColor: color.onSurface,
labelColor: Color(0xFF6174FF), labelColor: Color(0xFF6174FF),
tabs: [ tabs: [
Tab(text: 'Assets'), Tab(text: 'Tokens'),
Tab(text: 'Activity'), Tab(text: 'Activity'),
], ],
controller: _tabController!, controller: _tabController!,
@ -496,7 +496,7 @@ class _WalletDetailState extends State<WalletDetail> with SingleTickerProviderSt
return TextButton( return TextButton(
child: Padding( child: Padding(
padding: const EdgeInsets.symmetric(vertical: 10.0), padding: const EdgeInsets.symmetric(vertical: 10.0),
child: Text('Add new Token' + ' ( ERC20 / ERC721 )') child: Text('Add Token' + ' ( ERC20 / ERC721 )')
), ),
onPressed: () => showShadowDialog( onPressed: () => showShadowDialog(
context, Icons.paid, 'Token', _ImportToken( context, Icons.paid, 'Token', _ImportToken(
@ -982,7 +982,7 @@ class _TransferTokenState extends State<_TransferToken> {
children: [ children: [
const SizedBox(width: 10.0), const SizedBox(width: 10.0),
TextButton(child: Text( TextButton(child: Text(
this._myAccount ? 'Input Account' : 'Between Accounts' this._myAccount ? lang.walletInputAccount: lang.walletBetweenAccount,
), onPressed: () => setState(() { ), onPressed: () => setState(() {
this._myAccount = !this._myAccount; this._myAccount = !this._myAccount;
if (this._selectAddress.length == 0) { if (this._selectAddress.length == 0) {

3
lib/l10n/localizations.dart

@ -267,6 +267,9 @@ abstract class AppLocalizations {
String get wallet; String get wallet;
String get walletIntro; String get walletIntro;
String get walletGenerate;
String get walletInputAccount;
String get walletBetweenAccount;
String get secretKey; String get secretKey;
String get contract; String get contract;
String get main; String get main;

6
lib/l10n/localizations_en.dart

@ -438,6 +438,12 @@ class AppLocalizationsEn extends AppLocalizations {
@override @override
String get walletIntro => 'Manage your own cryptocurrency.'; String get walletIntro => 'Manage your own cryptocurrency.';
@override @override
String get walletGenerate => 'Generate ETH account';
@override
String get walletInputAccount => 'Input Account';
@override
String get walletBetweenAccount => 'Between Accounts';
@override
String get secretKey => 'Secret Key'; String get secretKey => 'Secret Key';
@override @override
String get contract => 'Contract Address'; String get contract => 'Contract Address';

6
lib/l10n/localizations_zh.dart

@ -438,6 +438,12 @@ class AppLocalizationsZh extends AppLocalizations {
@override @override
String get walletIntro => '管理自己的加密货币。'; String get walletIntro => '管理自己的加密货币。';
@override @override
String get walletGenerate => '生成以太坊地址';
@override
String get walletInputAccount => '输入对方账号';
@override
String get walletBetweenAccount => '自己账户之间';
@override
String get secretKey => '私钥'; String get secretKey => '私钥';
@override @override
String get contract => '合约地址'; String get contract => '合约地址';

2
lib/widgets/chat_message.dart

@ -323,7 +323,7 @@ class ChatMessage extends StatelessWidget {
if (message.isMe) Spacer(), if (message.isMe) Spacer(),
if (isAvatar) if (isAvatar)
Container( Container(
width: 50.0, width: 60.0,
child: Text(name, maxLines: 1, overflow: TextOverflow.ellipsis, child: Text(name, maxLines: 1, overflow: TextOverflow.ellipsis,
style: TextStyle(color: color.onPrimary.withOpacity(0.5), fontSize: 10.0) style: TextStyle(color: color.onPrimary.withOpacity(0.5), fontSize: 10.0)
)), )),

6
src/apps/group/rpc.rs

@ -124,9 +124,6 @@ pub(crate) fn new_rpc_handler(handler: &mut RpcHandler<RpcState>) {
let mut results = HandleResult::new(); let mut results = HandleResult::new();
// add to rpcs.
results.rpcs.push(json!(gc.to_rpc()));
let mut m = Member::new(gheight, gc.id, gid, me.addr, me.name); let mut m = Member::new(gheight, gc.id, gid, me.addr, me.name);
m.insert(&db)?; m.insert(&db)?;
let mid = m.id; let mid = m.id;
@ -143,6 +140,9 @@ pub(crate) fn new_rpc_handler(handler: &mut RpcHandler<RpcState>) {
.await; .await;
}); });
// add to rpcs.
results.rpcs.push(json!([sid, gdid]));
// Add frist member join. // Add frist member join.
let mut layer_lock = state.layer.write().await; let mut layer_lock = state.layer.write().await;
layer_lock.add_running(&gcd, gid, gdid, gheight)?; layer_lock.add_running(&gcd, gid, gdid, gheight)?;

1
src/primitives.rs

@ -5,6 +5,7 @@ pub(crate) fn network_seeds() -> Vec<Peer> {
#[rustfmt::skip] #[rustfmt::skip]
let seeds: Vec<(&str, &str)> = vec![ let seeds: Vec<(&str, &str)> = vec![
("1.15.156.199:7364", "quic"), ("1.15.156.199:7364", "quic"),
("184.170.220.231:7364", "quic"),
]; ];
seeds seeds

Loading…
Cancel
Save