refactor(ceasar-core): changed from using openssl to rustls
This commit is contained in:
parent
1b83c0b5ff
commit
1586818bd6
11 changed files with 298 additions and 262 deletions
|
|
@ -3,6 +3,7 @@ import 'dart:io';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test_gui/main.dart';
|
||||
import 'package:mobile_scanner/mobile_scanner.dart';
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:flutter_test_gui/src/rust/api/simple.dart';
|
||||
import 'package:flutter_test_gui/src/rust/frb_generated.dart';
|
||||
|
|
@ -20,7 +21,7 @@ class ReceiveScreen extends StatefulWidget {
|
|||
class _ReceiveScreenState extends State<ReceiveScreen> {
|
||||
String appOrigin = '';
|
||||
final myController = TextEditingController();
|
||||
String greetingText = '';
|
||||
String inputValue = '';
|
||||
bool _showScanner = false;
|
||||
|
||||
Widget _buildQRScanner() {
|
||||
|
|
@ -34,7 +35,7 @@ class _ReceiveScreenState extends State<ReceiveScreen> {
|
|||
} else {
|
||||
final String code = barcode.raw.toString();
|
||||
setState(() {
|
||||
greetingText = code;
|
||||
inputValue = code;
|
||||
_showScanner = false;
|
||||
});
|
||||
}
|
||||
|
|
@ -52,31 +53,72 @@ class _ReceiveScreenState extends State<ReceiveScreen> {
|
|||
'wss://caesar-transfer-iu.shuttleapp.rs'; // Laden Sie die app_origin
|
||||
}
|
||||
|
||||
Future<void> _startTransfer(String appOrigin) async {
|
||||
final transferName = myController.text.trim();
|
||||
if (transferName.isNotEmpty) {
|
||||
try {
|
||||
final outcome = await startRustReceiver(
|
||||
transfername: transferName, relay: appOrigin);
|
||||
print('Receiver erfolgreich gestartet ');
|
||||
print('Ergebnis von Rust: $outcome');
|
||||
} catch (e) {
|
||||
print('Fehler beim Starten des Receivers: $e');
|
||||
Future<bool> _requestPermission(Permission permission) async {
|
||||
print("In _requestPermission");
|
||||
if (await permission.isGranted) {
|
||||
print("Granted");
|
||||
return true;
|
||||
} else {
|
||||
print("Else Zweig");
|
||||
final result = await permission.request();
|
||||
if (result == PermissionStatus.granted) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _startTransfer(String appOrigin) async {
|
||||
final input = inputValue.trim();
|
||||
if (input.isNotEmpty) {
|
||||
if (Platform.isAndroid) {
|
||||
if (await _requestPermission(Permission.manageExternalStorage)) {
|
||||
try {
|
||||
final outcome =
|
||||
await startRustReceiver(transfername: input, relay: appOrigin);
|
||||
print('Ergebnis von Rust: $outcome');
|
||||
} catch (e) {
|
||||
print('Fehler beim Starten des Receivers: $e');
|
||||
}
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => MyHomePage(title: 'Caesar Transfer')));
|
||||
} else {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => MyHomePage(title: 'Caesar Transfer')));
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
final outcome =
|
||||
await startRustReceiver(transfername: input, relay: appOrigin);
|
||||
print('Ergebnis von Rust: $outcome');
|
||||
} catch (e) {
|
||||
print('Fehler beim Starten des Receivers: $e');
|
||||
}
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => MyHomePage(title: 'Caesar Transfer')));
|
||||
}
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => MyHomePage(title: 'Caesar Transfer')));
|
||||
}
|
||||
print("Transfer startet with app_origin: $appOrigin");
|
||||
}
|
||||
// Future<void> _startTransfer(String appOrigin) async {
|
||||
// final transferName = myController.text.trim();
|
||||
// if (transferName.isNotEmpty) {
|
||||
// final outcome =
|
||||
// startRustReceiver(transfername: transferName, relay: appOrigin);
|
||||
|
||||
// Future<bool> requestPermission(Permission permission) async {
|
||||
// if (await permission.isGranted) {
|
||||
// return true;
|
||||
// } else {
|
||||
// var result = await permission.request();
|
||||
// if (result == PermissionStatus.granted) {
|
||||
// return true;
|
||||
// } else {
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
// print("Transfer startet with app_origin: $appOrigin");
|
||||
// }
|
||||
|
||||
@override
|
||||
|
|
@ -133,6 +175,11 @@ class _ReceiveScreenState extends State<ReceiveScreen> {
|
|||
style: const TextStyle(
|
||||
color: Constants.highlightColor,
|
||||
),
|
||||
onChanged: (value) {
|
||||
setState(() {
|
||||
inputValue = value;
|
||||
});
|
||||
},
|
||||
decoration: const InputDecoration(
|
||||
labelText: 'Enter Transfername',
|
||||
alignLabelWithHint: true,
|
||||
|
|
@ -162,10 +209,6 @@ class _ReceiveScreenState extends State<ReceiveScreen> {
|
|||
},
|
||||
child: const Text('Receive'),
|
||||
),
|
||||
Text(
|
||||
greetingText,
|
||||
style: const TextStyle(color: Constants.textColor),
|
||||
),
|
||||
],
|
||||
)),
|
||||
);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,117 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test_gui/main.dart';
|
||||
import 'package:qr_flutter/qr_flutter.dart';
|
||||
import 'package:cross_file/cross_file.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:flutter_test_gui/src/rust/api/simple.dart';
|
||||
import 'package:flutter_test_gui/src/rust/frb_generated.dart';
|
||||
import 'package:flutter_test_gui/consts/consts.dart';
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
|
||||
// const backColor = Color(0xFF32363E);
|
||||
// const highlightColor = Color(0xFF98C379);
|
||||
// const textColor = Color(0xFFABB2BF);
|
||||
|
||||
class TransferScreen extends StatefulWidget {
|
||||
final List<XFile> files;
|
||||
final String transferName;
|
||||
|
||||
const TransferScreen(
|
||||
{Key? key, required this.transferName, required this.files})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
_TransferScreenState createState() => _TransferScreenState();
|
||||
}
|
||||
|
||||
class _TransferScreenState extends State<TransferScreen> {
|
||||
String appOrigin = '';
|
||||
String inputValue = '';
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
loadSettings().then((_) => callStartReceiver(appOrigin));
|
||||
}
|
||||
|
||||
Future<void> loadSettings() async {
|
||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
appOrigin = prefs.getString('app_origin') ??
|
||||
'wss://caesar-transfer-iu.shuttleapp.rs'; // Laden Sie die app_origin
|
||||
}
|
||||
|
||||
Future<void> callStartReceiver(String appOrigin) async {
|
||||
_startTransfer(appOrigin);
|
||||
}
|
||||
|
||||
Future<void> _startTransfer(String appOrigin) async {
|
||||
final input = inputValue.trim();
|
||||
if (input.isNotEmpty) {
|
||||
// if (Platform.isAndroid) {
|
||||
// if (await _requestPermission(Permission.storage)) {
|
||||
// try {
|
||||
// final outcome =
|
||||
// await startRustReceiver(transfername: input, relay: appOrigin);
|
||||
// print('Ergebnis von Rust: $outcome');
|
||||
// } catch (e) {
|
||||
// print('Fehler beim Starten des Receivers: $e');
|
||||
// }
|
||||
// Navigator.push(
|
||||
// context,
|
||||
// MaterialPageRoute(
|
||||
// builder: (context) => MyHomePage(title: 'Caesar Transfer')));
|
||||
// } else {}
|
||||
// } else {
|
||||
try {
|
||||
final outcome =
|
||||
await startRustReceiver(transfername: input, relay: appOrigin);
|
||||
print('Ergebnis von Rust: $outcome');
|
||||
} catch (e) {
|
||||
print('Fehler beim Starten des Receivers: $e');
|
||||
}
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => MyHomePage(title: 'Caesar Transfer')));
|
||||
}
|
||||
// }
|
||||
print("Transfer startet with app_origin: $appOrigin");
|
||||
}
|
||||
|
||||
Future<bool> _requestPermission(Permission permission) async {
|
||||
if (await permission.isGranted) {
|
||||
return true;
|
||||
} else {
|
||||
var result = await permission.request();
|
||||
if (result == PermissionStatus.granted) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Constants.backColor,
|
||||
body: Center(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Text(
|
||||
widget.transferName,
|
||||
style: const TextStyle(color: Colors.white, fontSize: 24),
|
||||
),
|
||||
const SizedBox(height: 32),
|
||||
QrImageView(
|
||||
data: widget.transferName,
|
||||
version: QrVersions.auto,
|
||||
size: 200,
|
||||
foregroundColor: Constants.highlightColor,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue