This commit is contained in:
lollipopkit
2023-07-21 14:37:29 +08:00
parent 0d5707a1df
commit b443870e62
5 changed files with 65 additions and 7 deletions

View File

@@ -1,6 +1,8 @@
import 'package:hive_flutter/hive_flutter.dart'; import 'package:hive_flutter/hive_flutter.dart';
import 'package:toolbox/data/model/server/server_status.dart'; import 'package:toolbox/data/model/server/server_status.dart';
part 'net_view.g.dart';
@HiveType(typeId: 5) @HiveType(typeId: 5)
enum NetViewType { enum NetViewType {
@HiveField(0) @HiveField(0)

View File

@@ -0,0 +1,51 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'net_view.dart';
// **************************************************************************
// TypeAdapterGenerator
// **************************************************************************
class NetViewTypeAdapter extends TypeAdapter<NetViewType> {
@override
final int typeId = 5;
@override
NetViewType read(BinaryReader reader) {
switch (reader.readByte()) {
case 0:
return NetViewType.count;
case 1:
return NetViewType.speed;
case 2:
return NetViewType.size;
default:
return NetViewType.count;
}
}
@override
void write(BinaryWriter writer, NetViewType obj) {
switch (obj) {
case NetViewType.count:
writer.writeByte(0);
break;
case NetViewType.speed:
writer.writeByte(1);
break;
case NetViewType.size:
writer.writeByte(2);
break;
}
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is NetViewTypeAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}

View File

@@ -5,6 +5,7 @@ import 'package:hive_flutter/hive_flutter.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
import 'package:toolbox/data/model/app/net_view.dart';
import 'package:toolbox/data/model/ssh/virtual_key.dart'; import 'package:toolbox/data/model/ssh/virtual_key.dart';
import 'app.dart'; import 'app.dart';
@@ -55,6 +56,7 @@ Future<void> initHive() async {
Hive.registerAdapter(SnippetAdapter()); Hive.registerAdapter(SnippetAdapter());
Hive.registerAdapter(ServerPrivateInfoAdapter()); Hive.registerAdapter(ServerPrivateInfoAdapter());
Hive.registerAdapter(VirtKeyAdapter()); Hive.registerAdapter(VirtKeyAdapter());
Hive.registerAdapter(NetViewTypeAdapter());
} }
void runInZone(dynamic Function() body) { void runInZone(dynamic Function() body) {

View File

@@ -49,7 +49,6 @@ class _ServerPageState extends State<ServerPage>
late ServerProvider _serverProvider; late ServerProvider _serverProvider;
late SettingStore _settingStore; late SettingStore _settingStore;
late S _s; late S _s;
late NetViewType _netViewType;
String? _tag; String? _tag;
@@ -58,7 +57,6 @@ class _ServerPageState extends State<ServerPage>
super.initState(); super.initState();
_serverProvider = locator<ServerProvider>(); _serverProvider = locator<ServerProvider>();
_settingStore = locator<SettingStore>(); _settingStore = locator<SettingStore>();
_netViewType = _settingStore.netViewType.fetch() ?? NetViewType.speed;
} }
@override @override
@@ -333,11 +331,16 @@ class _ServerPageState extends State<ServerPage>
} }
Widget _buildNet(ServerStatus ss) { Widget _buildNet(ServerStatus ss) {
final data = _netViewType.build(ss); return ValueListenableBuilder<NetViewType>(
valueListenable: _settingStore.netViewType.listenable(),
builder: (_, val, __) {
final data = val.build(ss);
return AnimatedSwitcher( return AnimatedSwitcher(
duration: const Duration(milliseconds: 177), duration: const Duration(milliseconds: 177),
child: _buildIOData(data.up, data.down), child: _buildIOData(data.up, data.down),
); );
},
);
} }
Widget _buildExplainText(String text) { Widget _buildExplainText(String text) {

View File

@@ -924,7 +924,7 @@ class _SettingPageState extends State<SettingPage> {
), ),
), ),
onTap: () { onTap: () {
_keyboardTypeKey.currentState?.showButtonMenu(); _netViewTypeKey.currentState?.showButtonMenu();
}, },
); );
} }