diff --git a/android/app/build.gradle b/android/app/build.gradle
index e2ee37a..fe59029 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -1,5 +1,9 @@
plugins {
id "com.android.application"
+ // START: FlutterFire Configuration
+ id 'com.google.gms.google-services'
+ id 'com.google.firebase.crashlytics'
+ // END: FlutterFire Configuration
id "kotlin-android"
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id "dev.flutter.flutter-gradle-plugin"
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 7c7f3d0..34a1df6 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -24,6 +24,12 @@
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
+
+
diff --git a/lib/controller/home_controller.dart b/lib/controller/home_controller.dart
index 26f243c..bfe9375 100644
--- a/lib/controller/home_controller.dart
+++ b/lib/controller/home_controller.dart
@@ -3,21 +3,113 @@ import 'package:cheminova/models/user_model.dart';
import 'package:get/get.dart';
import 'package:shared_preferences/shared_preferences.dart';
+import '../notification_service.dart';
+
class HomeController extends GetxController {
final HomeService homeService = HomeService();
+ NotificationServices notificationServices = NotificationServices();
- var user = Rxn();
+ UserModel? user;
+ // var userModel = UserModel(
+ // id: '',
+ // uniqueId: '',
+ // name: '',
+ // email: '',
+ // phone: '',
+ // role: '',
+ // sbu: '',
+ // createdAt: '',
+ // updatedAt: '',
+ // ).obs; // Observable for UserModel
@override
void onInit() {
getUser();
super.onInit();
+ notificationServices.requestNotificationPermission();
+ notificationServices.getDeviceToken().then((value) {
+ print('Device Token: $value');
+ fcmToken();
+ });
}
- Future getUser() async
- {
+ Future fcmToken() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
String? token = prefs.getString('token');
- user.value = (await homeService.getUser(token: token)) as UserModel? ;
+ final fcmToken = await NotificationServices().getDeviceToken();
+ print('fcmToken: $fcmToken');
+ homeService.fcmToken({"fcmToken": fcmToken}, token!);
+ }
+
+ Future getUser() async {
+ SharedPreferences prefs = await SharedPreferences.getInstance();
+ String? token = prefs.getString('token');
+
+ HomeService homeService = HomeService();
+ user = await homeService.getUser(token: token);
+
+ if (user != null) {
+ print(user); // For debugging, prints the user details
+ } else {
+ print('Failed to fetch user data');
+ }
}
}
+
+
+
+
+
+
+// import 'package:cheminova/controller/home_service.dart';
+// import 'package:cheminova/models/user_model.dart';
+// import 'package:get/get.dart';
+// import 'package:shared_preferences/shared_preferences.dart';
+//
+// import '../notification_service.dart';
+//
+// class HomeController extends GetxController {
+// final HomeService homeService = HomeService();
+// NotificationServices notificationServices = NotificationServices();
+//
+//
+//
+// var userModel = UserModel(id: '', uniqueId: '', name: '', email: '', phone: '', role: '', sbu: '', createdAt: '', updatedAt: ''
+//
+// ).obs; // Observable for UserModel
+//
+// @override
+// void onInit() {
+// getUser();
+// super.onInit();
+// notificationServices.requestNotificationPermission();
+// notificationServices.getDeviceToken().then((value) {
+// print('Device Token: $value');
+// fcmToken();
+// });
+// }
+//
+// Future fcmToken() async {
+// SharedPreferences prefs = await SharedPreferences.getInstance();
+// String? token = prefs.getString('token');
+// final fcmToken = await NotificationServices().getDeviceToken();
+// print('fcmToken: $fcmToken');
+// homeService.fcmToken({"fcmToken": fcmToken}, token!);
+// }
+//
+// Future getUser() async {
+// SharedPreferences prefs = await SharedPreferences.getInstance();
+//
+// String? token = prefs.getString('token');
+//
+// userModel = (await homeService.getUser(token: token)) as dynamic;
+//
+//
+// // if (userModel != null) {
+// // if (userModel != null) {ddddd
+// // userModel.value = userResponse as UserModel; // Update the userModel with API response
+// // update(); // Notify GetX to rebuild widgets using GetBuilder/Obx
+// // }
+// }
+// }
+//
diff --git a/lib/controller/home_service.dart b/lib/controller/home_service.dart
index ba5ed41..06190d4 100644
--- a/lib/controller/home_service.dart
+++ b/lib/controller/home_service.dart
@@ -1,25 +1,58 @@
import 'package:cheminova/models/user_model.dart';
+import 'package:cheminova/utils/api_urls.dart';
import 'package:cheminova/utils/common_api_service.dart';
import 'package:cheminova/utils/show_snackbar.dart';
class HomeService {
- Future