This commit is contained in:
@@ -27,10 +27,9 @@ class _MountWidgetState extends State<MountWidget> {
|
|||||||
child: Consumer<Mount>(
|
child: Consumer<Mount>(
|
||||||
builder: (context, Mount mount, _) {
|
builder: (context, Mount mount, _) {
|
||||||
final textColor = Theme.of(context).colorScheme.onSurface;
|
final textColor = Theme.of(context).colorScheme.onSurface;
|
||||||
final subTextColor =
|
final subTextColor = Theme.of(context).brightness == Brightness.dark
|
||||||
Theme.of(context).brightness == Brightness.dark
|
? Colors.white38
|
||||||
? Colors.white38
|
: Colors.black87;
|
||||||
: Colors.black87;
|
|
||||||
|
|
||||||
final nameText = SelectableText(
|
final nameText = SelectableText(
|
||||||
formatMountName(mount.type, mount.name),
|
formatMountName(mount.type, mount.name),
|
||||||
@@ -41,8 +40,8 @@ class _MountWidgetState extends State<MountWidget> {
|
|||||||
isThreeLine: true,
|
isThreeLine: true,
|
||||||
leading: IconButton(
|
leading: IconButton(
|
||||||
icon: Icon(Icons.settings, color: textColor),
|
icon: Icon(Icons.settings, color: textColor),
|
||||||
onPressed:
|
onPressed: () =>
|
||||||
() => Navigator.pushNamed(context, '/edit', arguments: mount),
|
Navigator.pushNamed(context, '/edit', arguments: mount),
|
||||||
),
|
),
|
||||||
subtitle: Column(
|
subtitle: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
@@ -95,17 +94,15 @@ class _MountWidgetState extends State<MountWidget> {
|
|||||||
: mount.mounted!
|
: mount.mounted!
|
||||||
? Icons.toggle_on
|
? Icons.toggle_on
|
||||||
: Icons.toggle_off,
|
: Icons.toggle_off,
|
||||||
color:
|
color: mount.mounted ?? false
|
||||||
mount.mounted ?? false
|
? Theme.of(context).colorScheme.primary
|
||||||
? Color.fromARGB(255, 163, 96, 76)
|
: subTextColor,
|
||||||
: subTextColor,
|
|
||||||
),
|
),
|
||||||
tooltip:
|
tooltip: mount.mounted == null
|
||||||
mount.mounted == null
|
? ''
|
||||||
? ''
|
: mount.mounted!
|
||||||
: mount.mounted!
|
? 'Unmount'
|
||||||
? 'Unmount'
|
: 'Mount',
|
||||||
: 'Mount',
|
|
||||||
onPressed: _createMountHandler(context, mount),
|
onPressed: _createMountHandler(context, mount),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@@ -119,43 +116,43 @@ class _MountWidgetState extends State<MountWidget> {
|
|||||||
VoidCallback? _createMountHandler(context, Mount mount) {
|
VoidCallback? _createMountHandler(context, Mount mount) {
|
||||||
return _enabled && mount.mounted != null
|
return _enabled && mount.mounted != null
|
||||||
? () async {
|
? () async {
|
||||||
if (mount.mounted == null) {
|
if (mount.mounted == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final mounted = mount.mounted!;
|
final mounted = mount.mounted!;
|
||||||
|
|
||||||
setState(() {
|
|
||||||
_enabled = false;
|
|
||||||
});
|
|
||||||
|
|
||||||
final location = await _getMountLocation(context, mount);
|
|
||||||
|
|
||||||
cleanup() {
|
|
||||||
setState(() {
|
setState(() {
|
||||||
_enabled = true;
|
_enabled = false;
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
if (!mounted && location == null) {
|
final location = await _getMountLocation(context, mount);
|
||||||
displayErrorMessage(context, "Mount location is not set");
|
|
||||||
return cleanup();
|
|
||||||
}
|
|
||||||
|
|
||||||
final success = await mount.mount(mounted, location: location);
|
cleanup() {
|
||||||
if (success ||
|
setState(() {
|
||||||
mounted ||
|
_enabled = true;
|
||||||
constants.navigatorKey.currentContext == null ||
|
});
|
||||||
!constants.navigatorKey.currentContext!.mounted) {
|
}
|
||||||
return cleanup();
|
|
||||||
}
|
|
||||||
|
|
||||||
displayErrorMessage(
|
if (!mounted && location == null) {
|
||||||
context,
|
displayErrorMessage(context, "Mount location is not set");
|
||||||
"Mount location is not available: $location",
|
return cleanup();
|
||||||
);
|
}
|
||||||
cleanup();
|
|
||||||
}
|
final success = await mount.mount(mounted, location: location);
|
||||||
|
if (success ||
|
||||||
|
mounted ||
|
||||||
|
constants.navigatorKey.currentContext == null ||
|
||||||
|
!constants.navigatorKey.currentContext!.mounted) {
|
||||||
|
return cleanup();
|
||||||
|
}
|
||||||
|
|
||||||
|
displayErrorMessage(
|
||||||
|
context,
|
||||||
|
"Mount location is not available: $location",
|
||||||
|
);
|
||||||
|
cleanup();
|
||||||
|
}
|
||||||
: null;
|
: null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user