diff --git a/lib/connectivity.dart b/lib/connectivity.dart new file mode 100644 index 0000000..2afb59b --- /dev/null +++ b/lib/connectivity.dart @@ -0,0 +1,33 @@ +import 'dart:async'; +import 'dart:io'; + +import 'package:connectivity_plus/connectivity_plus.dart'; +import 'package:dio/dio.dart'; + +class NetworkConnectivity { + // Future isInternetAvailable() async { + // var connectivityResult = await (Connectivity().checkConnectivity()); + // return connectivityResult != ConnectivityResult.none; + // } + Future isInternetAvailable() async { + var connectivityResult = await Connectivity().checkConnectivity(); + if (connectivityResult == ConnectivityResult.none) { + return false; + } else { + try { + // final result = await InternetAddress.lookup('google.com'); + // return true; + final result = await Dio().get('www.google.com'); + + if (result.statusCode == 200) { + // if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) { + return true; + //} + } + return false; + } on SocketException catch (_) { + return false; + } + } + } +} diff --git a/lib/constants.dart b/lib/constants.dart index 7a78000..4267fd3 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -4,5 +4,6 @@ class Constants { static Color k2color = Color.fromARGB(255, 0, 71, 132); //static const url = "http://192.168.172.50:8082/api"; - static const url = 'http://192.168.2.143:8081/api'; + static const url = 'http://192.168.2.143:8082/api'; + //static const url = 'http://192.168.153.50:8081/api'; } diff --git a/lib/ui_screen/contacts.dart b/lib/ui_screen/contacts.dart index 1a8b39c..5e96d89 100644 --- a/lib/ui_screen/contacts.dart +++ b/lib/ui_screen/contacts.dart @@ -304,13 +304,13 @@ class Contacts extends StatefulWidget { class _ContactsState extends State { final _contactBox = Hive.box("mycontact"); bool _switchValue = false; - bool isOnline2 = true; + bool? isOnline2; @override void initState() { super.initState(); setupConnectivityListener(); - getCall(); + // getCall(); } Future setupConnectivityListener() async { @@ -323,6 +323,9 @@ class _ContactsState extends State { isOnline2 = isOnline; }); } + if (isOnline2 == true) { + getCall(); + } } } @@ -339,6 +342,7 @@ class _ContactsState extends State { SystemChrome.setSystemUIOverlayStyle( SystemUiOverlayStyle(statusBarColor: Color.fromARGB(255, 0, 71, 132))); + print("internet data_is: $isOnline2"); return SafeArea( child: Scaffold( body: Consumer( @@ -410,100 +414,100 @@ class _ContactsState extends State { ), ], ), - isOnline2 - ? Expanded( - child: ListView.builder( - itemCount: value.list.length, - itemBuilder: (BuildContext context, int index) { - var data = value.list[index]; - return ListTile( - onTap: () { - // Navigator.push( - // context, - // MaterialPageRoute( - // builder: (context) => Profile( - // text: data, - // ), - // ), - // ); + if (isOnline2 == true) + Expanded( + child: ListView.builder( + itemCount: value.list.length, + itemBuilder: (BuildContext context, int index) { + var data = value.list[index]; + return ListTile( + onTap: () { + // Navigator.push( + // context, + // MaterialPageRoute( + // builder: (context) => Profile( + // text: data, + // ), + // ), + // ); - Navigator.push( - context, - MaterialPageRoute( - builder: (_) => - NewProfile(text: data))); - }, - leading: data["img_path"] == null - ? ProfilePicture( - name: data["name"], - radius: 20, - fontsize: 12, - ) - : ClipOval( - child: SizedBox.fromSize( - size: Size.fromRadius(20), - child: Image.network(data["img_path"], - fit: BoxFit.cover), - ), - ), - title: Text( - data["name"], - style: TextStyle( - fontSize: 18.0, - fontWeight: FontWeight.bold, - ), - ), - subtitle: Text( - "Added by Pooja.K", - style: TextStyle( - fontSize: 14.0, - fontWeight: FontWeight.normal, - ), - ), - ); + Navigator.push( + context, + MaterialPageRoute( + builder: (_) => NewProfile(text: data))); }, - ), - ) - : Expanded( - child: ListView.builder( - itemCount: _contactBox.values.length, - itemBuilder: (BuildContext context, int index) { - var data = _contactBox.get(index); - print(":data_is: $data"); - return ListTile( - onTap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => Profile( - text: data!, - ), + leading: data["img_path"] == null + ? ProfilePicture( + name: data["name"], + radius: 20, + fontsize: 12, + ) + : ClipOval( + child: SizedBox.fromSize( + size: Size.fromRadius(20), + child: Image.network(data["img_path"], + fit: BoxFit.cover), ), - ); - }, - leading: ProfilePicture( - name: data["name"], - radius: 20, - fontsize: 12, - ), - title: Text( - data["name"], - style: TextStyle( - fontSize: 18.0, - fontWeight: FontWeight.bold, ), - ), - subtitle: Text( - "Added by Pooja.K", - style: TextStyle( - fontSize: 14.0, - fontWeight: FontWeight.normal, + title: Text( + data["name"], + style: TextStyle( + fontSize: 18.0, + fontWeight: FontWeight.bold, + ), + ), + subtitle: Text( + "Added by Pooja.K", + style: TextStyle( + fontSize: 14.0, + fontWeight: FontWeight.normal, + ), + ), + ); + }, + ), + ) + else + Expanded( + child: ListView.builder( + itemCount: _contactBox.values.length, + itemBuilder: (BuildContext context, int index) { + var data = _contactBox.get(index); + print(":data_is: $data"); + return ListTile( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => Profile( + text: data!, ), ), ); }, - ), - ), + leading: ProfilePicture( + name: data["name"], + radius: 20, + fontsize: 12, + ), + title: Text( + data["name"], + style: TextStyle( + fontSize: 18.0, + fontWeight: FontWeight.bold, + ), + ), + subtitle: Text( + "Added by Pooja.K", + style: TextStyle( + fontSize: 14.0, + fontWeight: FontWeight.normal, + ), + ), + ); + }, + ), + ), ], ); }, diff --git a/lib/ui_screen/interactionform/NewtworkConnectivity.dart b/lib/ui_screen/interactionform/NewtworkConnectivity.dart index f9b0c8c..ba8a199 100644 --- a/lib/ui_screen/interactionform/NewtworkConnectivity.dart +++ b/lib/ui_screen/interactionform/NewtworkConnectivity.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:dio/dio.dart'; +import 'package:flutter/foundation.dart'; class NetworkConnectivity { // Future isInternetAvailable() async { @@ -15,14 +16,25 @@ class NetworkConnectivity { return false; } else { try { - // final result = await InternetAddress.lookup('google.com'); - final result = await Dio().get('www.google.com'); - - if (result.statusCode == 200) { - // if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) { + if (!kIsWeb) { + final result = await InternetAddress.lookup('google.com'); return true; - //} + } else { + final result = await Dio().get('www.google.com'); + + if (result.statusCode == 200) { + // if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) { + return true; + //} + } } + // final result = await Dio().get('www.google.com'); + + // if (result.statusCode == 200) { + // // if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) { + // return true; + // //} + // } return false; } on SocketException catch (_) { return false; diff --git a/lib/ui_screen/interactionform/interaction_screen.dart b/lib/ui_screen/interactionform/interaction_screen.dart index 65b0b4d..7816064 100644 --- a/lib/ui_screen/interactionform/interaction_screen.dart +++ b/lib/ui_screen/interactionform/interaction_screen.dart @@ -100,7 +100,7 @@ class _InteractionScreenState extends State { ), ), body: Column( - mainAxisSize: MainAxisSize.min, + //mainAxisSize: MainAxisSize.min, children: [ Expanded( child: ListView.builder( @@ -368,13 +368,13 @@ class _InteractionScreenState extends State { ), ), // const Spacer(), - // saveActions(provider), - // Align( - // alignment: Alignment.bottomRight, - // child: Container( - // height: 80.0, - // width: 80.0, - // child: _offsetPopup(provider.interactionReponseList))) + //saveActions(provider), + Align( + alignment: Alignment.bottomRight, + child: Container( + height: 80.0, + width: 80.0, + child: _offsetPopup(provider.interactionReponseList))) ], ), ), @@ -1435,6 +1435,7 @@ class _InteractionScreenState extends State { // provider.getSectionItem( // item.sectionName, // ); + //print("Clicked Section : ${sectionList}") setState(() { provider.getSectionItem( item.sectionName, @@ -1453,7 +1454,9 @@ class _InteractionScreenState extends State { ), ); }, - child: Text(' ${item.sectionName}')) + child: item.sectionName.isNotEmpty + ? Text(' ${item.sectionName}') + : SizedBox.shrink()) : Container(), ); }); @@ -1471,6 +1474,1484 @@ class _InteractionScreenState extends State { )); } + + + + + +// import 'dart:convert'; +// import 'dart:io'; + +// import 'package:discover_module/constants.dart'; +// import 'package:discover_module/ui_screen/add_event/add_hcp.dart'; +// import 'package:discover_module/ui_screen/interactionform/interactionprovider.dart'; +// import 'package:discover_module/ui_screen/interactionform/model/interaction_data.dart'; +// import 'package:discover_module/ui_screen/interactionform/util.dart'; +// import 'package:discover_module/ui_screen/interactionform/widget/custombutton.dart'; +// import 'package:discover_module/ui_screen/interactionform/widget/customrangeslider.dart'; +// import 'package:discover_module/ui_screen/interactionform/widget/interatciontextfield.dart'; +// import 'package:discover_module/ui_screen/interactionform/widget/responsive_ext.dart'; +// import 'package:flutter/cupertino.dart'; +// import 'package:flutter/material.dart'; +// import 'package:flutter/rendering.dart'; +// import 'package:flutter/services.dart'; +// import 'package:flutter/widgets.dart'; +// import 'package:intl/intl.dart'; +// import 'package:path_provider/path_provider.dart'; +// import 'package:popover/popover.dart'; +// import 'package:provider/provider.dart'; +// import 'package:dropdown_button2/dropdown_button2.dart'; + +// import 'package:file_picker/file_picker.dart'; +// // import 'package:pwa_ios/widgets/responsive_ext.dart'; +// import 'package:permission_handler/permission_handler.dart'; +// import 'package:path/path.dart' as p; + +// // import 'package:popover/popover.dart'; + +// class InteractionScreen extends StatefulWidget { +// int index; +// String form; +// InteractionScreen({super.key, required this.index, required this.form}); + +// @override +// State createState() => _InteractionScreenState(); +// } + +// class _InteractionScreenState extends State { +// List interactionReponseList = []; +// List sectionList = []; +// List textEditingControllerList = []; +// int textfieldIndex = 0; +// String dropdownvalue = 'Select value'; +// String? fileName; +// final TextEditingController textEditingController = TextEditingController(); +// @override +// void initState() { +// WidgetsBinding.instance.addPostFrameCallback((timeStamp) { +// // if (mytimer!.isActive) { +// // cancelTimer(); +// // } +// init(); +// }); + +// super.initState(); +// } + +// init() async { +// await Provider.of(context, listen: false) +// .init(widget.index); +// setState(() {}); +// } + +// @override +// Widget build(BuildContext context) { +// return Consumer( +// builder: (BuildContext context, provider, Widget? child) { +// return GestureDetector( +// onTap: () { +// FocusScope.of(context).requestFocus(FocusNode()); +// }, +// child: OrientationBuilder(builder: (context, orientation) { +// return SafeArea( +// child: Scaffold( +// //resizeToAvoidBottomInset: false, +// appBar: AppBar( +// title: const FittedBox( +// fit: BoxFit.scaleDown, +// child: Text( +// 'Record New Interaction', +// style: TextStyle( +// // fontSize: isTablet ? 22 : 14, color: Colors.white +// // fontSize: 20, +// color: Colors.white), +// ), +// ), +// // backgroundColor: const Color(0xFF2b9af3), +// automaticallyImplyLeading: false, +// actions: [saveActions(provider)], +// leading: InkWell( +// onTap: () { +// Navigator.pop(context); +// }, +// child: const Icon( +// Icons.arrow_back_ios, +// color: Colors.white, +// ), +// ), +// ), +// body: Column( +// mainAxisSize: MainAxisSize.min, +// children: [ +// Expanded( +// child: ListView.builder( +// itemCount: provider.interactionReponseList.length, +// padding: EdgeInsets.zero, +// cacheExtent: double.parse( +// provider.interactionReponseList.length.toString()), +// itemBuilder: (context, index) { +// var item = provider.interactionReponseList[index]; +// sectionList = item.sectionList; +// return Column( +// children: [ +// Card( +// color: Constants.k2color, +// child: ExpansionTile( +// maintainState: true, +// backgroundColor: Constants.k2color, +// // collapsedBackgroundColor: Color(0xFF2b9af3), +// initiallyExpanded: true, +// title: Stack( +// alignment: AlignmentDirectional.center, +// children: [ +// Container( +// // height: double.infinity, +// width: double.infinity, +// padding: const EdgeInsets.all(0.0), +// decoration: BoxDecoration( +// // color: Color(0xFF2b9af3), +// color: Constants.k2color, +// ), +// child: Text( +// item.sectionName, +// style: const TextStyle( +// color: Colors.white, +// fontWeight: FontWeight.bold, +// // fontSize: isTablet ? 18 : 14 +// ), +// )), +// item.multiple +// ? Align( +// alignment: +// Alignment.centerRight, +// child: IconButton( +// onPressed: () { +// if (item.sectionName == +// "HCP") { +// Navigator.push( +// context, +// MaterialPageRoute( +// builder: +// (context) => +// Addhcp())); + +// provider.getSectionItem( +// item.sectionName, +// ); +// // print("index is $listIndex"); +// setState(() { +// // for (var item +// }); +// } else { +// provider.getSectionItem( +// item.sectionName, +// ); +// // print("index is $listIndex"); +// setState(() {}); +// } +// }, +// icon: const Icon( +// Icons.add_circle_outline, +// size: 30, +// color: Colors.white, +// ), +// ), +// ) +// : const SizedBox.shrink() +// ]), +// children: [ +// Container( +// color: Colors.white, +// child: Padding( +// padding: +// const EdgeInsets.only(top: 8.0), +// child: Column( +// mainAxisSize: MainAxisSize.min, +// crossAxisAlignment: +// CrossAxisAlignment.center, +// children: [ +// GridView.count( +// physics: +// const NeverScrollableScrollPhysics(), + +// crossAxisCount: +// context.responsive( +// 1, +// sm: 1, // small +// md: isTablet +// ? 2 +// : orientation == +// Orientation +// .landscape +// ? 2 +// : 1, // medium +// lg: sectionList.length == 1 +// ? 1 +// : 3, // large +// xl: 3, // extra large screen +// ), + +// mainAxisSpacing: +// sectionList.length == 1 || +// !isTablet +// ? 1 +// : 3.5, +// // mainAxisSpacing: +// // orientation == Orientation.portrait +// // ? 1 +// // : 3, +// shrinkWrap: true, +// padding: EdgeInsets.zero, + +// // childAspectRatio: +// // sectionList.length == 1 +// // ? orientation == +// // Orientation.landscape +// // ? 10 +// // : 4.8 +// // : isTablet +// // ? 2.8 +// // : 3.0, + +// childAspectRatio: +// sectionList.length == 1 +// ? orientation == +// Orientation +// .landscape +// ? 10 +// : 4.8 +// : isTablet +// ? 2.8 +// : 3.5, + +// children: List.generate( +// sectionList.length, +// (i) { +// SectionList sectionItem = +// sectionList[i]; +// dropdownvalue = +// sectionItem.widget == +// InteractionWidget +// .DROPDOWN +// ? sectionItem.value ?? +// "Select" +// : ' '; +// List< +// InputClass> list = sectionItem +// .widget == +// InteractionWidget +// .DROPDOWN || +// sectionItem.widget == +// InteractionWidget +// .AUTOCOMPLETE || +// sectionItem.widget == +// InteractionWidget +// .MULTISELECT +// ? provider +// .getData2(sectionItem) +// : []; +// provider.checkboxlist = +// sectionItem.widget == +// InteractionWidget +// .CHECKBOX +// ? provider.getData2( +// sectionItem) +// : []; + +// return Column( +// //mainAxisSize: MainAxisSize.min, +// crossAxisAlignment: +// CrossAxisAlignment +// .start, +// children: [ +// sectionItem.widget == +// InteractionWidget +// .BUTTON && +// sectionItem +// .input == +// 'add' +// ? const SizedBox +// .shrink() +// : Padding( +// padding: +// const EdgeInsets +// .only( +// left: 8.0, +// right: +// 8.0), +// child: FittedBox( +// fit: BoxFit +// .scaleDown, +// child: Text( +// sectionItem +// .validation! +// .isRequired +// ? '${sectionItem.name}:*' +// : '${sectionItem.name}:', +// style: +// TextStyle( +// color: Colors +// .orange +// .shade800, +// fontSize: +// 18.0, +// // fontSize: isTablet +// // ? 18 +// // : 12, +// ), +// ), +// ), +// ), +// returnWidget( +// sectionItem: +// sectionItem, +// item: item, +// provider: provider, +// list: list, +// gridIndex: i, +// listIndex: index, +// widgetData: +// sectionItem +// .widget!, +// multiple: false), +// ], +// ); +// }, +// ), +// ), +// // SizedBox( +// // height: isTablet ? 15 : 5, +// // ), +// item.multiple +// ? gridViewWidget( +// provider, +// item.sectionName, +// item.multipleList ?? [], +// orientation, +// item, +// index) +// : const SizedBox.shrink(), +// provider.interactionReponseList +// .length == +// index - 1 +// ? saveActions(provider) +// : const SizedBox.shrink() +// //const Spacer(), +// ], +// ), +// ), +// ), +// ]), +// ), +// ], +// ); +// }, +// ), +// ), +// // const Spacer(), +// // saveActions(provider), +// // Align( +// // alignment: Alignment.bottomRight, +// // child: Container( +// // height: 80.0, +// // width: 80.0, +// // child: _offsetPopup(provider.interactionReponseList))) +// ], +// ), +// ), +// ); +// }), +// ); +// }); +// } + +// Widget returnWidget({ +// required SectionList sectionItem, +// required FormFieldData item, +// required InteractionProvider provider, +// required List list, +// required int gridIndex, +// required int listIndex, +// required InteractionWidget widgetData, +// required bool multiple, +// }) { +// switch (widgetData) { +// case InteractionWidget.CHECKBOX: +// return (sectionItem.inputList!.length >= 5) +// ? customMultiselectDropdown( +// sectionItem, provider, sectionItem.inputList!, multiple) +// : buildCheckbox(sectionItem, item.sectionName, provider, multiple); + +// case InteractionWidget.AUTOCOMPLETE: +// return customAutoCompletedropdown( +// sectionItem, provider, list, multiple); + +// case InteractionWidget.MULTISELECT: +// return customMultiselectDropdown(sectionItem, provider, list, multiple); + +// case InteractionWidget.RADIO: +// return (sectionItem.inputList!.length >= 5) +// ? customdropdown( +// sectionItem, provider, sectionItem.inputList!, multiple) +// : buildRadio(sectionItem, provider); + +// case InteractionWidget.LABEL: +// return Text(sectionItem.input!); + +// case InteractionWidget.RANGESLIDER: +// return CustomRangeSlider( +// max: double.parse(sectionItem.max!), +// min: double.parse(sectionItem.min!), +// sliderPos: sectionItem.selectedValue!.isNotEmpty +// ? double.parse(sectionItem.selectedValue!.last.toString()) +// : double.parse(sectionItem.min!), +// onChanged: (val) { +// setState(() { +// sectionItem.selectedValue = []; +// sectionItem.selectedId = val.toString(); +// sectionItem.selectedValue!.add(val.toInt()); +// }); +// }, +// ); + +// case InteractionWidget.BUTTON: +// return sectionItem.input == 'add' +// ? const Offstage( +// offstage: true, +// child: Text("Visible"), +// ) +// : Row( +// children: [ +// CustomButton( +// backgroundColor: const Color.fromARGB(255, 233, 229, 229), +// onPressed: () async { +// sectionItem.selectedValue = []; +// sectionItem.extension = []; +// sectionItem.fileName = []; +// await getEncodedFile(sectionItem); + +// setState(() {}); +// }, +// width: 120, +// height: 40, +// fontsize: 12, +// textColor: Colors.black, +// title: sectionItem.name), +// const SizedBox( +// width: 5, +// ), +// Text( +// sectionItem.selectedValue!.isNotEmpty +// ? sectionItem.selectedValue!.length > 1 +// ? 'Files uploaded' +// : "File Uploaded" +// : 'No file uploaded', +// style: TextStyle( +// color: sectionItem.selectedValue!.isNotEmpty +// ? Colors.green +// : Colors.red), +// ), +// ], +// ); + +// case InteractionWidget.TEXT: +// return sectionItem.input == 'Date' +// ? buildDateWidget(sectionItem) +// : sectionItem.input == "textArea" +// ? Expanded( +// child: Padding( +// padding: const EdgeInsets.only(left: 8.0, right: 8.0), +// child: InteractionTextField( +// // maxchars: int.parse(sectionItem.validation!.chars ?? "0"), +// controller: sectionItem.controller!, +// labelText: sectionItem.name, +// // maxlines: 8, +// //minlines: 4, +// onChanged: (val) { +// sectionItem.selectedValue = []; +// setState(() {}); + +// sectionItem.selectedValue!.add(val); +// }, +// ), +// ), +// ) +// ////Poojaaaaa +// : sectionItem.input == "text1" +// ? Text( +// sectionItem.depid!, +// style: TextStyle( +// fontSize: 18.0, fontWeight: FontWeight.normal), +// ) +// : Expanded( +// child: Padding( +// padding: const EdgeInsets.only(left: 8.0, right: 8.0), +// child: SizedBox( +// // width: +// // isTablet ? 200 : MediaQuery.of(context).size.width, +// //height: isTablet ? 50 : 40, +// width: MediaQuery.of(context).size.width, +// height: isTablet ? 50 : 40, + +// child: InteractionTextField( +// inputType: sectionItem.input == "number" +// ? TextInputType.number +// : TextInputType.name, +// maxchars: int.parse(sectionItem.chars ?? "0"), +// controller: sectionItem.controller!, +// labelText: sectionItem.name, +// onChanged: (val) { +// sectionItem.selectedValue = []; +// // sectionItem.selectedValue!.clear(); + +// provider.setTextValue( +// val, sectionItem, multiple); +// }, +// ), +// ), +// ), +// ); +// case InteractionWidget.DROPDOWN: +// // return customdropdown(sectionItem, provider, list, multiple); + +// return customAutoCompletedropdown( +// sectionItem, provider, list, multiple); +// } +// } + +// Future requestPermission(Permission permission) async { +// final status = await permission.request(); + +// setState(() { +// print(status); +// // _permissionStatus = status; +// // print(_permissionStatus); +// }); +// } + +// Widget buildDateWidget(SectionList sectionItem) { +// return Padding( +// padding: const EdgeInsets.only(left: 8.0, right: 8.0), +// child: SizedBox( +// // width: isTablet ? 200 : MediaQuery.of(context).size.width, +// // height: isTablet ? 50 : 40, +// width: MediaQuery.of(context).size.width, +// child: TextField( +// controller: +// sectionItem.controller, //editing controller of this TextField +// decoration: InputDecoration( +// // border: OutlineInputBorder(), +// border: OutlineInputBorder( +// borderRadius: BorderRadius.circular(10.0), +// ), +// labelStyle: const TextStyle(fontSize: 16), +// suffixIcon: const Icon(Icons.calendar_today), //icon of text field +// labelText: "Enter Date" //label text of field +// ), +// readOnly: true, //set it true, so that user will not able to edit text +// onTap: () async { +// DateTime? pickedDate = await showDatePicker( +// context: context, +// initialDate: DateTime.now(), +// firstDate: DateTime( +// 2000), //DateTime.now() - not to allow to choose before today. +// lastDate: DateTime(2101)); + +// if (pickedDate != null) { +// print( +// pickedDate); //pickedDate output format => 2021-03-10 00:00:00.000 +// String formattedDate = +// DateFormat('yyyy-MM-dd').format(pickedDate); +// print( +// formattedDate); //formatted date output using intl package => 2021-03-16 +// //you can implement different kind of Date Format here according to your requirement + +// setState(() { +// sectionItem.controller!.text = formattedDate; +// sectionItem.selectedValue = []; +// sectionItem.selectedValue! +// .add(formattedDate); //set output date to TextField value. +// }); +// } else { +// print("Date is not selected"); +// } +// }, +// ), +// ), +// ); +// } + +// Widget saveActions(InteractionProvider provider) { +// return Align( +// alignment: Alignment.centerRight, +// child: Row( +// mainAxisAlignment: MainAxisAlignment.spaceEvenly, +// children: [ +// Padding( +// // padding: const EdgeInsets.all(4.0), +// padding: const EdgeInsets.only(top: 8.0, bottom: 8.0, right: 5.0), + +// child: CustomButton( +// backgroundColor: Colors.red.shade800, +// onPressed: () { +// //showDeleteProfileAlertDialog(context); +// for (var textcontrollers +// in provider.textEditingControllerList) { +// textcontrollers.text = ''; +// } +// }, +// textColor: Colors.white, +// title: "Reset", +// // height: 40, +// // width: isTablet ? 100 : 80, +// height: MediaQuery.of(context).size.height * 0.2, + +// // fontsize: isTablet ? 15 : 10.2, +// fontsize: isTablet ? 16 : 12, +// ), +// ), +// SizedBox( +// //width: isTablet ? 20 : 4, +// width: isTablet ? 20 : 2, +// ), +// Padding( +// // padding: const EdgeInsets.all(8.0), +// padding: const EdgeInsets.only(top: 8.0, bottom: 8.0), + +// child: CustomButton( +// backgroundColor: Colors.green.shade500, +// onPressed: () async { +// String record = +// await provider.saveJsonObject(context, widget.form); + +// print("Validation_isss: ${provider.isLoading}"); + +// if (provider.isLoading == false) { +// print("Validation_false"); +// showAlertDialog1(context, "Please fill all the fields"); +// } else { +// showAlertDialog(context, "Form $record Saved Successfully!"); +// print("Validation_True"); +// } +// }, +// textColor: Colors.white, +// title: "Save", +// // height: 40, +// // width: isTablet ? 100 : 80, +// height: MediaQuery.of(context).size.height * 0.2, + +// // width: MediaQuery.of(context).size.width * 0.1, +// fontsize: isTablet ? 16 : 12, +// ), +// ), +// SizedBox( +// width: isTablet ? 20 : 2, +// ), +// ], +// ), +// ); +// } + +// Widget buildRadio(SectionList sectionItem, InteractionProvider provider) { +// List list = provider.getData2(sectionItem); +// // .map((itemWord) => InputClass.fromJson(itemWord)) +// // .toList(); +// return Padding( +// padding: const EdgeInsets.only(left: 8.0, right: 8.0), +// child: SizedBox( +// // width: isTablet ? 250 : MediaQuery.of(context).size.width, +// width: MediaQuery.of(context).size.width, + +// child: Row( +// children: [ +// for (InputClass value in list) +// Row( +// children: [ +// Radio( +// value: value.name, +// activeColor: Colors.black, +// groupValue: provider.radioValue, +// onChanged: (String? value) { +// setState(() { +// print(value); +// provider.radioValue = value!; +// int index = +// list.indexWhere((element) => element.name == value); +// sectionItem.selectedValue!.add(list[index].id); +// }); +// }, +// ), +// Text(value.name), +// ], +// ), +// ], +// ), +// ), +// ); +// } + +// Widget buildCheckbox(SectionList sectionItem, String sectionName, +// InteractionProvider provider, bool multiple) { +// return Padding( +// padding: const EdgeInsets.only(left: 8.0, right: 8.0), +// child: SizedBox( +// // width: 250, +// width: MediaQuery.of(context).size.width, + +// child: Row( +// children: [ +// for (var value in provider.checkboxlist) +// Row( +// children: [ +// FittedBox( +// fit: BoxFit.scaleDown, +// child: CheckboxListTile( +// dense: true, +// //contentPadding: const EdgeInsets.symmetric(vertical: 5), +// value: value.ischecked ?? false, +// activeColor: Colors.black, +// checkColor: Colors.white, +// onChanged: (bool? newvalue) { +// value.ischecked = newvalue!; +// provider.setcheckBoxValue(sectionItem, sectionName, +// newvalue, value.id, multiple); +// //setState(() {}); +// }, +// ), +// ), +// Text(value.name), +// ], +// ), +// ], +// ), +// ), +// ); +// } + +// Widget customdropdown(SectionList sectionItem, InteractionProvider provider, +// List list, bool multiple) { +// // sectionItem.value = ''; + +// if (list.isEmpty) { +// list = []; +// InputClass inputClass = +// InputClass(id: "no value", name: "Select ${sectionItem.name}"); +// list.add(inputClass); +// sectionItem.selectedObject = list[0]; +// } +// // InputClass selectedObj = list[0]; +// return Padding( +// padding: const EdgeInsets.only(left: 8.0, right: 8.0), +// child: SizedBox( +// width: MediaQuery.of(context).size.width, +// // height: isTablet ? 60 : 40, +// child: DropdownButtonFormField2( +// isExpanded: true, +// decoration: InputDecoration( +// // Add Horizontal padding using menuItemStyleData.padding so it matches +// // the menu padding when button's width is not specified. +// isDense: true, +// contentPadding: const EdgeInsets.symmetric(vertical: 5), +// border: OutlineInputBorder( +// borderRadius: BorderRadius.circular(10.0), +// ), +// // Add more decoration.. +// ), +// hint: Text( +// 'Select ${sectionItem.name}', +// style: const TextStyle(fontSize: 14), +// ), +// items: list +// .map((item) => DropdownMenuItem( +// value: item, +// child: Text( +// item.name, +// style: const TextStyle( +// fontSize: 14, +// ), +// ), +// )) +// .toList(), +// value: sectionItem.selectedObject ?? list[0], +// // // provider.getDropDownValue(sectionItem.value!, sectionItem, list) +// // sectionItem.value ?? list[0].name, +// validator: (value) { +// if (value == null) { +// return 'Please select ${sectionItem.name}'; +// } +// return null; +// }, +// onChanged: (value) { +// //Do something when selected item is changed. +// sectionItem.selectedObject = value!; +// sectionItem.value = value.id; +// provider.setDropDownValue(value.id, sectionItem, multiple); +// print("selected ${sectionItem.value}"); +// // setState(() {}); +// }, +// onSaved: (value) { +// sectionItem.selectedObject = value!; +// sectionItem.value = value.id; +// provider.setDropDownValue(value.id, sectionItem, multiple); +// // setState(() {}); +// }, +// buttonStyleData: const ButtonStyleData( +// padding: EdgeInsets.only(right: 8), +// ), +// iconStyleData: const IconStyleData( +// icon: Icon( +// Icons.arrow_drop_down, +// color: Colors.black45, +// ), +// iconSize: 24, +// ), +// dropdownStyleData: DropdownStyleData( +// decoration: BoxDecoration( +// borderRadius: BorderRadius.circular(10.0), +// ), +// ), +// menuItemStyleData: const MenuItemStyleData( +// padding: EdgeInsets.symmetric(horizontal: 16), +// ), +// ), +// ), +// ); +// } + +// Widget customAutoCompletedropdown(SectionList sectionItem, +// InteractionProvider provider, List list, bool multiple) { +// list = sectionItem.inputList!; +// print("***Autocomplete list ${list[0].name}"); +// //} +// //InputClass selectedObj = list[0]; +// return Padding( +// padding: const EdgeInsets.only(left: 8.0, right: 8.0), +// child: SizedBox( +// // width: isTablet ? 200 : MediaQuery.of(context).size.width, +// // height: isTablet ? 60 : 40, +// width: MediaQuery.of(context).size.width, + +// child: DropdownButtonHideUnderline( +// child: DropdownButtonFormField2( +// isExpanded: true, +// decoration: InputDecoration( +// // Add Horizontal padding using menuItemStyleData.padding so it matches +// // the menu padding when button's width is not specified. +// isDense: true, +// contentPadding: const EdgeInsets.symmetric(vertical: 5), +// border: OutlineInputBorder( +// borderRadius: BorderRadius.circular(10.0), +// ), +// // Add more decoration.. +// ), +// hint: Text( +// 'Select Item', +// style: TextStyle( +// fontSize: 14, +// color: Theme.of(context).hintColor, +// ), +// ), +// items: list +// .map((item) => DropdownMenuItem( +// value: item, +// child: Text( +// item.name, +// style: const TextStyle( +// fontSize: 14, +// ), +// ), +// )) +// .toList(), +// value: sectionItem.selectedObject, +// onSaved: (value) { +// sectionItem.selectedObject = value!; +// provider.setAutoCompleteValue(value.id, sectionItem, multiple); +// sectionItem.value = value.name; +// }, +// onChanged: (value) { +// // setState(() { +// sectionItem.selectedObject = value!; +// provider.setAutoCompleteValue(value.id, sectionItem, multiple); +// sectionItem.value = value.name; +// // setState(() {}); +// //}); +// }, + +// buttonStyleData: const ButtonStyleData( +// padding: EdgeInsets.symmetric(horizontal: 16), +// height: 40, +// width: 200, +// ), +// dropdownStyleData: const DropdownStyleData( +// maxHeight: 200, +// ), +// menuItemStyleData: const MenuItemStyleData( +// height: 40, +// ), +// dropdownSearchData: DropdownSearchData( +// searchController: textEditingController, +// searchInnerWidgetHeight: 50, +// searchInnerWidget: Container( +// height: 50, +// padding: const EdgeInsets.only( +// top: 8, +// bottom: 4, +// right: 8, +// left: 8, +// ), +// child: TextFormField( +// expands: true, +// maxLines: null, +// controller: textEditingController, +// decoration: InputDecoration( +// isDense: true, +// contentPadding: const EdgeInsets.symmetric( +// horizontal: 10, +// vertical: 18, +// ), +// hintText: 'Search for an item...', +// hintStyle: const TextStyle(fontSize: 12), +// border: OutlineInputBorder( +// borderRadius: BorderRadius.circular(10.0), +// ), +// ), +// ), +// ), +// searchMatchFn: (item, searchValue) { +// return item.value!.name.toString().contains(searchValue); +// }, +// ), +// //This to clear the search value when you close the menu +// onMenuStateChange: (isOpen) { +// if (!isOpen) { +// textEditingController.clear(); +// } +// }, +// ), +// ), +// ), +// ); +// } + +// Widget customMultiselectDropdown(SectionList sectionItem, +// InteractionProvider provider, List list, bool multiple) { +// if (list.isEmpty) { +// list = sectionItem.inputList!; +// } +// InputClass selectedObj = list[0]; + +// return Padding( +// padding: const EdgeInsets.only(left: 8.0, right: 8.0), +// child: SizedBox( +// // width: isTablet ? 200 : MediaQuery.of(context).size.width, +// // height: isTablet ? 60 : 40, +// width: MediaQuery.of(context).size.width, +// // height: MediaQuery.of(context).size.height, + +// child: DropdownButtonHideUnderline( +// child: DropdownButtonFormField2( +// isExpanded: true, +// decoration: InputDecoration( +// // Add Horizontal padding using menuItemStyleData.padding so it matches +// // the menu padding when button's width is not specified. +// isDense: true, +// contentPadding: const EdgeInsets.symmetric(vertical: 5), +// border: OutlineInputBorder( +// borderRadius: BorderRadius.circular(10.0), +// ), +// // Add more decoration.. +// ), +// hint: Text( +// 'Select Items', +// style: TextStyle( +// fontSize: 14, +// color: Theme.of(context).hintColor, +// ), +// ), +// items: list.map((item) { +// return DropdownMenuItem( +// value: item, +// //disable default onTap to avoid closing menu when selecting an item +// enabled: false, +// child: StatefulBuilder( +// builder: (context, menuSetState) { +// final isSelected = +// sectionItem.selectedValue!.contains(item.name); +// return InkWell( +// onTap: () { +// isSelected +// ? sectionItem.selectedValue!.remove(item.name) +// : sectionItem.selectedValue!.add(item.name); +// //This rebuilds the StatefulWidget to update the button's text +// setState(() {}); +// //This rebuilds the dropdownMenu Widget to update the check mark +// menuSetState(() {}); +// }, +// child: Container( +// height: double.infinity, +// padding: const EdgeInsets.symmetric(horizontal: 16.0), +// child: Row( +// children: [ +// if (isSelected) +// const Icon(Icons.check_box_outlined) +// else +// const Icon(Icons.check_box_outline_blank), +// const SizedBox(width: 16), +// Expanded( +// child: Text( +// item.name, +// style: const TextStyle( +// fontSize: 14, +// ), +// ), +// ), +// ], +// ), +// ), +// ); +// }, +// ), +// ); +// }).toList(), +// //Use last selected item as the current value so if we've limited menu height, it scroll to last item. +// value: selectedObj, +// // ? null +// // : provider.selectedItems.last, +// onChanged: (value) { +// selectedObj = value!; +// provider.setAutoCompleteValue(value.id, sectionItem, multiple); +// sectionItem.value = value.name; +// }, +// onSaved: (value) { +// selectedObj = value!; +// provider.setAutoCompleteValue(value.id, sectionItem, multiple); +// sectionItem.value = value.name; +// }, +// selectedItemBuilder: (context) { +// return list.map( +// (item) { +// return Container( +// alignment: AlignmentDirectional.center, +// child: Text( +// sectionItem.selectedValue!.join(', '), +// style: const TextStyle( +// fontSize: 14, +// overflow: TextOverflow.ellipsis, +// ), +// maxLines: 1, +// ), +// ); +// }, +// ).toList(); +// }, +// buttonStyleData: const ButtonStyleData( +// padding: EdgeInsets.only(left: 16, right: 8), +// height: 40, +// width: 140, +// ), +// menuItemStyleData: const MenuItemStyleData( +// height: 40, +// padding: EdgeInsets.zero, +// ), +// ), +// ), +// ), +// ); +// } + +// Widget gridViewWidget( +// InteractionProvider provider, +// String sectionName, +// List sectionList, +// Orientation orientation, +// FormFieldData item, +// int listIndex) { +// print("ListInex: $listIndex"); +// print("sectionName: $sectionName"); +// print("sectionName: $sectionName"); + +// print("gridsectionlost_is: $sectionList"); +// print("gridsectionlostleangth_is: ${sectionList.length}"); + +// List pooja = sectionList; + +// print("Pooja_isss: $pooja"); +// print("Pooja_leangth_isss: ${pooja.length}"); + +// ////////////////////////////////////mycode/////////////////////////// + +// List> convertedArray = []; +// print("Provider_leangth: ${item.sectionList.length}"); + +// for (int i = 0; i < pooja.length; i += item.sectionList.length + 1) { +// print("poojaleangth: $pooja"); + +// convertedArray.add(pooja.sublist(i, i + item.sectionList.length + 1)); +// } +// print("ConvertedArray.leangth: $convertedArray"); +// print("ConvertedArray.leangth: ${convertedArray.length}"); + +// return Column( +// mainAxisSize: MainAxisSize.min, +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// for (var i = 0; i < convertedArray.length; i++) +// DecoratedBox( +// decoration: BoxDecoration( +// // border: Border.all(color: Colors.black), +// // borderRadius: BorderRadius.circular(10.0), +// color: i % 2 == 0 +// ? Color.fromARGB(133, 213, 241, 254) +// : Colors.white, +// ), +// child: GridView.builder( +// physics: const NeverScrollableScrollPhysics(), +// gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( +// crossAxisCount: context.responsive( +// 1, +// sm: 1, // small +// md: isTablet +// ? 2 +// : orientation == Orientation.landscape +// ? 2 +// : 1, // medium +// lg: sectionList.length == 1 ? 1 : 3, // large +// xl: 3, // extra large screen +// ), +// mainAxisSpacing: sectionList.length == 1 || !isTablet ? 1 : 1, +// childAspectRatio: sectionList.length == 1 +// ? orientation == Orientation.landscape +// ? 10 +// : 4.8 +// : isTablet +// ? 2.8 +// : 3.7, +// ), +// shrinkWrap: true, +// padding: EdgeInsets.zero, +// itemCount: convertedArray[i].length, +// itemBuilder: (context, index) { +// SectionList sectionItem = convertedArray[i][index]; +// dropdownvalue = +// sectionItem.widget == InteractionWidget.DROPDOWN +// ? sectionItem.value ?? "Select" +// : ' '; +// List list = sectionItem.widget == +// InteractionWidget.DROPDOWN || +// sectionItem.widget == +// InteractionWidget.AUTOCOMPLETE || +// sectionItem.widget == InteractionWidget.MULTISELECT +// ? provider.getData2(sectionItem) +// : []; +// provider.checkboxlist = +// sectionItem.widget == InteractionWidget.CHECKBOX +// ? provider.getData2(sectionItem) +// : []; +// return Padding( +// padding: const EdgeInsets.only(top: 12.0), +// child: Column( +// mainAxisSize: MainAxisSize.min, +// crossAxisAlignment: CrossAxisAlignment.start, +// children: [ +// // sectionItem.widget == InteractionWidget.BUTTON && +// // sectionItem.input == 'add' || +// // sectionItem.input == 'deletebtn' +// // ? const SizedBox.shrink() +// // : +// Padding( +// padding: const EdgeInsets.only(left: 8.0, right: 8.0), +// child: FittedBox( +// fit: BoxFit.scaleDown, +// child: Text( +// sectionItem.validation!.isRequired +// ? "${sectionItem.name}*" +// : sectionItem.name, +// style: TextStyle( +// color: Colors.orange.shade800, fontSize: 18), +// ), +// ), +// ), +// // const SizedBox( +// // height: 15, +// // ), +// sectionItem.widget == InteractionWidget.BUTTON +// ? sectionItem.input == 'chooseFile' +// ? Row( +// children: [ +// CustomButton( +// backgroundColor: const Color.fromARGB( +// 255, 233, 229, 229), +// onPressed: () async { +// sectionItem.selectedValue = []; +// sectionItem.extension = []; +// sectionItem.fileName = []; +// await getEncodedFile(sectionItem); + +// setState(() {}); +// }, +// width: 120, +// height: 40, +// fontsize: 12, +// textColor: Colors.black, +// title: sectionItem.name), +// const SizedBox( +// width: 5, +// ), +// Text( +// sectionItem.selectedValue!.isNotEmpty +// ? sectionItem +// .selectedValue!.isNotEmpty +// ? 'File uploaded' +// : "Files Uploaded" +// : 'No file uploaded', +// style: TextStyle( +// color: sectionItem +// .selectedValue!.isNotEmpty +// ? Colors.green +// : Colors.red), +// ), +// ], +// ) +// : isTablet +// ? IconButton( +// onPressed: () { +// provider.deleteMultipleRows( +// sectionItem.gid!, +// sectionList[i], +// sectionName); + +// setState(() {}); +// }, +// icon: const Icon( +// Icons.cancel, +// size: 30, +// color: Color.fromARGB(255, 8, 39, 92), +// ), +// ) +// : Padding( +// padding: const EdgeInsets.only( +// left: 8.0, right: 8.0), +// child: CustomButton( +// backgroundColor: +// const Color.fromARGB( +// 255, 233, 75, 75), +// onPressed: () { +// provider.deleteMultipleRows( +// sectionItem.gid!, +// sectionList[i], +// sectionName); + +// setState(() {}); +// }, +// height: 40, + +// // height: +// // MediaQuery.of(context).size.height * +// // 0.2, +// fontsize: 12, +// textColor: Colors.white, +// title: "Delete"), +// ) +// : returnWidget( +// sectionItem: sectionItem, +// item: item, +// provider: provider, +// list: list, +// gridIndex: i, +// listIndex: listIndex, +// widgetData: sectionItem.widget!, +// multiple: true), +// ], +// ), +// ); +// }), +// ) +// ], +// ); +// //); +// } + +// String fieldsValidation(InteractionProvider provider) { +// List secList = provider.sectionList +// .where((element) => element.validation!.isRequired = true) +// .toList(); +// if (secList.any((element) => element.selectedValue!.isEmpty)) { +// return 'Fields cannot be empty'; +// } +// return ''; +// } + +// String textFieldsValidation(InteractionProvider provider) { +// return ''; +// } + +// _displaySnackBar(String msg) { +// final snackBar = SnackBar( +// content: Text( +// msg, +// style: const TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold), +// )); +// ScaffoldMessenger.of(context).showSnackBar(snackBar); +// //scaffoldKeyLogin.currentState!.showSnackBar(snackBar); +// } + +// Future getEncodedFile(SectionList sectionItem) async { +// String base64Image = ''; +// var status = Platform.isAndroid +// ? await Permission.manageExternalStorage.status +// : await Permission.storage.status; +// if (status.isGranted) { +// FilePickerResult? result = +// await FilePicker.platform.pickFiles(allowMultiple: true); + +// if (result != null) { +// print(result.files.first.path); +// print(result.files.last.path); +// for (var files in result.files) { +// File file = File(files.path!); +// print("check file path : ${file.path}"); +// fileName = file.path.split('/').last; +// // Get the application folder directory +// Directory? directory = Platform.isAndroid +// ? await getExternalStorageDirectory() //FOR ANDROID +// : await getApplicationDocumentsDirectory(); +// String newPath = ""; //FOR ios +// String convertedDirectoryPath = (directory?.path).toString(); + +// print("see the converted directory path $convertedDirectoryPath"); + +// newPath = "$convertedDirectoryPath/konectar/files"; +// print("new path :$newPath"); +// directory = Directory(newPath); +// if (!await directory.exists()) { +// await directory.create(recursive: true); +// } +// File newFile = await file.copy('${directory.path}/$fileName'); +// print("new path is ${newFile.path}"); +// final extension = p.extension(newFile.path); +// List imageBytes = await newFile.readAsBytes(); +// Uint8List imageUint8List = Uint8List.fromList(imageBytes); +// base64Image = base64Encode(imageUint8List); +// sectionItem.selectedValue!.add(base64Image); +// sectionItem.extension!.add(extension); +// sectionItem.fileName!.add(fileName); +// } +// } +// } else { +// print("not permitted"); +// await requestPermission(Platform.isAndroid +// ? Permission.manageExternalStorage +// : Permission.storage); +// } +// } + +// showAlertDialog(BuildContext context, String record) { +// Widget cancelButton = TextButton( +// child: const Text("Ok"), +// onPressed: () async { +// Navigator.of(context).pop(); +// Navigator.of(context).pop(); +// }, +// ); + +// // set up the AlertDialog +// AlertDialog alert = AlertDialog( +// title: const Text(""), +// content: Text(record), +// actions: [ +// cancelButton, +// ], +// ); + +// // show the dialog +// showDialog( +// context: context, +// builder: (BuildContext context) { +// return alert; +// }, +// ); +// } + +// showAlertDialog1(BuildContext context, String record) { +// Widget cancelButton = TextButton( +// child: const Text("Ok"), +// onPressed: () async { +// Navigator.of(context).pop(); +// }, +// ); + +// // set up the AlertDialog +// AlertDialog alert = AlertDialog( +// title: const Text(""), +// content: Text(record), +// actions: [ +// cancelButton, +// ], +// ); + +// // show the dialog +// showDialog( +// context: context, +// builder: (BuildContext context) { +// return alert; +// }, +// ); +// } + +// Widget _offsetPopup(List interactionReponseList) => +// PopupMenuButton( +// itemBuilder: (context) { +// return List.generate(interactionReponseList.length, (index) { +// var provider = +// Provider.of(context, listen: false); + +// var item = provider.interactionReponseList[index]; + +// return PopupMenuItem( +// value: index, +// child: item.multiple +// ? GestureDetector( +// onTap: () { +// print("Clicked Section ${item.sectionName}"); +// // provider.getSectionItem( +// // item.sectionName, +// // ); +// setState(() { +// provider.getSectionItem( +// item.sectionName, +// ); +// }); + +// const DecoratedBox( +// decoration: BoxDecoration( +// // border: Border.all(color: Colors.black), +// // borderRadius: BorderRadius.circular(10.0), +// border: Border( +// bottom: +// BorderSide(width: 1.5, color: Colors.black), +// //top: BorderSide(width: 1.5, color: Colors.black), +// ), +// ), +// ); +// }, +// child: Text(' ${item.sectionName}')) +// : Container(), +// ); +// }); +// }, +// icon: Container( +// height: double.infinity, +// width: double.infinity, +// decoration: const ShapeDecoration( +// color: Color.fromARGB(255, 8, 39, 92), +// shape: StadiumBorder( +// side: BorderSide(color: Colors.white, width: 2), +// ), +// ), +// child: Icon(Icons.add, color: Colors.white), +// )); +// } + ////////////////////////////////////////////////////////////////////////////////////////// // import 'dart:convert'; // import 'dart:io'; diff --git a/lib/ui_screen/new_profile.dart b/lib/ui_screen/new_profile.dart index 8082108..6d51845 100644 --- a/lib/ui_screen/new_profile.dart +++ b/lib/ui_screen/new_profile.dart @@ -53,12 +53,12 @@ class _NewProfileState extends State { // TODO: implement initState super.initState(); print("pooja123"); + //init(); getaffiliations(); getuserdetails(); - init(); print("Widget_isssIndex_iss ${widget.text}"); print( "Widget_isssIndex_iss ${widget.text!["id"]},${widget.text!["name"]},${widget.text!["img_path"]}"); @@ -72,7 +72,7 @@ class _NewProfileState extends State { // if(data.g) data.getRecords("form-3 demo"); - setState(() {}); + // setState(() {}); } getaffiliations() async { diff --git a/lib/ui_screen/newformlist.dart b/lib/ui_screen/newformlist.dart index 08d2906..4ba4ee5 100644 --- a/lib/ui_screen/newformlist.dart +++ b/lib/ui_screen/newformlist.dart @@ -1,292 +1,9 @@ -// import 'package:discover_module/ui_screen/interactionform/configprovider.dart'; -// import 'package:discover_module/ui_screen/interactionform/interaction_screen.dart'; -// import 'package:discover_module/ui_screen/interactionform/interactionlistscreen.dart'; -// import 'package:discover_module/ui_screen/interactionform/interactionprovider.dart'; -// import 'package:discover_module/ui_screen/interactionform/model/save_interaction.dart'; -// import 'package:discover_module/ui_screen/interactionform/view_forms_list.dart'; -// import 'package:flutter/cupertino.dart'; -// import 'package:flutter/material.dart'; -// import 'package:flutter/widgets.dart'; -// import 'package:provider/provider.dart'; - -// class FormList extends StatefulWidget { -// const FormList({super.key}); - -// @override -// State createState() => _FormListState(); -// } - -// class _FormListState extends State { -// List savedList = []; -// @override -// void initState() { -// WidgetsBinding.instance.addPostFrameCallback((timeStamp) { -// // if (!mytimer!.isActive) { -// // activateTimer(); -// // } -// print("interactionListt"); -// init(); -// }); - -// super.initState(); -// } - -// init() async { -// print("init"); - -// await Provider.of(context, listen: false) -// .initConfigData(); - -// await Provider.of(context, listen: false).getRecords(); -// setState(() {}); -// } - -// Future getCount(String form, InteractionProvider provider) async { -// await provider.getRecords(); - -// return provider.savedList.where((element) => element.form == form).length; -// } - -// @override -// Widget build(BuildContext context) { -// return Consumer( -// builder: (BuildContext context, provider, Widget? child) { -// return SafeArea( -// child: Scaffold( -// appBar: AppBar( -// title: Text("Form List"), -// ), -// body: ListView.builder( -// itemCount: provider.intConfigDataList.length, -// cacheExtent: -// double.parse(provider.intConfigDataList.length.toString()), -// itemBuilder: (context, index) { -// return Column( -// children: [ -// ListTile( -// title: const Text( -// "Add My Event", -// style: TextStyle(fontSize: 18.0), -// ), -// onTap: () async { -// final ConfigDataProvider configDataProvider = -// ConfigDataProvider(); - -// await configDataProvider.initConfigUIData123(); -// Navigator.push( -// context, -// MaterialPageRoute( -// builder: (context) => -// const InteractionListScreen())); -// // Navigator.push(context, -// // MaterialPageRoute(builder: (context) => AddEventScreen())); -// }, -// trailing: const Icon(Icons.arrow_forward_ios), -// ), -// Divider(), -// // ListTile( -// // title: const Text( -// // "Interaction", -// // style: TextStyle(fontSize: 18.0), -// // ), -// // onTap: () async { -// // print("I am Interaction"); -// // final ConfigDataProvider configDataProvider = -// // ConfigDataProvider(); - -// // await configDataProvider.initConfigUIData(); -// // // Navigator.push(context, MaterialPageRoute(builder: (context)))=> InteractionScreen(); -// // Navigator.push( -// // context, -// // MaterialPageRoute( -// // builder: (context) => InteractionListScreen())); -// // }, -// // trailing: const Icon(Icons.arrow_forward_ios), -// // ), - -// ListTile( -// title: const Text( -// "Interaction", -// style: TextStyle(fontSize: 18.0), -// ), -// onTap: () async { -// print( -// "I am Interaction:${index}, ${provider.intConfigDataList[index].name}"); - -// // final ConfigDataProvider configDataProvider = -// // ConfigDataProvider(); - -// // await configDataProvider.initConfigUIData(); -// // // Navigator.push(context, MaterialPageRoute(builder: (context)))=> InteractionScreen(); -// // Navigator.push( -// // context, -// // MaterialPageRoute( -// // builder: (context) => InteractionListScreen())); - -// if (provider.intConfigDataList.length == 1) { -// setState(() {}); - -// final ConfigDataProvider configDataProvider = -// ConfigDataProvider(); - -// await configDataProvider.initConfigUIData(); -// Navigator.push( -// context, -// MaterialPageRoute( -// builder: (BuildContext context) => -// InteractionScreen( -// index: index, -// form: provider -// .intConfigDataList[index].name, -// ))); -// } else { -// final ConfigDataProvider configDataProvider = -// ConfigDataProvider(); - -// await configDataProvider.initConfigUIData(); -// // Navigator.push(context, MaterialPageRoute(builder: (context)))=> InteractionScreen(); -// Navigator.push( -// context, -// MaterialPageRoute( -// builder: (context) => -// InteractionListScreen())); -// } -// }, -// trailing: const Icon(Icons.arrow_forward_ios), -// ), -// const Divider(), -// ListTile( -// title: const Text( -// "New Medical Insight", -// style: TextStyle(fontSize: 18.0), -// ), -// onTap: () async { -// final ConfigDataProvider configDataProvider = -// ConfigDataProvider(); - -// await configDataProvider.initConfigUIDataMedical(); -// Navigator.push( -// context, -// MaterialPageRoute( -// builder: (context) => -// const InteractionListScreen())); -// }, -// trailing: Icon(Icons.arrow_forward_ios), -// ), -// Divider(), -// ListTile( -// title: const Text( -// "Engagement", -// style: TextStyle(fontSize: 18.0), -// ), -// onTap: () async { -// final ConfigDataProvider configDataProvider = -// ConfigDataProvider(); -// await configDataProvider.initConfigUIDataEng(); -// Navigator.push( -// context, -// MaterialPageRoute( -// builder: (context) => -// const InteractionListScreen())); -// }, -// trailing: const Icon(Icons.arrow_forward_ios), -// ), -// Divider(), -// ListTile( -// title: Row( -// children: [ -// Text( -// provider.intConfigDataList[index].name, -// ), -// const SizedBox( -// width: 20, -// ), -// IconButton( -// onPressed: () { -// Navigator.push( -// context, -// MaterialPageRoute( -// builder: (BuildContext context) => -// InteractionScreen( -// index: index, -// form: provider -// .intConfigDataList[index].name, -// ))); -// }, -// icon: const Icon( -// Icons.arrow_circle_right_outlined, -// size: 30, -// color: Color.fromARGB(255, 8, 39, 92), -// ), -// ), -// ], -// ), -// trailing: provider.savedList.indexWhere((element) => -// element.form == -// provider.intConfigDataList[index].name) != -// -1 -// ? InkWell( -// onTap: () { -// print("inwesm Screenindex $index"); - -// if (getCount( -// provider.intConfigDataList[index].name, -// provider) != -// 0) { -// provider.savedList -// .where((element) => -// element.form == -// provider -// .intConfigDataList[index].name) -// .toList(); -// Navigator.push( -// context, -// MaterialPageRoute( -// builder: (BuildContext context) => -// SavedFormListScreen( -// formname: provider -// .intConfigDataList[index] -// .name, -// ))); -// } -// }, -// child: FittedBox( -// fit: BoxFit.scaleDown, -// child: Text( -// "${provider.savedList.where((element) => element.form == provider.intConfigDataList[index].name).length} record(s) saved", -// style: TextStyle( -// // fontSize: isTablet ? 18.0 : 14, -// fontSize: 18.0, -// color: Colors.blue.shade900), -// ), -// ), -// ) -// : const SizedBox.shrink(), -// onTap: () { -// Navigator.push( -// context, -// MaterialPageRoute( -// builder: (BuildContext context) => -// InteractionScreen( -// index: index, -// form: provider -// .intConfigDataList[index].name, -// ))); -// }, -// ), -// const Divider(), -// ], -// ); -// }), -// ), -// ); -// }); -// } -// } - import 'package:discover_module/ui_screen/interactionform/configprovider.dart'; +import 'package:discover_module/ui_screen/interactionform/interaction_screen.dart'; import 'package:discover_module/ui_screen/interactionform/interactionlistscreen.dart'; import 'package:discover_module/ui_screen/interactionform/interactionprovider.dart'; +import 'package:discover_module/ui_screen/interactionform/model/save_interaction.dart'; +import 'package:discover_module/ui_screen/interactionform/view_forms_list.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; @@ -300,131 +17,523 @@ class FormList extends StatefulWidget { } class _FormListState extends State { - var formdata; + List savedList = []; @override void initState() { - // TODO: implement initState - super.initState(); + WidgetsBinding.instance.addPostFrameCallback((timeStamp) { + // if (!mytimer!.isActive) { + // activateTimer(); + // } + print("interactionListt"); + init(); + }); - idata(); + super.initState(); } - idata() { - var iprovider = Provider.of(context, listen: false); + init() async { + print("init"); - setState(() { - formdata = iprovider.intConfigDataList; - }); + await Provider.of(context, listen: false) + .initConfigData(); + print("init1"); + + await Provider.of(context, listen: false).getRecords(); + print("init2"); + + //setState(() {}); + } + + Future getCount(String form, InteractionProvider provider) async { + await provider.getRecords(); + + return provider.savedList.where((element) => element.form == form).length; } @override Widget build(BuildContext context) { - return SafeArea( - child: Scaffold( - appBar: AppBar( - title: Text("Form List"), + return Consumer( + builder: (BuildContext context, provider, Widget? child) { + return SafeArea( + child: Scaffold( + appBar: AppBar( + title: Text("Form List"), + ), + body: provider.intConfigDataList.length == 1 + ? ListView.builder( + itemCount: provider.intConfigDataList.length, + cacheExtent: double.parse( + provider.intConfigDataList.length.toString()), + itemBuilder: (context, index) { + print("checkkkk"); + return Column( + children: [ + ListTile( + title: const Text( + "Add My Event", + style: TextStyle(fontSize: 18.0), + ), + onTap: () async { + final ConfigDataProvider configDataProvider = + ConfigDataProvider(); + + await configDataProvider.initConfigUIData123(); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + const InteractionListScreen())); + // Navigator.push(context, + // MaterialPageRoute(builder: (context) => AddEventScreen())); + }, + trailing: const Icon(Icons.arrow_forward_ios), + ), + Divider(), + // ListTile( + // title: const Text( + // "Interaction", + // style: TextStyle(fontSize: 18.0), + // ), + // onTap: () async { + // print("I am Interaction"); + // final ConfigDataProvider configDataProvider = + // ConfigDataProvider(); + + // await configDataProvider.initConfigUIData(); + // // Navigator.push(context, MaterialPageRoute(builder: (context)))=> InteractionScreen(); + // Navigator.push( + // context, + // MaterialPageRoute( + // builder: (context) => InteractionListScreen())); + // }, + // trailing: const Icon(Icons.arrow_forward_ios), + // ), + + ListTile( + title: const Text( + "Interaction", + style: TextStyle(fontSize: 18.0), + ), + onTap: () async { + print( + "I am Interaction:${index}, ${provider.intConfigDataList[index].name}"); + + // final ConfigDataProvider configDataProvider = + // ConfigDataProvider(); + + // await configDataProvider.initConfigUIData(); + // // Navigator.push(context, MaterialPageRoute(builder: (context)))=> InteractionScreen(); + // Navigator.push( + // context, + // MaterialPageRoute( + // builder: (context) => InteractionListScreen())); + + if (provider.intConfigDataList.length == 1) { + setState(() {}); + + final ConfigDataProvider configDataProvider = + ConfigDataProvider(); + + await configDataProvider.initConfigUIData(); + Navigator.push( + context, + MaterialPageRoute( + builder: (BuildContext context) => + InteractionScreen( + index: index, + form: provider + .intConfigDataList[index].name, + ))); + } else { + final ConfigDataProvider configDataProvider = + ConfigDataProvider(); + + await configDataProvider.initConfigUIData(); + // Navigator.push(context, MaterialPageRoute(builder: (context)))=> InteractionScreen(); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + InteractionListScreen())); + } + }, + trailing: const Icon(Icons.arrow_forward_ios), + ), + const Divider(), + ListTile( + title: const Text( + "New Medical Insight", + style: TextStyle(fontSize: 18.0), + ), + onTap: () async { + final ConfigDataProvider configDataProvider = + ConfigDataProvider(); + + await configDataProvider.initConfigUIDataMedical(); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + const InteractionListScreen())); + }, + trailing: Icon(Icons.arrow_forward_ios), + ), + Divider(), + ListTile( + title: const Text( + "Engagement", + style: TextStyle(fontSize: 18.0), + ), + onTap: () async { + final ConfigDataProvider configDataProvider = + ConfigDataProvider(); + await configDataProvider.initConfigUIDataEng(); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + const InteractionListScreen())); + }, + trailing: const Icon(Icons.arrow_forward_ios), + ), + Divider(), + // ListTile( + // title: Row( + // children: [ + // Text( + // provider.intConfigDataList[index].name, + // ), + // const SizedBox( + // width: 20, + // ), + // IconButton( + // onPressed: () { + // Navigator.push( + // context, + // MaterialPageRoute( + // builder: (BuildContext context) => + // InteractionScreen( + // index: index, + // form: provider + // .intConfigDataList[index].name, + // ))); + // }, + // icon: const Icon( + // Icons.arrow_circle_right_outlined, + // size: 30, + // color: Color.fromARGB(255, 8, 39, 92), + // ), + // ), + // ], + // ), + // trailing: provider.savedList.indexWhere((element) => + // element.form == + // provider.intConfigDataList[index].name) != + // -1 + // ? InkWell( + // onTap: () { + // print("inwesm Screenindex $index"); + + // if (getCount( + // provider.intConfigDataList[index].name, + // provider) != + // 0) { + // provider.savedList + // .where((element) => + // element.form == + // provider + // .intConfigDataList[index].name) + // .toList(); + // Navigator.push( + // context, + // MaterialPageRoute( + // builder: (BuildContext context) => + // SavedFormListScreen( + // formname: provider + // .intConfigDataList[index] + // .name, + // ))); + // } + // }, + // child: FittedBox( + // fit: BoxFit.scaleDown, + // child: Text( + // "${provider.savedList.where((element) => element.form == provider.intConfigDataList[index].name).length} record(s) saved", + // style: TextStyle( + // // fontSize: isTablet ? 18.0 : 14, + // fontSize: 18.0, + // color: Colors.blue.shade900), + // ), + // ), + // ) + // : const SizedBox.shrink(), + // onTap: () { + // Navigator.push( + // context, + // MaterialPageRoute( + // builder: (BuildContext context) => + // InteractionScreen( + // index: index, + // form: provider + // .intConfigDataList[index].name, + // ))); + // }, + // ), + + const Divider(), + ], + ); + }) + : ListView( + children: [ + ListTile( + title: const Text( + "Add My Event", + style: TextStyle(fontSize: 18.0), + ), + onTap: () async { + final ConfigDataProvider configDataProvider = + ConfigDataProvider(); + + await configDataProvider.initConfigUIData123(); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + const InteractionListScreen())); + // Navigator.push(context, + // MaterialPageRoute(builder: (context) => AddEventScreen())); + }, + trailing: const Icon(Icons.arrow_forward_ios), + ), + Divider(), + // ListTile( + // title: const Text( + // "Interaction", + // style: TextStyle(fontSize: 18.0), + // ), + // onTap: () async { + // print("I am Interaction"); + // final ConfigDataProvider configDataProvider = + // ConfigDataProvider(); + + // await configDataProvider.initConfigUIData(); + // // Navigator.push(context, MaterialPageRoute(builder: (context)))=> InteractionScreen(); + // Navigator.push( + // context, + // MaterialPageRoute( + // builder: (context) => InteractionListScreen())); + // }, + // trailing: const Icon(Icons.arrow_forward_ios), + // ), + + ListTile( + title: const Text( + "Interaction", + style: TextStyle(fontSize: 18.0), + ), + onTap: () async { + print("I am Interaction"); + + final ConfigDataProvider configDataProvider = + ConfigDataProvider(); + + await configDataProvider.initConfigUIData(); + // Navigator.push(context, MaterialPageRoute(builder: (context)))=> InteractionScreen(); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => InteractionListScreen())); + }, + trailing: const Icon(Icons.arrow_forward_ios), + ), + const Divider(), + ListTile( + title: const Text( + "New Medical Insight", + style: TextStyle(fontSize: 18.0), + ), + onTap: () async { + final ConfigDataProvider configDataProvider = + ConfigDataProvider(); + + await configDataProvider.initConfigUIDataMedical(); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + const InteractionListScreen())); + }, + trailing: Icon(Icons.arrow_forward_ios), + ), + Divider(), + ListTile( + title: const Text( + "Engagement", + style: TextStyle(fontSize: 18.0), + ), + onTap: () async { + final ConfigDataProvider configDataProvider = + ConfigDataProvider(); + await configDataProvider.initConfigUIDataEng(); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + const InteractionListScreen())); + }, + trailing: const Icon(Icons.arrow_forward_ios), + ), + Divider(), + ], + ), ), - body: ListView( - children: [ - ListTile( - title: const Text( - "Add My Event", - style: TextStyle(fontSize: 18.0), - ), - onTap: () async { - final ConfigDataProvider configDataProvider = - ConfigDataProvider(); - - await configDataProvider.initConfigUIData123(); - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => const InteractionListScreen())); - // Navigator.push(context, - // MaterialPageRoute(builder: (context) => AddEventScreen())); - }, - trailing: const Icon(Icons.arrow_forward_ios), - ), - Divider(), - // ListTile( - // title: const Text( - // "Interaction", - // style: TextStyle(fontSize: 18.0), - // ), - // onTap: () async { - // print("I am Interaction"); - // final ConfigDataProvider configDataProvider = - // ConfigDataProvider(); - - // await configDataProvider.initConfigUIData(); - // // Navigator.push(context, MaterialPageRoute(builder: (context)))=> InteractionScreen(); - // Navigator.push( - // context, - // MaterialPageRoute( - // builder: (context) => InteractionListScreen())); - // }, - // trailing: const Icon(Icons.arrow_forward_ios), - // ), - - ListTile( - title: const Text( - "Interaction", - style: TextStyle(fontSize: 18.0), - ), - onTap: () async { - print("I am Interaction"); - - final ConfigDataProvider configDataProvider = - ConfigDataProvider(); - - await configDataProvider.initConfigUIData(); - // Navigator.push(context, MaterialPageRoute(builder: (context)))=> InteractionScreen(); - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => InteractionListScreen())); - }, - trailing: const Icon(Icons.arrow_forward_ios), - ), - const Divider(), - ListTile( - title: const Text( - "New Medical Insight", - style: TextStyle(fontSize: 18.0), - ), - onTap: () async { - final ConfigDataProvider configDataProvider = - ConfigDataProvider(); - - await configDataProvider.initConfigUIDataMedical(); - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => const InteractionListScreen())); - }, - trailing: Icon(Icons.arrow_forward_ios), - ), - Divider(), - ListTile( - title: const Text( - "Engagement", - style: TextStyle(fontSize: 18.0), - ), - onTap: () async { - final ConfigDataProvider configDataProvider = - ConfigDataProvider(); - await configDataProvider.initConfigUIDataEng(); - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => const InteractionListScreen())); - }, - trailing: const Icon(Icons.arrow_forward_ios), - ), - Divider(), - ], - ), - ), - ); + ); + }); } } + +// import 'package:discover_module/ui_screen/interactionform/configprovider.dart'; +// import 'package:discover_module/ui_screen/interactionform/interactionlistscreen.dart'; +// import 'package:discover_module/ui_screen/interactionform/interactionprovider.dart'; +// import 'package:flutter/cupertino.dart'; +// import 'package:flutter/material.dart'; +// import 'package:flutter/widgets.dart'; +// import 'package:provider/provider.dart'; + +// class FormList extends StatefulWidget { +// const FormList({super.key}); + +// @override +// State createState() => _FormListState(); +// } + +// class _FormListState extends State { +// var formdata; +// @override +// void initState() { +// // TODO: implement initState +// super.initState(); + +// idata(); +// } + +// idata() { +// var iprovider = Provider.of(context, listen: false); + +// setState(() { +// formdata = iprovider.intConfigDataList; +// }); +// } + +// @override +// Widget build(BuildContext context) { +// return SafeArea( +// child: Scaffold( +// appBar: AppBar( +// title: Text("Form List"), +// ), +// body: ListView( +// children: [ +// ListTile( +// title: const Text( +// "Add My Event", +// style: TextStyle(fontSize: 18.0), +// ), +// onTap: () async { +// final ConfigDataProvider configDataProvider = +// ConfigDataProvider(); + +// await configDataProvider.initConfigUIData123(); +// Navigator.push( +// context, +// MaterialPageRoute( +// builder: (context) => const InteractionListScreen())); +// // Navigator.push(context, +// // MaterialPageRoute(builder: (context) => AddEventScreen())); +// }, +// trailing: const Icon(Icons.arrow_forward_ios), +// ), +// Divider(), +// // ListTile( +// // title: const Text( +// // "Interaction", +// // style: TextStyle(fontSize: 18.0), +// // ), +// // onTap: () async { +// // print("I am Interaction"); +// // final ConfigDataProvider configDataProvider = +// // ConfigDataProvider(); + +// // await configDataProvider.initConfigUIData(); +// // // Navigator.push(context, MaterialPageRoute(builder: (context)))=> InteractionScreen(); +// // Navigator.push( +// // context, +// // MaterialPageRoute( +// // builder: (context) => InteractionListScreen())); +// // }, +// // trailing: const Icon(Icons.arrow_forward_ios), +// // ), + +// ListTile( +// title: const Text( +// "Interaction", +// style: TextStyle(fontSize: 18.0), +// ), +// onTap: () async { +// print("I am Interaction"); + +// final ConfigDataProvider configDataProvider = +// ConfigDataProvider(); + +// await configDataProvider.initConfigUIData(); +// // Navigator.push(context, MaterialPageRoute(builder: (context)))=> InteractionScreen(); +// Navigator.push( +// context, +// MaterialPageRoute( +// builder: (context) => InteractionListScreen())); +// }, +// trailing: const Icon(Icons.arrow_forward_ios), +// ), +// const Divider(), +// ListTile( +// title: const Text( +// "New Medical Insight", +// style: TextStyle(fontSize: 18.0), +// ), +// onTap: () async { +// final ConfigDataProvider configDataProvider = +// ConfigDataProvider(); + +// await configDataProvider.initConfigUIDataMedical(); +// Navigator.push( +// context, +// MaterialPageRoute( +// builder: (context) => const InteractionListScreen())); +// }, +// trailing: Icon(Icons.arrow_forward_ios), +// ), +// Divider(), +// ListTile( +// title: const Text( +// "Engagement", +// style: TextStyle(fontSize: 18.0), +// ), +// onTap: () async { +// final ConfigDataProvider configDataProvider = +// ConfigDataProvider(); +// await configDataProvider.initConfigUIDataEng(); +// Navigator.push( +// context, +// MaterialPageRoute( +// builder: (context) => const InteractionListScreen())); +// }, +// trailing: const Icon(Icons.arrow_forward_ios), +// ), +// Divider(), +// ], +// ), +// ), +// ); +// } +// }