diff --git a/android/app/build.gradle b/android/app/build.gradle
index 4e3131e..d1ee905 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -1,59 +1,68 @@
plugins {
id "com.android.application"
id "kotlin-android"
- // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id "dev.flutter.flutter-gradle-plugin"
}
-def localProperties = new Properties()
-def localPropertiesFile = rootProject.file("local.properties")
-if (localPropertiesFile.exists()) {
- localPropertiesFile.withReader("UTF-8") { reader ->
- localProperties.load(reader)
- }
+// Load key.properties for signing release builds
+def keystoreProperties = new Properties()
+def keystorePropertiesFile = rootProject.file("key.properties")
+if (keystorePropertiesFile.exists()) {
+ keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
-def flutterVersionCode = localProperties.getProperty("flutter.versionCode")
-if (flutterVersionCode == null) {
- flutterVersionCode = "1"
-}
-
-def flutterVersionName = localProperties.getProperty("flutter.versionName")
-if (flutterVersionName == null) {
- flutterVersionName = "1.0"
-}
+// Flutter versioning
+def flutterVersionCode = 12
+def flutterVersionName = "1.0.4"
android {
namespace = "com.frontshop.userapp"
- compileSdk = flutter.compileSdkVersion
- ndkVersion = flutter.ndkVersion
+ compileSdk = 35
+ ndkVersion = "26.1.10909125" // Optional; only if you use native code
- compileOptions {
- sourceCompatibility = JavaVersion.VERSION_1_8
- targetCompatibility = JavaVersion.VERSION_1_8
+ defaultConfig {
+ applicationId = "com.frontshop.userapp"
+ minSdk = 23
+ targetSdk = 35
+ versionCode = flutterVersionCode
+ versionName = flutterVersionName
}
- defaultConfig
- {
- // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
- applicationId = "com.frontshop.userapp"
- // 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
- targetSdk = flutter.targetSdkVersion
- versionCode = flutterVersionCode.toInteger()
- versionName = flutterVersionName
+ signingConfigs {
+ release {
+ storeFile file(keystoreProperties['storeFile'])
+ storePassword keystoreProperties['storePassword']
+ keyAlias keystoreProperties['keyAlias']
+ keyPassword keystoreProperties['keyPassword']
+ }
}
buildTypes {
release {
- // TODO: Add your own signing config for the release build.
- // Signing with the debug keys for now, so `flutter run --release` works.
- signingConfig = signingConfigs.debug
+ signingConfig = signingConfigs.release
+ minifyEnabled false
+ shrinkResources false
}
}
+
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ coreLibraryDesugaringEnabled true
+ }
+
+ kotlinOptions {
+ jvmTarget = '1.8'
+ }
}
flutter {
source = "../.."
}
+
+dependencies {
+ coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'
+
+ // ✅ PhonePe SDK - ensure this matches your maven URL from root `build.gradle`
+
+}
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 99334ae..ce4ee10 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -1,35 +1,35 @@
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
+
+
+ android:name="io.flutter.embedding.android.NormalTheme"
+ android:resource="@style/NormalTheme"/>
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
-
+ android:value="AIzaSyAi3_Dls63iGs7Nccgdm-4FkS0rhT03-4U"/>
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/android/app/src/main/kotlin/com/frontshop/userapp/MainActivity.kt b/android/app/src/main/kotlin/com/frontshop/userapp/MainActivity.kt
index 65c3896..dd18c66 100644
--- a/android/app/src/main/kotlin/com/frontshop/userapp/MainActivity.kt
+++ b/android/app/src/main/kotlin/com/frontshop/userapp/MainActivity.kt
@@ -1,5 +1,3 @@
package com.frontshop.userapp
-
-import io.flutter.embedding.android.FlutterActivity
-
-class MainActivity: FlutterActivity()
+import io.flutter.embedding.android.FlutterFragmentActivity
+class MainActivity : FlutterFragmentActivity()
\ No newline at end of file
diff --git a/android/build.gradle b/android/build.gradle
index d2ffbff..7958baa 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -2,14 +2,18 @@ allprojects {
repositories {
google()
mavenCentral()
+
+ // ✅ Required for PhonePe SDK
+ maven {
+ url "https://phonepe.mycloudrepo.io/public/repositories/phonepe-intentsdk-android"
+ }
}
}
rootProject.buildDir = "../build"
+
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
-}
-subprojects {
project.evaluationDependsOn(":app")
}
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
index c44290f..6126612 100644
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -2,4 +2,5 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip
+
diff --git a/android/settings.gradle b/android/settings.gradle
index c5fb685..e61daf1 100644
--- a/android/settings.gradle
+++ b/android/settings.gradle
@@ -18,7 +18,7 @@ pluginManagement {
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
- id "com.android.application" version "7.3.0" apply false
+ id "com.android.application" version "8.6.0" apply false
id "org.jetbrains.kotlin.android" version "1.9.10" apply false
}
diff --git a/ios/Podfile b/ios/Podfile
index d97f17e..e51a31d 100644
--- a/ios/Podfile
+++ b/ios/Podfile
@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
-# platform :ios, '12.0'
+# platform :ios, '13.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index 8554444..fe888c0 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -45,5 +45,21 @@
UIApplicationSupportsIndirectInputEvents
+ LSApplicationQueriesSchemes
+
+ tez
+ phonepe
+ paytmmp
+ bhim
+
+ CFBundleURLTypes
+
+
+ CFBundleURLSchemes
+
+ frontshop
+
+
+
diff --git a/lib/src/core/constant/api.dart b/lib/src/core/constant/api.dart
index e513cde..4fb73eb 100644
--- a/lib/src/core/constant/api.dart
+++ b/lib/src/core/constant/api.dart
@@ -1,11 +1,11 @@
class APIURL {
- static const BASE_URL = "http://210.89.44.183:3333/xam/";
+ static const BASE_URL = "https://www.mv.frontshopemporium.in/xam/";
static const String sendOtp = "${BASE_URL}auth/send-otp/customer";
static const String verifyOtp = "${BASE_URL}auth/verify-otp/customer";
static const String loginOtp = "${BASE_URL}auth/login/customer";
static const String login = "${BASE_URL}auth/login/vendor";
static const String customerRegister = "${BASE_URL}auth/register/customer";
- static const String getAllProduct = "${BASE_URL}products";
+ static const String getAllProduct = "${BASE_URL}products?order=home";
static const String getProductDetails = "${BASE_URL}products/";
static const String getBanners = "${BASE_URL}banners";
static const String customerLogOut = "${BASE_URL}auth/logout/customer";
@@ -39,6 +39,8 @@ class APIURL {
static const String getProduct = "${BASE_URL}products";
static const String getCategoryByLevel = "${BASE_URL}categories/by-level/1";
static const String getMe = "${BASE_URL}auth/me";
+ static const String distanctByProduct = "${BASE_URL}distance/delivery-charges-by-distance";
+
static const String createProduct = "${BASE_URL}products";
@@ -50,6 +52,7 @@ class APIURL {
static const String updateStatus = "${BASE_URL}orders/items/";
static const String checkAddress = "${BASE_URL}distance/by-address/";
+
static const String productReview = "${BASE_URL}products/";
static const String upDateDeviceToken = "${BASE_URL}devices/register";
diff --git a/lib/src/logic/provider/addTocart_provider.dart b/lib/src/logic/provider/addTocart_provider.dart
index bcd8903..15e2b37 100644
--- a/lib/src/logic/provider/addTocart_provider.dart
+++ b/lib/src/logic/provider/addTocart_provider.dart
@@ -377,75 +377,66 @@ class AddtocartProvider extends ChangeNotifier {
////////////////////////////COD ////////////
- Future paymentCODOrder(
- BuildContext context,
- double subtotal,
- int deliverCharge,
- String couponId,
- String addressId,
- ) async {
+ Future paymentCODOrder(
+ BuildContext context,
+ double subtotal,
+ int deliverCharge,
+ String couponId,
+ String addressId,
+ ) async {
ispaymentLoader = true;
notifyListeners();
- var data;
- if (couponId.isNotEmpty) {
- data = {
- "addressId": addressId,
- "paymentMethod": "COD",
- "paymentStatus": "PENDING",
- "orderStatus": "PENDING",
- "subtotal": subtotal,
- "deliveryCharge": deliverCharge,
- "transactionId": "phonepe_transaction_123",
- "couponId": couponId
- };
- } else {
- data = {
- "addressId": addressId,
- "paymentMethod": "COD",
- "paymentStatus": "PENDING",
- "orderStatus": "PENDING",
- "subtotal": subtotal,
- "deliveryCharge": deliverCharge,
- };
- }
- print("kjfhxgkljfhg ${data}");
+ var data = {
+ "addressId": addressId,
+ "paymentMethod": "COD",
+ "paymentStatus": "PENDING",
+ "orderStatus": "PENDING",
+ "subtotal": subtotal,
+ "deliveryCharge": deliverCharge,
+ };
+
+ if (couponId.isNotEmpty) {
+ data["couponId"] = couponId;
+ data["transactionId"] = "phonepe_transaction_123";
+ }
try {
var result = await _homeRepo.paymentCODOrder(data);
return result.fold(
- (error) {
+ (error) {
Fluttertoast.showToast(
msg: "${error.message}",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
- backgroundColor: Colors.green,
+ backgroundColor: Colors.red,
textColor: Colors.white,
fontSize: 14.0,
);
ispaymentLoader = false;
notifyListeners();
+ return false;
},
- (response) {
- context.clearAndPush(routePath: MyRoutes.SUCCESSPAYMENT);
-
+ (response) {
ispaymentLoader = false;
notifyListeners();
+ return true;
},
);
} catch (e) {
ispaymentLoader = false;
+ notifyListeners();
Fluttertoast.showToast(
msg: "${e}",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
- backgroundColor: Colors.green,
+ backgroundColor: Colors.red,
textColor: Colors.white,
fontSize: 14.0,
);
- notifyListeners();
+ return false;
}
}
diff --git a/lib/src/ui/card_checkout/card_checkout_screen.dart b/lib/src/ui/card_checkout/card_checkout_screen.dart
index 3ab33e0..b662cbb 100644
--- a/lib/src/ui/card_checkout/card_checkout_screen.dart
+++ b/lib/src/ui/card_checkout/card_checkout_screen.dart
@@ -1,13 +1,17 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
+import 'package:fluttertoast/fluttertoast.dart';
import 'package:grocery_app/src/common_widget/name_text_field.dart';
import 'package:grocery_app/src/common_widget/network_image.dart';
import 'package:grocery_app/src/logic/provider/addTocart_provider.dart';
+import 'package:grocery_app/src/ui/payment/phonepe_payment.dart';
import 'package:grocery_app/utils/constants/assets_constant.dart';
import 'package:grocery_app/utils/constants/color_constant.dart';
import 'package:grocery_app/utils/extensions/uicontext.dart';
import 'package:provider/provider.dart';
+import '../payment/razorpay_payment.dart';
+
class CardCheckoutScreen extends StatefulWidget {
int deliveryCharge;
// String currency;
@@ -15,7 +19,7 @@ class CardCheckoutScreen extends StatefulWidget {
// String name;
// String phone;
// String email;
- // String userId;
+ String userId;
String cartId;
String addressId;
// String remarks;
@@ -30,7 +34,7 @@ class CardCheckoutScreen extends StatefulWidget {
// required this.name,
// required this.phone,
// required this.email,
- // required this.userId,
+ required this.userId,
required this.cartId,
required this.addressId,
// required this.remarks,
@@ -84,7 +88,7 @@ class _CardCheckoutScreenState extends State {
),
Expanded(
child: InkWell(
- onTap: () {
+ /* onTap: () {
if (paymentProvider.selectedPaymentMethod == "Online") {
print("dsjfkhkdfhgdkfghdfg");
paymentProvider.orderPaymnet(
@@ -93,7 +97,8 @@ class _CardCheckoutScreenState extends State {
widget.cartId,
widget.addressId,
widget.couponId!);
- } else {
+ }
+ else {
paymentProvider.paymentCODOrder(
context,
widget.originalAmount,
@@ -102,6 +107,68 @@ class _CardCheckoutScreenState extends State {
widget.addressId,
);
}
+ },*/
+ onTap: (){
+ if(paymentProvider.selectedPaymentMethod!=null) {
+ if (paymentProvider.selectedPaymentMethod ==
+ "razorpay") {
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (context) =>
+ RazorpayPaymentScreen(
+ amount: widget.originalAmount +
+ widget.deliveryCharge,
+ cartId: widget.cartId,
+ addressId: widget.addressId,
+ couponId: widget.couponId,
+ userId: widget.userId,
+ ),
+ ),
+ );
+ } else if (paymentProvider.selectedPaymentMethod ==
+ "phonepe") {
+ // Navigate to PhonePe screen (optional for now)
+ // Replace this when you implement PhonePe
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (context) =>
+ PhonePePaymentScreen(
+ amount: widget.originalAmount +
+ widget.deliveryCharge,
+ cartId: widget.cartId,
+ addressId: widget.addressId,
+ //couponId: widget.couponId,
+ userId: widget.userId,
+ ),
+ ),
+ );
+ /* ScaffoldMessenger.of(context).showSnackBar(
+ SnackBar(content: Text("PhonePe integration coming soon")),
+ );*/
+ } /*
+ else {
+ paymentProvider.paymentCODOrder(
+ context,
+ widget.originalAmount,
+ widget.deliveryCharge,
+ widget.couponId ?? "",
+ widget.addressId,
+ );
+ }*/
+ }else
+ {
+ Fluttertoast.showToast(
+ msg: "Select Payment method",
+ toastLength: Toast.LENGTH_SHORT,
+ gravity: ToastGravity.BOTTOM,
+ backgroundColor: Colors.green,
+ textColor: Colors.white,
+ fontSize: 14.0,
+ );
+
+ }
},
child: Container(
height: 50,
@@ -173,16 +240,34 @@ class _CardCheckoutScreenState extends State {
),
SizedBox(height: 0),
- ListTile(
+ /* ListTile(
leading: Icon(Icons.payment, color: Colors.blue),
title: Text("Online Payment"),
trailing: paymentProvider.selectedPaymentMethod == "Online"
? Icon(Icons.check_circle, color: Colors.green)
: null,
onTap: () {
- paymentProvider.selectPaymentMethod("Online");
+ // paymentProvider.selectPaymentMethod("Online");
// Navigator.pop(context);
},
+ ),*/
+
+ RadioListTile(
+ value: "razorpay",
+ groupValue: paymentProvider.selectedPaymentMethod,
+ title: const Text("Razorpay Online Payment"),
+ onChanged: (value) {
+ paymentProvider.selectPaymentMethod(value!);
+ },
+ ),
+
+ RadioListTile(
+ value: "phonepe",
+ groupValue: paymentProvider.selectedPaymentMethod,
+ title: const Text("PhonePe Online Payment"),
+ onChanged: (value) {
+ paymentProvider.selectPaymentMethod(value!);
+ },
),
// Cash on Delivery (COD) Option
@@ -404,3 +489,4 @@ class _CardCheckoutScreenState extends State {
);
}
}
+
diff --git a/lib/src/ui/cart/cartview_screen.dart b/lib/src/ui/cart/cartview_screen.dart
index f8ed071..cbe5c51 100644
--- a/lib/src/ui/cart/cartview_screen.dart
+++ b/lib/src/ui/cart/cartview_screen.dart
@@ -1,3 +1,5 @@
+import 'dart:convert';
+
import 'package:carousel_slider/carousel_slider.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
@@ -15,6 +17,7 @@ import 'package:grocery_app/src/ui/widgets/elevated_button.dart';
import 'package:grocery_app/utils/constants/color_constant.dart';
import 'package:grocery_app/utils/constants/shared_pref_utils.dart';
import 'package:grocery_app/utils/extensions/uicontext.dart';
+import 'package:http/http.dart' as http;
import 'package:provider/provider.dart';
import 'package:skeletonizer/skeletonizer.dart';
import 'package:url_launcher/url_launcher.dart';
@@ -1006,6 +1009,8 @@ class _MycartState extends State {
);
}
+
+
void _showAddressBottomSheet(BuildContext context) {
showModalBottomSheet(
context: context,
@@ -1140,6 +1145,67 @@ class AddressBottomSheet extends StatefulWidget {
}
class _AddressBottomSheetState extends State {
+ Future fetchDeliveryMessage() async {
+ const String url = 'https://www.mv.frontshopemporium.in/xam/distance/delivery-charges-by-distance';
+
+ try {
+ final response = await http.get(Uri.parse(url), headers: {
+ "Content-Type": "application/json",
+ "authorization": "Bearer ${await SharedPrefUtils.getToken()}"
+ });
+
+ print('continue response');
+ print(response.statusCode);
+ print(response.body);
+ if (response.statusCode == 200) {
+
+ final Map data = json.decode(response.body);
+ print(data);
+ final List nonDeliverableProducts = data['nonDeliverableProducts'] ?? [];
+ if (nonDeliverableProducts.isNotEmpty) {
+ final String reason = nonDeliverableProducts[0]['reason'];
+ print(reason);
+ return reason;
+ } else {
+ return '';
+ }
+ } else {
+ return 'Failed with status: ${response.statusCode}';
+ }
+ } catch (e) {
+ return 'Error: $e';
+ }
+ }
+ Future setDefaultAddress(String addressId) async {
+ String url = 'https://www.mv.frontshopemporium.in/xam/user/addresses/${addressId}/set-default';
+
+ try {
+ final response = await http.put(Uri.parse(url), headers: {
+ "Content-Type": "application/json",
+ "authorization": "Bearer ${await SharedPrefUtils.getToken()}"
+ });
+
+ print('address response');
+ print(response.statusCode);
+ print(response.body);
+ if (response.statusCode == 200) {
+
+ /* final Map data = json.decode(response.body);
+ print(data);
+ final List nonDeliverableProducts = data['nonDeliverableProducts'] ?? [];
+ if (nonDeliverableProducts.isNotEmpty) {
+ final String reason = nonDeliverableProducts[0]['reason'];
+ return reason;
+ } else {
+ return 'No non-deliverable products found';
+ }*/
+ } else {
+ return 'Failed with status: ${response.statusCode}';
+ }
+ } catch (e) {
+ return 'Error: $e';
+ }
+ }
@override
Widget build(BuildContext context) {
return Padding(
@@ -1186,8 +1252,8 @@ class _AddressBottomSheetState extends State {
Consumer(
builder: (context, paymentProvider, child) {
return ElevatedButton.icon(
- onPressed: () {
- if (paymentProvider.selectedAddress.isNotEmpty) {
+ onPressed: () async{
+ /* if (paymentProvider.selectedAddress.isNotEmpty) {
if (paymentProvider.isDeliverable) {
Navigator.pop(context);
Navigator.of(context).push(MaterialPageRoute(
@@ -1200,7 +1266,7 @@ class _AddressBottomSheetState extends State {
// name: paymentProvider.selecteUserName,
// phone: paymentProvider.selecteUserPhone,
// email: paymentProvider.selecteEmail,
- // userId: paymentProvider.allitem.userId!,
+ userId: paymentProvider.allitem.userId!,
cartId: paymentProvider.allitem.id!,
addressId: paymentProvider.selectedAddress,
// remarks: paymentProvider.selecteUserName,
@@ -1229,17 +1295,97 @@ class _AddressBottomSheetState extends State {
textColor: Colors.white,
fontSize: 14.0,
);
+ }*/
+
+ // Call your API and get the message
+ String? message = await fetchDeliveryMessage(); // Use the function from earlier
+
+ if (message != null && message.isNotEmpty) {
+ showDialog(
+ context: context,
+ builder: (BuildContext context) {
+ return AlertDialog(
+ title: Text("Alert"),
+ content: Text(message),
+ actions: [
+ TextButton(
+ onPressed: () {
+ Navigator.of(context).pop(); // Close the dialog
+ },
+ child: Text("OK"),
+ ),
+ ],
+ );
+ },
+ );
+ } else {
+ Navigator.pop(context);
+ Navigator.of(context).push(MaterialPageRoute(
+ builder: (context) {
+ return CardCheckoutScreen(
+ deliveryCharge: paymentProvider.getdeliverycharge,
+ originalAmount: paymentProvider.grandPrice,
+ userId: paymentProvider.allitem.userId!,
+ cartId: paymentProvider.allitem.id!,
+ addressId: paymentProvider.selectedAddress,
+ couponId: paymentProvider.couponId,
+ );
+ },
+ ));
}
+
+
},
+ /*
+
+ // Call your API and get the message
+ await paymentProvider.paymentCODOrder(
+ context,
+ paymentProvider.grandPrice,
+ paymentProvider.getdeliverycharge,
+ paymentProvider.couponId ?? "",
+ paymentProvider.selectedAddress,
+ );
+
+ */
+ /* if (message != null && message.isNotEmpty) {
+ Fluttertoast.showToast(
+ msg: message,
+ toastLength: Toast.LENGTH_SHORT,
+ gravity: ToastGravity.BOTTOM,
+ backgroundColor: Colors.red,
+ textColor: Colors.white,
+ fontSize: 14.0,
+ );
+ } else {*/
+ /*
+ Navigator.pop(context);
+ Navigator.of(context).push(MaterialPageRoute(
+ builder: (context) {
+ return CardCheckoutScreen(
+ deliveryCharge: paymentProvider.getdeliverycharge,
+ originalAmount: paymentProvider.grandPrice,
+ userId: paymentProvider.allitem.userId!,
+ cartId: paymentProvider.allitem.id!,
+ addressId: paymentProvider.selectedAddress,
+ couponId: paymentProvider.couponId,
+ );
+ },
+ ));
+ // }
+
+
+ },*/
label: Text(
"Continue",
style: TextStyle(color: Colors.white, fontSize: 16),
),
style: ElevatedButton.styleFrom(
- backgroundColor: paymentProvider.isDeliverable
+ backgroundColor:Colors.green,
+ /*backgroundColor: paymentProvider.isDeliverable
? Colors.green
: Colors.grey,
- minimumSize: Size(double.infinity, 50),
+ */minimumSize: Size(double.infinity, 50),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10)),
),
@@ -1278,12 +1424,13 @@ class _AddressBottomSheetState extends State {
activeColor: Colors.green,
onChanged: (value) {
addressProvider.checkAddress(context, value);
-
+ setDefaultAddress(address.id);
addressProvider.selectAddress(
value.toString(),
address.phoneNumber,
address.name,
address.user!.email);
+
},
),
title: Text(
diff --git a/lib/src/ui/myOrder/my_order.dart b/lib/src/ui/myOrder/my_order.dart
index e0b3f43..4f48fa7 100644
--- a/lib/src/ui/myOrder/my_order.dart
+++ b/lib/src/ui/myOrder/my_order.dart
@@ -59,7 +59,7 @@ class _MyOrderScreenState extends State {
width: 20,
child: InkWell(
onTap: () {
- context.clearAndPush(routePath: MyRoutes.BOTTOMNAV);
+ context.clearAndPush(routePath: MyRoutes.HOME);
},
child: SvgPicture.asset(
APPASSETS.back,
diff --git a/lib/src/ui/payment/phonepe_payment.dart b/lib/src/ui/payment/phonepe_payment.dart
new file mode 100644
index 0000000..c2a31a5
--- /dev/null
+++ b/lib/src/ui/payment/phonepe_payment.dart
@@ -0,0 +1,271 @@
+import 'package:flutter/material.dart';
+import 'package:go_router/go_router.dart';
+import 'package:http/http.dart' as http;
+import 'package:phonepe_payment_sdk/phonepe_payment_sdk.dart';
+import 'package:uuid/uuid.dart';
+import 'dart:convert';
+import 'dart:async';
+import 'package:app_links/app_links.dart';
+import '../../../utils/constants/shared_pref_utils.dart';
+import '../../core/routes/routes.dart';
+import '../myOrder/my_order.dart';
+class PhonePePaymentScreen extends StatefulWidget {
+ final double amount;
+ final String cartId;
+ final String addressId;
+ final String userId;
+
+ const PhonePePaymentScreen({
+ required this.amount,
+ required this.cartId,
+ required this.addressId,
+ required this.userId,
+ super.key,
+ });
+
+ @override
+ State createState() => _PhonePePaymentScreenState();
+}
+
+class _PhonePePaymentScreenState extends State {
+ String _statusMessage = "Initiating payment...";
+ bool _isLoading = true;
+
+ final AppLinks _appLinks = AppLinks();
+ StreamSubscription? _linkSub;
+
+ @override
+ void initState() {
+ super.initState();
+ _listenForRedirect();
+ _initiateAndStartPayment();
+ }
+
+ @override
+ void dispose() {
+ _linkSub?.cancel();
+ super.dispose();
+ }
+
+ void _listenForRedirect() {
+ print("Listening for redirect...");
+ _linkSub = _appLinks.uriLinkStream.listen((Uri uri) {
+ print("Deep link received: $uri");
+ final transactionId = uri.queryParameters['transactionId'];
+ final status = uri.queryParameters['status'];
+
+ if (transactionId != null && status == "SUCCESS") {
+ //_verifyPayment(transactionId);
+ } else if (status == "CANCEL") {
+ setState(() {
+ _statusMessage = "Payment cancelled by user.";
+ _isLoading = false;
+ });
+ Navigator.pop(context, false); // 👈 Return failure
+ } else {
+ setState(() {
+ _statusMessage = "Payment failed or unknown status.";
+ _isLoading = false;
+ });
+ Navigator.pop(context, false); // 👈 Return failure
+ }
+ }, onError: (err) {
+ print("Deep link error: $err");
+ setState(() {
+ _statusMessage = "Error handling redirect: $err";
+ _isLoading = false;
+ });
+ Navigator.pop(context, false); // 👈 Return failure
+ });
+ }
+
+ Future _initiateAndStartPayment() async {
+ try {
+ final uri = Uri.parse("https://www.mv.frontshopemporium.in/xam/payment/phonepe/sdk/initiate");
+
+ print("Calling backend initiate API...");
+ final response = await http.post(
+ uri,
+ headers: {
+ "Content-Type": "application/json",
+ "authorization": "Bearer ${await SharedPrefUtils.getToken()}",
+ },
+ body: jsonEncode({
+ "amount": widget.amount,
+ "cartId": widget.cartId,
+ "addressId": widget.addressId,
+ }),
+ );
+
+ print("Response code: ${response.statusCode}");
+ print("Response body: ${response.body}");
+
+ if (response.statusCode != 200 && response.statusCode != 201) {
+ setState(() {
+ _statusMessage = "Failed to initiate payment.";
+ _isLoading = false;
+ });
+ return;
+ }
+
+ final data = jsonDecode(response.body);
+ final String? orderId = data['orderId'];
+ final String? merchantId = data['merchantId'];
+ final String? token = data['token'];
+
+ const String environment = "PRODUCTION";
+ const String appSchema = "frontshop";
+ final String flowId = 'FLWID_${Uuid().v4()}';
+
+ if (orderId == null || merchantId == null || token == null) {
+ print("Invalid response from backend. Missing fields.");
+ setState(() {
+ _statusMessage = "Invalid response from backend.";
+ _isLoading = false;
+ });
+ return;
+ }
+
+ print("Initializing SDK...");
+
+ PhonePePaymentSdk.init(environment, merchantId, flowId, true);
+
+ final payload = {
+ "orderId": orderId,
+ "merchantId": merchantId,
+ "token": token,
+ "paymentMode": {"type": "PAY_PAGE"},
+ };
+ String request = jsonEncode(payload);
+
+ print("Starting transaction with payload: $request");
+
+ final result = await PhonePePaymentSdk.startTransaction(request, appSchema);
+ print("Transaction result: $result");
+
+ if (result != null) {
+ final status = result['status']?.toString() ?? '';
+ final error = result['error']?.toString() ?? '';
+
+ if (status == 'SUCCESS') {
+ final txnId = data['merchantOrderId']?? '';
+ ScaffoldMessenger.of(context).showSnackBar(
+ const SnackBar(content: Text("Payment Successful!")),
+ );
+ _verifyPayment(txnId);
+ context.push(MyRoutes.MYORDER);
+ } else if (status == 'CANCELLED') {
+ ScaffoldMessenger.of(context).showSnackBar(
+ const SnackBar(content: Text("Payment Cancelled by User")),
+ );
+ setState(() {
+ _statusMessage = "Payment cancelled.";
+ _isLoading = false;
+ });
+ Navigator.pop(context, false);
+ } else {
+ ScaffoldMessenger.of(context).showSnackBar(
+ SnackBar(content: Text("Payment Failed: $error")),
+ );
+ setState(() {
+ _statusMessage = "Payment failed.";
+ _isLoading = false;
+ });
+ Navigator.pop(context, false);
+ }
+ } else {
+ ScaffoldMessenger.of(context).showSnackBar(
+ const SnackBar(content: Text("No response from PhonePe")),
+ );
+ setState(() {
+ _statusMessage = "No response.";
+ _isLoading = false;
+ });
+ Navigator.pop(context, false);
+ }
+
+ } catch (e) {
+ print("Error during payment: $e");
+ setState(() {
+ _statusMessage = "Error: ${e.toString()}";
+ _isLoading = false;
+ });
+ Navigator.pop(context, false); // 👈 Exit with failure
+ }
+ }
+
+ Future _verifyPayment(String transactionId) async {
+ try {
+
+
+
+ final verifyUri = Uri.parse(
+ "https://mv.frontshopemporium.in/xam/payment/phonepe/sdk/status/$transactionId",
+ );
+
+ final response = await http.get(
+ verifyUri,
+ headers: {
+ "Content-Type": "application/json",
+ "authorization": "Bearer ${await SharedPrefUtils.getToken()}",
+ },
+ );
+
+ print("Status check response: ${response.body}");
+
+ if (response.statusCode == 200) {
+ final statusData = jsonDecode(response.body);
+ final paymentStatus = statusData['status'];
+
+ if (paymentStatus == "SUCCESS") {
+ ScaffoldMessenger.of(context).showSnackBar(
+ const SnackBar(content: Text("Order Placed Successfully")),
+ );
+ Navigator.pushAndRemoveUntil(
+ context,
+ MaterialPageRoute(builder: (_) => MyOrderScreen()),
+ (route) => false,
+ );
+
+ }
+
+ else {
+ setState(() {
+ _statusMessage = "Payment verification failed: $paymentStatus";
+ _isLoading = false;
+ });
+ Navigator.pop(context, false); // ❌ Return failure
+ }
+ } else {
+ setState(() {
+ _statusMessage = "Failed to verify payment.";
+ _isLoading = false;
+ });
+ Navigator.pop(context, false);
+ }
+ } catch (e) {
+ print("Verification error: $e");
+ setState(() {
+ _statusMessage = "Verification error: ${e.toString()}";
+ _isLoading = false;
+ });
+ Navigator.pop(context, false); // ❌ Return failure
+ }
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return Scaffold(
+ appBar: AppBar(title: const Text("PhonePe Payment")),
+ body: Center(
+ child: _isLoading
+ ? const CircularProgressIndicator()
+ : Text(
+ _statusMessage,
+ textAlign: TextAlign.center,
+ style: const TextStyle(fontSize: 16),
+ ),
+ ),
+ );
+ }
+}
diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc
index 7299b5c..e12c657 100644
--- a/linux/flutter/generated_plugin_registrant.cc
+++ b/linux/flutter/generated_plugin_registrant.cc
@@ -7,12 +7,16 @@
#include "generated_plugin_registrant.h"
#include
+#include
#include
void fl_register_plugins(FlPluginRegistry* registry) {
g_autoptr(FlPluginRegistrar) file_selector_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin");
file_selector_plugin_register_with_registrar(file_selector_linux_registrar);
+ g_autoptr(FlPluginRegistrar) gtk_registrar =
+ fl_plugin_registry_get_registrar_for_plugin(registry, "GtkPlugin");
+ gtk_plugin_register_with_registrar(gtk_registrar);
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake
index 786ff5c..4453582 100644
--- a/linux/flutter/generated_plugins.cmake
+++ b/linux/flutter/generated_plugins.cmake
@@ -4,6 +4,7 @@
list(APPEND FLUTTER_PLUGIN_LIST
file_selector_linux
+ gtk
url_launcher_linux
)
diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift
index 94d3065..7b46b19 100644
--- a/macos/Flutter/GeneratedPluginRegistrant.swift
+++ b/macos/Flutter/GeneratedPluginRegistrant.swift
@@ -5,6 +5,7 @@
import FlutterMacOS
import Foundation
+import app_links
import connectivity_plus
import file_selector_macos
import firebase_core
@@ -15,10 +16,11 @@ import geolocator_apple
import package_info_plus
import path_provider_foundation
import shared_preferences_foundation
-import sqflite
+import sqflite_darwin
import url_launcher_macos
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
+ AppLinksMacosPlugin.register(with: registry.registrar(forPlugin: "AppLinksMacosPlugin"))
ConnectivityPlusPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlusPlugin"))
FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin"))
FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
diff --git a/pubspec.lock b/pubspec.lock
index c982a3c..1c50acd 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -5,10 +5,10 @@ packages:
dependency: transitive
description:
name: _flutterfire_internals
- sha256: de9ecbb3ddafd446095f7e833c853aff2fa1682b017921fe63a833f9d6f0e422
+ sha256: "50e24b769bd1e725732f0aff18b806b8731c1fbcf4e8018ab98e7c4805a2a52f"
url: "https://pub.dev"
source: hosted
- version: "1.3.54"
+ version: "1.3.57"
animation_list:
dependency: "direct main"
description:
@@ -25,14 +25,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.0.11"
+ app_links:
+ dependency: "direct main"
+ description:
+ name: app_links
+ sha256: "3ced568a5d9e309e99af71285666f1f3117bddd0bd5b3317979dccc1a40cada4"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.5.1"
args:
dependency: transitive
description:
name: args
- sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6
+ sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
url: "https://pub.dev"
source: hosted
- version: "2.6.0"
+ version: "2.7.0"
art_sweetalert:
dependency: "direct main"
description:
@@ -45,10 +53,10 @@ packages:
dependency: transitive
description:
name: async
- sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
+ sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
url: "https://pub.dev"
source: hosted
- version: "2.11.0"
+ version: "2.12.0"
back_button_interceptor:
dependency: transitive
description:
@@ -61,50 +69,50 @@ packages:
dependency: "direct main"
description:
name: blur
- sha256: c17450404bceea429100e0838d19bbfaa6ad1f3053e7bac78a0264bbd60cfe01
+ sha256: "1318cf79c735784eda8dffc77b1085b757373d233c1c8d94dc0cfd81530a3574"
url: "https://pub.dev"
source: hosted
- version: "4.0.0"
+ version: "4.0.2"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
- sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
+ sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
url: "https://pub.dev"
source: hosted
- version: "2.1.1"
+ version: "2.1.2"
cached_network_image:
dependency: "direct main"
description:
name: cached_network_image
- sha256: "28ea9690a8207179c319965c13cd8df184d5ee721ae2ce60f398ced1219cea1f"
+ sha256: "7c1183e361e5c8b0a0f21a28401eecdbde252441106a9816400dd4c2b2424916"
url: "https://pub.dev"
source: hosted
- version: "3.3.1"
+ version: "3.4.1"
cached_network_image_platform_interface:
dependency: transitive
description:
name: cached_network_image_platform_interface
- sha256: "9e90e78ae72caa874a323d78fa6301b3fb8fa7ea76a8f96dc5b5bf79f283bf2f"
+ sha256: "35814b016e37fbdc91f7ae18c8caf49ba5c88501813f73ce8a07027a395e2829"
url: "https://pub.dev"
source: hosted
- version: "4.0.0"
+ version: "4.1.1"
cached_network_image_web:
dependency: transitive
description:
name: cached_network_image_web
- sha256: "205d6a9f1862de34b93184f22b9d2d94586b2f05c581d546695e3d8f6a805cd7"
+ sha256: "980842f4e8e2535b8dbd3d5ca0b1f0ba66bf61d14cc3a17a9b4788a3685ba062"
url: "https://pub.dev"
source: hosted
- version: "1.2.0"
+ version: "1.3.1"
carousel_slider:
dependency: "direct main"
description:
name: carousel_slider
- sha256: "7b006ec356205054af5beaef62e2221160ea36b90fb70a35e4deacd49d0349ae"
+ sha256: bcc61735345c9ab5cb81073896579e735f81e35fd588907a393143ea986be8ff
url: "https://pub.dev"
source: hosted
- version: "5.0.0"
+ version: "5.1.1"
change_app_package_name:
dependency: "direct main"
description:
@@ -117,34 +125,34 @@ packages:
dependency: transitive
description:
name: characters
- sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
+ sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
url: "https://pub.dev"
source: hosted
- version: "1.3.0"
+ version: "1.4.0"
clock:
dependency: transitive
description:
name: clock
- sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
+ sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
url: "https://pub.dev"
source: hosted
- version: "1.1.1"
+ version: "1.1.2"
collection:
dependency: transitive
description:
name: collection
- sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
+ sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
url: "https://pub.dev"
source: hosted
- version: "1.18.0"
+ version: "1.19.1"
connectivity_plus:
dependency: "direct main"
description:
name: connectivity_plus
- sha256: "04bf81bb0b77de31557b58d052b24b3eee33f09a6e7a8c68a3e247c7df19ec27"
+ sha256: "051849e2bd7c7b3bc5844ea0d096609ddc3a859890ec3a9ac4a65a2620cc1f99"
url: "https://pub.dev"
source: hosted
- version: "6.1.3"
+ version: "6.1.4"
connectivity_plus_platform_interface:
dependency: transitive
description:
@@ -205,18 +213,18 @@ packages:
dependency: transitive
description:
name: dio_web_adapter
- sha256: e485c7a39ff2b384fa1d7e09b4e25f755804de8384358049124830b04fc4f93a
+ sha256: "7586e476d70caecaf1686d21eee7247ea43ef5c345eab9e0cc3583ff13378d78"
url: "https://pub.dev"
source: hosted
- version: "2.1.0"
+ version: "2.1.1"
dots_indicator:
dependency: "direct main"
description:
name: dots_indicator
- sha256: "58b6a365744aa62aa1b70c4ea29e5106fbe064f5edaf7e9652e9b856edbfd9bb"
+ sha256: "2a53e0321a3f0d87e38ef30f6e9ff1deb5d6c0e2c5708e057d26cdaa94a95f10"
url: "https://pub.dev"
source: hosted
- version: "3.0.0"
+ version: "3.1.0"
dotted_border:
dependency: "direct main"
description:
@@ -225,22 +233,30 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.0"
+ eventify:
+ dependency: transitive
+ description:
+ name: eventify
+ sha256: b829429f08586cc2001c628e7499e3e3c2493a1d895fd73b00ecb23351aa5a66
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.1"
fake_async:
dependency: transitive
description:
name: fake_async
- sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
+ sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"
url: "https://pub.dev"
source: hosted
- version: "1.3.1"
+ version: "1.3.2"
ffi:
dependency: transitive
description:
name: ffi
- sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6"
+ sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418"
url: "https://pub.dev"
source: hosted
- version: "2.1.3"
+ version: "2.1.4"
file:
dependency: transitive
description:
@@ -261,10 +277,10 @@ packages:
dependency: transitive
description:
name: file_selector_macos
- sha256: "271ab9986df0c135d45c3cdb6bd0faa5db6f4976d3e4b437cf7d0f258d941bfc"
+ sha256: "8c9250b2bd2d8d4268e39c82543bacbaca0fda7d29e0728c3c4bbb7c820fd711"
url: "https://pub.dev"
source: hosted
- version: "0.9.4+2"
+ version: "0.9.4+3"
file_selector_platform_interface:
dependency: transitive
description:
@@ -277,58 +293,58 @@ packages:
dependency: transitive
description:
name: file_selector_windows
- sha256: "8f5d2f6590d51ecd9179ba39c64f722edc15226cc93dcc8698466ad36a4a85a4"
+ sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b"
url: "https://pub.dev"
source: hosted
- version: "0.9.3+3"
+ version: "0.9.3+4"
firebase_core:
dependency: "direct main"
description:
name: firebase_core
- sha256: "017d17d9915670e6117497e640b2859e0b868026ea36bf3a57feb28c3b97debe"
+ sha256: "5bba5924139e91d26446fd2601c18a6aa62c1161c768a989bb5e245dcdc20644"
url: "https://pub.dev"
source: hosted
- version: "3.13.0"
+ version: "3.15.0"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
- sha256: d7253d255ff10f85cfd2adaba9ac17bae878fa3ba577462451163bd9f1d1f0bf
+ sha256: "5d2ab45779d91af2aa0252dec9fe4ee1caa015d83377de255454dcaa1526a0e0"
url: "https://pub.dev"
source: hosted
- version: "5.4.0"
+ version: "5.4.1"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
- sha256: "129a34d1e0fb62e2b488d988a1fc26cc15636357e50944ffee2862efe8929b23"
+ sha256: eb3afccfc452b2b2075acbe0c4b27de62dd596802b4e5e19869c1e926cbb20b3
url: "https://pub.dev"
source: hosted
- version: "2.22.0"
+ version: "2.24.0"
firebase_messaging:
dependency: "direct main"
description:
name: firebase_messaging
- sha256: "5f8918848ee0c8eb172fc7698619b2bcd7dda9ade8b93522c6297dd8f9178356"
+ sha256: c6711cf2f455532b84a94022c7aaf85088849763af2f01b775ca79d82d10a01a
url: "https://pub.dev"
source: hosted
- version: "15.2.5"
+ version: "15.2.8"
firebase_messaging_platform_interface:
dependency: transitive
description:
name: firebase_messaging_platform_interface
- sha256: "0bbea00680249595fc896e7313a2bd90bd55be6e0abbe8b9a39d81b6b306acb6"
+ sha256: "1c9dacccb1aee1bf17ba519dda5563a16fdd2ec1e79b5f2e421cb4bf75a166f7"
url: "https://pub.dev"
source: hosted
- version: "4.6.5"
+ version: "4.6.8"
firebase_messaging_web:
dependency: transitive
description:
name: firebase_messaging_web
- sha256: ffb392ce2a7e8439cd0a9a80e3c702194e73c927e5c7b4f0adf6faa00b245b17
+ sha256: "54317c26fa92f0d90a2017977ac791cb0504eca29fcf397f06adf727d4a7a2d5"
url: "https://pub.dev"
source: hosted
- version: "3.10.5"
+ version: "3.10.8"
fixnum:
dependency: transitive
description:
@@ -354,34 +370,26 @@ packages:
dependency: transitive
description:
name: flutter_cache_manager
- sha256: "8207f27539deb83732fdda03e259349046a39a4c767269285f449ade355d54ba"
+ sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386"
url: "https://pub.dev"
source: hosted
- version: "3.3.1"
- flutter_google_places:
- dependency: "direct main"
- description:
- name: flutter_google_places
- sha256: e9fb23ceacdc7359aa759627550146f7fd3ae6c067d16f39f3c50d8feebf4809
- url: "https://pub.dev"
- source: hosted
- version: "0.3.0"
+ version: "3.4.1"
flutter_inappwebview:
dependency: "direct main"
description:
name: flutter_inappwebview
- sha256: "3e9a443a18ecef966fb930c3a76ca5ab6a7aafc0c7b5e14a4a850cf107b09959"
+ sha256: "80092d13d3e29b6227e25b67973c67c7210bd5e35c4b747ca908e31eb71a46d5"
url: "https://pub.dev"
source: hosted
- version: "6.0.0"
+ version: "6.1.5"
flutter_inappwebview_android:
dependency: transitive
description:
name: flutter_inappwebview_android
- sha256: d247f6ed417f1f8c364612fa05a2ecba7f775c8d0c044c1d3b9ee33a6515c421
+ sha256: "62557c15a5c2db5d195cb3892aab74fcaec266d7b86d59a6f0027abd672cddba"
url: "https://pub.dev"
source: hosted
- version: "1.0.13"
+ version: "1.1.3"
flutter_inappwebview_internal_annotations:
dependency: transitive
description:
@@ -394,34 +402,42 @@ packages:
dependency: transitive
description:
name: flutter_inappwebview_ios
- sha256: f363577208b97b10b319cd0c428555cd8493e88b468019a8c5635a0e4312bd0f
+ sha256: "5818cf9b26cf0cbb0f62ff50772217d41ea8d3d9cc00279c45f8aabaa1b4025d"
url: "https://pub.dev"
source: hosted
- version: "1.0.13"
+ version: "1.1.2"
flutter_inappwebview_macos:
dependency: transitive
description:
name: flutter_inappwebview_macos
- sha256: b55b9e506c549ce88e26580351d2c71d54f4825901666bd6cfa4be9415bb2636
+ sha256: c1fbb86af1a3738e3541364d7d1866315ffb0468a1a77e34198c9be571287da1
url: "https://pub.dev"
source: hosted
- version: "1.0.11"
+ version: "1.1.2"
flutter_inappwebview_platform_interface:
dependency: transitive
description:
name: flutter_inappwebview_platform_interface
- sha256: "545fd4c25a07d2775f7d5af05a979b2cac4fbf79393b0a7f5d33ba39ba4f6187"
+ sha256: cf5323e194096b6ede7a1ca808c3e0a078e4b33cc3f6338977d75b4024ba2500
url: "https://pub.dev"
source: hosted
- version: "1.0.10"
+ version: "1.3.0+1"
flutter_inappwebview_web:
dependency: transitive
description:
name: flutter_inappwebview_web
- sha256: d8c680abfb6fec71609a700199635d38a744df0febd5544c5a020bd73de8ee07
+ sha256: "55f89c83b0a0d3b7893306b3bb545ba4770a4df018204917148ebb42dc14a598"
url: "https://pub.dev"
source: hosted
- version: "1.0.8"
+ version: "1.1.2"
+ flutter_inappwebview_windows:
+ dependency: transitive
+ description:
+ name: flutter_inappwebview_windows
+ sha256: "8b4d3a46078a2cdc636c4a3d10d10f2a16882f6be607962dbfff8874d1642055"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.6.0"
flutter_lints:
dependency: "direct dev"
description:
@@ -458,10 +474,10 @@ packages:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
- sha256: "9ee02950848f61c4129af3d6ec84a1cfc0e47931abc746b03e7a3bc3e8ff6eda"
+ sha256: f948e346c12f8d5480d2825e03de228d0eb8c3a737e4cdaa122267b89c022b5e
url: "https://pub.dev"
source: hosted
- version: "2.0.22"
+ version: "2.0.28"
flutter_rating_bar:
dependency: "direct main"
description:
@@ -498,10 +514,10 @@ packages:
dependency: "direct main"
description:
name: flutter_svg
- sha256: d39e7f95621fc84376bc0f7d504f05c3a41488c562f4a8ad410569127507402c
+ sha256: cd57f7969b4679317c17af6fd16ee233c1e60a82ed209d8a475c54fd6fd6f845
url: "https://pub.dev"
source: hosted
- version: "2.0.9"
+ version: "2.2.0"
flutter_test:
dependency: "direct dev"
description: flutter
@@ -524,10 +540,10 @@ packages:
dependency: "direct main"
description:
name: fluttertoast
- sha256: "8971efe7e59585e9149052e33718d84bca51e806f063d1467622b3dcb2878b6c"
+ sha256: "25e51620424d92d3db3832464774a6143b5053f15e382d8ffbfd40b6e795dcf1"
url: "https://pub.dev"
source: hosted
- version: "8.2.11"
+ version: "8.2.12"
fpdart:
dependency: "direct main"
description:
@@ -548,26 +564,26 @@ packages:
dependency: "direct main"
description:
name: geocoding
- sha256: d580c801cba9386b4fac5047c4c785a4e19554f46be42f4f5e5b7deacd088a66
+ sha256: "606be036287842d779d7ec4e2f6c9435fc29bbbd3c6da6589710f981d8852895"
url: "https://pub.dev"
source: hosted
- version: "3.0.0"
+ version: "4.0.0"
geocoding_android:
dependency: transitive
description:
name: geocoding_android
- sha256: "1b13eca79b11c497c434678fed109c2be020b158cec7512c848c102bc7232603"
+ sha256: ba810da90d6633cbb82bbab630e5b4a3b7d23503263c00ae7f1ef0316dcae5b9
url: "https://pub.dev"
source: hosted
- version: "3.3.1"
+ version: "4.0.1"
geocoding_ios:
dependency: transitive
description:
name: geocoding_ios
- sha256: "94ddba60387501bd1c11e18dca7c5a9e8c645d6e3da9c38b9762434941870c24"
+ sha256: "43bde988312feb1a3cb6c3d514e9f4b04b564d1884fa56bd8241030bbb3bde36"
url: "https://pub.dev"
source: hosted
- version: "3.0.1"
+ version: "3.0.2"
geocoding_platform_interface:
dependency: transitive
description:
@@ -580,50 +596,50 @@ packages:
dependency: "direct main"
description:
name: geolocator
- sha256: d2ec66329cab29cb297d51d96c067d457ca519dca8589665fa0b82ebacb7dbe4
+ sha256: ee2212a3df8292ec4c90b91183b8001d3f5a800823c974b570c5f9344ca320dc
url: "https://pub.dev"
source: hosted
- version: "13.0.2"
+ version: "14.0.1"
geolocator_android:
dependency: transitive
description:
name: geolocator_android
- sha256: "7aefc530db47d90d0580b552df3242440a10fe60814496a979aa67aa98b1fd47"
+ sha256: "179c3cb66dfa674fc9ccbf2be872a02658724d1c067634e2c427cf6df7df901a"
url: "https://pub.dev"
source: hosted
- version: "4.6.1"
+ version: "5.0.2"
geolocator_apple:
dependency: transitive
description:
name: geolocator_apple
- sha256: "6154ea2682563f69fc0125762ed7e91e7ed85d0b9776595653be33918e064807"
+ sha256: dbdd8789d5aaf14cf69f74d4925ad1336b4433a6efdf2fce91e8955dc921bf22
url: "https://pub.dev"
source: hosted
- version: "2.3.8+1"
+ version: "2.3.13"
geolocator_platform_interface:
dependency: transitive
description:
name: geolocator_platform_interface
- sha256: "386ce3d9cce47838355000070b1d0b13efb5bc430f8ecda7e9238c8409ace012"
+ sha256: "30cb64f0b9adcc0fb36f628b4ebf4f731a2961a0ebd849f4b56200205056fe67"
url: "https://pub.dev"
source: hosted
- version: "4.2.4"
+ version: "4.2.6"
geolocator_web:
dependency: transitive
description:
name: geolocator_web
- sha256: "2ed69328e05cd94e7eb48bb0535f5fc0c0c44d1c4fa1e9737267484d05c29b5e"
+ sha256: b1ae9bdfd90f861fde8fd4f209c37b953d65e92823cb73c7dee1fa021b06f172
url: "https://pub.dev"
source: hosted
- version: "4.1.1"
+ version: "4.1.3"
geolocator_windows:
dependency: transitive
description:
name: geolocator_windows
- sha256: "53da08937d07c24b0d9952eb57a3b474e29aae2abf9dd717f7e1230995f13f0e"
+ sha256: "175435404d20278ffd220de83c2ca293b73db95eafbdc8131fe8609be1421eb6"
url: "https://pub.dev"
source: hosted
- version: "0.2.3"
+ version: "0.2.5"
get_it:
dependency: "direct main"
description:
@@ -636,26 +652,26 @@ packages:
dependency: "direct main"
description:
name: go_router
- sha256: "04539267a740931c6d4479a10d466717ca5901c6fdfd3fcda09391bbb8ebd651"
+ sha256: f02fd7d2a4dc512fec615529824fdd217fecb3a3d3de68360293a551f21634b3
url: "https://pub.dev"
source: hosted
- version: "14.8.0"
+ version: "14.8.1"
google_api_headers:
dependency: "direct main"
description:
name: google_api_headers
- sha256: b27a55935d5c51cedda8a925f5df8388cc327c94a47fef5a4335e8707e089878
+ sha256: "16c26ed3f65e59282b060f5c9eff29c603cb21acde96a5272ad430bccb1ce21a"
url: "https://pub.dev"
source: hosted
- version: "1.6.0"
+ version: "4.4.2"
google_fonts:
dependency: "direct main"
description:
name: google_fonts
- sha256: "6b6f10f0ce3c42f6552d1c70d2c28d764cf22bb487f50f66cca31dcd5194f4d6"
+ sha256: b1ac0fe2832c9cc95e5e88b57d627c5e68c223b9657f4b96e1487aa9098c7b82
url: "https://pub.dev"
source: hosted
- version: "4.0.4"
+ version: "6.2.1"
google_maps:
dependency: transitive
description:
@@ -668,74 +684,82 @@ packages:
dependency: "direct main"
description:
name: google_maps_flutter
- sha256: "209856c8e5571626afba7182cf634b2910069dc567954e76ec3e3fb37f5e9db3"
+ sha256: e1805e5a5885bd14a1c407c59229f478af169bf4d04388586b19f53145a5db3a
url: "https://pub.dev"
source: hosted
- version: "2.10.0"
+ version: "2.12.3"
google_maps_flutter_android:
dependency: transitive
description:
name: google_maps_flutter_android
- sha256: "10cf27bee8c560f8e69992b3a0f27ddf1d7acbea622ddb13ef3f587848a73f26"
+ sha256: "356ee9c65f38a104f7c4988e6952e52addb3b6cb1601839dd2010d7a502afcf0"
url: "https://pub.dev"
source: hosted
- version: "2.14.7"
+ version: "2.16.2"
google_maps_flutter_ios:
dependency: transitive
description:
name: google_maps_flutter_ios
- sha256: "6f798adb0aa1db5adf551f2e39e24bd06c8c0fbe4de912fb2d9b5b3f48147b02"
+ sha256: d03678415da9de8ce7208c674b264fc75946f326e696b4b7f84c80920fc58df6
url: "https://pub.dev"
source: hosted
- version: "2.13.2"
+ version: "2.15.4"
google_maps_flutter_platform_interface:
dependency: transitive
description:
name: google_maps_flutter_platform_interface
- sha256: "72957351f91656128d8f1090ce9e624486a8a7dada21e615ebc9af9fadffdedd"
+ sha256: f8293f072ed8b068b092920a72da6693aa8b3d62dc6b5c5f0bc44c969a8a776c
url: "https://pub.dev"
source: hosted
- version: "2.10.0"
+ version: "2.12.1"
google_maps_flutter_web:
dependency: transitive
description:
name: google_maps_flutter_web
- sha256: ff39211bd25d7fad125d19f757eba85bd154460907cd4d135e07e3d0f98a4130
+ sha256: ce2cac714e5462bf761ff2fdfc3564c7e5d7ed0578268dccb0a54dbdb1e6214e
url: "https://pub.dev"
source: hosted
- version: "0.5.10"
- google_maps_webservice:
+ version: "0.5.12+2"
+ google_places_flutter:
+ dependency: "direct main"
+ description:
+ name: google_places_flutter
+ sha256: "5048f8c3e97dcb8ecfbf478bc336fefd8c4f9b903bfabcd3839c4b17eb8724eb"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.0"
+ gtk:
dependency: transitive
description:
- name: google_maps_webservice
- sha256: d0ae4e4508afd74a3f051565261a3cdbae59db29448f9b6e6beb5674545e1eb7
+ name: gtk
+ sha256: e8ce9ca4b1df106e4d72dad201d345ea1a036cc12c360f1a7d5a758f78ffa42c
url: "https://pub.dev"
source: hosted
- version: "0.0.20-nullsafety.5"
+ version: "2.1.0"
html:
dependency: transitive
description:
name: html
- sha256: "1fc58edeaec4307368c60d59b7e15b9d658b57d7f3125098b6294153c75337ec"
+ sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602"
url: "https://pub.dev"
source: hosted
- version: "0.15.5"
+ version: "0.15.6"
http:
- dependency: transitive
+ dependency: "direct main"
description:
name: http
- sha256: "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2"
+ sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b"
url: "https://pub.dev"
source: hosted
- version: "0.13.6"
+ version: "1.4.0"
http_parser:
dependency: transitive
description:
name: http_parser
- sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
+ sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
url: "https://pub.dev"
source: hosted
- version: "4.0.2"
+ version: "4.1.2"
image_picker:
dependency: "direct main"
description:
@@ -748,10 +772,10 @@ packages:
dependency: transitive
description:
name: image_picker_android
- sha256: "8c5abf0dcc24fe6e8e0b4a5c0b51a5cf30cefdf6407a3213dae61edc75a70f56"
+ sha256: "317a5d961cec5b34e777b9252393f2afbd23084aa6e60fcf601dcf6341b9ebeb"
url: "https://pub.dev"
source: hosted
- version: "0.8.12+12"
+ version: "0.8.12+23"
image_picker_for_web:
dependency: transitive
description:
@@ -772,10 +796,10 @@ packages:
dependency: transitive
description:
name: image_picker_linux
- sha256: "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa"
+ sha256: "34a65f6740df08bbbeb0a1abd8e6d32107941fd4868f67a507b25601651022c9"
url: "https://pub.dev"
source: hosted
- version: "0.2.1+1"
+ version: "0.2.1+2"
image_picker_macos:
dependency: transitive
description:
@@ -808,38 +832,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.20.2"
- js:
- dependency: transitive
- description:
- name: js
- sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
- url: "https://pub.dev"
- source: hosted
- version: "0.6.7"
- json_annotation:
- dependency: transitive
- description:
- name: json_annotation
- sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
- url: "https://pub.dev"
- source: hosted
- version: "4.9.0"
leak_tracker:
dependency: transitive
description:
name: leak_tracker
- sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
+ sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
url: "https://pub.dev"
source: hosted
- version: "10.0.4"
+ version: "10.0.8"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
- sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
+ sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
url: "https://pub.dev"
source: hosted
- version: "3.0.3"
+ version: "3.0.9"
leak_tracker_testing:
dependency: transitive
description:
@@ -876,18 +884,18 @@ packages:
dependency: transitive
description:
name: matcher
- sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
+ sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
url: "https://pub.dev"
source: hosted
- version: "0.12.16+1"
+ version: "0.12.17"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
- sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
+ sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
url: "https://pub.dev"
source: hosted
- version: "0.8.0"
+ version: "0.11.1"
material_design_icons_flutter:
dependency: "direct main"
description:
@@ -900,10 +908,10 @@ packages:
dependency: transitive
description:
name: meta
- sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
+ sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
url: "https://pub.dev"
source: hosted
- version: "1.12.0"
+ version: "1.16.0"
mime:
dependency: transitive
description:
@@ -948,26 +956,26 @@ packages:
dependency: transitive
description:
name: package_info_plus
- sha256: "7e76fad405b3e4016cd39d08f455a4eb5199723cf594cd1b8916d47140d93017"
+ sha256: "7976bfe4c583170d6cdc7077e3237560b364149fcd268b5f53d95a991963b191"
url: "https://pub.dev"
source: hosted
- version: "4.2.0"
+ version: "8.3.0"
package_info_plus_platform_interface:
dependency: transitive
description:
name: package_info_plus_platform_interface
- sha256: "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6"
+ sha256: "6c935fb612dff8e3cc9632c2b301720c77450a126114126ffaafe28d2e87956c"
url: "https://pub.dev"
source: hosted
- version: "2.0.1"
+ version: "3.2.0"
path:
dependency: transitive
description:
name: path
- sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
+ sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
url: "https://pub.dev"
source: hosted
- version: "1.9.0"
+ version: "1.9.1"
path_drawing:
dependency: transitive
description:
@@ -996,10 +1004,10 @@ packages:
dependency: transitive
description:
name: path_provider_android
- sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7"
+ sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9
url: "https://pub.dev"
source: hosted
- version: "2.2.10"
+ version: "2.2.17"
path_provider_foundation:
dependency: transitive
description:
@@ -1036,18 +1044,18 @@ packages:
dependency: "direct main"
description:
name: permission_handler
- sha256: "18bf33f7fefbd812f37e72091a15575e72d5318854877e0e4035a24ac1113ecb"
+ sha256: "59adad729136f01ea9e35a48f5d1395e25cba6cea552249ddbe9cf950f5d7849"
url: "https://pub.dev"
source: hosted
- version: "11.3.1"
+ version: "11.4.0"
permission_handler_android:
dependency: transitive
description:
name: permission_handler_android
- sha256: "71bbecfee799e65aff7c744761a57e817e73b738fedf62ab7afd5593da21f9f1"
+ sha256: d3971dcdd76182a0c198c096b5db2f0884b0d4196723d21a866fc4cdea057ebc
url: "https://pub.dev"
source: hosted
- version: "12.0.13"
+ version: "12.1.0"
permission_handler_apple:
dependency: transitive
description:
@@ -1068,10 +1076,10 @@ packages:
dependency: transitive
description:
name: permission_handler_platform_interface
- sha256: e9c8eadee926c4532d0305dff94b85bf961f16759c3af791486613152af4b4f9
+ sha256: eb99b295153abce5d683cac8c02e22faab63e50679b937fa1bf67d58bb282878
url: "https://pub.dev"
source: hosted
- version: "4.2.3"
+ version: "4.3.0"
permission_handler_windows:
dependency: transitive
description:
@@ -1084,10 +1092,18 @@ packages:
dependency: transitive
description:
name: petitparser
- sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27
+ sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646"
url: "https://pub.dev"
source: hosted
- version: "6.0.2"
+ version: "6.1.0"
+ phonepe_payment_sdk:
+ dependency: "direct main"
+ description:
+ name: phonepe_payment_sdk
+ sha256: "33f541e788e41173ce853752d60e94635543f47a82d1e6dfbe2512cff4f3b666"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.0"
platform:
dependency: transitive
description:
@@ -1116,10 +1132,18 @@ packages:
dependency: "direct main"
description:
name: provider
- sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c
+ sha256: "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84"
url: "https://pub.dev"
source: hosted
- version: "6.1.2"
+ version: "6.1.5"
+ razorpay_flutter:
+ dependency: "direct main"
+ description:
+ name: razorpay_flutter
+ sha256: "7d86b2a2ba2c3a71366bbfb65664236ba4b12fd6aeaed4c13dfc5c998786b2d6"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.4.0"
readmore:
dependency: "direct main"
description:
@@ -1132,10 +1156,10 @@ packages:
dependency: transitive
description:
name: rxdart
- sha256: "2ef8b4e91cb3b55d155e0e34eeae0ac7107974e451495c955ac04ddee8cc21fd"
+ sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb"
url: "https://pub.dev"
source: hosted
- version: "0.26.0"
+ version: "0.27.7"
sanitize_html:
dependency: transitive
description:
@@ -1148,18 +1172,18 @@ packages:
dependency: "direct main"
description:
name: shared_preferences
- sha256: "95f9997ca1fb9799d494d0cb2a780fd7be075818d59f00c43832ed112b158a82"
+ sha256: "6e8bf70b7fef813df4e9a36f658ac46d107db4b4cfe1048b477d4e453a8159f5"
url: "https://pub.dev"
source: hosted
- version: "2.3.3"
+ version: "2.5.3"
shared_preferences_android:
dependency: transitive
description:
name: shared_preferences_android
- sha256: "480ba4345773f56acda9abf5f50bd966f581dac5d514e5fc4a18c62976bbba7e"
+ sha256: "20cbd561f743a342c76c151d6ddb93a9ce6005751e7aa458baad3858bfbfb6ac"
url: "https://pub.dev"
source: hosted
- version: "2.3.2"
+ version: "2.4.10"
shared_preferences_foundation:
dependency: transitive
description:
@@ -1188,10 +1212,10 @@ packages:
dependency: transitive
description:
name: shared_preferences_web
- sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e
+ sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019
url: "https://pub.dev"
source: hosted
- version: "2.4.2"
+ version: "2.4.3"
shared_preferences_windows:
dependency: transitive
description:
@@ -1220,15 +1244,15 @@ packages:
dependency: transitive
description: flutter
source: sdk
- version: "0.0.99"
+ version: "0.0.0"
source_span:
dependency: transitive
description:
name: source_span
- sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
+ sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
url: "https://pub.dev"
source: hosted
- version: "1.10.0"
+ version: "1.10.1"
sprintf:
dependency: transitive
description:
@@ -1241,34 +1265,58 @@ packages:
dependency: transitive
description:
name: sqflite
- sha256: a43e5a27235518c03ca238e7b4732cf35eabe863a369ceba6cbefa537a66f16d
+ sha256: e2297b1da52f127bc7a3da11439985d9b536f75070f3325e62ada69a5c585d03
url: "https://pub.dev"
source: hosted
- version: "2.3.3+1"
+ version: "2.4.2"
+ sqflite_android:
+ dependency: transitive
+ description:
+ name: sqflite_android
+ sha256: "2b3070c5fa881839f8b402ee4a39c1b4d561704d4ebbbcfb808a119bc2a1701b"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.4.1"
sqflite_common:
dependency: transitive
description:
name: sqflite_common
- sha256: "3da423ce7baf868be70e2c0976c28a1bb2f73644268b7ffa7d2e08eab71f16a4"
+ sha256: "84731e8bfd8303a3389903e01fb2141b6e59b5973cacbb0929021df08dddbe8b"
url: "https://pub.dev"
source: hosted
- version: "2.5.4"
+ version: "2.5.5"
+ sqflite_darwin:
+ dependency: transitive
+ description:
+ name: sqflite_darwin
+ sha256: "279832e5cde3fe99e8571879498c9211f3ca6391b0d818df4e17d9fff5c6ccb3"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.4.2"
+ sqflite_platform_interface:
+ dependency: transitive
+ description:
+ name: sqflite_platform_interface
+ sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.4.0"
stack_trace:
dependency: transitive
description:
name: stack_trace
- sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
+ sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
url: "https://pub.dev"
source: hosted
- version: "1.11.1"
+ version: "1.12.1"
stream_channel:
dependency: transitive
description:
name: stream_channel
- sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
+ sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
url: "https://pub.dev"
source: hosted
- version: "2.1.2"
+ version: "2.1.4"
stream_transform:
dependency: transitive
description:
@@ -1281,50 +1329,50 @@ packages:
dependency: transitive
description:
name: string_scanner
- sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
+ sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
url: "https://pub.dev"
source: hosted
- version: "1.2.0"
+ version: "1.4.1"
synchronized:
dependency: transitive
description:
name: synchronized
- sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558"
+ sha256: "0669c70faae6270521ee4f05bffd2919892d42d1276e6c495be80174b6bc0ef6"
url: "https://pub.dev"
source: hosted
- version: "3.1.0+1"
+ version: "3.3.1"
term_glyph:
dependency: transitive
description:
name: term_glyph
- sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
+ sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
url: "https://pub.dev"
source: hosted
- version: "1.2.1"
+ version: "1.2.2"
test_api:
dependency: transitive
description:
name: test_api
- sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
+ sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
url: "https://pub.dev"
source: hosted
- version: "0.7.0"
+ version: "0.7.4"
timezone:
dependency: transitive
description:
name: timezone
- sha256: "2236ec079a174ce07434e89fcd3fcda430025eb7692244139a9cf54fdcf1fc7d"
+ sha256: dd14a3b83cfd7cb19e7888f1cbc20f258b8d71b54c06f79ac585f14093a287d1
url: "https://pub.dev"
source: hosted
- version: "0.9.4"
+ version: "0.10.1"
typed_data:
dependency: transitive
description:
name: typed_data
- sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
+ sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
url: "https://pub.dev"
source: hosted
- version: "1.3.2"
+ version: "1.4.0"
url_launcher:
dependency: "direct main"
description:
@@ -1337,18 +1385,18 @@ packages:
dependency: transitive
description:
name: url_launcher_android
- sha256: f0c73347dfcfa5b3db8bc06e1502668265d39c08f310c29bff4e28eea9699f79
+ sha256: "8582d7f6fe14d2652b4c45c9b6c14c0b678c2af2d083a11b604caeba51930d79"
url: "https://pub.dev"
source: hosted
- version: "6.3.9"
+ version: "6.3.16"
url_launcher_ios:
dependency: transitive
description:
name: url_launcher_ios
- sha256: "16a513b6c12bb419304e72ea0ae2ab4fed569920d1c7cb850263fe3acc824626"
+ sha256: "7f2022359d4c099eea7df3fdf739f7d3d3b9faf3166fb1dd390775176e0b76cb"
url: "https://pub.dev"
source: hosted
- version: "6.3.2"
+ version: "6.3.3"
url_launcher_linux:
dependency: transitive
description:
@@ -1377,10 +1425,10 @@ packages:
dependency: transitive
description:
name: url_launcher_web
- sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e"
+ sha256: "4bd2b7b4dc4d4d0b94e5babfffbca8eac1a126c7f3d6ecbc1a11013faa3abba2"
url: "https://pub.dev"
source: hosted
- version: "2.3.3"
+ version: "2.4.1"
url_launcher_windows:
dependency: transitive
description:
@@ -1390,7 +1438,7 @@ packages:
source: hosted
version: "3.1.4"
uuid:
- dependency: transitive
+ dependency: "direct main"
description:
name: uuid
sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff
@@ -1401,26 +1449,26 @@ packages:
dependency: transitive
description:
name: vector_graphics
- sha256: "4ac59808bbfca6da38c99f415ff2d3a5d7ca0a6b4809c71d9cf30fba5daf9752"
+ sha256: a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6
url: "https://pub.dev"
source: hosted
- version: "1.1.10+1"
+ version: "1.1.19"
vector_graphics_codec:
dependency: transitive
description:
name: vector_graphics_codec
- sha256: f3247e7ab0ec77dc759263e68394990edc608fb2b480b80db8aa86ed09279e33
+ sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146"
url: "https://pub.dev"
source: hosted
- version: "1.1.10+1"
+ version: "1.1.13"
vector_graphics_compiler:
dependency: transitive
description:
name: vector_graphics_compiler
- sha256: "18489bdd8850de3dd7ca8a34e0c446f719ec63e2bab2e7a8cc66a9028dd76c5a"
+ sha256: "557a315b7d2a6dbb0aaaff84d857967ce6bdc96a63dc6ee2a57ce5a6ee5d3331"
url: "https://pub.dev"
source: hosted
- version: "1.1.10+1"
+ version: "1.1.17"
vector_math:
dependency: transitive
description:
@@ -1433,26 +1481,26 @@ packages:
dependency: transitive
description:
name: vm_service
- sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
+ sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"
url: "https://pub.dev"
source: hosted
- version: "14.2.1"
+ version: "14.3.1"
web:
dependency: transitive
description:
name: web
- sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb
+ sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
url: "https://pub.dev"
source: hosted
- version: "1.1.0"
+ version: "1.1.1"
win32:
dependency: transitive
description:
name: win32
- sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a"
+ sha256: "329edf97fdd893e0f1e3b9e88d6a0e627128cc17cc316a8d67fda8f1451178ba"
url: "https://pub.dev"
source: hosted
- version: "5.5.4"
+ version: "5.13.0"
xdg_directories:
dependency: transitive
description:
@@ -1470,5 +1518,5 @@ packages:
source: hosted
version: "6.5.0"
sdks:
- dart: ">=3.4.0 <4.0.0"
- flutter: ">=3.22.0"
+ dart: ">=3.7.0 <4.0.0"
+ flutter: ">=3.29.1"
diff --git a/pubspec.yaml b/pubspec.yaml
index f26fb6a..762f1da 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -2,7 +2,7 @@ name: grocery_app
description: "CustomerApp"
publish_to: 'none'
-version: 1.0.0+1
+version: 1.0.3+25
environment:
sdk: '>=3.4.0 <4.0.0'
@@ -24,20 +24,25 @@ dependencies:
flutter_toggle_tab: ^1.4.1
dotted_border: ^2.1.0
go_router: ^14.2.0
+ uuid: ^4.0.0
+ phonepe_payment_sdk: ^3.0.0
google_maps_flutter:
geolocator:
- geocoding:
- flutter_google_places:
- google_api_headers:
+ geocoding:
+ app_links: ^3.0.0
+ google_places_flutter: ^2.1.0
+ google_api_headers: ^4.4.1
fluttertoast:
flutter_rating_stars: ^1.1.0
url_launcher: ^6.3.1
skeletonizer: ^1.4.3
art_sweetalert: ^0.0.5
+
+
blur:
flutter_rating_bar:
change_app_package_name: ^1.5.0
- permission_handler: ^11.3.1
+ permission_handler: ^11.3.1
flutter_local_notifications: ^18.0.1
firebase_core:
firebase_messaging:
@@ -75,6 +80,10 @@ dependencies:
image_picker: any
shimmer: ^3.0.0
flutter_inappwebview: ^6.0.0
+ razorpay_flutter: ^1.3.7
+ http: ^1.1.0
+
+
dev_dependencies:
diff --git a/test/widget_test.dart b/test/widget_test.dart
deleted file mode 100644
index a8930cc..0000000
--- a/test/widget_test.dart
+++ /dev/null
@@ -1,30 +0,0 @@
-// This is a basic Flutter widget test.
-//
-// To perform an interaction with a widget in your test, use the WidgetTester
-// utility in the flutter_test package. For example, you can send tap and scroll
-// gestures. You can also use WidgetTester to find child widgets in the widget
-// tree, read text, and verify that the values of widget properties are correct.
-
-import 'package:flutter/material.dart';
-import 'package:flutter_test/flutter_test.dart';
-
-import 'package:grocery_app/main.dart';
-
-void main() {
- testWidgets('Counter increments smoke test', (WidgetTester tester) async {
- // Build our app and trigger a frame.
- await tester.pumpWidget(const MyApplication());
-
- // Verify that our counter starts at 0.
- expect(find.text('0'), findsOneWidget);
- expect(find.text('1'), findsNothing);
-
- // Tap the '+' icon and trigger a frame.
- await tester.tap(find.byIcon(Icons.add));
- await tester.pump();
-
- // Verify that our counter has incremented.
- expect(find.text('0'), findsNothing);
- expect(find.text('1'), findsOneWidget);
- });
-}
diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc
index 41223e8..90f6e17 100644
--- a/windows/flutter/generated_plugin_registrant.cc
+++ b/windows/flutter/generated_plugin_registrant.cc
@@ -6,20 +6,26 @@
#include "generated_plugin_registrant.h"
+#include
#include
#include
#include
+#include
#include
#include
#include
void RegisterPlugins(flutter::PluginRegistry* registry) {
+ AppLinksPluginCApiRegisterWithRegistrar(
+ registry->GetRegistrarForPlugin("AppLinksPluginCApi"));
ConnectivityPlusWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin"));
FileSelectorWindowsRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FileSelectorWindows"));
FirebaseCorePluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FirebaseCorePluginCApi"));
+ FlutterInappwebviewWindowsPluginCApiRegisterWithRegistrar(
+ registry->GetRegistrarForPlugin("FlutterInappwebviewWindowsPluginCApi"));
GeolocatorWindowsRegisterWithRegistrar(
registry->GetRegistrarForPlugin("GeolocatorWindows"));
PermissionHandlerWindowsPluginRegisterWithRegistrar(
diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake
index 41960ae..08ab0ba 100644
--- a/windows/flutter/generated_plugins.cmake
+++ b/windows/flutter/generated_plugins.cmake
@@ -3,9 +3,11 @@
#
list(APPEND FLUTTER_PLUGIN_LIST
+ app_links
connectivity_plus
file_selector_windows
firebase_core
+ flutter_inappwebview_windows
geolocator_windows
permission_handler_windows
url_launcher_windows