new: setting of preferDiskAmount

This commit is contained in:
lollipopkit
2023-11-19 13:34:06 +08:00
parent 5660c0e0db
commit 691471dae5

View File

@@ -14,6 +14,7 @@ import 'package:toolbox/data/model/app/shell_func.dart';
import 'package:toolbox/data/model/server/try_limiter.dart'; import 'package:toolbox/data/model/server/try_limiter.dart';
import 'package:toolbox/data/res/provider.dart'; import 'package:toolbox/data/res/provider.dart';
import 'package:toolbox/data/res/store.dart'; import 'package:toolbox/data/res/store.dart';
import 'package:toolbox/view/widget/value_notifier.dart';
import '../../../core/route.dart'; import '../../../core/route.dart';
import '../../../data/model/app/net_view.dart'; import '../../../data/model/app/net_view.dart';
@@ -430,26 +431,32 @@ class _ServerPageState extends State<ServerPage>
} }
Widget _buildDisk(ServerStatus ss, String id) { Widget _buildDisk(ServerStatus ss, String id) {
final rootDisk = findRootDisk(ss.disk); return ValueBuilder(
final isSpeed = _diskViewSpeed[id] ?? !Stores.setting.serverTabPreferDiskAmount.fetch(); listenable: Stores.setting.serverTabPreferDiskAmount.listenable(),
build: () {
final rootDisk = findRootDisk(ss.disk);
final isSpeed = _diskViewSpeed[id] ??
!Stores.setting.serverTabPreferDiskAmount.fetch();
final (r, w) = ss.diskIO.getAllSpeed(); final (r, w) = ss.diskIO.getAllSpeed();
return AnimatedSwitcher( return AnimatedSwitcher(
duration: const Duration(milliseconds: 377), duration: const Duration(milliseconds: 377),
transitionBuilder: (Widget child, Animation<double> animation) { transitionBuilder: (Widget child, Animation<double> animation) {
return FadeTransition(opacity: animation, child: child); return FadeTransition(opacity: animation, child: child);
},
child: _buildIOData(
isSpeed ? '${l10n.read}:\n$r' : 'Total:\n${rootDisk?.size}',
isSpeed ? '${l10n.write}:\n$w' : 'Used:\n${rootDisk?.usedPercent}%',
onTap: () {
setState(() {
_diskViewSpeed[id] = !isSpeed;
});
},
key: ValueKey(isSpeed),
),
);
}, },
child: _buildIOData(
isSpeed ? '${l10n.read}:\n$r' : 'Total:\n${rootDisk?.size}',
isSpeed ? '${l10n.write}:\n$w' : 'Used:\n${rootDisk?.usedPercent}%',
onTap: () {
setState(() {
_diskViewSpeed[id] = !isSpeed;
});
},
key: ValueKey(isSpeed),
),
); );
} }