mirror of
https://github.com/MoxiFoxi411/QuickSSH.git
synced 2026-11-08 19:34:55 +00:00
Added settings screen (Vibration toggle might not work)
This commit is contained in:
1 parent
78f2dfa742
commit
ba2dc23c6c
11 files changed
+617
-460
No files matched your search
@@ -5,27 +5,23 @@ import 'package:QuickSSH/classes/ServerCommand.dart';
|
||||
class SSHService {
|
||||
static Future<String> execute(ServerCommand server) async {
|
||||
try {
|
||||
// 1. Connect to the IP and Port
|
||||
final socket = await SSHSocket.connect(
|
||||
server.ip,
|
||||
22,
|
||||
timeout: const Duration(seconds: 10),
|
||||
);
|
||||
|
||||
// 2. Authenticate
|
||||
final client = SSHClient(
|
||||
socket,
|
||||
username: server.username,
|
||||
onPasswordRequest: () => server.password,
|
||||
);
|
||||
|
||||
// 3. Run the specific command
|
||||
final result = await client.run(server.command);
|
||||
|
||||
client.close();
|
||||
await client.done;
|
||||
|
||||
// 4. Return the server's response
|
||||
return utf8.decode(result);
|
||||
} catch (e) {
|
||||
return "Error: $e";
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
class SettingsController extends ChangeNotifier {
|
||||
bool _vibrationEnabled = true;
|
||||
bool get vibrationEnabled => _vibrationEnabled;
|
||||
|
||||
SettingsController() {
|
||||
_loadSettings();
|
||||
}
|
||||
|
||||
Future<void> _loadSettings() async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
_vibrationEnabled = prefs.getBool('vibration_enabled') ?? true;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> toggleVibration(bool value) async {
|
||||
_vibrationEnabled = value;
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
await prefs.setBool('vibration_enabled', value);
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
class ThemeController extends ChangeNotifier {
|
||||
ThemeMode _themeMode = ThemeMode.system;
|
||||
|
||||
ThemeMode get themeMode => _themeMode;
|
||||
|
||||
ThemeController() {
|
||||
_loadTheme();
|
||||
}
|
||||
|
||||
// Load saved theme from disk
|
||||
Future<void> _loadTheme() async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
final themeIndex = prefs.getInt('theme_mode') ?? 0;
|
||||
_themeMode = ThemeMode.values[themeIndex];
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
// Update and save theme
|
||||
Future<void> updateTheme(ThemeMode? newThemeMode) async {
|
||||
if (newThemeMode == null || newThemeMode == _themeMode) return;
|
||||
|
||||
_themeMode = newThemeMode;
|
||||
notifyListeners();
|
||||
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
await prefs.setInt('theme_mode', newThemeMode.index);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user