mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
Server detail page cards support sorting
This commit is contained in:
@@ -8,8 +8,13 @@ class VirtualKey {
|
||||
final IconData? icon;
|
||||
final VirtualKeyFunc? func;
|
||||
|
||||
VirtualKey(this.text,
|
||||
{this.key, this.toggleable = false, this.icon, this.func,});
|
||||
VirtualKey(
|
||||
this.text, {
|
||||
this.key,
|
||||
this.toggleable = false,
|
||||
this.icon,
|
||||
this.func,
|
||||
});
|
||||
}
|
||||
|
||||
enum VirtualKeyFunc { toggleIME, backspace, copy, paste, snippet }
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'dart:async';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
|
||||
import '../../core/extension/order.dart';
|
||||
import '../../core/extension/uint8list.dart';
|
||||
import '../../core/provider_base.dart';
|
||||
import '../../core/utils/server.dart';
|
||||
@@ -18,31 +19,11 @@ import '../store/server.dart';
|
||||
import '../store/setting.dart';
|
||||
|
||||
typedef ServersMap = Map<String, Server>;
|
||||
typedef ServerOrder = List<String>;
|
||||
|
||||
extension ServerOrderX on ServerOrder {
|
||||
void move(int oldIndex, int newIndex) {
|
||||
if (oldIndex == newIndex) return;
|
||||
if (oldIndex < newIndex) {
|
||||
newIndex -= 1;
|
||||
}
|
||||
final item = this[oldIndex];
|
||||
removeAt(oldIndex);
|
||||
insert(newIndex, item);
|
||||
locator<SettingStore>().serverOrder.put(this);
|
||||
}
|
||||
|
||||
void update(String id, String newId) {
|
||||
final index = indexOf(id);
|
||||
if (index == -1) return;
|
||||
this[index] = newId;
|
||||
}
|
||||
}
|
||||
|
||||
class ServerProvider extends BusyProvider {
|
||||
final ServersMap _servers = {};
|
||||
ServersMap get servers => _servers;
|
||||
final ServerOrder serverOrder = [];
|
||||
final StringOrder serverOrder = [];
|
||||
|
||||
final _limiter = TryLimiter();
|
||||
|
||||
|
||||
@@ -12,3 +12,14 @@ const maxDebugLogLines = 100;
|
||||
/// Method Channels
|
||||
const pkgName = 'tech.lolli.toolbox';
|
||||
const bgRunChannel = MethodChannel('$pkgName/app_retain');
|
||||
|
||||
// default server details page cards order
|
||||
const defaultDetailCardOrder = [
|
||||
'uptime',
|
||||
'cpu',
|
||||
'mem',
|
||||
'swap',
|
||||
'disk',
|
||||
'net',
|
||||
'temp'
|
||||
];
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:toolbox/core/persistant_store.dart';
|
||||
import 'package:toolbox/core/utils/platform.dart';
|
||||
import 'package:toolbox/data/res/misc.dart';
|
||||
|
||||
class SettingStore extends PersistentStore {
|
||||
StoreProperty<int> get primaryColor => property(
|
||||
@@ -42,11 +43,15 @@ class SettingStore extends PersistentStore {
|
||||
/// Backgroud running (Android)
|
||||
StoreProperty<bool> get bgRun => property('bgRun', defaultValue: isAndroid);
|
||||
|
||||
// Server order
|
||||
/// Server order
|
||||
StoreProperty<List<String>> get serverOrder =>
|
||||
property('serverOrder', defaultValue: null);
|
||||
|
||||
// SSH term font size
|
||||
/// Server details page cards order
|
||||
StoreProperty<List<String>> get detailCardOrder =>
|
||||
property('detailCardPrder', defaultValue: defaultDetailCardOrder);
|
||||
|
||||
/// SSH term font size
|
||||
StoreProperty<double> get termFontSize =>
|
||||
property('termFontSize', defaultValue: 13);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user