Browse Source

update gid and addr print & show

pull/18/head
Sun 4 years ago
parent
commit
2eaf159449
  1. 22
      lib/account.dart
  2. 11
      lib/apps/assistant/message.dart
  3. 47
      lib/apps/chat/add.dart
  4. 4
      lib/apps/chat/detail.dart
  5. 4
      lib/apps/device/models.dart
  6. 15
      lib/apps/device/page.dart
  7. 6
      lib/apps/domain/page.dart
  8. 49
      lib/apps/group_chat/add.dart
  9. 13
      lib/apps/group_chat/detail.dart
  10. 9
      lib/global.dart
  11. 14
      lib/pages/account_restore.dart
  12. 2
      lib/pages/home.dart
  13. 4
      lib/pages/setting/network.dart
  14. 12
      lib/pages/setting/profile.dart
  15. 4
      lib/provider.dart
  16. 3
      lib/security.dart
  17. 42
      lib/utils/better_print.dart
  18. 7
      lib/widgets/chat_message.dart
  19. 14
      lib/widgets/user_info.dart

22
lib/account.dart

@ -22,8 +22,6 @@ class Account { @@ -22,8 +22,6 @@ class Account {
this.hasNew = false;
}
String get id => 'EH' + this.gid.toUpperCase();
String encodeAvatar() {
if (this.avatar != null && this.avatar!.length > 1) {
return base64.encode(this.avatar!);
@ -40,26 +38,6 @@ class Account { @@ -40,26 +38,6 @@ class Account {
}
}
String printShortId() {
final id = this.id;
final len = id.length;
if (len > 4) {
return id.substring(0, 4) + "..." + id.substring(len - 4, len);
} else {
return id;
}
}
String printId() {
final id = this.id;
final len = id.length;
if (len > 8) {
return id.substring(0, 8) + "..." + id.substring(len - 8, len);
} else {
return id;
}
}
Avatar showAvatar({double width = 45.0, bool online = false, bool needOnline = true}) {
return Avatar(
width: width,

11
lib/apps/assistant/message.dart

@ -200,9 +200,8 @@ class AssistantMessage extends StatelessWidget { @@ -200,9 +200,8 @@ class AssistantMessage extends StatelessWidget {
const SizedBox(height: 10.0),
const Divider(height: 1.0, color: Color(0x40ADB0BB)),
const SizedBox(height: 10.0),
_infoListTooltip(Icons.person, color.primary, gid),
_infoListTooltip(
Icons.location_on, color.primary, "0x" + infos[2]),
_infoListTooltip(Icons.person, color.primary, gidText(gid), gidPrint(gid)),
_infoListTooltip(Icons.location_on, color.primary, addrText(infos[2]), addrPrint(infos[2])),
Container(
width: 300.0,
padding: const EdgeInsets.symmetric(vertical: 10.0),
@ -250,7 +249,7 @@ class AssistantMessage extends StatelessWidget { @@ -250,7 +249,7 @@ class AssistantMessage extends StatelessWidget {
style: TextStyle(
color: color.onPrimary, fontSize: 16.0)),
SizedBox(height: 5.0),
Text(betterPrint(gid),
Text(gidPrint(gid),
style: TextStyle(color: Colors.grey, fontSize: 12.0)),
])),
]),
@ -262,7 +261,7 @@ class AssistantMessage extends StatelessWidget { @@ -262,7 +261,7 @@ class AssistantMessage extends StatelessWidget {
])));
}
Widget _infoListTooltip(icon, color, text) {
Widget _infoListTooltip(icon, color, text, short) {
return Container(
width: 300.0,
padding: const EdgeInsets.symmetric(vertical: 10.0),
@ -273,7 +272,7 @@ class AssistantMessage extends StatelessWidget { @@ -273,7 +272,7 @@ class AssistantMessage extends StatelessWidget {
Expanded(
child: Tooltip(
message: text,
child: Text(betterPrint(text)),
child: Text(short),
)
)
]

47
lib/apps/chat/add.dart

@ -46,10 +46,13 @@ class _ChatAddPageState extends State<ChatAddPage> { @@ -46,10 +46,13 @@ class _ChatAddPageState extends State<ChatAddPage> {
setState(() {
this._showHome = false;
final avatar = Avatar(name: params[2], width: 100.0, colorSurface: false);
String id = gidParse(params[0].trim());
String addr = addrParse(params[1]);
this._coreScreen = _InfoScreen(
callback: this._sendCallback,
id: params[0],
addr: params[1],
id: id,
addr: addr,
name: params[2],
bio: '',
avatar: avatar,
@ -86,7 +89,7 @@ class _ChatAddPageState extends State<ChatAddPage> { @@ -86,7 +89,7 @@ class _ChatAddPageState extends State<ChatAddPage> {
return Column(
children: <Widget>[
ListTile(
contentPadding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 4.0),
contentPadding: EdgeInsets.symmetric(horizontal: 10.0, vertical: 4.0),
leading: Icon(Icons.create, color: color.primary),
title: Text(lang.input),
trailing: Icon(Icons.keyboard_arrow_right, size: 30.0),
@ -96,7 +99,7 @@ class _ChatAddPageState extends State<ChatAddPage> { @@ -96,7 +99,7 @@ class _ChatAddPageState extends State<ChatAddPage> {
}),
),
ListTile(
contentPadding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 4.0),
contentPadding: EdgeInsets.symmetric(horizontal: 10.0, vertical: 4.0),
leading: Icon(Icons.search, color: color.primary),
title: Text(lang.domainSearch),
trailing: Icon(Icons.keyboard_arrow_right, size: 30.0),
@ -106,7 +109,7 @@ class _ChatAddPageState extends State<ChatAddPage> { @@ -106,7 +109,7 @@ class _ChatAddPageState extends State<ChatAddPage> {
}),
),
ListTile(
contentPadding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 4.0),
contentPadding: EdgeInsets.symmetric(horizontal: 10.0, vertical: 4.0),
leading: Icon(Icons.camera_alt, color: color.primary),
title: Text(lang.scanQr),
trailing: Icon(Icons.keyboard_arrow_right, size: 30.0),
@ -116,7 +119,7 @@ class _ChatAddPageState extends State<ChatAddPage> { @@ -116,7 +119,7 @@ class _ChatAddPageState extends State<ChatAddPage> {
)
),
ListTile(
contentPadding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 4.0),
contentPadding: EdgeInsets.symmetric(horizontal: 10.0, vertical: 4.0),
leading: Icon(Icons.image, color: color.primary),
title: Text(lang.scanImage + " (${lang.wip})"),
trailing: Icon(Icons.keyboard_arrow_right, size: 30.0),
@ -189,7 +192,7 @@ class _ChatAddPageState extends State<ChatAddPage> { @@ -189,7 +192,7 @@ class _ChatAddPageState extends State<ChatAddPage> {
Icons.info,
lang.info,
UserInfo(app: 'add-friend',
id: account.id, name: account.name, addr: Global.addr)
id: account.gid, name: account.name, addr: Global.addr)
),
child: Padding(
padding: const EdgeInsets.only(right: 10.0),
@ -402,22 +405,14 @@ class _InputScreenState extends State<_InputScreen> { @@ -402,22 +405,14 @@ class _InputScreenState extends State<_InputScreen> {
FocusNode remarkFocus = FocusNode();
send() {
var id = userIdEditingController.text;
if (id == '') {
final id = gidParse(userIdEditingController.text.trim());
final addr = addrParse(addrEditingController.text.trim());
if (id == '' || addr == '') {
return;
}
if (id.substring(0, 2) == 'EH') {
id = id.substring(2);
}
var addr = addrEditingController.text;
if (addr.substring(0, 2) == '0x') {
//substring(2); if has 0x, need remove
addr = addr.substring(2);
}
var name = nameEditingController.text;
var remark = remarkEditingController.text;
final name = nameEditingController.text.trim();
final remark = remarkEditingController.text.trim();
context.read<ChatProvider>().requestCreate(Request(id, addr, name, remark));
setState(() {
@ -506,7 +501,7 @@ class _InfoScreen extends StatelessWidget { @@ -506,7 +501,7 @@ class _InfoScreen extends StatelessWidget {
title: Text(gidPrint(this.id), style: TextStyle(fontSize: 16.0)),
trailing: TextButton(
child: Icon(Icons.copy, size: 20.0),
onPressed: () => Clipboard.setData(ClipboardData(text: this.id)),
onPressed: () => Clipboard.setData(ClipboardData(text: gidText(this.id))),
)
),
ListTile(
@ -515,7 +510,7 @@ class _InfoScreen extends StatelessWidget { @@ -515,7 +510,7 @@ class _InfoScreen extends StatelessWidget {
title: Text(addrPrint(this.addr), style: TextStyle(fontSize: 16.0)),
trailing: TextButton(
child: Icon(Icons.copy, size: 20.0),
onPressed: () => Clipboard.setData(ClipboardData(text: this.addr)),
onPressed: () => Clipboard.setData(ClipboardData(text: addrText(this.addr))),
)
),
ListTile(
@ -558,7 +553,7 @@ class _RequestItem extends StatelessWidget { @@ -558,7 +553,7 @@ class _RequestItem extends StatelessWidget {
);
}
Widget _infoListTooltip(icon, color, text) {
Widget _infoListTooltip(icon, color, text, short) {
return Container(
width: 300.0,
padding: const EdgeInsets.symmetric(vertical: 10.0),
@ -569,7 +564,7 @@ class _RequestItem extends StatelessWidget { @@ -569,7 +564,7 @@ class _RequestItem extends StatelessWidget {
Expanded(
child: Tooltip(
message: text,
child: Text(betterPrint(text)),
child: Text(short),
)
)
]
@ -587,8 +582,8 @@ class _RequestItem extends StatelessWidget { @@ -587,8 +582,8 @@ class _RequestItem extends StatelessWidget {
const SizedBox(height: 10.0),
const Divider(height: 1.0, color: Color(0x40ADB0BB)),
const SizedBox(height: 10.0),
_infoListTooltip(Icons.person, color.primary, 'EH' + request.gid.toUpperCase()),
_infoListTooltip(Icons.location_on, color.primary, "0x" + request.addr),
_infoListTooltip(Icons.person, color.primary, gidText(request.gid), gidPrint(request.gid)),
_infoListTooltip(Icons.location_on, color.primary, addrText(request.addr), addrPrint(request.addr)),
_infoList(Icons.turned_in, color.primary, request.remark),
_infoList(Icons.access_time_rounded, color.primary, request.time.toString()),
const SizedBox(height: 10.0),

4
lib/apps/chat/detail.dart

@ -247,9 +247,9 @@ class _ChatDetailState extends State<ChatDetail> { @@ -247,9 +247,9 @@ class _ChatDetailState extends State<ChatDetail> {
lang.friendInfo,
UserInfo(
app: 'add-friend',
id: 'EH' + friend.gid.toUpperCase(),
id: friend.gid,
name: friend.name,
addr: '0x' + friend.addr,
addr: friend.addr,
title: lang.qrFriend,
remark: friend.remark,
),

4
lib/apps/device/models.dart

@ -15,10 +15,6 @@ class Device { @@ -15,10 +15,6 @@ class Device {
this.addr = params[3],
this.lastTime = RelativeTime.fromInt(params[4]),
this.online = params[5] == "1";
String printAddr() {
return '0x' + this.addr.substring(0, 6) + "..." + this.addr.substring(64 - 8, 64);
}
}
class DeviceStatus {

15
lib/apps/device/page.dart

@ -5,6 +5,7 @@ import 'package:percent_indicator/percent_indicator.dart'; @@ -5,6 +5,7 @@ import 'package:percent_indicator/percent_indicator.dart';
import 'package:qr_flutter/qr_flutter.dart';
import 'package:esse/utils/adaptive.dart';
import 'package:esse/utils/better_print.dart';
import 'package:esse/l10n/localizations.dart';
import 'package:esse/widgets/shadow_dialog.dart';
import 'package:esse/widgets/input_text.dart';
@ -35,11 +36,7 @@ class _DevicesPageState extends State<DevicesPage> { @@ -35,11 +36,7 @@ class _DevicesPageState extends State<DevicesPage> {
const SizedBox(height: 32.0),
ButtonText(
action: () {
var addr = this._addrController.text;
if (addr.substring(0, 2) == '0x') {
//substring(2); if has 0x, need remove
addr = addr.substring(2);
}
final addr = addrParse(this._addrController.text.trim());
if (addr.length > 0) {
Provider.of<DeviceProvider>(context, listen: false).connect(addr);
Navigator.pop(context);
@ -55,7 +52,7 @@ class _DevicesPageState extends State<DevicesPage> { @@ -55,7 +52,7 @@ class _DevicesPageState extends State<DevicesPage> {
final res = await httpPost(Global.httpRpc, 'account-mnemonic', [lock]);
if (res.isOk) {
final words = res.params[0];
final info = json.encode({'app': 'distribute', 'params': [name, id, addr, words]});
final info = json.encode({'app': 'distribute', 'params': [name, gidText(id), addrText(addr), words]});
showShadowDialog(context, Icons.qr_code_rounded, lang.deviceQrcode,
Column(
children: [
@ -112,7 +109,7 @@ class _DevicesPageState extends State<DevicesPage> { @@ -112,7 +109,7 @@ class _DevicesPageState extends State<DevicesPage> {
}
Widget deviceWidget(ColorScheme color, Device device, bool isDesktop, double widgetWidth, lang) {
final bool isLocal = '0x' + device.addr == Global.addr;
final bool isLocal = device.addr == Global.addr;
final String name = isLocal ? (device.name + " (${lang.deviceLocal})") : device.name;
return Container(
@ -131,7 +128,7 @@ class _DevicesPageState extends State<DevicesPage> { @@ -131,7 +128,7 @@ class _DevicesPageState extends State<DevicesPage> {
title: Text(name),
subtitle: Container(
padding: const EdgeInsets.only(top: 8.0),
child: Text(device.printAddr())
child: Text(addrPrint(device.addr))
),
),
Row(
@ -226,7 +223,7 @@ class _DevicesPageState extends State<DevicesPage> { @@ -226,7 +223,7 @@ class _DevicesPageState extends State<DevicesPage> {
Navigator.of(context).pop();
_showQrCode(
account.name,
account.id,
account.gid,
Global.addr,
account.lock,
color,

6
lib/apps/domain/page.dart

@ -372,9 +372,9 @@ class _AddProviderScreenState extends State<_AddProviderScreen> { @@ -372,9 +372,9 @@ class _AddProviderScreenState extends State<_AddProviderScreen> {
ButtonText(
enable: !this._waiting,
action: () {
String addr = _addrController.text.trim();
if (addr.substring(0, 2) == '0x') {
addr = addr.substring(2);
final addr = addrParse(_addrController.text.trim());
if (addr.length < 2) {
return;
}
rpc.send('domain-provider-add', [addr]);
setState(() {

49
lib/apps/group_chat/add.dart

@ -100,11 +100,10 @@ class _GroupAddPageState extends State<GroupAddPage> { @@ -100,11 +100,10 @@ class _GroupAddPageState extends State<GroupAddPage> {
}
_checkGroupAddr() {
String addr = _createAddrController.text;
if (addr.substring(0, 2) == '0x') {
addr = addr.substring(2);
final addr = addrParse(_createAddrController.text.trim());
if (addr.length > 0) {
context.read<GroupChatProvider>().check(addr);
}
context.read<GroupChatProvider>().check(addr);
}
_scanCallback(bool isOk, String app, List params) {
@ -112,29 +111,20 @@ class _GroupAddPageState extends State<GroupAddPage> { @@ -112,29 +111,20 @@ class _GroupAddPageState extends State<GroupAddPage> {
print(app);
print(params);
if (isOk && app == 'add-group' && params.length == 3) {
this._joinIdController.text = params[0];
this._joinAddrController.text = params[1];
this._joinIdController.text = gidText(params[0]);
this._joinAddrController.text = addrText(params[1]);
this._joinNameController.text = params[2];
setState(() {});
}
}
_join() {
var id = _joinIdController.text;
if (id == '') {
final id = gidParse(_joinIdController.text.trim(), 'EG');
if (id.length < 2) {
return;
}
if (id.substring(0, 2) == 'EG') {
id = id.substring(2);
}
var addr = _joinAddrController.text;
// if has 0x, need remove
if (addr.substring(0, 2) == '0x') {
addr = addr.substring(2);
}
var name = _joinNameController.text;
final addr = addrParse(_joinAddrController.text.trim());
final name = _joinNameController.text.trim();
context.read<GroupChatProvider>().join(GroupType.Open, id, addr, name, "");
setState(() {
_joinIdController.text = '';
@ -144,10 +134,9 @@ class _GroupAddPageState extends State<GroupAddPage> { @@ -144,10 +134,9 @@ class _GroupAddPageState extends State<GroupAddPage> {
}
_create() {
var addr = _createAddrController.text.trim();
// if has 0x, need remove
if (addr.length > 2 && addr.substring(0, 2) == '0x') {
addr = addr.substring(2);
final addr = addrParse(_createAddrController.text.trim());
if (_groupLocation == 0 && addr.length < 2) {
return;
}
final name = _createNameController.text.trim();
final bio = _createBioController.text.trim();
@ -165,8 +154,8 @@ class _GroupAddPageState extends State<GroupAddPage> { @@ -165,8 +154,8 @@ class _GroupAddPageState extends State<GroupAddPage> {
super.initState();
_addrChecked = false;
_joinIdController.text = widget.id;
_joinAddrController.text = widget.addr;
_joinIdController.text = gidText(widget.id, 'EG');
_joinAddrController.text = addrText(widget.addr);
_joinNameController.text = widget.name;
_joinIdFocus.addListener(() {
@ -563,7 +552,7 @@ class _RequestItem extends StatelessWidget { @@ -563,7 +552,7 @@ class _RequestItem extends StatelessWidget {
);
}
Widget _infoListTooltip(icon, color, text) {
Widget _infoListTooltip(icon, color, text, short) {
return Container(
width: 300.0,
padding: const EdgeInsets.symmetric(vertical: 10.0),
@ -574,7 +563,7 @@ class _RequestItem extends StatelessWidget { @@ -574,7 +563,7 @@ class _RequestItem extends StatelessWidget {
Expanded(
child: Tooltip(
message: text,
child: Text(betterPrint(text)),
child: Text(short),
)
)
]
@ -593,8 +582,10 @@ class _RequestItem extends StatelessWidget { @@ -593,8 +582,10 @@ class _RequestItem extends StatelessWidget {
const Divider(height: 1.0, color: Color(0x40ADB0BB)),
const SizedBox(height: 10.0),
_infoListTooltip(Icons.person, color.primary,
(request.isMe ? 'EG' : 'EH') + request.gid.toUpperCase()),
_infoListTooltip(Icons.location_on, color.primary, "0x" + request.addr),
request.isMe ? gidText(request.gid, 'EG') : gidText(request.gid),
request.isMe ? gidPrint(request.gid, 'EG') : gidPrint(request.gid),
),
_infoListTooltip(Icons.location_on, color.primary, addrText(request.addr), addrPrint(request.addr)),
_infoList(Icons.turned_in, color.primary, request.remark),
_infoList(Icons.access_time_rounded, color.primary, request.time.toString()),
const SizedBox(height: 10.0),

13
lib/apps/group_chat/detail.dart

@ -262,11 +262,12 @@ class _GroupChatDetailState extends State<GroupChatDetail> { @@ -262,11 +262,12 @@ class _GroupChatDetailState extends State<GroupChatDetail> {
showShadowDialog(context, Icons.info, lang.groupChat,
UserInfo(
app: 'add-group',
id: 'EG' + this.group!.gid.toUpperCase(),
id: this.group!.gid,
name: this.group!.name,
addr: '0x' + this.group!.addr,
addr: this.group!.addr,
title: this.group!.type.lang(lang),
bio: this.group!.bio,
pre: 'EG',
),
0.0,
);
@ -696,7 +697,7 @@ class MemberDetail extends StatefulWidget { @@ -696,7 +697,7 @@ class MemberDetail extends StatefulWidget {
}
class _MemberDetailState extends State<MemberDetail> {
Widget _infoListTooltip(icon, color, text) {
Widget _infoListTooltip(icon, color, text, short) {
return Container(
width: 300.0,
padding: const EdgeInsets.symmetric(vertical: 10.0),
@ -707,7 +708,7 @@ class _MemberDetailState extends State<MemberDetail> { @@ -707,7 +708,7 @@ class _MemberDetailState extends State<MemberDetail> {
Expanded(
child: Tooltip(
message: text,
child: Text(betterPrint(text)),
child: Text(short),
)
)
]
@ -730,8 +731,8 @@ class _MemberDetailState extends State<MemberDetail> { @@ -730,8 +731,8 @@ class _MemberDetailState extends State<MemberDetail> {
const SizedBox(height: 10.0),
const Divider(height: 1.0, color: Color(0x40ADB0BB)),
const SizedBox(height: 10.0),
_infoListTooltip(Icons.person, color.primary, widget.member.mid),
_infoListTooltip(Icons.location_on, color.primary, widget.member.addr),
_infoListTooltip(Icons.person, color.primary, gidText(widget.member.mid), gidPrint(widget.member.mid)),
_infoListTooltip(Icons.location_on, color.primary, addrText(widget.member.addr), addrPrint(widget.member.addr)),
if (widget.isGroupOwner)
Container(
padding: const EdgeInsets.only(top: 20.0, bottom: 10.0),

9
lib/global.dart

@ -34,13 +34,4 @@ class Global { @@ -34,13 +34,4 @@ class Global {
static changeHttp(String newHttp) {
Global.httpRpc = newHttp;
}
static printAddr() {
final len = Global.addr.length;
if (len > 8) {
return Global.addr.substring(0, 8) + '...' + Global.addr.substring(len - 6, len);
} else {
return Global.addr;
}
}
}

14
lib/pages/account_restore.dart

@ -4,6 +4,7 @@ import 'package:provider/provider.dart'; @@ -4,6 +4,7 @@ import 'package:provider/provider.dart';
import 'package:esse/l10n/localizations.dart';
import 'package:esse/utils/device_info.dart';
import 'package:esse/utils/better_print.dart';
import 'package:esse/widgets/button_text.dart';
import 'package:esse/widgets/shadow_dialog.dart';
import 'package:esse/widgets/show_pin.dart';
@ -294,8 +295,8 @@ class _AccountRestorePageState extends State<AccountRestorePage> { @@ -294,8 +295,8 @@ class _AccountRestorePageState extends State<AccountRestorePage> {
Navigator.of(context).pop();
if (app == 'distribute' && params.length == 4) {
final name = params[0];
//final id = params[1];
final addr = params[2];
//final id = gidParse(params[1]);
final addr = addrParse(params[2]);
final mnemonicWords = params[3];
setState(() {
this._addrOnline = true;
@ -304,7 +305,7 @@ class _AccountRestorePageState extends State<AccountRestorePage> { @@ -304,7 +305,7 @@ class _AccountRestorePageState extends State<AccountRestorePage> {
this._wordChecked = false;
this._statusChecked = true;
this._name = name;
this._addrController.text = addr;
this._addrController.text = addrText(addr);
this._mnemoicWords = mnemonicWords.split(" ");
});
}
@ -356,10 +357,9 @@ class _AccountRestorePageState extends State<AccountRestorePage> { @@ -356,10 +357,9 @@ class _AccountRestorePageState extends State<AccountRestorePage> {
if (this._name == '') {
this._name = defaultName;
}
var addr = this._addrController.text;
if (addr.length > 2 && addr.substring(0, 2) == '0x') {
//substring(2); if has 0x, need remove
addr = addr.substring(2);
final addr = addrParse(this._addrController.text.trim());
if (addr.length < 2) {
return;
}
final info = await deviceInfo();

2
lib/pages/home.dart

@ -179,7 +179,7 @@ class _HomeListState extends State<HomeList> { @@ -179,7 +179,7 @@ class _HomeListState extends State<HomeList> {
lang.info,
UserInfo(
app: 'add-friend',
id: provider.activedAccount.id,
id: provider.id,
name: provider.activedAccount.name,
addr: Global.addr));
}

4
lib/pages/setting/network.dart

@ -157,7 +157,7 @@ class _NetworkDetailState extends State<NetworkDetail> { @@ -157,7 +157,7 @@ class _NetworkDetailState extends State<NetworkDetail> {
size: 18.0,
color: color.primary),
SizedBox(width: 15.0),
Text(betterPrint(item[0]),
Text(addrPrint(item[0]),
style: TextStyle(fontSize: 14.0))
]));
}),
@ -177,7 +177,7 @@ class _NetworkDetailState extends State<NetworkDetail> { @@ -177,7 +177,7 @@ class _NetworkDetailState extends State<NetworkDetail> {
Icon(Icons.cloud_done_outlined,
size: 18.0, color: color.primary),
SizedBox(width: 15.0),
Text(betterPrint(item),
Text(addrPrint(item),
style: TextStyle(fontSize: 14.0)),
]));
}),

12
lib/pages/setting/profile.dart

@ -23,7 +23,7 @@ class _ProfileDetailState extends State<ProfileDetail> { @@ -23,7 +23,7 @@ class _ProfileDetailState extends State<ProfileDetail> {
bool _mnemoicShow = false;
List<String> _mnemoicWords = [];
Widget _infoListTooltip(icon, color, text) {
Widget _infoListTooltip(icon, color, text, short) {
return SizedBox(
width: 300.0,
height: 40.0,
@ -33,7 +33,7 @@ class _ProfileDetailState extends State<ProfileDetail> { @@ -33,7 +33,7 @@ class _ProfileDetailState extends State<ProfileDetail> {
Expanded(
child: Tooltip(
message: text,
child: Text(betterPrint(text)),
child: Text(short),
))
]),
);
@ -157,8 +157,8 @@ class _ProfileDetailState extends State<ProfileDetail> { @@ -157,8 +157,8 @@ class _ProfileDetailState extends State<ProfileDetail> {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.max,
children: [
_infoListTooltip(Icons.person, color.primary, account.id),
_infoListTooltip(Icons.location_on, color.primary, Global.addr),
_infoListTooltip(Icons.person, color.primary, gidText(account.gid), gidPrint(account.gid)),
_infoListTooltip(Icons.location_on, color.primary, addrText(Global.addr), addrPrint(Global.addr)),
SizedBox(
width: 300.0,
height: 40.0,
@ -168,7 +168,7 @@ class _ProfileDetailState extends State<ProfileDetail> { @@ -168,7 +168,7 @@ class _ProfileDetailState extends State<ProfileDetail> {
const SizedBox(width: 20.0),
TextButton(
onPressed: () => _pinCheck(account.lock,
() => _changePin(context, account.id, account.lock, lang.setPin),
() => _changePin(context, account.gid, account.lock, lang.setPin),
lang.verifyPin,
),
child: Text(lang.change + ' PIN'),
@ -192,7 +192,7 @@ class _ProfileDetailState extends State<ProfileDetail> { @@ -192,7 +192,7 @@ class _ProfileDetailState extends State<ProfileDetail> {
)
: TextButton(
onPressed: () => _pinCheck(account.lock,
() => _showMnemonic(account.id, account.lock), lang.verifyPin),
() => _showMnemonic(account.gid, account.lock), lang.verifyPin),
child: Text(lang.show + ' ' + lang.mnemonic),
),
]),

4
lib/provider.dart

@ -19,7 +19,7 @@ class AccountProvider extends ChangeNotifier { @@ -19,7 +19,7 @@ class AccountProvider extends ChangeNotifier {
Account get activedAccount => this.accounts[activedAccountId]!;
/// current user's did.
String get id => this.activedAccount.id;
String get id => this.activedAccount.gid;
bool systemAppFriendAddNew = false;
@ -239,7 +239,7 @@ class AccountProvider extends ChangeNotifier { @@ -239,7 +239,7 @@ class AccountProvider extends ChangeNotifier {
// -- callback when receive rpc info. -- //
_systemInfo(List params) {
Global.addr = '0x' + params[0];
Global.addr = params[0];
}
_accountLogin(List _params) {

3
lib/security.dart

@ -9,6 +9,7 @@ import 'package:esse/widgets/show_pin.dart'; @@ -9,6 +9,7 @@ import 'package:esse/widgets/show_pin.dart';
import 'package:esse/pages/account_generate.dart';
import 'package:esse/pages/account_restore.dart';
import 'package:esse/utils/logined_cache.dart';
import 'package:esse/utils/better_print.dart';
import 'package:esse/account.dart';
import 'package:esse/global.dart';
import 'package:esse/rpc.dart';
@ -268,7 +269,7 @@ class _SecurityPageState extends State<SecurityPage> { @@ -268,7 +269,7 @@ class _SecurityPageState extends State<SecurityPage> {
style: TextStyle(fontSize: 16)
),
),
Text(" (${account.printShortId()})", style: TextStyle(fontSize: 16)),
Text(" (${gidPrint(account.gid)})", style: TextStyle(fontSize: 16)),
]
),
);

42
lib/utils/better_print.dart

@ -1,16 +1,11 @@ @@ -1,16 +1,11 @@
String betterPrint(String? info) {
if (info == null) {
String gidText(String? gid, [String pre='EH']) {
if (gid == null) {
return '';
}
final len = info.length;
if (len > 8) {
return info.substring(0, 8) + '...' + info.substring(len - 6, len);
} else {
return info;
}
return pre + gid.toUpperCase();
}
String gidPrint(String? gid) {
String gidPrint(String? gid, [String pre='EH']) {
if (gid == null) {
return '';
}
@ -18,12 +13,27 @@ String gidPrint(String? gid) { @@ -18,12 +13,27 @@ String gidPrint(String? gid) {
final info = gid.toUpperCase();
final len = info.length;
if (len > 8) {
return 'EH' + info.substring(0, 6) + '...' + info.substring(len - 4, len);
return pre + info.substring(0, 4) + '...' + info.substring(len - 4, len);
} else {
return info;
}
}
String gidParse(String gid, [String pre='EH']) {
if (gid.length > 2 && gid.substring(0, 2) == pre) {
return gid.substring(2);
} else {
return gid;
}
}
String addrText(String? addr) {
if (addr == null) {
return '';
}
return '0x' + addr.toLowerCase();
}
String addrPrint(String? addr) {
if (addr == null) {
return '';
@ -31,9 +41,17 @@ String addrPrint(String? addr) { @@ -31,9 +41,17 @@ String addrPrint(String? addr) {
final info = addr.toLowerCase();
final len = info.length;
if (len > 8) {
return '0x' + info.substring(0, 8) + '...' + info.substring(len - 6, len);
if (len > 12) {
return '0x' + info.substring(0, 6) + '...' + info.substring(len - 6, len);
} else {
return info;
}
}
String addrParse(String addr) {
if (addr.length > 2 && addr.substring(0, 2) == '0x') {
return addr.substring(2);
} else {
return addr;
}
}

7
lib/widgets/chat_message.dart

@ -43,7 +43,7 @@ class ChatMessage extends StatelessWidget { @@ -43,7 +43,7 @@ class ChatMessage extends StatelessWidget {
child: Column(children: [
Text(name, maxLines: 1, overflow: TextOverflow.ellipsis, style: TextStyle(color: color.onPrimary, fontSize: 16.0)),
const SizedBox(height: 4.0),
Text(betterPrint(gid), style: TextStyle(color: Colors.grey, fontSize: 12.0)),
Text(gidPrint(gid), style: TextStyle(color: Colors.grey, fontSize: 12.0)),
]))]),
const SizedBox(height: 5.0),
const Divider(height: 1.0, color: Color(0x40ADB0BB)),
@ -216,14 +216,13 @@ class ChatMessage extends StatelessWidget { @@ -216,14 +216,13 @@ class ChatMessage extends StatelessWidget {
// contact [name, gid, addr, avatar]
final infos = message.showContact();
if (infos[1].length > 0) {
final gid = 'EH' + infos[1].toUpperCase();
return GestureDetector(
onTap: () => showShadowDialog(
context,
Icons.person_rounded,
lang.contactCard,
UserInfo(
showQr: false, id: gid, addr: '0x' + infos[2], name: infos[0],
showQr: false, id: infos[1], addr: infos[2], name: infos[0],
remark: lang.fromContactCard(name),
avatar: Avatar(width: 100.0, name: infos[0], avatarPath: infos[3]),
callback: () {
@ -236,7 +235,7 @@ class ChatMessage extends StatelessWidget { @@ -236,7 +235,7 @@ class ChatMessage extends StatelessWidget {
),
child: _showContactCard(
Avatar(width: 40.0, name: infos[0], avatarPath: infos[3]),
gid, infos[0], lang.contactCard, color
infos[1], infos[0], lang.contactCard, color
)
);
} else {

14
lib/widgets/user_info.dart

@ -19,6 +19,7 @@ class UserInfo extends StatefulWidget { @@ -19,6 +19,7 @@ class UserInfo extends StatefulWidget {
final bool showQr;
final Widget? avatar;
Map? qrInfo;
final String pre;
UserInfo({Key? key,
required this.id,
@ -30,12 +31,13 @@ class UserInfo extends StatefulWidget { @@ -30,12 +31,13 @@ class UserInfo extends StatefulWidget {
this.callback,
this.avatar,
this.title,
this.showQr = true
this.showQr = true,
this.pre = 'EH',
}) : super(key: key) {
if (this.showQr) {
this.qrInfo = {
"app": this.app,
"params": [this.id, this.addr, this.name],
"params": [gidText(this.id, this.pre), addrText(this.addr), this.name],
};
}
}
@ -112,7 +114,7 @@ class _UserInfoState extends State<UserInfo> { @@ -112,7 +114,7 @@ class _UserInfoState extends State<UserInfo> {
const SizedBox(height: 20),
InkWell(
onTap: () {
Clipboard.setData(ClipboardData(text: widget.id));
Clipboard.setData(ClipboardData(text: gidText(widget.id)));
setState(() {
idCopy = true;
addrCopy = false;
@ -124,7 +126,7 @@ class _UserInfoState extends State<UserInfo> { @@ -124,7 +126,7 @@ class _UserInfoState extends State<UserInfo> {
children: [
Icon(Icons.person, size: 20.0, color: color.primary),
Spacer(),
Text(betterPrint(widget.id), style: TextStyle(fontSize: 14, color: idColor)),
Text(gidPrint(widget.id, widget.pre), style: TextStyle(fontSize: 14, color: idColor)),
Spacer(),
Icon(idCopy ? Icons.file_copy : Icons.copy, size: 20.0, color: color.primary),
]
@ -134,7 +136,7 @@ class _UserInfoState extends State<UserInfo> { @@ -134,7 +136,7 @@ class _UserInfoState extends State<UserInfo> {
const SizedBox(height: 16),
InkWell(
onTap: () {
Clipboard.setData(ClipboardData(text: widget.addr));
Clipboard.setData(ClipboardData(text: addrText(widget.addr)));
setState(() {
idCopy = false;
addrCopy = true;
@ -146,7 +148,7 @@ class _UserInfoState extends State<UserInfo> { @@ -146,7 +148,7 @@ class _UserInfoState extends State<UserInfo> {
children: [
Icon(Icons.location_on, size: 20.0, color: color.primary),
Spacer(),
Text(betterPrint(widget.addr), style: TextStyle(fontSize: 14, color: addrColor)),
Text(addrPrint(widget.addr), style: TextStyle(fontSize: 14, color: addrColor)),
Spacer(),
Icon(addrCopy ? Icons.file_copy : Icons.copy, size: 20.0, color: color.primary),
]

Loading…
Cancel
Save