begin cleanup add_cam_main. dont remember if anything more

This commit is contained in:
Nico
2025-05-06 23:54:11 +02:00
parent 6a5dcc64a3
commit 86ffd77888
21 changed files with 925 additions and 1724 deletions

View File

@@ -0,0 +1,42 @@
// ignore_for_file: avoid_print
import 'dart:convert';
import 'package:dio/dio.dart';
import 'package:shared_preferences/shared_preferences.dart';
class HttpRequest {
int? _errorCode;
int get errorCode => _errorCode ?? 0;
Future<void> httpRequest(String httpData) async {
// print(jsonEncode(place));
final dio = Dio();
final SharedPreferences prefs = await SharedPreferences.getInstance();
dio.options
..connectTimeout = const Duration(seconds: 5)
..receiveTimeout = const Duration(seconds: 5)
..responseType = ResponseType.plain;
Response response = Response(requestOptions: RequestOptions(path: ''), statusCode: 400);
try {
response = await dio.post(prefs.getString('apiAddress') ?? "",
data: jsonEncode(httpData));
// ignore: unused_catch_clause
} on DioException catch (e) {
_errorCode = response.statusCode;
print('is hier. var: $_errorCode');
return;
}
_errorCode = response.statusCode;
print('is hier 2. var: $_errorCode');
}
}

View File

@@ -0,0 +1,21 @@
import 'dart:convert';
import 'dart:io';
import 'package:file_picker/file_picker.dart';
import 'package:shared_preferences/shared_preferences.dart';
Future<void> saveFile(
Map place, String fileNameLocalization, String placeID) async {
String? selectedDirectory = await FilePicker.platform.getDirectoryPath();
SharedPreferences prefs = await SharedPreferences.getInstance();
String jsonPlace = jsonEncode(place);
if (selectedDirectory == null) {
return;
}
await prefs.setString('saveDir', selectedDirectory);
File file = File('$selectedDirectory/$fileNameLocalization-$placeID.txt');
await file.writeAsString(jsonPlace);
}

View File

@@ -0,0 +1,22 @@
import 'package:fforte/enums/databases.dart';
import 'package:fforte/interfaces/i_db.dart';
import 'package:fforte/methods/excursion_db_helper.dart';
import 'package:fforte/methods/place_db_helper.dart';
void saveTemplate(Map<String, dynamic> templateData, DatabasesEnum dbType,
bool update) async {
IDb dbHelper;
if (dbType == DatabasesEnum.place) {
dbHelper = PlaceDBHelper();
} else if (dbType == DatabasesEnum.excursion) {
dbHelper = ExcursionDBHelper();
} else {
return;
}
if (update) {
await dbHelper.updateTemplate(templateData);
} else {
await dbHelper.addTemplate(templateData);
}
}

View File

@@ -0,0 +1,71 @@
import 'dart:convert';
import 'package:dio/dio.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'dart:io';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class SendFile extends StatefulWidget {
const SendFile({super.key});
@override
State<SendFile> createState() => _SendFileState();
}
class _SendFileState extends State<SendFile> {
File? pickedFile;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Column(
children: [
ElevatedButton(
onPressed: () async {
FilePickerResult? result =
await FilePicker.platform.pickFiles();
if (result != null) {
pickedFile = File(result.files.single.path!);
} else {
pickedFile = File("");
}
},
child: Text(AppLocalizations.of(context)!.pickfile)),
Text(pickedFile.toString()),
ElevatedButton(
onPressed: () async {
final dio = Dio();
final SharedPreferences prefs =
await SharedPreferences.getInstance();
String? fileContent = await pickedFile?.readAsString();
dio.options.responseType = ResponseType.plain;
Response response = Response(
requestOptions: RequestOptions(path: ''), statusCode: 400);
try {
response = await dio.post(prefs.getString('apiAddress') ?? "",
data: jsonEncode(fileContent));
} on DioException catch (e) {
if (e.response?.statusCode == 500) {
/* print('-------------------------');
print('code 500'); */
return;
}
}
if (response.statusCode == 201) {
// print(response.statusCode);
} else {
//print(response.statusCode);
}
},
child: Text(AppLocalizations.of(context)!.sendtoserver))
],
),
);
}
}