add settings page so set ssh login

request storage permissions on android
This commit is contained in:
2022-09-28 15:31:24 +02:00
parent 2ba9fb3fbd
commit 369da56258
12 changed files with 233 additions and 24 deletions

View File

@ -6,6 +6,11 @@ class Item {
String name;
Item(this.isFolder, this.uri, this.name);
@override
String toString() {
return 'Item{isFolder: $isFolder, uri: $uri, name: $name}';
}
}
class Folder {

View File

@ -10,11 +10,11 @@ import 'dart:ui' as ui show Codec, ImmutableBuffer;
import 'package:path_provider/path_provider.dart';
class SSHDataProvider extends DataProvider {
final String host;
final int port;
final String username;
final String password;
final String initialPath;
final Future<String> host;
final Future<int> port;
final Future<String> username;
final Future<String> password;
final Future<String> initialPath;
SftpClient? sftpClient;
SSHClient? sshClient;
@ -31,8 +31,8 @@ class SSHDataProvider extends DataProvider {
if (sshClient != null && !sshClient!.isClosed) return;
sshClient = SSHClient(
await SSHSocket.connect(host, port),
username: username,
await SSHSocket.connect(await host, await port),
username: await username,
onPasswordRequest: () => password,
);
await sshClient?.authenticated;
@ -45,7 +45,8 @@ class SSHDataProvider extends DataProvider {
await connect();
if (sftpClient == null) throw const FormatException("");
final dir = uri != null ? Directory.fromUri(uri) : Directory(initialPath);
final dir =
uri != null ? Directory.fromUri(uri) : Directory(await initialPath);
final items = await sftpClient!.listdir(dir.path);
List<Item> res = [];