login , logout,auth #8
|
@ -5,9 +5,11 @@
|
||||||
*.swp
|
*.swp
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.atom/
|
.atom/
|
||||||
|
.build/
|
||||||
.buildlog/
|
.buildlog/
|
||||||
.history
|
.history
|
||||||
.svn/
|
.svn/
|
||||||
|
.swiftpm/
|
||||||
migrate_working_dir/
|
migrate_working_dir/
|
||||||
|
|
||||||
# IntelliJ related
|
# IntelliJ related
|
||||||
|
|
|
@ -1,14 +1,6 @@
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:konectar_events/contacts_module/constants.dart';
|
|
||||||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/interactionprovider.dart';
|
|
||||||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/model/interaction_data.dart';
|
|
||||||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/util.dart';
|
|
||||||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/viewinteractionprovider.dart';
|
|
||||||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/widget/custombutton.dart';
|
|
||||||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/widget/customrangeslider.dart';
|
|
||||||
import 'package:konectar_events/contacts_module/ui_screen/interactionform/widget/responsive_ext.dart';
|
|
||||||
import 'package:dropdownfield2/dropdownfield2.dart';
|
import 'package:dropdownfield2/dropdownfield2.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
@ -16,6 +8,15 @@ import 'package:flutter/rendering.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
|
import 'package:konectar_events/contacts_module/constants.dart';
|
||||||
|
import 'package:konectar_events/contacts_module/ui_screen/interactionform/interactionprovider.dart';
|
||||||
|
import 'package:konectar_events/contacts_module/ui_screen/interactionform/model/interaction_data.dart';
|
||||||
|
import 'package:konectar_events/contacts_module/ui_screen/interactionform/viewinteractionprovider.dart';
|
||||||
|
import 'package:konectar_events/contacts_module/ui_screen/interactionform/widget/customrangeslider.dart';
|
||||||
|
import 'package:konectar_events/contacts_module/ui_screen/interactionform/widget/responsive_ext.dart';
|
||||||
|
import 'package:konectar_events/utils/appcolors.dart';
|
||||||
|
import 'package:konectar_events/utils/util.dart';
|
||||||
|
import 'package:konectar_events/widgets/custombutton.dart';
|
||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
import 'package:popover/popover.dart';
|
import 'package:popover/popover.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
@ -102,7 +103,7 @@ class _InteractionScreen1State extends State<InteractionScreen1> {
|
||||||
setState(() {});
|
setState(() {});
|
||||||
}
|
}
|
||||||
|
|
||||||
final CarouselController _controller = CarouselController();
|
final FlutterCarouselController _controller = FlutterCarouselController();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
|
@ -157,7 +158,7 @@ class _InteractionScreen1State extends State<InteractionScreen1> {
|
||||||
// sectionList = item.sectionList;
|
// sectionList = item.sectionList;
|
||||||
// print("Section_ListttPooja: $sectionList");
|
// print("Section_ListttPooja: $sectionList");
|
||||||
FlutterCarousel(
|
FlutterCarousel(
|
||||||
options: CarouselOptions(
|
options: FlutterCarouselOptions(
|
||||||
onPageChanged: (index, reason) {
|
onPageChanged: (index, reason) {
|
||||||
setState(() {
|
setState(() {
|
||||||
_currentPage = index;
|
_currentPage = index;
|
||||||
|
|
|
@ -60,7 +60,7 @@ class _EditInteractionScreenState extends State<EditInteractionScreen1> {
|
||||||
String? fileName;
|
String? fileName;
|
||||||
final TextEditingController textEditingController = TextEditingController();
|
final TextEditingController textEditingController = TextEditingController();
|
||||||
|
|
||||||
final CarouselController _controller = CarouselController();
|
final FlutterCarouselController _controller = FlutterCarouselController();
|
||||||
|
|
||||||
int _currentPage = 0;
|
int _currentPage = 0;
|
||||||
late int _totalPages =
|
late int _totalPages =
|
||||||
|
@ -156,7 +156,7 @@ class _EditInteractionScreenState extends State<EditInteractionScreen1> {
|
||||||
// var item = provider.interactionReponseList[index];
|
// var item = provider.interactionReponseList[index];
|
||||||
// sectionList = item.sectionList;
|
// sectionList = item.sectionList;
|
||||||
child: FlutterCarousel(
|
child: FlutterCarousel(
|
||||||
options: CarouselOptions(
|
options: FlutterCarouselOptions(
|
||||||
onPageChanged: (index, reason) {
|
onPageChanged: (index, reason) {
|
||||||
setState(() {
|
setState(() {
|
||||||
_currentPage = index;
|
_currentPage = index;
|
||||||
|
|
|
@ -260,9 +260,11 @@ Future main() async {
|
||||||
create: (_) => HiveDataRepository(
|
create: (_) => HiveDataRepository(
|
||||||
Hive.box<InteractionConfigData>('InteractionConfigDataBox'))),
|
Hive.box<InteractionConfigData>('InteractionConfigDataBox'))),
|
||||||
],
|
],
|
||||||
child: SafeArea(
|
child:
|
||||||
top: true,
|
// SafeArea(
|
||||||
child: MaterialApp(
|
// top: true,
|
||||||
|
// child:
|
||||||
|
MaterialApp(
|
||||||
theme: ThemeData(
|
theme: ThemeData(
|
||||||
//fontFamily: "SourceSerif",
|
//fontFamily: "SourceSerif",
|
||||||
),
|
),
|
||||||
|
@ -292,7 +294,7 @@ Future main() async {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
// ),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,13 +27,15 @@ import 'package:konectar_events/model/verify_user_resp.dart';
|
||||||
import 'package:konectar_events/utils/constants.dart';
|
import 'package:konectar_events/utils/constants.dart';
|
||||||
import 'package:konectar_events/viewmodel/hive_repository.dart';
|
import 'package:konectar_events/viewmodel/hive_repository.dart';
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
|
import 'package:http/http.dart' as http;
|
||||||
|
|
||||||
class ApiCall {
|
class ApiCall {
|
||||||
final dio = Dio();
|
final dio = Dio();
|
||||||
final Future<SharedPreferences> _prefs = SharedPreferences.getInstance();
|
final Future<SharedPreferences> _prefs = SharedPreferences.getInstance();
|
||||||
|
|
||||||
late Future<String> _token;
|
late Future<String> _token;
|
||||||
|
String newtoken =
|
||||||
|
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzZWNyZXRlVG9rZW4iOiJiYjNmOTZmYmI5Y2U3ZjA2ZTliOTlkMzRiMGM3YjZkZTBlNjBmYWYzYmM1NDFhZjY0MGQ5ZjAzMGRlNzMxOWM4ZTAwZWNkMCIsImlhdCI6MTczNDM0OTUwNywiZXhwIjoxNzM0MzUxMzA3fQ.nN5XtgmWHVGGdyLEdICY6jTmlg1070rGFwsdyOd4CYY";
|
||||||
//K1 API CALLS
|
//K1 API CALLS
|
||||||
Future<dynamic> parseInfo() async {
|
Future<dynamic> parseInfo() async {
|
||||||
Dio dio = Dio();
|
Dio dio = Dio();
|
||||||
|
@ -123,38 +125,44 @@ class ApiCall {
|
||||||
return client;
|
return client;
|
||||||
};
|
};
|
||||||
Response response;
|
Response response;
|
||||||
var formData = FormData.fromMap({
|
String date = "2024-12-17";
|
||||||
"start": "2024-12-05",
|
var formData =
|
||||||
"end": "2024-12-31",
|
FormData.fromMap({"start": date, "order_by": 7, 'type': type ?? 1});
|
||||||
"order_by": 8,
|
|
||||||
'type': type ?? 1
|
|
||||||
});
|
|
||||||
// "end": DateTime(2024, 12, 14).toIso8601String(),
|
// "end": DateTime(2024, 12, 14).toIso8601String(),
|
||||||
_token = _prefs.then((SharedPreferences prefs) {
|
_token = _prefs.then((SharedPreferences prefs) {
|
||||||
return prefs.getString('token') ?? "";
|
return prefs.getString('token') ?? "";
|
||||||
});
|
});
|
||||||
print("SAVED TOKEN :${await _token}");
|
print("SAVED TOKEN :${await _token}");
|
||||||
response =
|
try {
|
||||||
await dio.post('${EventsConstants.url}${EventsConstants.eventslistapi}',
|
// dio.options.contentType = Headers.multipartFormDataContentType;
|
||||||
options: Options(headers: {
|
// dio.options.baseUrl = "https://cardio-staging.konectar.io/";
|
||||||
"Authorization": "Bearer ${await _token}",
|
|
||||||
|
// dio.options.headers["Authorization"] = "Bearer ${newtoken}";
|
||||||
|
|
||||||
|
response = await dio.post(
|
||||||
|
'https://cardio-staging.konectar.io/apis/v1/events/loadFutureEvents/',
|
||||||
|
options: Options(
|
||||||
|
contentType: "multipart/form-data",
|
||||||
|
followRedirects: false,
|
||||||
|
// will not throw errors
|
||||||
|
validateStatus: (status) => true,
|
||||||
|
headers: {
|
||||||
|
'Authorization': 'Bearer ${newtoken}',
|
||||||
}),
|
}),
|
||||||
// queryParameters: {
|
|
||||||
// "user_email": "vinodh@aissel.com",
|
|
||||||
// "project_id": "",
|
|
||||||
// "start": 2024 - 11 - 22,
|
|
||||||
// "end": "",
|
|
||||||
// "order_by": 7,
|
|
||||||
// "type": 1,
|
|
||||||
// },
|
|
||||||
data: formData);
|
data: formData);
|
||||||
print("response user eventssssss here!!!!!!!!!!!!!!!!!!!!! ");
|
|
||||||
|
print("RESPONSE");
|
||||||
print(response.data.toString());
|
print(response.data.toString());
|
||||||
Map<String, dynamic> jsondata = json.decode(response.data);
|
Map<String, dynamic> jsondata = json.decode(response.data);
|
||||||
|
|
||||||
EventsData eventresponse = EventsData.fromJson(jsondata);
|
EventsData eventresponse = EventsData.fromJson(jsondata);
|
||||||
List<EventsList>? eventdata = eventresponse.events;
|
List<EventsList>? eventdata = eventresponse.events;
|
||||||
return eventdata!;
|
return eventdata!;
|
||||||
|
} catch (e) {
|
||||||
|
print("EXCEPTION:${e.toString()}");
|
||||||
|
}
|
||||||
|
print("response user eventssssss here!!!!!!!!!!!!!!!!!!!!! ");
|
||||||
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<dynamic> followUnfollowEvent(String flag, String eventid) async {
|
Future<dynamic> followUnfollowEvent(String flag, String eventid) async {
|
||||||
|
@ -588,7 +596,7 @@ class ApiCall {
|
||||||
|
|
||||||
//VERIFY EMAIL K1
|
//VERIFY EMAIL K1
|
||||||
Future<dynamic> verifyEmail(
|
Future<dynamic> verifyEmail(
|
||||||
String email, String deviceid, String platform) async {
|
String url, String email, String deviceid, String platform) async {
|
||||||
Dio dio = Dio();
|
Dio dio = Dio();
|
||||||
(dio.httpClientAdapter as IOHttpClientAdapter).onHttpClientCreate =
|
(dio.httpClientAdapter as IOHttpClientAdapter).onHttpClientCreate =
|
||||||
(HttpClient client) {
|
(HttpClient client) {
|
||||||
|
@ -601,13 +609,14 @@ class ApiCall {
|
||||||
"email_id": email,
|
"email_id": email,
|
||||||
"device_id": deviceid,
|
"device_id": deviceid,
|
||||||
});
|
});
|
||||||
|
try {
|
||||||
response = await dio.post(
|
response = await dio.post(
|
||||||
'${EventsConstants.loginUrl}${EventsConstants.getVerificationCode}',
|
'${url}${EventsConstants.loginmodule}/${EventsConstants.getVerificationCode}',
|
||||||
options: Options(),
|
options: Options(),
|
||||||
data: formData);
|
data: formData);
|
||||||
if (response.statusCode == 200) {
|
if (response.statusCode == 200) {
|
||||||
print("response user login!!!!!!!!!!!!!!!!!!!!! \n ${response.data} ");
|
print("response user login!!!!!!!!!!!!!!!!!!!!! \n ${response.data} ");
|
||||||
Map<String, dynamic> jsondata = json.decode(response.data);
|
//Map<String, dynamic> jsondata = json.decode(response.data);
|
||||||
VerificationResponse verificationResponse =
|
VerificationResponse verificationResponse =
|
||||||
verificationResponseFromJson(response.data);
|
verificationResponseFromJson(response.data);
|
||||||
return verificationResponse;
|
return verificationResponse;
|
||||||
|
@ -615,6 +624,11 @@ class ApiCall {
|
||||||
print("isEmpty");
|
print("isEmpty");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
} catch (e) {
|
||||||
|
VerificationResponse verificationResponse =
|
||||||
|
VerificationResponse(status: 1401, message: "Invalid Domain");
|
||||||
|
return verificationResponse;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//VERIFY CODE OR LOGIN
|
//VERIFY CODE OR LOGIN
|
||||||
|
@ -656,14 +670,24 @@ class ApiCall {
|
||||||
(X509Certificate cert, String host, int port) => true;
|
(X509Certificate cert, String host, int port) => true;
|
||||||
return client;
|
return client;
|
||||||
};
|
};
|
||||||
|
print("email : $email,device : $deviceid");
|
||||||
|
_token = _prefs.then((SharedPreferences prefs) {
|
||||||
|
return prefs.getString('token') ?? "";
|
||||||
|
});
|
||||||
Response response;
|
Response response;
|
||||||
print("url :${EventsConstants.loginUrl}${EventsConstants.logout}");
|
print("url :${EventsConstants.loginUrl}${EventsConstants.logout}/");
|
||||||
var formData = FormData.fromMap({
|
var formData = FormData.fromMap({
|
||||||
"email_id": email,
|
"email_id": email,
|
||||||
"device_id": deviceid,
|
"device_id": deviceid,
|
||||||
});
|
});
|
||||||
response = await dio.post(
|
response = await dio.post(
|
||||||
'${EventsConstants.loginUrl}${EventsConstants.logout}',
|
'${EventsConstants.loginUrl}${EventsConstants.logout}',
|
||||||
|
options: Options(
|
||||||
|
contentType: "application/x-www-form-urlencoded",
|
||||||
|
followRedirects: false,
|
||||||
|
// will not throw errors
|
||||||
|
validateStatus: (status) => true,
|
||||||
|
headers: {"Authorization": "Bearer $_token"}),
|
||||||
data: formData,
|
data: formData,
|
||||||
// queryParameters: {
|
// queryParameters: {
|
||||||
// "token": token,
|
// "token": token,
|
||||||
|
|
|
@ -19,16 +19,6 @@ class AppTheme {
|
||||||
static const Color spacer = Color(0xFFF2F2F2);
|
static const Color spacer = Color(0xFFF2F2F2);
|
||||||
static const String fontName = 'WorkSans';
|
static const String fontName = 'WorkSans';
|
||||||
|
|
||||||
static const TextTheme textTheme = TextTheme(
|
|
||||||
headline4: display1,
|
|
||||||
headline5: headline,
|
|
||||||
headline6: title,
|
|
||||||
subtitle2: subtitle,
|
|
||||||
bodyText2: body2,
|
|
||||||
bodyText1: body1,
|
|
||||||
caption: caption,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const TextStyle display1 = TextStyle(
|
static const TextStyle display1 = TextStyle(
|
||||||
// h4 -> display1
|
// h4 -> display1
|
||||||
fontFamily: fontName,
|
fontFamily: fontName,
|
||||||
|
|
|
@ -37,13 +37,13 @@ class FieldValidation {
|
||||||
|
|
||||||
static String validateUrl(String url) {
|
static String validateUrl(String url) {
|
||||||
if (url.isEmpty) {
|
if (url.isEmpty) {
|
||||||
return 'Please enter application url';
|
return 'Please enter domain url';
|
||||||
} else {
|
} else {
|
||||||
bool isURLValid = Uri.parse(url).host.isNotEmpty;
|
bool isURLValid = Uri.parse(url).host.isNotEmpty;
|
||||||
if (isURLValid) {
|
if (isURLValid) {
|
||||||
return '';
|
return '';
|
||||||
} else {
|
} else {
|
||||||
return 'Please enter valid application url';
|
return 'Please enter valid domain url';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ import 'package:konectar_events/viewmodel/loginprovider.dart';
|
||||||
import 'package:konectar_events/widgets/customappbar.dart';
|
import 'package:konectar_events/widgets/customappbar.dart';
|
||||||
import 'package:konectar_events/widgets/custombutton.dart';
|
import 'package:konectar_events/widgets/custombutton.dart';
|
||||||
import 'package:konectar_events/widgets/customtextfield.dart';
|
import 'package:konectar_events/widgets/customtextfield.dart';
|
||||||
|
import 'package:konectar_events/widgets/snackbar.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
import 'package:mobile_device_identifier/mobile_device_identifier.dart';
|
import 'package:mobile_device_identifier/mobile_device_identifier.dart';
|
||||||
|
@ -52,7 +53,6 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
|
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
|
||||||
init();
|
|
||||||
provider = Provider.of<LoginProvider>(context, listen: false);
|
provider = Provider.of<LoginProvider>(context, listen: false);
|
||||||
initDeviceId();
|
initDeviceId();
|
||||||
if (Platform.isAndroid) {
|
if (Platform.isAndroid) {
|
||||||
|
@ -98,10 +98,6 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||||
print("DEVICE ID########################## :$deviceId");
|
print("DEVICE ID########################## :$deviceId");
|
||||||
}
|
}
|
||||||
|
|
||||||
init() async {
|
|
||||||
await ApiCall().parseInfo();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Consumer<LoginProvider>(
|
return Consumer<LoginProvider>(
|
||||||
|
@ -281,6 +277,28 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||||
const SizedBox(
|
const SizedBox(
|
||||||
height: 20,
|
height: 20,
|
||||||
),
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 50,
|
||||||
|
child: TextField(
|
||||||
|
controller: domainTextConrtroller,
|
||||||
|
style: TextStyle(fontSize: isTablet ? 18.0 : 16),
|
||||||
|
decoration: InputDecoration(
|
||||||
|
border: const OutlineInputBorder(),
|
||||||
|
labelStyle: TextStyle(fontSize: isTablet ? 18.0 : 16),
|
||||||
|
labelText: "Domain",
|
||||||
|
hintStyle: TextStyle(fontSize: isTablet ? 18.0 : 16),
|
||||||
|
prefix: Text("https://"),
|
||||||
|
suffix: Text(".io/"),
|
||||||
|
hintText: "Enter your Domain"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// CustomTextField(
|
||||||
|
// labelText: "Domain Url",
|
||||||
|
// controller: domainTextConrtroller,
|
||||||
|
// ),
|
||||||
|
const SizedBox(
|
||||||
|
height: 10,
|
||||||
|
),
|
||||||
CustomTextField(
|
CustomTextField(
|
||||||
labelText: "Email", controller: emailTextController),
|
labelText: "Email", controller: emailTextController),
|
||||||
// const SizedBox(),
|
// const SizedBox(),
|
||||||
|
@ -307,12 +325,11 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||||
child: CustomButton(
|
child: CustomButton(
|
||||||
backgroundColor: EventsConstants.onboardButtonColor,
|
backgroundColor: EventsConstants.onboardButtonColor,
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
|
if (textFieldsValidation(provider).isEmpty) {
|
||||||
setState(() {
|
setState(() {
|
||||||
print("loading");
|
print("loading");
|
||||||
provider.loading = true;
|
provider.loading = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (textFieldsValidation(provider).isEmpty) {
|
|
||||||
print("email:${emailTextController.text}");
|
print("email:${emailTextController.text}");
|
||||||
// if (await _logout) {
|
// if (await _logout) {
|
||||||
// print("LOGOUT");
|
// print("LOGOUT");
|
||||||
|
@ -341,9 +358,11 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||||
provider.email = emailTextController.text;
|
provider.email = emailTextController.text;
|
||||||
// String encoded =
|
// String encoded =
|
||||||
// base64.encode(utf8.encode(deviceId));
|
// base64.encode(utf8.encode(deviceId));
|
||||||
|
String domain =
|
||||||
VerificationResponse resp = await provider.verifyEmail(
|
"https://${domainTextConrtroller.text}.io/";
|
||||||
|
var resp = await provider.verifyEmail(domain,
|
||||||
emailTextController.text, deviceId!, platform);
|
emailTextController.text, deviceId!, platform);
|
||||||
|
if (resp != null) {
|
||||||
print("resp:${resp.status}");
|
print("resp:${resp.status}");
|
||||||
|
|
||||||
if (resp.status == 1200 &&
|
if (resp.status == 1200 &&
|
||||||
|
@ -351,34 +370,45 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||||
provider.loading = false;
|
provider.loading = false;
|
||||||
provider.showCodeField = true;
|
provider.showCodeField = true;
|
||||||
provider.showMessage = true;
|
provider.showMessage = true;
|
||||||
|
// secretKeyTextConrtroller.text =
|
||||||
|
// resp.verification_code!;
|
||||||
} else if (resp.status == 1200 &&
|
} else if (resp.status == 1200 &&
|
||||||
resp.accessToken != "") {
|
resp.accessToken != "") {
|
||||||
provider.loading = false;
|
provider.loading = false;
|
||||||
provider.showCodeField = false;
|
provider.showCodeField = false;
|
||||||
|
|
||||||
provider.showMessage = true;
|
provider.showMessage = true;
|
||||||
_displaySnackBar("You have logged in successfully");
|
SnackBarWidget.displaySnackBar(
|
||||||
|
"You have logged in successfully", context);
|
||||||
_saveprefs(
|
_saveprefs(
|
||||||
resp.accessToken!,
|
resp.accessToken!,
|
||||||
resp.user?.email ?? emailTextController.text,
|
resp.user?.email ??
|
||||||
|
emailTextController.text,
|
||||||
secretKeyTextConrtroller.text,
|
secretKeyTextConrtroller.text,
|
||||||
deviceId!,
|
deviceId!,
|
||||||
true)
|
true)
|
||||||
.then((value) {
|
.then((value) {
|
||||||
Navigator.of(context).pushReplacement(
|
Navigator.of(context).pushReplacement(
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (context) => NavigationHomeScreen()),
|
builder: (context) =>
|
||||||
|
NavigationHomeScreen()),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
provider.loading = false;
|
provider.loading = false;
|
||||||
provider.showCodeField = false;
|
provider.showCodeField = false;
|
||||||
provider.showMessage = true;
|
// provider.showMessage = true;
|
||||||
|
SnackBarWidget.displaySnackBar(
|
||||||
|
resp.message, context,
|
||||||
|
error: true);
|
||||||
|
();
|
||||||
}
|
}
|
||||||
|
|
||||||
provider.message = resp.message;
|
provider.message = resp.message;
|
||||||
setState(() {
|
setState(() {
|
||||||
emailTextController.text = provider.email!;
|
emailTextController.text = provider.email!;
|
||||||
});
|
});
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
provider.code = secretKeyTextConrtroller.text;
|
provider.code = secretKeyTextConrtroller.text;
|
||||||
VerificationResponse resp = await provider.verifyCode(
|
VerificationResponse resp = await provider.verifyCode(
|
||||||
|
@ -409,6 +439,7 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||||
secretKeyTextConrtroller.text = provider.code!;
|
secretKeyTextConrtroller.text = provider.code!;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// }
|
// }
|
||||||
|
|
||||||
//_joinMeeting(roomText.text, "demo meet2");
|
//_joinMeeting(roomText.text, "demo meet2");
|
||||||
|
@ -479,7 +510,7 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||||
return secretkey;
|
return secretkey;
|
||||||
});
|
});
|
||||||
_verification_code =
|
_verification_code =
|
||||||
prefs.setString('verfication_code', key).then((bool success) {
|
prefs.setString('deviceid', vcode).then((bool success) {
|
||||||
return verification_code;
|
return verification_code;
|
||||||
});
|
});
|
||||||
_login = prefs.setBool('isloggedin', login).then((bool success) {
|
_login = prefs.setBool('isloggedin', login).then((bool success) {
|
||||||
|
@ -505,12 +536,15 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||||
// if (FieldValidation.validateName(nameTextController.text).isNotEmpty) {
|
// if (FieldValidation.validateName(nameTextController.text).isNotEmpty) {
|
||||||
// return FieldValidation.validateName(nameTextController.text);
|
// return FieldValidation.validateName(nameTextController.text);
|
||||||
// }
|
// }
|
||||||
|
String domain = "https://${domainTextConrtroller.text}.io/";
|
||||||
|
|
||||||
|
if (FieldValidation.validateUrl(domain).isNotEmpty) {
|
||||||
|
return FieldValidation.validateUrl(domain);
|
||||||
|
}
|
||||||
if (FieldValidation.validateEmail(emailTextController.text).isNotEmpty) {
|
if (FieldValidation.validateEmail(emailTextController.text).isNotEmpty) {
|
||||||
return FieldValidation.validateEmail(emailTextController.text);
|
return FieldValidation.validateEmail(emailTextController.text);
|
||||||
}
|
}
|
||||||
// if (FieldValidation.validateUrl(domainTextConrtroller.text).isNotEmpty) {
|
|
||||||
// return FieldValidation.validateUrl(domainTextConrtroller.text);
|
|
||||||
// }
|
|
||||||
if (provider.showCodeField) {
|
if (provider.showCodeField) {
|
||||||
if (FieldValidation.validateSecretKey(secretKeyTextConrtroller.text)
|
if (FieldValidation.validateSecretKey(secretKeyTextConrtroller.text)
|
||||||
.isNotEmpty) {
|
.isNotEmpty) {
|
||||||
|
|
|
@ -36,12 +36,12 @@ class _NavigationHomeScreenState extends State<NavigationHomeScreen> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Container(
|
return Container(
|
||||||
color: AppTheme.white,
|
color: Colors.white,
|
||||||
child: SafeArea(
|
child: SafeArea(
|
||||||
top: false,
|
top: false,
|
||||||
bottom: false,
|
bottom: false,
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
backgroundColor: AppTheme.nearlyWhite,
|
backgroundColor: Colors.white,
|
||||||
body: DrawerUserController(
|
body: DrawerUserController(
|
||||||
screenIndex: drawerIndex,
|
screenIndex: drawerIndex,
|
||||||
drawerWidth: MediaQuery.of(context).size.width * 0.75,
|
drawerWidth: MediaQuery.of(context).size.width * 0.75,
|
||||||
|
|
|
@ -19,8 +19,9 @@ class LoginProvider extends ChangeNotifier {
|
||||||
String deviceId = 'Unknown';
|
String deviceId = 'Unknown';
|
||||||
|
|
||||||
init() {}
|
init() {}
|
||||||
Future<dynamic> verifyEmail(String email, String deviceid, String platform) {
|
Future<dynamic> verifyEmail(
|
||||||
final response = ApiCall().verifyEmail(email, deviceid, platform);
|
String url, String email, String deviceid, String platform) {
|
||||||
|
dynamic response = ApiCall().verifyEmail(url, email, deviceid, platform);
|
||||||
loading = true;
|
loading = true;
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ class _HomeDrawerState extends State<HomeDrawer> {
|
||||||
});
|
});
|
||||||
|
|
||||||
_deviceid = _prefs.then((SharedPreferences prefs) {
|
_deviceid = _prefs.then((SharedPreferences prefs) {
|
||||||
return prefs.getString('verfication_code') ?? "";
|
return prefs.getString('deviceid') ?? "";
|
||||||
});
|
});
|
||||||
super.initState();
|
super.initState();
|
||||||
}
|
}
|
||||||
|
|
96
pubspec.lock
96
pubspec.lock
|
@ -189,10 +189,10 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: carousel_slider
|
name: carousel_slider
|
||||||
sha256: "9c695cc963bf1d04a47bd6021f68befce8970bcd61d24938e1fb0918cf5d9c42"
|
sha256: "7b006ec356205054af5beaef62e2221160ea36b90fb70a35e4deacd49d0349ae"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.2.1"
|
version: "5.0.0"
|
||||||
characters:
|
characters:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -253,10 +253,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: collection
|
name: collection
|
||||||
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
|
sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.18.0"
|
version: "1.19.0"
|
||||||
connectivity_plus:
|
connectivity_plus:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -285,10 +285,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: cross_file
|
name: cross_file
|
||||||
sha256: "55d7b444feb71301ef6b8838dbc1ae02e63dd48c8773f3810ff53bb1e2945b32"
|
sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.3.4+1"
|
version: "0.3.4+2"
|
||||||
crypto:
|
crypto:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -429,10 +429,10 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: file_picker
|
name: file_picker
|
||||||
sha256: "2ca051989f69d1b2ca012b2cf3ccf78c70d40144f0861ff2c063493f7c8c3d45"
|
sha256: c2376a6aae82358a9f9ccdd7d1f4006d08faa39a2767cce01031d9f593a8bd3b
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "8.0.5"
|
version: "8.1.6"
|
||||||
file_selector_linux:
|
file_selector_linux:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -477,18 +477,18 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: firebase_core_platform_interface
|
name: firebase_core_platform_interface
|
||||||
sha256: c437ae5d17e6b5cc7981cf6fd458a5db4d12979905f9aafd1fea930428a9fe63
|
sha256: b94b217e3ad745e784960603d33d99471621ecca151c99c670869b76e50ad2a6
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.0.0"
|
version: "5.3.1"
|
||||||
firebase_core_web:
|
firebase_core_web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: firebase_core_web
|
name: firebase_core_web
|
||||||
sha256: "43d9e951ac52b87ae9cc38ecdcca1e8fa7b52a1dd26a96085ba41ce5108db8e9"
|
sha256: "9e69806bb3d905aeec3c1242e0e1475de6ea6d48f456af29d598fb229a2b4e5e"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.17.0"
|
version: "2.18.2"
|
||||||
firebase_remote_config:
|
firebase_remote_config:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -546,10 +546,10 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: flutter_carousel_widget
|
name: flutter_carousel_widget
|
||||||
sha256: "9476c39f1fcff57fb387a1a3c379a01f7c73eca4179ac1b41c07b7181fadec14"
|
sha256: "6473e6df04bfafea70efd58251fe5945d5aa8d19461575c1b9d83643f08e0c77"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.3.0"
|
version: "3.1.0"
|
||||||
flutter_heatmap_calendar:
|
flutter_heatmap_calendar:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -689,7 +689,7 @@ packages:
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.15.4"
|
version: "0.15.4"
|
||||||
http:
|
http:
|
||||||
dependency: transitive
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: http
|
name: http
|
||||||
sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010
|
sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010
|
||||||
|
@ -748,10 +748,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: image_picker_for_web
|
name: image_picker_for_web
|
||||||
sha256: "6a1704fdd75022272e7e7a897a9068e9c2ff3cd6a66820bf3ded810633eac954"
|
sha256: "717eb042ab08c40767684327be06a5d8dbb341fe791d514e4b92c7bbe1b7bb83"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.3"
|
version: "3.0.6"
|
||||||
image_picker_ios:
|
image_picker_ios:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -860,26 +860,26 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker
|
name: leak_tracker
|
||||||
sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
|
sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "10.0.0"
|
version: "10.0.7"
|
||||||
leak_tracker_flutter_testing:
|
leak_tracker_flutter_testing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker_flutter_testing
|
name: leak_tracker_flutter_testing
|
||||||
sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
|
sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.1"
|
version: "3.0.8"
|
||||||
leak_tracker_testing:
|
leak_tracker_testing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker_testing
|
name: leak_tracker_testing
|
||||||
sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
|
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.1"
|
version: "3.0.1"
|
||||||
logger:
|
logger:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -908,18 +908,18 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: material_color_utilities
|
name: material_color_utilities
|
||||||
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
|
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.8.0"
|
version: "0.11.1"
|
||||||
meta:
|
meta:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: meta
|
name: meta
|
||||||
sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
|
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.11.0"
|
version: "1.15.0"
|
||||||
mime:
|
mime:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -1276,10 +1276,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: shared_preferences_web
|
name: shared_preferences_web
|
||||||
sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a"
|
sha256: d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.3.0"
|
version: "2.2.1"
|
||||||
shared_preferences_windows:
|
shared_preferences_windows:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -1308,7 +1308,7 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description: flutter
|
description: flutter
|
||||||
source: sdk
|
source: sdk
|
||||||
version: "0.0.99"
|
version: "0.0.0"
|
||||||
sliver_tools:
|
sliver_tools:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -1369,10 +1369,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: stack_trace
|
name: stack_trace
|
||||||
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
|
sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.11.1"
|
version: "1.12.0"
|
||||||
state_notifier:
|
state_notifier:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -1401,10 +1401,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: string_scanner
|
name: string_scanner
|
||||||
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
|
sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.2.0"
|
version: "1.3.0"
|
||||||
syncfusion_flutter_charts:
|
syncfusion_flutter_charts:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -1457,10 +1457,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
|
sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.1"
|
version: "0.7.3"
|
||||||
textfield_tags:
|
textfield_tags:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
|
@ -1553,10 +1553,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: url_launcher_web
|
name: url_launcher_web
|
||||||
sha256: "3692a459204a33e04bc94f5fb91158faf4f2c8903281ddd82915adecdb1a901d"
|
sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.3.0"
|
version: "2.3.3"
|
||||||
url_launcher_windows:
|
url_launcher_windows:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -1609,10 +1609,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: vm_service
|
name: vm_service
|
||||||
sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
|
sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "13.0.0"
|
version: "14.3.0"
|
||||||
watcher:
|
watcher:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -1625,26 +1625,26 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: web
|
name: web
|
||||||
sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
|
sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.5.1"
|
version: "1.1.0"
|
||||||
web_socket_channel:
|
web_socket_channel:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: web_socket_channel
|
name: web_socket_channel
|
||||||
sha256: "1d8e795e2a8b3730c41b8a98a2dff2e0fb57ae6f0764a1c46ec5915387d257b2"
|
sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.4"
|
version: "2.4.0"
|
||||||
win32:
|
win32:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: win32
|
name: win32
|
||||||
sha256: "0a989dc7ca2bb51eac91e8fd00851297cfffd641aa7538b165c62637ca0eaa4a"
|
sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "5.4.0"
|
version: "5.5.4"
|
||||||
word_cloud:
|
word_cloud:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -1694,5 +1694,5 @@ packages:
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.1"
|
version: "2.0.1"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=3.3.0 <4.0.0"
|
dart: ">=3.4.0 <4.0.0"
|
||||||
flutter: ">=3.19.0"
|
flutter: ">=3.22.0"
|
||||||
|
|
|
@ -66,7 +66,7 @@ dependencies:
|
||||||
path_provider: ^2.1.3
|
path_provider: ^2.1.3
|
||||||
provider: ^6.1.2
|
provider: ^6.1.2
|
||||||
dropdown_button2: ^2.3.9
|
dropdown_button2: ^2.3.9
|
||||||
file_picker: ^8.0.2
|
file_picker: ^8.1.4
|
||||||
permission_handler: ^11.3.1
|
permission_handler: ^11.3.1
|
||||||
|
|
||||||
connectivity_plus: ^6.0.3
|
connectivity_plus: ^6.0.3
|
||||||
|
@ -82,8 +82,8 @@ dependencies:
|
||||||
popover: ^0.3.0+1
|
popover: ^0.3.0+1
|
||||||
data_table_2: ^2.5.15
|
data_table_2: ^2.5.15
|
||||||
expandable: ^5.0.1
|
expandable: ^5.0.1
|
||||||
flutter_carousel_widget: ^2.2.0
|
carousel_slider: ^5.0.0
|
||||||
carousel_slider: ^4.2.1
|
flutter_carousel_widget: ^3.1.0
|
||||||
popup_menu: ^2.0.0
|
popup_menu: ^2.0.0
|
||||||
adoptive_calendar: ^0.1.8
|
adoptive_calendar: ^0.1.8
|
||||||
multi_dropdown: ^2.1.4
|
multi_dropdown: ^2.1.4
|
||||||
|
@ -95,6 +95,7 @@ dependencies:
|
||||||
overlay_support: ^2.1.0
|
overlay_support: ^2.1.0
|
||||||
flutter_svg_provider: ^1.0.7
|
flutter_svg_provider: ^1.0.7
|
||||||
zoom_widget: ^2.0.1
|
zoom_widget: ^2.0.1
|
||||||
|
http: ^1.2.2
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue