diff --git a/android/app/build.gradle b/android/app/build.gradle
index 64443c26..20b03edd 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -3,6 +3,7 @@ plugins {
id "kotlin-android"
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id "dev.flutter.flutter-gradle-plugin"
+ id "com.google.gms.google-services"
}
def localProperties = new Properties()
@@ -13,14 +14,18 @@ if (localPropertiesFile.exists()) {
}
}
+if (project.hasProperty('google-services.json')) {
+ apply plugin: 'com.google.gms.google-services'
+}
+
def flutterVersionCode = localProperties.getProperty("flutter.versionCode")
if (flutterVersionCode == null) {
- flutterVersionCode = "28"
+ flutterVersionCode = "31"
}
def flutterVersionName = localProperties.getProperty("flutter.versionName")
if (flutterVersionName == null) {
- flutterVersionName = "1.0.27"
+ flutterVersionName = "1.0.30"
}
def keystorePropertiesFile = rootProject.file("key.properties")
@@ -46,7 +51,7 @@ android {
applicationId = "ae.gov.fcsc.frontend"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
- minSdk = flutter.minSdkVersion
+ minSdk = 23
targetSdk = flutter.targetSdkVersion
versionCode = flutterVersionCode.toInteger()
versionName = flutterVersionName
@@ -75,3 +80,9 @@ android {
flutter {
source = "../.."
}
+
+dependencies {
+ implementation(platform("com.google.firebase:firebase-bom:33.1.2"))
+ implementation 'com.google.firebase:firebase-messaging:22.0.0'
+ implementation("com.google.firebase:firebase-auth:23.0.0")
+}
diff --git a/android/app/google-services.json b/android/app/google-services.json
new file mode 100644
index 00000000..2dfa060b
--- /dev/null
+++ b/android/app/google-services.json
@@ -0,0 +1,29 @@
+{
+ "project_info": {
+ "project_number": "62132243005",
+ "project_id": "fcsc-a161c",
+ "storage_bucket": "fcsc-a161c.firebasestorage.app"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:62132243005:android:18b7ca94608afaeb7c7854",
+ "android_client_info": {
+ "package_name": "ae.gov.fcsc.frontend"
+ }
+ },
+ "oauth_client": [],
+ "api_key": [
+ {
+ "current_key": "AIzaSyB-QQbnq366f7rrKLVVFJKnSZgR9LcDWFI"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": []
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index a570820b..ee29d442 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -63,4 +63,4 @@
-
\ No newline at end of file
+
diff --git a/android/build.gradle b/android/build.gradle
index 8e9de9d8..0f6859f8 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -1,3 +1,14 @@
+buildscript {
+ repositories {
+ google()
+ mavenCentral()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:8.1.0' // Update this if needed
+ classpath 'com.google.gms:google-services:4.3.10' // ✅ Required for Firebase
+ }
+}
+
allprojects {
repositories {
google()
diff --git a/android/settings.gradle b/android/settings.gradle
index 2db302b0..f01fbe2d 100644
--- a/android/settings.gradle
+++ b/android/settings.gradle
@@ -20,7 +20,7 @@ plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "8.2.1" apply false
id "org.jetbrains.kotlin.android" version "2.1.0" apply false
-
+ id("com.google.gms.google-services") version "4.4.2" apply false
}
include ":app"
diff --git a/assets/FCSC-GIF.gif b/assets/FCSC-GIF.gif
new file mode 100644
index 00000000..46e243b0
Binary files /dev/null and b/assets/FCSC-GIF.gif differ
diff --git a/assets/backgrounds/Notification/App-Update.png b/assets/backgrounds/Notification/App-Update.png
index 8767ad9b..a19e94e9 100644
Binary files a/assets/backgrounds/Notification/App-Update.png and b/assets/backgrounds/Notification/App-Update.png differ
diff --git a/assets/backgrounds/Notification/Update_notific.png b/assets/backgrounds/Notification/Update_notific.png
index c772f7a6..e1b87b59 100644
Binary files a/assets/backgrounds/Notification/Update_notific.png and b/assets/backgrounds/Notification/Update_notific.png differ
diff --git a/lib/config/api_config.dart b/lib/config/api_config.dart
index 07b7c7f4..6ec553f9 100644
--- a/lib/config/api_config.dart
+++ b/lib/config/api_config.dart
@@ -1,3 +1,4 @@
// api_config.dart
// const String apiUrl = 'http://192.168.1.26:8090';
-const String apiUrl = 'https://pbdev.venbait.in/';
+// const String apiUrl = 'https://pbdev.venbait.in/';
+const String apiUrl = 'https://pb.venbait.in/';
diff --git a/lib/config/loading_overlay.dart b/lib/config/loading_overlay.dart
new file mode 100644
index 00000000..6830314b
--- /dev/null
+++ b/lib/config/loading_overlay.dart
@@ -0,0 +1,36 @@
+import 'package:flutter/material.dart';
+
+class LoadingOverlay {
+ static final ValueNotifier _isLoading = ValueNotifier(false);
+
+ static void show() {
+ _isLoading.value = true;
+ }
+
+ static void hide() {
+ _isLoading.value = false;
+ }
+
+ static Widget buildLoader() {
+ return ValueListenableBuilder(
+ valueListenable: _isLoading,
+ builder: (context, isLoading, child) {
+ return isLoading
+ ? Stack(
+ children: [
+ ModalBarrier(
+ color: Colors.black.withOpacity(0.5), dismissible: false),
+ Center(
+ child: Image.asset(
+ "assets/images/loading.gif", // Make sure to add the GIF in assets
+ width: 100,
+ height: 100,
+ ),
+ ),
+ ],
+ )
+ : const SizedBox.shrink();
+ },
+ );
+ }
+}
diff --git a/lib/config/my_router.dart b/lib/config/my_router.dart
index 00f2c6a0..a003bdec 100644
--- a/lib/config/my_router.dart
+++ b/lib/config/my_router.dart
@@ -307,6 +307,7 @@ import 'package:uae_stat/presentation/Screens/charts/screens/chart_screen.dart';
import 'package:uae_stat/presentation/Screens/demo_home2.dart';
import 'package:uae_stat/presentation/Screens/online_offline_verification/internet_check.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/Drawer%20Items/notification/notification.dart';
+import 'package:uae_stat/presentation/routes/drawer_routes/Drawer%20Items/notification/notification_details.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/Drawer%20Items/user_guide/AboutTheApp/AboutFCSC.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/Drawer%20Items/user_guide/AboutTheApp/getStarted.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/Drawer%20Items/user_guide/KeyFeatures/AppFeatures.dart';
@@ -366,7 +367,6 @@ final GoRouter router = GoRouter(
path: '/',
//builder: (context, state) => LoginRoute(),
builder: (context, state) => SessionCheckScreen(),
-
),
// GoRoute(
// path: '/',
@@ -426,8 +426,7 @@ final GoRouter router = GoRouter(
state.uri.queryParameters['filter_data']!.isNotEmpty) {
try {
filterData = List