This commit is contained in:
Hamza-Ayed
2024-11-09 10:49:04 +02:00
parent fc81405b7a
commit 213c2724aa
44 changed files with 3009 additions and 1130 deletions

View File

@@ -0,0 +1,19 @@
import '../../constant/box_name.dart';
import '../../constant/links.dart';
import '../../main.dart';
import 'crud.dart';
addError(String error, where) async {
CRUD().post(link: AppLink.addError, payload: {
'error': error.toString(), // Example error description
'userId': box.read(BoxName.driverID) ??
box.read(BoxName.passengerID), // Example user ID
'userType': box.read(BoxName.driverID) != null
? 'Driver'
: 'passenger', // Example user type
'phone': box.read(BoxName.phone) ??
box.read(BoxName.phoneDriver), // Example phone number
'device': where
});
}

View File

@@ -1,15 +1,21 @@
import 'dart:convert';
import 'dart:io';
import 'dart:ui';
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/constant/links.dart';
import 'package:SEFER/main.dart';
import 'package:get/get.dart';
import 'package:http/http.dart' as http;
import 'package:SEFER/env/env.dart';
import 'package:http_parser/http_parser.dart';
import 'package:mime/mime.dart';
import '../../constant/api_key.dart';
import '../../constant/colors.dart';
import '../../print.dart';
import '../../views/widgets/elevated_btn.dart';
import 'add_error.dart';
import 'upload_image.dart';
class CRUD {
@@ -29,8 +35,9 @@ class CRUD {
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials.toString()))}',
},
);
Log.print('payload: ${payload}');
Log.print('response.request: ${response.request}');
Log.print('payload: ${payload}');
Log.print('response.reasonPhrase: ${response.reasonPhrase}');
Log.print('response.body: ${response.body}');
@@ -44,7 +51,6 @@ class CRUD {
return jsonData['status'];
}
// }
Future<dynamic> getTokenParent({
required String link,
Map<String, dynamic>? payload,
@@ -264,36 +270,83 @@ class CRUD {
} else {}
}
// Future<dynamic> post({
// required String link,
// Map<String, dynamic>? payload,
// }) async {
// // String? basicAuthCredentials =
// // await storage.read(key: BoxName.basicAuthCredentials);
// var url = Uri.parse(
// link,
// );
// var response = await http.post(
// url,
// body: payload,
// headers: {
// "Content-Type": "application/x-www-form-urlencoded",
// 'Authorization':
// 'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}',
// },
// );
// Log.print('payload: ${payload}');
// Log.print('response.request: ${response.request}');
// Log.print('response.body: ${response.body}');
// var jsonData = jsonDecode(response.body);
// if (response.statusCode == 200) {
// if (jsonData['status'] == 'success') {
// return response.body;
// } else {
// return (jsonData['status']);
// }
// } else {
// return response.statusCode;
// }
// }
Future<dynamic> post({
required String link,
Map<String, dynamic>? payload,
}) async {
// String? basicAuthCredentials =
// await storage.read(key: BoxName.basicAuthCredentials);
var url = Uri.parse(
link,
);
var response = await http.post(
url,
body: payload,
headers: {
"Content-Type": "application/x-www-form-urlencoded",
'Authorization':
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}',
},
);
Log.print('payload: ${payload}');
Log.print('response.request: ${response.request}');
Log.print('response.body: ${response.body}');
var jsonData = jsonDecode(response.body);
if (response.statusCode == 200) {
if (jsonData['status'] == 'success') {
return response.body;
var url = Uri.parse(link);
try {
var response = await http.post(
url,
body: payload,
headers: {
"Content-Type": "application/x-www-form-urlencoded",
'Authorization':
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}',
},
);
Log.print('Response.request: ${response.request}');
Log.print('Payload: $payload');
// Log.print('Response.statusCode: ${response.statusCode}');
Log.print('Response.body: ${response.body}');
if (response.statusCode == 200) {
try {
var jsonData = jsonDecode(response.body);
if (jsonData['status'] == 'success') {
return jsonData;
} else {
return jsonData['status'];
}
} catch (e) {
Log.print('JSON parsing error: $e');
addError(e.toString(), 'crud().post');
return 'failure'; // Return a recognizable failure string for JSON errors
}
} else {
return (jsonData['status']);
Log.print('Non-200 response code: ${response.statusCode}');
addError(
'Non-200 response code: ${response.statusCode}', 'crud().post');
return 'failure'; // Handle unexpected status codes as failures
}
} else {
return response.statusCode;
} catch (e) {
Log.print('HTTP request error: $e');
addError('HTTP request error: $e', 'crud().post');
return 'failure'; // Handle HTTP request errors as failures
}
}

View File

@@ -29,7 +29,7 @@ class SmsEgyptController extends GetxController {
Future<dynamic> sendSmsEgypt(String phone, otp) async {
String sender = await getSender();
var body = jsonEncode({
"username": AppInformation.appName,
"username": 'Sefer',
"password": AK.smsPasswordEgypt,
"message": "${AppInformation.appName} app code is $otp\ncopy it to app",
"language": box.read(BoxName.lang) == 'en' ? "e" : 'r',

View File

@@ -1,49 +1,50 @@
import 'package:SEFER/constant/box_name.dart';
import 'package:SEFER/main.dart';
import 'package:flutter/material.dart';
import 'package:flutter_tts/flutter_tts.dart';
import 'package:get/get.dart';
import '../../main.dart';
class TextToSpeechController extends GetxController {
final flutterTts = FlutterTts();
// Initialize TTS in initState
@override
void onInit() {
super.onInit();
initTts();
}
// Dispose of TTS when controller is closed
@override
void onClose() {
flutterTts.stop(); // Stop any ongoing TTS
super.onClose();
flutterTts.completionHandler;
}
// Function to initialize TTS engine
// Initialize TTS engine with language check
Future<void> initTts() async {
String? lang =
WidgetsBinding.instance.platformDispatcher.locale.countryCode;
await flutterTts
.setLanguage(box.read(BoxName.lang).toString()); //'en-US' Set language
// await flutterTts.setLanguage('ar-SA'); //'en-US' Set language
// await flutterTts.setLanguage(lang!); //'en-US' Set language
await flutterTts.setSpeechRate(0.5); // Adjust speech rate
await flutterTts.setVolume(1.0); // Set volume
try {
String langCode = box.read(BoxName.lang) ?? 'en-US';
bool isAvailable = await flutterTts.isLanguageAvailable(langCode);
// If language is unavailable, default to 'en-US'
if (!isAvailable) {
langCode = 'en-US';
}
await flutterTts.setLanguage(langCode);
await flutterTts.setSpeechRate(0.5); // Adjust speech rate
await flutterTts.setVolume(1.0); // Set volume
} catch (error) {
Get.snackbar('Error', 'Failed to initialize TTS: $error');
}
}
// Function to speak the given text
Future<void> speakText(String text) async {
try {
await flutterTts.awaitSpeakCompletion(true);
var result = await flutterTts.speak(text);
if (result == 1) {
// TTS operation has started
// You can perform additional operations here, if needed
}
await flutterTts.speak(text);
} catch (error) {
// Handle error gracefully, e.g., show a message
Get.snackbar('Error', 'Failed to speak text: $error');
}
}