mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
@@ -6,7 +6,7 @@ import 'package:server_box/data/model/ssh/virtual_key.dart';
|
||||
import 'package:server_box/data/model/app/net_view.dart';
|
||||
import 'package:server_box/data/res/default.dart';
|
||||
|
||||
class SettingStore extends PersistentStore {
|
||||
class SettingStore extends HiveStore {
|
||||
SettingStore._() : super('setting');
|
||||
|
||||
static final instance = SettingStore._();
|
||||
@@ -18,19 +18,19 @@ class SettingStore extends PersistentStore {
|
||||
// item in the drawer of the home page)
|
||||
|
||||
/// Discussion #146
|
||||
late final serverTabUseOldUI = property('serverTabUseOldUI', false);
|
||||
late final serverTabUseOldUI = propertyDefault('serverTabUseOldUI', false);
|
||||
|
||||
/// Time out for server connect and more...
|
||||
late final timeout = property('timeOut', 5);
|
||||
late final timeout = propertyDefault('timeOut', 5);
|
||||
|
||||
/// Record history of SFTP path and etc.
|
||||
late final recordHistory = property('recordHistory', true);
|
||||
late final recordHistory = propertyDefault('recordHistory', true);
|
||||
|
||||
/// Lanch page idx
|
||||
// late final launchPage = property('launchPage', Defaults.launchPageIdx);
|
||||
|
||||
/// Disk view: amount / IO
|
||||
late final serverTabPreferDiskAmount = property(
|
||||
late final serverTabPreferDiskAmount = propertyDefault(
|
||||
'serverTabPreferDiskAmount',
|
||||
false,
|
||||
);
|
||||
@@ -40,59 +40,60 @@ class SettingStore extends PersistentStore {
|
||||
/// Bigger for bigger font size
|
||||
/// 1.0 means 100%
|
||||
/// Warning: This may cause some UI issues
|
||||
late final textFactor = property('textFactor', 1.0);
|
||||
late final textFactor = propertyDefault('textFactor', 1.0);
|
||||
|
||||
/// The seed of color scheme
|
||||
late final colorSeed = property('primaryColor', 4287106639);
|
||||
late final colorSeed = propertyDefault('primaryColor', 4287106639);
|
||||
|
||||
late final serverStatusUpdateInterval = property(
|
||||
late final serverStatusUpdateInterval = propertyDefault(
|
||||
'serverStatusUpdateInterval',
|
||||
Defaults.updateInterval,
|
||||
);
|
||||
|
||||
// Max retry count when connect to server
|
||||
late final maxRetryCount = property('maxRetryCount', 2);
|
||||
late final maxRetryCount = propertyDefault('maxRetryCount', 2);
|
||||
|
||||
// Night mode: 0 -> auto, 1 -> light, 2 -> dark, 3 -> AMOLED, 4 -> AUTO-AMOLED
|
||||
late final themeMode = property('themeMode', 0);
|
||||
late final themeMode = propertyDefault('themeMode', 0);
|
||||
|
||||
// Font file path
|
||||
late final fontPath = property('fontPath', '');
|
||||
late final fontPath = propertyDefault('fontPath', '');
|
||||
|
||||
// Backgroud running (Android)
|
||||
late final bgRun = property('bgRun', isAndroid);
|
||||
late final bgRun = propertyDefault('bgRun', isAndroid);
|
||||
|
||||
// Server order
|
||||
late final serverOrder = listProperty<String>('serverOrder', []);
|
||||
late final serverOrder = propertyDefault<List<String>>('serverOrder', []);
|
||||
|
||||
late final snippetOrder = listProperty<String>('snippetOrder', []);
|
||||
late final snippetOrder = propertyDefault<List<String>>('snippetOrder', []);
|
||||
|
||||
// Server details page cards order
|
||||
late final detailCardOrder = listProperty(
|
||||
late final detailCardOrder = propertyDefault(
|
||||
'detailCardOrder',
|
||||
ServerDetailCards.values.map((e) => e.name).toList(),
|
||||
);
|
||||
|
||||
// SSH term font size
|
||||
late final termFontSize = property('termFontSize', 13.0);
|
||||
late final termFontSize = propertyDefault('termFontSize', 13.0);
|
||||
|
||||
// Locale
|
||||
late final locale = property('locale', '');
|
||||
late final locale = propertyDefault('locale', '');
|
||||
|
||||
// SSH virtual key (ctrl | alt) auto turn off
|
||||
late final sshVirtualKeyAutoOff = property('sshVirtualKeyAutoOff', true);
|
||||
late final sshVirtualKeyAutoOff =
|
||||
propertyDefault('sshVirtualKeyAutoOff', true);
|
||||
|
||||
late final editorFontSize = property('editorFontSize', 12.5);
|
||||
late final editorFontSize = propertyDefault('editorFontSize', 12.5);
|
||||
|
||||
// Editor theme
|
||||
late final editorTheme = property('editorTheme', Defaults.editorTheme);
|
||||
late final editorTheme = propertyDefault('editorTheme', Defaults.editorTheme);
|
||||
|
||||
late final editorDarkTheme =
|
||||
property('editorDarkTheme', Defaults.editorDarkTheme);
|
||||
propertyDefault('editorDarkTheme', Defaults.editorDarkTheme);
|
||||
|
||||
late final fullScreen = property('fullScreen', false);
|
||||
late final fullScreen = propertyDefault('fullScreen', false);
|
||||
|
||||
late final fullScreenJitter = property('fullScreenJitter', true);
|
||||
late final fullScreenJitter = propertyDefault('fullScreenJitter', true);
|
||||
|
||||
// late final fullScreenRotateQuarter = property(
|
||||
// 'fullScreenRotateQuarter',
|
||||
@@ -104,140 +105,145 @@ class SettingStore extends PersistentStore {
|
||||
// TextInputType.text.index,
|
||||
// );
|
||||
|
||||
late final sshVirtKeys = listProperty(
|
||||
late final sshVirtKeys = propertyDefault(
|
||||
'sshVirtKeys',
|
||||
VirtKeyX.defaultOrder.map((e) => e.index).toList(),
|
||||
);
|
||||
|
||||
late final netViewType = property('netViewType', NetViewType.speed);
|
||||
late final netViewType = propertyDefault('netViewType', NetViewType.speed);
|
||||
|
||||
// Only valid on iOS
|
||||
late final autoUpdateHomeWidget = property('autoUpdateHomeWidget', isIOS);
|
||||
late final autoUpdateHomeWidget =
|
||||
propertyDefault('autoUpdateHomeWidget', isIOS);
|
||||
|
||||
late final autoCheckAppUpdate = property('autoCheckAppUpdate', true);
|
||||
late final autoCheckAppUpdate = propertyDefault('autoCheckAppUpdate', true);
|
||||
|
||||
/// Display server tab function buttons on the bottom of each server card if [true]
|
||||
///
|
||||
/// Otherwise, display them on the top of server detail page
|
||||
late final moveServerFuncs = property('moveOutServerTabFuncBtns', false);
|
||||
late final moveServerFuncs =
|
||||
propertyDefault('moveOutServerTabFuncBtns', false);
|
||||
|
||||
/// Whether use `rm -r` to delete directory on SFTP
|
||||
late final sftpRmrDir = property('sftpRmrDir', false);
|
||||
late final sftpRmrDir = propertyDefault('sftpRmrDir', false);
|
||||
|
||||
/// Whether use system's primary color as the app's primary color
|
||||
late final useSystemPrimaryColor = property('useSystemPrimaryColor', false);
|
||||
late final useSystemPrimaryColor =
|
||||
propertyDefault('useSystemPrimaryColor', false);
|
||||
|
||||
/// Only valid on iOS / Android / Windows
|
||||
late final useBioAuth = property('useBioAuth', false);
|
||||
late final useBioAuth = propertyDefault('useBioAuth', false);
|
||||
|
||||
/// The performance of highlight is bad
|
||||
late final editorHighlight = property('editorHighlight', true);
|
||||
late final editorHighlight = propertyDefault('editorHighlight', true);
|
||||
|
||||
/// Open SFTP with last viewed path
|
||||
late final sftpOpenLastPath = property('sftpOpenLastPath', true);
|
||||
late final sftpOpenLastPath = propertyDefault('sftpOpenLastPath', true);
|
||||
|
||||
/// Show folders first in SFTP file browser
|
||||
late final sftpShowFoldersFirst = property('sftpShowFoldersFirst', true);
|
||||
late final sftpShowFoldersFirst =
|
||||
propertyDefault('sftpShowFoldersFirst', true);
|
||||
|
||||
/// Show tip of suspend
|
||||
late final showSuspendTip = property('showSuspendTip', true);
|
||||
late final showSuspendTip = propertyDefault('showSuspendTip', true);
|
||||
|
||||
/// Whether collapse UI items by default
|
||||
late final collapseUIDefault = property('collapseUIDefault', true);
|
||||
late final collapseUIDefault = propertyDefault('collapseUIDefault', true);
|
||||
|
||||
late final serverFuncBtns = listProperty(
|
||||
late final serverFuncBtns = propertyDefault(
|
||||
'serverBtns',
|
||||
ServerFuncBtn.defaultIdxs,
|
||||
);
|
||||
|
||||
/// Docker is more popular than podman, set to `false` to use docker
|
||||
late final usePodman = property('usePodman', false);
|
||||
late final usePodman = propertyDefault('usePodman', false);
|
||||
|
||||
/// Try to use `sudo` to run docker command
|
||||
late final containerTrySudo = property('containerTrySudo', true);
|
||||
late final containerTrySudo = propertyDefault('containerTrySudo', true);
|
||||
|
||||
/// Keep previous server status when err occurs
|
||||
late final keepStatusWhenErr = property('keepStatusWhenErr', false);
|
||||
late final keepStatusWhenErr = propertyDefault('keepStatusWhenErr', false);
|
||||
|
||||
/// Parse container stat
|
||||
late final containerParseStat = property('containerParseStat', true);
|
||||
late final containerParseStat = propertyDefault('containerParseStat', true);
|
||||
|
||||
/// Auto refresh container status
|
||||
late final contaienrAutoRefresh = property('contaienrAutoRefresh', true);
|
||||
late final contaienrAutoRefresh =
|
||||
propertyDefault('contaienrAutoRefresh', true);
|
||||
|
||||
/// Use double column servers page on Desktop
|
||||
late final doubleColumnServersPage = property(
|
||||
late final doubleColumnServersPage = propertyDefault(
|
||||
'doubleColumnServersPage',
|
||||
true,
|
||||
);
|
||||
|
||||
/// Ignore local network device (eg: br-xxx, ovs-system...)
|
||||
/// when building traffic view on server tab
|
||||
//late final ignoreLocalNet = property('ignoreLocalNet', true);
|
||||
//late final ignoreLocalNet = propertyDefault('ignoreLocalNet', true);
|
||||
|
||||
/// Remerber pwd in memory
|
||||
/// Used for [DialogX.showPwdDialog]
|
||||
late final rememberPwdInMem = property('rememberPwdInMem', true);
|
||||
late final rememberPwdInMem = propertyDefault('rememberPwdInMem', true);
|
||||
|
||||
/// SSH Term Theme
|
||||
/// 0: follow app theme, 1: light, 2: dark
|
||||
late final termTheme = property('termTheme', 0);
|
||||
late final termTheme = propertyDefault('termTheme', 0);
|
||||
|
||||
/// Compatiablity for Chinese Android.
|
||||
/// Set it to true, if you use Safe Keyboard on Chinese Android
|
||||
// late final cnKeyboardComp = property('cnKeyboardComp', false);
|
||||
// late final cnKeyboardComp = propertyDefault('cnKeyboardComp', false);
|
||||
|
||||
late final lastVer = property('lastVer', 0);
|
||||
late final lastVer = propertyDefault('lastVer', 0);
|
||||
|
||||
/// Use CupertinoPageRoute for all routes
|
||||
late final cupertinoRoute = property('cupertinoRoute', isIOS);
|
||||
late final cupertinoRoute = propertyDefault('cupertinoRoute', isIOS);
|
||||
|
||||
/// Hide title bar on desktop
|
||||
late final hideTitleBar = property('hideTitleBar', isDesktop);
|
||||
late final hideTitleBar = propertyDefault('hideTitleBar', isDesktop);
|
||||
|
||||
/// Display CPU view as progress, also called as old CPU view
|
||||
late final cpuViewAsProgress = property('cpuViewAsProgress', false);
|
||||
late final cpuViewAsProgress = propertyDefault('cpuViewAsProgress', false);
|
||||
|
||||
late final displayCpuIndex = property('displayCpuIndex', true);
|
||||
late final displayCpuIndex = propertyDefault('displayCpuIndex', true);
|
||||
|
||||
late final editorSoftWrap = property('editorSoftWrap', isIOS);
|
||||
late final editorSoftWrap = propertyDefault('editorSoftWrap', isIOS);
|
||||
|
||||
late final sshTermHelpShown = property('sshTermHelpShown', false);
|
||||
late final sshTermHelpShown = propertyDefault('sshTermHelpShown', false);
|
||||
|
||||
late final horizonVirtKey = property('horizonVirtKey', false);
|
||||
late final horizonVirtKey = propertyDefault('horizonVirtKey', false);
|
||||
|
||||
/// general wake lock
|
||||
late final generalWakeLock = property('generalWakeLock', false);
|
||||
late final generalWakeLock = propertyDefault('generalWakeLock', false);
|
||||
|
||||
/// ssh page
|
||||
late final sshWakeLock = property('sshWakeLock', true);
|
||||
late final sshWakeLock = propertyDefault('sshWakeLock', true);
|
||||
|
||||
/// fmt: https://example.com/{DIST}-{BRIGHT}.png
|
||||
late final serverLogoUrl = property('serverLogoUrl', '');
|
||||
late final serverLogoUrl = propertyDefault('serverLogoUrl', '');
|
||||
|
||||
late final betaTest = property('betaTest', false);
|
||||
late final betaTest = propertyDefault('betaTest', false);
|
||||
|
||||
/// If it's empty, skip change window size.
|
||||
/// Format: {width}x{height}
|
||||
late final windowSize = property('windowSize', '');
|
||||
late final windowSize = propertyDefault('windowSize', '');
|
||||
|
||||
late final introVer = property('introVer', 0);
|
||||
late final introVer = propertyDefault('introVer', 0);
|
||||
|
||||
late final letterCache = property('letterCache', false);
|
||||
late final letterCache = propertyDefault('letterCache', false);
|
||||
|
||||
/// Set it to `$EDITOR`, `vim` and etc. to use remote system editor in SSH terminal.
|
||||
/// Set it empty to use local editor GUI.
|
||||
late final sftpEditor = property('sftpEditor', '');
|
||||
late final sftpEditor = propertyDefault('sftpEditor', '');
|
||||
|
||||
// Never show these settings for users
|
||||
//
|
||||
// ------BEGIN------
|
||||
|
||||
/// Version of store db
|
||||
late final storeVersion = property('storeVersion', 0);
|
||||
late final storeVersion = propertyDefault('storeVersion', 0);
|
||||
|
||||
/// Have notified user for notificaiton permission or not
|
||||
late final noNotiPerm = property('noNotiPerm', false);
|
||||
late final noNotiPerm = propertyDefault('noNotiPerm', false);
|
||||
|
||||
// ------END------
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user