Revert the project to the previous structure with applying null safety
parent
82e3005e85
commit
cd4ff9e3a0
@ -1,17 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
|
||||||
import 'package:test_sa/core/enums.dart' show SupportedLanguagesEnum;
|
|
||||||
|
|
||||||
class AppLocalizations {
|
|
||||||
AppLocalizations._();
|
|
||||||
|
|
||||||
static List<Locale> supportedLocales =
|
|
||||||
SupportedLanguagesEnum.values.map((e) => Locale(e.name)).toList();
|
|
||||||
|
|
||||||
static List<LocalizationsDelegate> get delegates => const [
|
|
||||||
// AppLocalization.delegate,
|
|
||||||
GlobalMaterialLocalizations.delegate,
|
|
||||||
GlobalWidgetsLocalizations.delegate,
|
|
||||||
GlobalCupertinoLocalizations.delegate,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:test_sa/screens/login_screen/login_screen.dart';
|
|
||||||
import 'package:test_sa/screens/splash_screen/splash_screen.dart';
|
|
||||||
|
|
||||||
Map<String, Widget Function(BuildContext)> appRoutes = {
|
|
||||||
SplashScreen.routeName: (_) => const SplashScreen(),
|
|
||||||
LoginScreen.routeName: (_) => const LoginScreen(),
|
|
||||||
// LandPage.routeName: (_) => const LandPage(),
|
|
||||||
// Register.routeName: (_) => Register(),
|
|
||||||
// ProfilePage.routeName: (_) => ProfilePage(),
|
|
||||||
// ReportIssuesPage.routeName: (_) => const ReportIssuesPage(),
|
|
||||||
// RequestGasRefill.routeName: (_) => const RequestGasRefill(),
|
|
||||||
// CreateRequestPage.routeName: (_) => CreateRequestPage(),
|
|
||||||
// SingleHospitalPicker.routeName: (_) => SingleHospitalPicker(),
|
|
||||||
// SingleDevicePicker.routeName: (_) => SingleDevicePicker(),
|
|
||||||
// SingleDepartmentPicker.routeName: (_) => SingleDepartmentPicker(),
|
|
||||||
// ServiceRequestsPage.routeName: (_) => ServiceRequestsPage(),
|
|
||||||
// NotificationsPage.routeName: (_) => NotificationsPage(),
|
|
||||||
// FutureRequestServiceDetails.routeName: (_) =>
|
|
||||||
// FutureRequestServiceDetails(),
|
|
||||||
// PreventiveMaintenanceVisitsPage.routeName: (_) =>
|
|
||||||
// PreventiveMaintenanceVisitsPage(),
|
|
||||||
// RegularVisitsPage.routeName: (_) => RegularVisitsPage(),
|
|
||||||
// TrackGasRefillPage.routeName: (_) => const TrackGasRefillPage(),
|
|
||||||
// RequestDeviceTransfer.routeName: (_) =>
|
|
||||||
// const RequestDeviceTransfer(),
|
|
||||||
// TrackDeviceTransferPage.routeName: (_) =>
|
|
||||||
// const TrackDeviceTransferPage(),
|
|
||||||
};
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:test_sa/core/constants/app_colors.dart';
|
|
||||||
|
|
||||||
class AppTheme {
|
|
||||||
AppTheme._();
|
|
||||||
|
|
||||||
static get theme => ThemeData(
|
|
||||||
fontFamily: "Poppins",
|
|
||||||
canvasColor: AppColors.primaryColor,
|
|
||||||
scaffoldBackgroundColor: AppColors.scaffoldBackgroundColor,
|
|
||||||
primaryColor: AppColors.primaryColor,
|
|
||||||
indicatorColor: AppColors.primaryColor,
|
|
||||||
colorScheme: const ColorScheme.light(
|
|
||||||
primary: AppColors.primaryColor,
|
|
||||||
onPrimary: Colors.white,
|
|
||||||
secondary: AppColors.secondaryColor,
|
|
||||||
onSecondary: Colors.white,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@ -1,66 +0,0 @@
|
|||||||
class ApiConstants {
|
|
||||||
ApiConstants._();
|
|
||||||
static const host2 = "http://194.163.164.213/atoms/api";
|
|
||||||
static const host1 = "https://atoms.hmg.com/api";
|
|
||||||
|
|
||||||
// API Routes
|
|
||||||
static const login = "/handle/user/login"; // post
|
|
||||||
static const register = "/handle/create/user"; // post
|
|
||||||
static const updateProfile = "/update/user/profile"; // post
|
|
||||||
static const getHospitals = "/handle/return/all/clients"; // get
|
|
||||||
static const getDepartments = "/handle/return/all/departments"; // get
|
|
||||||
static const getEquipment = "/handle/return/all/client/equipments"; // get ?client=208051
|
|
||||||
static const getServiceRequests = "/return/user/calls"; // get
|
|
||||||
|
|
||||||
static const getPreventiveMaintenanceVisits = "/return/user/calibrations"; // get
|
|
||||||
static const updatePreventiveMaintenanceVisits = "/update/user/calibrations"; // get
|
|
||||||
|
|
||||||
static const getRegularVisits = "/return/user/ppm"; // get
|
|
||||||
static const updateRegularVisits = "/update/user/ppm"; // get
|
|
||||||
|
|
||||||
static const getSingleServiceRequest = "/return/call/information"; // get
|
|
||||||
static const getNotifications = "/return/user/notification"; // get
|
|
||||||
static const getRecentNotifications = "/return/user/recent/notification"; // get
|
|
||||||
static const createRequest = "/handle/create/request"; // get
|
|
||||||
static const createReport = "/handle/create/report/issue"; // get
|
|
||||||
static const updateRequestDate = "/handle/update/request"; // get
|
|
||||||
|
|
||||||
// service report
|
|
||||||
static const createServiceReport = "/handle/create/service/report"; // get
|
|
||||||
static const updateServiceReport = "/handle/update/service/report"; // get
|
|
||||||
static const getServiceReport = "/handle/view/service/report"; // get
|
|
||||||
static const createDuplicatedReport = "/handle/duplicate/request"; // get
|
|
||||||
|
|
||||||
static const getServiceReportReasons = "/return/service/report/reasons"; // get
|
|
||||||
static const getServiceReportTypes = "/return/service/report/type"; // get
|
|
||||||
static const getServiceReportStatus = "/return/service/report/status"; // get
|
|
||||||
static const getServiceReportLastCalls = "/return/call/last/situation"; // get
|
|
||||||
static const getServiceTypes = "/return/service/type"; // get
|
|
||||||
static const getPartNumber = "/handle/return/all/parts"; // get
|
|
||||||
static const getServiceReportPriority = "/return/call/priority/list"; // get
|
|
||||||
static const getServiceReportDefectTypes = "/return/call/defect/type/list"; // get
|
|
||||||
|
|
||||||
//gas refill
|
|
||||||
static const getGasTypes = "/return/gas/refill/types"; // get
|
|
||||||
static const getGasCylinderSize = "/return/gas/refill/size/cylinder"; // get
|
|
||||||
static const getGasStatus = "/return/gas/refill/status"; // get
|
|
||||||
static const requestGasRefill = "/create/gas/refill"; // get
|
|
||||||
static const updateGasRefill = "/update/gas/refill/"; // get
|
|
||||||
static const getGasRefill = "/search/gas/refill"; // get
|
|
||||||
|
|
||||||
//device transfer
|
|
||||||
static const requestDeviceTransfer = "/create/transfer/asset"; // get
|
|
||||||
static const updateDeviceTransfer = "/update/transfer/asset"; // get
|
|
||||||
static const getDeviceTransfer = "/search/transfer/asset"; // get
|
|
||||||
|
|
||||||
// employee
|
|
||||||
static const getEmployees = "/return/assigned/employee"; // get
|
|
||||||
// pentry
|
|
||||||
static const getPentry = "/return/pentry/details"; // get
|
|
||||||
static const updatePentry = "/update/pentry/details"; // get
|
|
||||||
static const getPentryTaskStatus = "/return/pentry/task/status"; // get
|
|
||||||
static const getPentryVisitStatus = "/return/pentry/visit/status/list"; // get
|
|
||||||
static const getPentryStatus = "/return/pentry/status/list"; // get
|
|
||||||
// contacts
|
|
||||||
static const getPentryContacts = "/handle/return/all/contacts"; // get
|
|
||||||
}
|
|
||||||
@ -1,50 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
class AppColors {
|
|
||||||
AppColors._();
|
|
||||||
|
|
||||||
static const Color white = Color(0xffffffff);
|
|
||||||
static const Color black = Color(0xff000000);
|
|
||||||
static const Color grey3A = Color(0xff2e303a);
|
|
||||||
static const Color grey = Color(0xffe1e7e7);
|
|
||||||
static const green = Colors.green;
|
|
||||||
static const Color orange = Colors.orange;
|
|
||||||
static const Color deepOrange = Colors.deepOrangeAccent;
|
|
||||||
static const Color red = Colors.red;
|
|
||||||
static const Color deepRed = Color(0xFFD32F2F);
|
|
||||||
static const Color scaffoldBackgroundColor = Color(0xffffffff);
|
|
||||||
static const Color secondaryColor = Color(0xff111427);
|
|
||||||
static const Color primaryColor = Color(0xff5bb0da);
|
|
||||||
static const Color cyan = Color(0xff4A8DB7);
|
|
||||||
static const Color onPrimaryColor = Color(0xffffffff);
|
|
||||||
static const Color inputFieldBackgroundColor = Color(0xfff5f5f5);
|
|
||||||
static const Color greyEF = Color(0xffEFEFEF);
|
|
||||||
|
|
||||||
static Color getRequestStatusColor(int id) {
|
|
||||||
switch (id) {
|
|
||||||
case 4:
|
|
||||||
return deepRed;
|
|
||||||
case 6:
|
|
||||||
return green;
|
|
||||||
case 5:
|
|
||||||
return orange;
|
|
||||||
case 8:
|
|
||||||
return green;
|
|
||||||
case 9:
|
|
||||||
return orange;
|
|
||||||
default:
|
|
||||||
return grey;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static Color getGasStatusColor(int id) {
|
|
||||||
switch (id) {
|
|
||||||
case 0:
|
|
||||||
return orange;
|
|
||||||
case 1:
|
|
||||||
return green;
|
|
||||||
default:
|
|
||||||
return grey;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
enum SupportedLanguagesEnum { ar, en }
|
|
||||||
|
|
||||||
enum RequestMethod { get, post, put, delete }
|
|
||||||
|
|
||||||
enum ApiExceptionsEnum {
|
|
||||||
badRequest(10),
|
|
||||||
unauthorized(10),
|
|
||||||
forbidden(10),
|
|
||||||
notFound(10),
|
|
||||||
internalServerError(10),
|
|
||||||
upgradeRequired(10),
|
|
||||||
badResponseFormat(10),
|
|
||||||
other(10),
|
|
||||||
timeout(10),
|
|
||||||
unknown(10);
|
|
||||||
|
|
||||||
final int statusCode;
|
|
||||||
|
|
||||||
const ApiExceptionsEnum(this.statusCode);
|
|
||||||
}
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
import 'package:flutter/widgets.dart';
|
|
||||||
|
|
||||||
extension ContextExtension on BuildContext {}
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:test_sa/core/constants/app_colors.dart';
|
|
||||||
|
|
||||||
extension NumExtension on num {
|
|
||||||
Widget get height => SizedBox(height: toDouble());
|
|
||||||
|
|
||||||
Widget get width => SizedBox(width: toDouble());
|
|
||||||
|
|
||||||
Widget get divider => Divider(
|
|
||||||
height: toDouble(),
|
|
||||||
thickness: toDouble(),
|
|
||||||
color: AppColors.greyEF,
|
|
||||||
);
|
|
||||||
|
|
||||||
Widget get makeItSquare => SizedBox(width: toDouble(), height: toDouble());
|
|
||||||
}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
extension StringExtension on String {}
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
extension WidgetExtension on Widget {}
|
|
||||||
@ -1,46 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:provider/provider.dart';
|
|
||||||
import 'package:test_sa/providers/settings_provider.dart';
|
|
||||||
|
|
||||||
class ProviderScope extends StatelessWidget {
|
|
||||||
final Widget child;
|
|
||||||
|
|
||||||
const ProviderScope({required this.child, Key? key}) : super(key: key);
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return MultiProvider(
|
|
||||||
providers: [
|
|
||||||
ChangeNotifierProvider(create: (_) => SettingsProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => UserProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => HospitalsProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => DevicesProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => ServiceRequestsProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => DepartmentsProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => NotificationsProvider()),
|
|
||||||
// ChangeNotifierProvider(
|
|
||||||
// create: (_) => PreventiveMaintenanceVisitsProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => RegularVisitsProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => PartsProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => ServiceReportReasonsProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => ServiceReportStatusProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => ServiceReportTypesProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => ServiceStatusProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => ServiceReportLastCallsProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => GasCylinderSizesProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => GasStatusProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => GasTypesProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => GasRefillProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => DeviceTransferProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => EmployeesProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => PentryTaskStatusProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => PentryVisitStatusProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => PentryStatusProvider()),
|
|
||||||
// ChangeNotifierProvider(create: (_) => ServiceRequestPriorityProvider()),
|
|
||||||
// ChangeNotifierProvider(
|
|
||||||
// create: (_) => ServiceRequestDefectTypesProvider()),
|
|
||||||
],
|
|
||||||
child: child,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,57 +0,0 @@
|
|||||||
import 'dart:convert';
|
|
||||||
|
|
||||||
import 'package:http/http.dart' as http;
|
|
||||||
import 'package:test_sa/core/enums.dart';
|
|
||||||
|
|
||||||
class ApiClient {
|
|
||||||
final String baseUrl, endPoint;
|
|
||||||
final RequestMethod requestMethod;
|
|
||||||
|
|
||||||
ApiClient.request({
|
|
||||||
required this.baseUrl,
|
|
||||||
required this.endPoint,
|
|
||||||
required this.requestMethod,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<Map<String, dynamic>> execute({
|
|
||||||
Map<String, String>? headers,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
Object? body,
|
|
||||||
}) async {
|
|
||||||
final url = Uri.tryParse(baseUrl + endPoint);
|
|
||||||
if (url != null) {
|
|
||||||
late http.Response response;
|
|
||||||
switch (requestMethod) {
|
|
||||||
case RequestMethod.get:
|
|
||||||
response = await http.get(url, headers: headers);
|
|
||||||
break;
|
|
||||||
case RequestMethod.post:
|
|
||||||
response = await http.post(url, headers: headers, body: body);
|
|
||||||
break;
|
|
||||||
case RequestMethod.put:
|
|
||||||
response = await http.put(url, headers: headers, body: body);
|
|
||||||
break;
|
|
||||||
case RequestMethod.delete:
|
|
||||||
response = await http.delete(url, headers: headers, body: body);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return await _handleResponse(response);
|
|
||||||
} else {
|
|
||||||
throw ApiExceptionsEnum.other;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<Map<String, dynamic>> _handleResponse(http.Response response) {
|
|
||||||
print('status code ${response.statusCode} : ${response.request?.url}');
|
|
||||||
if (response.statusCode == 200) {
|
|
||||||
return jsonDecode(response.body);
|
|
||||||
} else if (response.statusCode == 401) {
|
|
||||||
throw ApiExceptionsEnum.unauthorized;
|
|
||||||
} else if (response.statusCode == 400) {
|
|
||||||
throw ApiExceptionsEnum.badRequest;
|
|
||||||
} else if (response.statusCode == 500) {
|
|
||||||
throw ApiExceptionsEnum.internalServerError;
|
|
||||||
}
|
|
||||||
throw ApiExceptionsEnum.unknown;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,18 +0,0 @@
|
|||||||
import 'package:test_sa/core/enums.dart';
|
|
||||||
import 'package:test_sa/data/api/api_client.dart';
|
|
||||||
import 'package:test_sa/data/models/user_model.dart';
|
|
||||||
|
|
||||||
class UserService {
|
|
||||||
static UserService instance = UserService._internal();
|
|
||||||
|
|
||||||
UserService._internal();
|
|
||||||
|
|
||||||
Future<UserModel> getUser() async {
|
|
||||||
final response = await ApiClient.request(
|
|
||||||
baseUrl: 'baseUrl',
|
|
||||||
endPoint: 'endPoint',
|
|
||||||
requestMethod: RequestMethod.get,
|
|
||||||
).execute();
|
|
||||||
return UserModel.fromJson(response);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
class UserModel {
|
|
||||||
UserModel();
|
|
||||||
|
|
||||||
factory UserModel.fromJson(Map<String, dynamic> json) {
|
|
||||||
return UserModel();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
class SettingsProvider with ChangeNotifier {
|
|
||||||
Locale? _locale;
|
|
||||||
|
|
||||||
Locale? get locale => _locale;
|
|
||||||
|
|
||||||
set locale(Locale? value) {
|
|
||||||
_locale = value;
|
|
||||||
notifyListeners();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
class LoginScreen extends StatelessWidget {
|
|
||||||
static const routeName = '/loginScreen';
|
|
||||||
|
|
||||||
const LoginScreen({Key? key}) : super(key: key);
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return const Scaffold();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
import 'package:flare_flutter/flare_actor.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:test_sa/screens/login_screen/login_screen.dart';
|
|
||||||
|
|
||||||
class SplashScreen extends StatelessWidget {
|
|
||||||
static const routeName = "/splashScreen";
|
|
||||||
|
|
||||||
const SplashScreen({Key? key}) : super(key: key);
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Scaffold(
|
|
||||||
backgroundColor: Colors.white,
|
|
||||||
body: Center(
|
|
||||||
child: SizedBox(
|
|
||||||
width: MediaQuery.of(context).size.width / 1.1,
|
|
||||||
child: FlareActor(
|
|
||||||
"assets/rives/atoms_splash.flr",
|
|
||||||
fit: BoxFit.contain,
|
|
||||||
animation: "splash",
|
|
||||||
callback: (animation) async {
|
|
||||||
Navigator.of(context).pushNamed(LoginScreen.routeName);
|
|
||||||
// if (_settingProvider.isLoaded && _settingProvider.user != null) {
|
|
||||||
// _goToUserScreen(_settingProvider.user);
|
|
||||||
// }
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue