master
Sneha 2 weeks ago
parent 036d0279de
commit c63731734e

@ -0,0 +1,34 @@
import 'package:flutter/material.dart';
import 'settings.dart';
class Dialogs {
static Future<void> showLoadingDialog(BuildContext context, GlobalKey key) async {
return showDialog<void>(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return new WillPopScope(
onWillPop: () async => false,
child: SimpleDialog(
key: key,
backgroundColor: Colors.white,
children: <Widget>[
Center(
child: Column(children: [
CircularProgressIndicator(
valueColor: new AlwaysStoppedAnimation<Color>(primaryColor),
),
SizedBox(
height: 10,
),
Text(
AppSettings.preloadText,
style: PreloaderText(),
),
]),
)
]));
});
}
}

@ -1,9 +1,12 @@
import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:http/http.dart' as http;
import 'package:fluttertoast/fluttertoast.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:supplier_new/common/preloader.dart';
const Color primaryColor = Color(0XFF1D7AFC);
const Color secondaryColor = Color(0XFFBFE0ED);
@ -48,8 +51,79 @@ InputDecoration textFormFieldDecoration(IconData icon,var text){
);
}
TextStyle PreloaderText() {
return TextStyle(color:primaryColor);
}
class AppSettings{
static SharedPreferences sharedPreferences =
SharedPreferences.getInstance() as SharedPreferences;
static File? updatedImage;
static String image = '';
static String userName = '';
static String loginType = '';
static String accessType = '';
static String buildingName = '';
static String userAddress = '';
static String email = '';
static String phoneNumber = '';
static String accessToken = '';
static String customerId = '';
static double userLatitude = 0;
static double userLongitude = 0;
static String customerIdsign = '';
static String profileImage = '';
static String preloadText = 'Please wait';
static String host = 'http://armintaaqua.com:3000/api/';
static String loginUrl = host + 'supplierlogin';
// Shared preferences save,get and clear data
static saveData(String _key, _value, type) async {
sharedPreferences = await SharedPreferences.getInstance();
if (type == 'STRING') {
await sharedPreferences.setString(_key, _value.toString());
} else if (type == 'INTEGER') {
await sharedPreferences.setInt(_key, _value);
} else if (type == 'BOOL') {
await sharedPreferences.setBool(_key, _value);
} else if (type == 'DOUBLE') {
await sharedPreferences.setDouble(_key, _value);
}
}
static getData(String _key, type) async {
sharedPreferences = await SharedPreferences.getInstance();
if (type == 'STRING') {
return sharedPreferences.getString(_key) ?? '';
} else if (type == 'INTEGER') {
return sharedPreferences.getInt(_key) ?? -1;
} else if (type == 'BOOL') {
return sharedPreferences.getBool(_key) ?? -1;
} else if (type == 'DOUBLE') {
return sharedPreferences.getDouble(_key) ?? -1;
}
}
static clearSharedPreferences() async {
sharedPreferences = await SharedPreferences.getInstance();
await sharedPreferences.clear();
}
/* Preloader */
static GlobalKey<State> preLoaderKey = new GlobalKey<State>();
static Future<void> preLoaderDialog(BuildContext context) async {
try {
preLoaderKey = new GlobalKey<State>();
Dialogs.showLoadingDialog(context, preLoaderKey);
} catch (error) {}
}
static Future<bool> internetConnectivity() async {
try {
final result = await InternetAddress.lookup('google.com');
@ -61,4 +135,174 @@ class AppSettings{
}
return false;
}
/*Apis Starts here*/
static Future<bool> login(payload) async {
var response = await http.post(Uri.parse(loginUrl),
body: json.encode(payload),
headers: {'Content-type': 'application/json'});
if (response.statusCode == 200) {
try {
var _response = json.decode(response.body);
print(_response['simplydata']['error']);
if (_response['simplydata']['error'] == false) {
await saveAvailableReportAndLocationsInMemory(_response);
//await saveProfilePic(_response);
return true;
} else {
return false;
}
} catch (e) {
// display error toast
return false;
}
} else {
return false;
}
}
/*Apis ends here*/
//save data local
static Future<void> saveAvailableReportAndLocationsInMemory(
dynamic input) async {
// save login name information
await saveData('username', input['simplydata']['username'], 'STRING');
await saveData('logintype', input['simplydata']['loginType'], 'STRING');
await saveData('all_motor_access', input['simplydata']['all_motor_access'], 'STRING');
await saveData('buildingname', input['simplydata']['buildingName'], 'STRING');
await saveData(
'access_token', input['simplydata']['access_token'], 'STRING');
await saveData('phone', input['simplydata']['phone'], 'STRING');
await saveData('email', input['simplydata']['email'][0]['email'], 'STRING');
await saveData('customerId', input['simplydata']['customerId'], 'STRING');
await saveData('profile', input['simplydata']['picture'], 'STRING');
await saveData('user_address', input['simplydata']['address1'], 'STRING');
if(input['simplydata']['latitude']==0){
input['simplydata']['latitude']=0.0;
}
if(input['simplydata']['longitude']==0){
input['simplydata']['longitude']=0.0;
}
await saveData('latitude', input['simplydata']['latitude'], 'DOUBLE');
await saveData('longitude', input['simplydata']['longitude'], 'DOUBLE');
await saveData('fcmId', input['simplydata']['fcmId'], 'STRING');
//latitude,longitude
await loadDataFromMemory();
}
static Future<void> saveProfile(dynamic image) async {
// save login name information
await saveData('profile', image.toString(), 'STRING');
//await loadDataFromMemory();
}
static Uint8List convertBase64Image(String base64String) {
return Base64Decoder().convert(base64String.split(',').last);
}
static Future<void> loadDataFromMemory() async {
userName = await getData('username', 'STRING');
loginType = await getData('logintype', 'STRING');
accessType = await getData('all_motor_access', 'STRING');
buildingName = await getData('buildingname', 'STRING');
accessToken = await getData('access_token', 'STRING');
email = await getData('email', 'STRING');
userAddress = await getData('user_address', 'STRING');
phoneNumber = await getData('phone', 'STRING');
customerId = await getData('customerId', 'STRING');
userLatitude = await getData('latitude', 'DOUBLE');
userLongitude = await getData('longitude', 'DOUBLE');
//profilePictureUrl = await getData('profile', 'STRING');
// fcmId = await getData('fcmId', 'STRING');
//profileImage=await getData('profile', 'STRING');
getProfile();
}
static String getStringFromBytes(var data) {
final buffer = data.buffer;
var list = buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);
var bufferdata = utf8.decode(list);
String bs4str = base64.encode(list);
Uint8List decodedbytes = base64.decode(bs4str);
//OR
// String bs4str1 = base64Encode(imgbytes);
String s = new String.fromCharCodes(list);
var outputAsUint8List = new Uint8List.fromList(s.codeUnits);
return bufferdata;
}
static Uint8List image1(dynamicList) {
List<int> intList =
dynamicList.cast<int>().toList(); //This is the magical line.
Uint8List data = Uint8List.fromList(intList);
return data;
}
static Future<void> getProfile() async {
final image1 = await getData('profile', 'STRING');
//Io.File.fromUri(imageFile.uri)
var x = image1;
if (image1 == null) return;
if (image1 == '') {
updatedImage = null;
} else if (image1 == 'null') {
updatedImage = null;
} else {
final imageTemp = File(image1);
updatedImage = imageTemp;
}
print(updatedImage);
}
//assign saved values to variables
static Future<void> saveProfilePic(dynamic input) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
// your custom int list
List<dynamic> mList = input['simplydata']['picture']['data'];
print(mList.length);
//input['simplydata']['picture']['data'];[0,1,2,3]
// convert your custom list to string list
List<String> stringsList = mList.map((i) => i.toString()).toList();
// store your string list in shared prefs
prefs.setStringList("stringList", stringsList);
// String bar = utf8.decode(bytes);
//String convertedValue = utf8.decode(mList);
}
static void longFailedToast(String message) {
Fluttertoast.showToast(
msg: message,
toastLength: Toast.LENGTH_LONG,
gravity: ToastGravity.BOTTOM,
timeInSecForIosWeb: 1,
backgroundColor: Colors.red,
textColor: Colors.white,
fontSize: 16.0);
}
static void longSuccessToast(String message) {
Fluttertoast.showToast(
msg: message,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.BOTTOM,
timeInSecForIosWeb: 1,
backgroundColor: Colors.green,
textColor: Colors.white,
fontSize: 16.0);
}
}

@ -1,6 +1,10 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:supplier_new/common/settings.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
class Login extends StatefulWidget {
const Login({super.key});
@ -11,6 +15,12 @@ class Login extends StatefulWidget {
class _LoginState extends State<Login> {
final storage = FlutterSecureStorage(
aOptions: AndroidOptions(
resetOnError: true,
encryptedSharedPreferences: true,
),
);
bool isObscureText=true;
TextEditingController mobileNumberController = TextEditingController();
@ -23,7 +33,6 @@ class _LoginState extends State<Login> {
super.initState();
}
Future<bool> onWillPop() async {
final shouldPop = await showDialog<bool>(context: context, builder: (context) {
return AlertDialog(
@ -68,7 +77,7 @@ class _LoginState extends State<Login> {
return WillPopScope(
onWillPop: () async => onWillPop(),
child: Scaffold(
backgroundColor: Colors.white,
backgroundColor: Colors.white,
body: Stack(
children: <Widget>[
/*Container(
@ -94,18 +103,6 @@ class _LoginState extends State<Login> {
),
SizedBox(height:MediaQuery.of(context).size.height * .04,),
/*Align(
alignment: Alignment.bottomLeft,
child: Text('Welcome!', style:fontTextStyle(24,Color(0XFF1C1E20),FontWeight.w800)
*//*style: GoogleFonts.inter(
textStyle: TextStyle(
fontSize: 24,
fontWeight: FontWeight.bold,
color: Colors.black,
),
),*//*),
),*/
SizedBox(height:MediaQuery.of(context).size.height * .024,),
Container(
child: TextFormField(
@ -149,7 +146,7 @@ class _LoginState extends State<Login> {
suffixIcon: IconButton(
icon: isObscureText==true?Image.asset('images/eye_icon.png',color: Color(0XFF7E7F80),width: 30,height: 30,):Image.asset('images/open_eye.png',color:Color(0XFF7E7F80),width: 30,height: 30,),
/* Icon(
/* Icon(
icon:Image.asset('assets/your_image.png'),
color: isObscureText==true?greyColor:primaryColor,
),*/
@ -170,20 +167,20 @@ class _LoginState extends State<Login> {
SizedBox(height:MediaQuery.of(context).size.height * .016,),
Align(
alignment: Alignment.bottomLeft,
child:GestureDetector(
onTap: (){
/*Navigator.push(
context,
MaterialPageRoute(builder: (context) => ForgotpasswordNew()),
);*/
},
child: Text(
'Forgot Password?',
style: fontTextStyle(12,Color(0XFF1D7AFC),FontWeight.w600),
alignment: Alignment.bottomLeft,
child:GestureDetector(
onTap: (){
/* Navigator.push(
context,
MaterialPageRoute(builder: (context) => ForgotpasswordNew()),
);*/
},
child: Text(
'Forgot Password?',
style: fontTextStyle(12,Color(0XFF1D7AFC),FontWeight.w600),
),
)
),
)
),
SizedBox(height:MediaQuery.of(context).size.height * .024,),
Container(
@ -194,11 +191,65 @@ class _LoginState extends State<Login> {
foregroundColor: Colors.white,
backgroundColor: primaryColor,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(24.0), // Customize the radius
borderRadius: BorderRadius.circular(12.0), // Customize the radius
),
),
onPressed: () async{
if (mobileNumberController.text != ''&&
passwordController.text != '') {
AppSettings.preLoaderDialog(context);
bool isOnline = await AppSettings.internetConnectivity();
if(isOnline){
SharedPreferences prefs = await SharedPreferences.getInstance();
String? fcmToken = prefs.getString('fcmToken');
var payload = new Map<String, dynamic>();
payload["phone"] = mobileNumberController.text.toString();
payload["password"] = passwordController.text.toString();
payload["fcmIds"] = [fcmToken];
bool signinStatus = await AppSettings.login(payload);
try{
if (signinStatus) {
Navigator.of(context,rootNavigator: true).pop();
String token = AppSettings.accessToken;
await storage.write(key: 'authToken', value: token);
print('Token saved: $token');
/*await Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const DashboardScreen()),
);*/
AppSettings.longSuccessToast("Logged in Successfully");
mobileNumberController.text='';
passwordController.text='';
} else {
Navigator.of(context,rootNavigator: true).pop();
AppSettings.longFailedToast("Invalid details");
}
}
catch(exception){
Navigator.of(context,rootNavigator: true).pop();
print(exception);
}
}
else{
Navigator.of(context,rootNavigator: true).pop();
AppSettings.longFailedToast("Please Check internet");
}
}
else{
AppSettings.longFailedToast("Please enter valid details");
}
},
child: Text('Login',style: fontTextStyle(12,Colors.white,FontWeight.w600),),
)),

@ -6,6 +6,10 @@
#include "generated_plugin_registrant.h"
#include <flutter_secure_storage_linux/flutter_secure_storage_linux_plugin.h>
void fl_register_plugins(FlPluginRegistry* registry) {
g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin");
flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar);
}

@ -3,6 +3,7 @@
#
list(APPEND FLUTTER_PLUGIN_LIST
flutter_secure_storage_linux
)
list(APPEND FLUTTER_FFI_PLUGIN_LIST

@ -5,8 +5,16 @@
import FlutterMacOS
import Foundation
import firebase_core
import firebase_messaging
import flutter_secure_storage_macos
import path_provider_foundation
import shared_preferences_foundation
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
FLTFirebaseMessagingPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseMessagingPlugin"))
FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
}

@ -1,6 +1,14 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
_flutterfire_internals:
dependency: transitive
description:
name: _flutterfire_internals
sha256: "37a42d06068e2fe3deddb2da079a8c4d105f241225ba27b7122b37e9865fd8f7"
url: "https://pub.dev"
source: hosted
version: "1.3.35"
async:
dependency: transitive
description:
@ -73,6 +81,62 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.3"
file:
dependency: transitive
description:
name: file
sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
url: "https://pub.dev"
source: hosted
version: "7.0.1"
firebase_core:
dependency: transitive
description:
name: firebase_core
sha256: "26de145bb9688a90962faec6f838247377b0b0d32cc0abecd9a4e43525fc856c"
url: "https://pub.dev"
source: hosted
version: "2.32.0"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
sha256: "8bcfad6d7033f5ea951d15b867622a824b13812178bfec0c779b9d81de011bbb"
url: "https://pub.dev"
source: hosted
version: "5.4.2"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
sha256: "362e52457ed2b7b180964769c1e04d1e0ea0259fdf7025fdfedd019d4ae2bd88"
url: "https://pub.dev"
source: hosted
version: "2.17.5"
firebase_messaging:
dependency: "direct main"
description:
name: firebase_messaging
sha256: a1662cc95d9750a324ad9df349b873360af6f11414902021f130c68ec02267c4
url: "https://pub.dev"
source: hosted
version: "14.9.4"
firebase_messaging_platform_interface:
dependency: transitive
description:
name: firebase_messaging_platform_interface
sha256: "87c4a922cb6f811cfb7a889bdbb3622702443c52a0271636cbc90d813ceac147"
url: "https://pub.dev"
source: hosted
version: "4.5.37"
firebase_messaging_web:
dependency: transitive
description:
name: firebase_messaging_web
sha256: "0d34dca01a7b103ed7f20138bffbb28eb0e61a677bf9e78a028a932e2c7322d5"
url: "https://pub.dev"
source: hosted
version: "3.8.7"
flutter:
dependency: "direct main"
description: flutter
@ -86,27 +150,88 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.2"
flutter_secure_storage:
dependency: "direct main"
description:
name: flutter_secure_storage
sha256: "9cad52d75ebc511adfae3d447d5d13da15a55a92c9410e50f67335b6d21d16ea"
url: "https://pub.dev"
source: hosted
version: "9.2.4"
flutter_secure_storage_linux:
dependency: transitive
description:
name: flutter_secure_storage_linux
sha256: be76c1d24a97d0b98f8b54bce6b481a380a6590df992d0098f868ad54dc8f688
url: "https://pub.dev"
source: hosted
version: "1.2.3"
flutter_secure_storage_macos:
dependency: transitive
description:
name: flutter_secure_storage_macos
sha256: "6c0a2795a2d1de26ae202a0d78527d163f4acbb11cde4c75c670f3a0fc064247"
url: "https://pub.dev"
source: hosted
version: "3.1.3"
flutter_secure_storage_platform_interface:
dependency: transitive
description:
name: flutter_secure_storage_platform_interface
sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8
url: "https://pub.dev"
source: hosted
version: "1.1.2"
flutter_secure_storage_web:
dependency: transitive
description:
name: flutter_secure_storage_web
sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9
url: "https://pub.dev"
source: hosted
version: "1.2.1"
flutter_secure_storage_windows:
dependency: transitive
description:
name: flutter_secure_storage_windows
sha256: b20b07cb5ed4ed74fc567b78a72936203f587eba460af1df11281c9326cd3709
url: "https://pub.dev"
source: hosted
version: "3.1.2"
flutter_test:
dependency: "direct dev"
description: flutter
source: sdk
version: "0.0.0"
flutter_web_plugins:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
fluttertoast:
dependency: "direct main"
description:
name: fluttertoast
sha256: "95f349437aeebe524ef7d6c9bde3e6b4772717cf46a0eb6a3ceaddc740b297cc"
url: "https://pub.dev"
source: hosted
version: "8.2.8"
google_fonts:
dependency: "direct main"
description:
name: google_fonts
sha256: "2776c66b3e97c6cdd58d1bd3281548b074b64f1fd5c8f82391f7456e38849567"
sha256: "6b6f10f0ce3c42f6552d1c70d2c28d764cf22bb487f50f66cca31dcd5194f4d6"
url: "https://pub.dev"
source: hosted
version: "4.0.5"
version: "4.0.4"
http:
dependency: transitive
dependency: "direct main"
description:
name: http
sha256: bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007
sha256: "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2"
url: "https://pub.dev"
source: hosted
version: "1.5.0"
version: "0.13.6"
http_parser:
dependency: transitive
description:
@ -115,6 +240,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.0.2"
js:
dependency: transitive
description:
name: js
sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
url: "https://pub.dev"
source: hosted
version: "0.6.7"
leak_tracker:
dependency: transitive
description:
@ -243,6 +376,62 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.8"
shared_preferences:
dependency: "direct main"
description:
name: shared_preferences
sha256: "95f9997ca1fb9799d494d0cb2a780fd7be075818d59f00c43832ed112b158a82"
url: "https://pub.dev"
source: hosted
version: "2.3.3"
shared_preferences_android:
dependency: transitive
description:
name: shared_preferences_android
sha256: "480ba4345773f56acda9abf5f50bd966f581dac5d514e5fc4a18c62976bbba7e"
url: "https://pub.dev"
source: hosted
version: "2.3.2"
shared_preferences_foundation:
dependency: transitive
description:
name: shared_preferences_foundation
sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03"
url: "https://pub.dev"
source: hosted
version: "2.5.4"
shared_preferences_linux:
dependency: transitive
description:
name: shared_preferences_linux
sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
shared_preferences_platform_interface:
dependency: transitive
description:
name: shared_preferences_platform_interface
sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
shared_preferences_web:
dependency: transitive
description:
name: shared_preferences_web
sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019
url: "https://pub.dev"
source: hosted
version: "2.4.3"
shared_preferences_windows:
dependency: transitive
description:
name: shared_preferences_windows
sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
sky_engine:
dependency: transitive
description: flutter
@ -324,10 +513,18 @@ packages:
dependency: transitive
description:
name: web
sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
version: "0.5.1"
win32:
dependency: transitive
description:
name: win32
sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a"
url: "https://pub.dev"
source: hosted
version: "5.5.4"
xdg_directories:
dependency: transitive
description:

@ -14,6 +14,11 @@ dependencies:
cupertino_icons: ^1.0.6
google_fonts: ^4.0.4
shared_preferences: ^2.0.15
http: ^0.13.5
fluttertoast: ^8.1.2
flutter_secure_storage: ^9.0.0
firebase_messaging: ^14.9.1
dev_dependencies:
flutter_test:

@ -6,6 +6,12 @@
#include "generated_plugin_registrant.h"
#include <firebase_core/firebase_core_plugin_c_api.h>
#include <flutter_secure_storage_windows/flutter_secure_storage_windows_plugin.h>
void RegisterPlugins(flutter::PluginRegistry* registry) {
FirebaseCorePluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FirebaseCorePluginCApi"));
FlutterSecureStorageWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin"));
}

@ -3,6 +3,8 @@
#
list(APPEND FLUTTER_PLUGIN_LIST
firebase_core
flutter_secure_storage_windows
)
list(APPEND FLUTTER_FFI_PLUGIN_LIST

Loading…
Cancel
Save