mobile cm client info CircleAvatar color
This commit is contained in:
parent
d11ae197f3
commit
fe506c5ff2
@ -529,85 +529,6 @@ class _CmControlPanel extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class PaddingCard extends StatelessWidget {
|
|
||||||
PaddingCard({required this.child, this.title, this.titleIcon});
|
|
||||||
|
|
||||||
final String? title;
|
|
||||||
final IconData? titleIcon;
|
|
||||||
final Widget child;
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
final children = [child];
|
|
||||||
if (title != null) {
|
|
||||||
children.insert(
|
|
||||||
0,
|
|
||||||
Padding(
|
|
||||||
padding: EdgeInsets.symmetric(vertical: 5.0),
|
|
||||||
child: Row(
|
|
||||||
children: [
|
|
||||||
titleIcon != null
|
|
||||||
? Padding(
|
|
||||||
padding: EdgeInsets.only(right: 10),
|
|
||||||
child: Icon(titleIcon,
|
|
||||||
color: MyTheme.accent80, size: 30))
|
|
||||||
: SizedBox.shrink(),
|
|
||||||
Text(
|
|
||||||
title!,
|
|
||||||
style: TextStyle(
|
|
||||||
fontFamily: 'WorkSans',
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
fontSize: 20,
|
|
||||||
color: MyTheme.accent80,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
)));
|
|
||||||
}
|
|
||||||
return Container(
|
|
||||||
width: double.maxFinite,
|
|
||||||
child: Card(
|
|
||||||
margin: EdgeInsets.fromLTRB(15.0, 15.0, 15.0, 0),
|
|
||||||
child: Padding(
|
|
||||||
padding: EdgeInsets.symmetric(vertical: 15.0, horizontal: 30.0),
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: children,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget clientInfo(Client client) {
|
|
||||||
return Padding(
|
|
||||||
padding: EdgeInsets.symmetric(vertical: 8),
|
|
||||||
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
|
||||||
Row(
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
flex: -1,
|
|
||||||
child: Padding(
|
|
||||||
padding: EdgeInsets.only(right: 12),
|
|
||||||
child: CircleAvatar(
|
|
||||||
child: Text(client.name[0]),
|
|
||||||
backgroundColor: MyTheme.border))),
|
|
||||||
Expanded(
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Text(client.name,
|
|
||||||
style: TextStyle(color: MyTheme.idColor, fontSize: 18)),
|
|
||||||
SizedBox(width: 8),
|
|
||||||
Text(client.peerId,
|
|
||||||
style: TextStyle(color: MyTheme.idColor, fontSize: 10))
|
|
||||||
]))
|
|
||||||
],
|
|
||||||
),
|
|
||||||
]));
|
|
||||||
}
|
|
||||||
|
|
||||||
void checkClickTime(int id, Function() callback) async {
|
void checkClickTime(int id, Function() callback) async {
|
||||||
var clickCallbackTime = DateTime.now().millisecondsSinceEpoch;
|
var clickCallbackTime = DateTime.now().millisecondsSinceEpoch;
|
||||||
await bind.cmCheckClickTime(connId: id);
|
await bind.cmCheckClickTime(connId: id);
|
||||||
|
@ -381,7 +381,7 @@ class ConnectionManager extends StatelessWidget {
|
|||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: clientInfo(client)),
|
Expanded(child: ClientInfo(client)),
|
||||||
Expanded(
|
Expanded(
|
||||||
flex: -1,
|
flex: -1,
|
||||||
child: client.isFileTransfer || !client.authorized
|
child: client.isFileTransfer || !client.authorized
|
||||||
@ -493,35 +493,42 @@ class PaddingCard extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget clientInfo(Client client) {
|
class ClientInfo extends StatelessWidget {
|
||||||
return Padding(
|
final Client client;
|
||||||
padding: const EdgeInsets.symmetric(vertical: 8),
|
ClientInfo(this.client);
|
||||||
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
|
||||||
Row(
|
@override
|
||||||
children: [
|
Widget build(BuildContext context) {
|
||||||
Expanded(
|
return Padding(
|
||||||
flex: -1,
|
padding: const EdgeInsets.symmetric(vertical: 8),
|
||||||
child: Padding(
|
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
||||||
padding: const EdgeInsets.only(right: 12),
|
Row(
|
||||||
child: CircleAvatar(
|
children: [
|
||||||
backgroundColor: MyTheme.border,
|
Expanded(
|
||||||
child: Text(client.name[0])))),
|
flex: -1,
|
||||||
Expanded(
|
child: Padding(
|
||||||
child: Column(
|
padding: const EdgeInsets.only(right: 12),
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
child: CircleAvatar(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
backgroundColor:
|
||||||
children: [
|
str2color(client.name).withOpacity(0.7),
|
||||||
Text(client.name,
|
child: Text(client.name[0])))),
|
||||||
style: const TextStyle(
|
Expanded(
|
||||||
color: MyTheme.idColor, fontSize: 18)),
|
child: Column(
|
||||||
const SizedBox(width: 8),
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
Text(client.peerId,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
style:
|
children: [
|
||||||
const TextStyle(color: MyTheme.idColor, fontSize: 10))
|
Text(client.name,
|
||||||
]))
|
style: const TextStyle(
|
||||||
],
|
color: MyTheme.idColor, fontSize: 18)),
|
||||||
),
|
const SizedBox(width: 8),
|
||||||
]));
|
Text(client.peerId,
|
||||||
|
style: const TextStyle(
|
||||||
|
color: MyTheme.idColor, fontSize: 10))
|
||||||
|
]))
|
||||||
|
],
|
||||||
|
),
|
||||||
|
]));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void androidChannelInit() {
|
void androidChannelInit() {
|
||||||
|
@ -433,7 +433,7 @@ class ServerModel with ChangeNotifier {
|
|||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(translate("Do you accept?")),
|
Text(translate("Do you accept?")),
|
||||||
clientInfo(client),
|
ClientInfo(client),
|
||||||
Text(
|
Text(
|
||||||
translate("android_new_connection_tip"),
|
translate("android_new_connection_tip"),
|
||||||
style: Theme.of(globalKey.currentContext!).textTheme.bodyMedium,
|
style: Theme.of(globalKey.currentContext!).textTheme.bodyMedium,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user