Added settings screen (Vibration toggle might not work)

This commit is contained in:
MaticIvesic committed 2026-02-05 21:37:35 +01:00
1 parent 78f2dfa742
commit ba2dc23c6c
11 files changed
+617 -460

No files matched your search

-4
View File
@@ -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";
+24
View File
@@ -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();
}
}
+31
View File
@@ -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);
}
}