KonectarApp/lib/main.dart

826 lines
37 KiB
Dart

// import 'dart:async';
// import 'dart:convert';
// import 'dart:io';
// import 'dart:ui';
// import 'package:connectivity_plus/connectivity_plus.dart';
// import 'package:dio/dio.dart';
// import 'package:firebase_core/firebase_core.dart';
// import 'package:firebase_remote_config/firebase_remote_config.dart';
// import 'package:flutter/foundation.dart';
// import 'package:flutter/material.dart';
// import 'package:flutter/services.dart';
// import 'package:flutter/widgets.dart';
// import 'package:hive_flutter/hive_flutter.dart';
// import 'package:konectar_events/contacts_module/constants.dart';
// import 'package:konectar_events/contacts_module/provider_class/affiliationsprovider.dart';
// import 'package:konectar_events/contacts_module/provider_class/certificate_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/educationprovider.dart';
// import 'package:konectar_events/contacts_module/provider_class/email_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/engagement_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/events_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/hcp%20_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_aff_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_awards_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_certificate_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_education_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_email_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_event_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_list_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_locationprovider.dart';
// import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_pno_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_training_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/location_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/medicalinsightprovider.dart';
// import 'package:konectar_events/contacts_module/provider_class/nih_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/patent_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/phoneno_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/procedureprovider.dart';
// import 'package:konectar_events/contacts_module/provider_class/publications_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/single_hcpprovider.dart';
// import 'package:konectar_events/contacts_module/provider_class/speaker_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/training_provider.dart';
// import 'package:konectar_events/contacts_module/provider_class/trials_provider.dart';
// import 'package:konectar_events/contacts_module/storage_hive/aff_data/aff_model_hive.dart';
// import 'package:konectar_events/contacts_module/storage_hive/awa_data/awa_model_hive.dart';
// import 'package:konectar_events/contacts_module/storage_hive/cer_hive/cer_model_hive.dart';
// import 'package:konectar_events/contacts_module/storage_hive/edu_data/edu_model_hive.dart';
// import 'package:konectar_events/contacts_module/storage_hive/email_data/email_model_hive.dart';
// import 'package:konectar_events/contacts_module/storage_hive/events_data/event_model_hive.dart';
// import 'package:konectar_events/contacts_module/storage_hive/kol_info/kol_info_model_hive.dart';
// import 'package:konectar_events/contacts_module/storage_hive/loc_data/location_model_hive.dart';
// import 'package:konectar_events/contacts_module/storage_hive/nih_grant_data/nih_model_hive.dart';
// import 'package:konectar_events/contacts_module/storage_hive/patent_data/patent_model_hive.dart';
// import 'package:konectar_events/contacts_module/storage_hive/pno_data/pno_model_hive.dart';
// import 'package:konectar_events/contacts_module/storage_hive/procedure_data/pro_model_hive.dart';
// import 'package:konectar_events/contacts_module/storage_hive/pub_data/pub_model_hive.dart';
// import 'package:konectar_events/contacts_module/storage_hive/speaker_data/speaker_model_hive.dart';
// import 'package:konectar_events/contacts_module/storage_hive/traning_data/traning_model_hive.dart';
// import 'package:konectar_events/contacts_module/storage_hive/trials_data/trial_model_hive.dart';
// import 'package:konectar_events/contacts_module/ui_screen/interactionform/interactionprovider.dart';
// import 'package:konectar_events/contacts_module/ui_screen/interactionform/model/interaction_config_data.dart';
// import 'package:konectar_events/contacts_module/ui_screen/interactionform/model/interaction_data.dart';
// import 'package:konectar_events/contacts_module/ui_screen/interactionform/model/json_form_data.dart';
// import 'package:konectar_events/contacts_module/ui_screen/interactionform/model/save_interaction.dart';
// import 'package:konectar_events/contacts_module/ui_screen/interactionform/repository/hive_repository.dart';
// import 'package:konectar_events/contacts_module/ui_screen/interactionform/viewinteractionprovider.dart';
// import 'package:konectar_events/firebaseexample.dart';
// import 'package:konectar_events/model/hive_api_constants.dart';
// import 'package:konectar_events/model/myeventsmodel.dart';
// import 'package:konectar_events/model/neweventsmodel.dart';
// import 'package:konectar_events/model/sessionnotesmodel.dart';
// import 'package:konectar_events/model/userdata_model.dart';
// import 'package:konectar_events/utils/sessionmanager.dart';
// import 'package:konectar_events/view/home.dart';
// import 'package:konectar_events/view/login.dart';
// import 'package:konectar_events/view/login_components/intropaging.dart';
// import 'package:konectar_events/view/navigation_home_screen.dart';
// import 'package:konectar_events/viewmodel/eventsprovider.dart';
// import 'package:konectar_events/viewmodel/hcpprofprovider.dart';
// import 'package:konectar_events/viewmodel/loginprovider.dart';
// import 'package:overlay_support/overlay_support.dart';
// import 'package:provider/provider.dart';
// import 'package:openid_client/openid_client.dart';
// import 'package:flutter_web_plugins/url_strategy.dart';
// import 'package:shared_preferences/shared_preferences.dart';
// //import 'openid/openid_io.dart' if (dart.library.html) 'openid_browser.dart';
// import 'contacts_module/provider_class/award_provider.dart';
// import 'firebase_options.dart';
// import 'package:flutter_background_service/flutter_background_service.dart';
// Future main() async {
// WidgetsFlutterBinding.ensureInitialized();
// final dio = Dio();
// await Hive.initFlutter();
// await initializeService();
// Hive.registerAdapter(UserDataAdapter());
// Hive.registerAdapter(EventsListAdapter());
// Hive.registerAdapter(SessionNotesModelAdapter());
// Hive.registerAdapter(MyEventsModelAdapter());
// Hive.registerAdapter(SaveInteractionAdapter());
// Hive.registerAdapter(InteractionConfigDataAdapter());
// Hive.registerAdapter(InteractionResultDataAdapter());
// Hive.registerAdapter(FormFieldDataAdapter());
// Hive.registerAdapter(ValidationAdapter());
// Hive.registerAdapter(SectionListAdapter());
// Hive.registerAdapter(InputClassAdapter());
// Hive.registerAdapter(InteractionWidgetAdapter());
// // Hive.registerAdapter(UserDataAdapter());
// Hive.registerAdapter(SendSaveJsonAdapter());
// Hive.registerAdapter(MultipleSectionListAdapter());
// Hive.registerAdapter(SaveAdapter());
// Hive.registerAdapter(SaveInteractionFormJsonAdapter());
// await Hive.openBox<SaveInteraction>('InteractionDataBox');
// await Hive.openBox<InteractionConfigData>('InteractionConfigDataBox');
// var box = await Hive.openBox('mycontact');
// var box1 = await Hive.openBox('myfilter');
// await Hive.openBox('checkvalue');
// await Hive.openBox('hcpdata');
// await Hive.openBox<String>('notehive');
// Hive.registerAdapter(AffiliationAdapter());
// // await Hive.openBox<Affiliation>('affiliationshive');
// Hive.registerAdapter(KolInfoAdapter());
// Hive.registerAdapter(PublicationAdapter());
// Hive.registerAdapter(EventsAdapter());
// Hive.registerAdapter(TrialsAdapter());
// Hive.registerAdapter(LocationAdapter());
// Hive.registerAdapter(PhoneNoAdapter());
// Hive.registerAdapter(EmailAdapter());
// Hive.registerAdapter(EduAdapter());
// Hive.registerAdapter(AwaAdapter());
// Hive.registerAdapter(CerAdapter());
// Hive.registerAdapter(PatentAdapter());
// Hive.registerAdapter(NihAdapter());
// Hive.registerAdapter(ProAdapter());
// Hive.registerAdapter(Training1Adapter());
// Hive.registerAdapter(SpeAdapter());
// Hive.registerAdapter(HiveApiConstantsAdapter());
// await Hive.openBox<UserData>("UserDataBox");
// await Hive.openBox<EventsList>("EventsListBox");
// await Hive.openBox<SessionNotesModel>("SessionNotesModelBox");
// await Hive.openBox<MyEventsModel>("MyEventsBox");
// await Hive.openBox<HiveApiConstants>("hiveApiConstants");
// WidgetsFlutterBinding.ensureInitialized();
// // FirebaseMessaging.instance.getToken().then((value) {
// // String? token = value;
// // print("token: $token");
// // });
// usePathUrlStrategy();
// // client = await getClient();
// // //credential = await getRedirectResult(client, scopes: scopes);
// // credential = await authenticate(client, scopes: scopes);
// // userInfo = await credential!.getUserInfo();
// //runApp(const MyApp());
// // activateTimer();
// SharedPreferences.getInstance().then((instance) {
// //StorageService().sharedPreferencesInstance = instance;
// bool isloggedIn = instance.getBool('isloggedin') ?? false;
// print("checkhere before:$isloggedIn");
// String secretkey = instance.getString('secretkey') ?? "";
// OverlaySupportEntry entry;
// Connectivity().onConnectivityChanged.listen((event) {
// print("CHECK INTERNET");
// print(event);
// if (event.toString().contains("ConnectivityResult.none")) {
// entry = showOverlayNotification((context) {
// return Text("this is a message from simple notification");
// }, duration: Duration(hours: 1));
// }
// });
// OverlaySupport overlaySupport = OverlaySupport.global(
// child: Text("ONLINE"),
// );
// runApp(
// MultiProvider(
// providers: [
// ChangeNotifierProvider(create: (_) => LoginProvider()),
// ChangeNotifierProvider(create: (_) => EventsProvider()),
// ChangeNotifierProvider(create: (_) => HcpProfileProvider()),
// //Contacts
// ChangeNotifierProvider(create: (_) => InteractionProvider()),
// ChangeNotifierProvider(create: (_) => ViewInteractionProvider()),
// ChangeNotifierProvider(create: (_) => hcpProvider()),
// ChangeNotifierProvider(create: (_) => Singlehcpdetails()),
// ChangeNotifierProvider(create: (_) => AffiliationsProvider()),
// ChangeNotifierProvider(create: (_) => PublicatioProvider()),
// ChangeNotifierProvider(create: (_) => EventProvider()),
// ChangeNotifierProvider(create: (_) => TrialsProvider()),
// ChangeNotifierProvider(create: (_) => MediacalInsightProvider()),
// ChangeNotifierProvider(create: (_) => SpekerEvalutionProvider()),
// ChangeNotifierProvider(create: (_) => EnagagementProvider()),
// ChangeNotifierProvider(create: (_) => LocationProvider()),
// ChangeNotifierProvider(create: (_) => PhonenoProvider()),
// ChangeNotifierProvider(create: (_) => EmailProvider()),
// ChangeNotifierProvider(create: (_) => PatentProvider()),
// ChangeNotifierProvider(create: (_) => TrainigProvider()),
// ChangeNotifierProvider(create: (_) => EducationProvider()),
// ChangeNotifierProvider(create: (_) => AwardProvider()),
// ChangeNotifierProvider(create: (_) => CertificateProvider()),
// ChangeNotifierProvider(create: (_) => NIHGrantsProvider()),
// ChangeNotifierProvider(create: (_) => ProcedureProvider()),
// //K2 Provider
// ChangeNotifierProvider(create: (_) => KolListProvider()),
// ChangeNotifierProvider(create: (_) => LocationKolProvider()),
// ChangeNotifierProvider(create: (_) => PhonenoProviderK2()),
// ChangeNotifierProvider(create: (_) => EmailProviderK2()),
// ChangeNotifierProvider(create: (_) => EducationProviderK2()),
// ChangeNotifierProvider(create: (_) => TrainigProviderK2()),
// ChangeNotifierProvider(create: (_) => AwardProviderK2()),
// ChangeNotifierProvider(create: (_) => CertificateProviderK2()),
// ChangeNotifierProvider(create: (_) => AffiliationsProviderk2()),
// ChangeNotifierProvider(create: (_) => EventProviderK2()),
// ChangeNotifierProvider<HiveDataRepository>(
// create: (_) => HiveDataRepository(
// Hive.box<InteractionConfigData>('InteractionConfigDataBox'))),
// ],
// child:
// // SafeArea(
// // top: true,
// // child:
// MaterialApp(
// theme: ThemeData(
// //fontFamily: "SourceSerif",
// ),
// debugShowCheckedModeBanner: false,
// title: 'Dynamic Links Example',
// initialRoute: '/',
// routes: <String, WidgetBuilder>{
// '/': (BuildContext context) => FutureBuilder<bool>(
// future: SessionManager().isLoggedIn(),
// builder: (context, snapshot) {
// print("Data_is : $snapshot");
// if (snapshot.connectionState == ConnectionState.waiting) {
// return const CircularProgressIndicator();
// } else if (snapshot.hasError) {
// return Text('Error: ${snapshot.error}');
// } else {
// final isLoggedIn = snapshot.data ?? false;
// print("isLoggedIn_is : $isLoggedIn");
// print("secret : $secretkey");
// return isLoggedIn
// ? NavigationHomeScreen()
// : IntroductionAnimationScreen();
// }
// },
// ), //userInfo != null ? const Home() : OpenidScreen(credential: credential,),
// // '/details': (BuildContext context) => const HomeScreen(),
// },
// ),
// ),
// // ),
// );
// });
// }
// Future<void> initializeService() async {
// final service = FlutterBackgroundService();
// await service.configure(
// androidConfiguration: AndroidConfiguration(
// // this will be executed when app is in foreground or background in separated isolate
// onStart: onStart,
// // auto start service
// autoStart: true,
// isForegroundMode: false,
// ),
// iosConfiguration: IosConfiguration(
// // auto start service
// autoStart: true,
// // this will be executed when app is in foreground in separated isolate
// onForeground: onStart,
// // you have to enable background fetch capability on xcode project
// onBackground: onIosBackground,
// ),
// );
// await service.startService();
// }
// @pragma('vm:entry-point')
// Future<bool> onIosBackground(ServiceInstance service) async {
// WidgetsFlutterBinding.ensureInitialized();
// DartPluginRegistrant.ensureInitialized();
// SharedPreferences preferences = await SharedPreferences.getInstance();
// await preferences.reload();
// final log = preferences.getStringList('log') ?? <String>[];
// log.add(DateTime.now().toIso8601String());
// await preferences.setStringList('log', log);
// return true;
// }
// @pragma('vm:entry-point')
// void onStart(ServiceInstance service) async {
// print("Background service started");
// if (service is AndroidServiceInstance) {
// // callApiInBackground;
// service.on('setAsForeground').listen((event) {
// service.setAsForegroundService();
// print("Hey Hi i am foground");
// });
// service.on('setAsBackground').listen((event) {
// service.setAsBackgroundService();
// print("Hey Hi i am background");
// });
// }
// print('NewwwFLUTTER BACKGROUND SERVICE: ${DateTime.now()}');
// service.on('stopService').listen((event) {
// service.stopSelf();
// });
// startPeriodicCalls();
// // Timer.periodic(const Duration(seconds: 20), (timer) async {
// // print('FLUTTER BACKGROUND SERVICE: ${DateTime.now()}');
// // // final response1 =
// // // await http.get(Uri.parse('http://192.168.2.170:8000/all-routes'));
// // // if (response1.statusCode == 200) {
// // // print('API call successful1 : ${response1.body}');
// // // } else {
// // // print('API call failed : ${response1.body}');
// // // }
// // startPeriodicCalls();
// // });
// }
// Map<String, Timer> _timers = {};
// // void startPeriodicCalls() {
// // Constants.apiIntervals1.forEach((url, interval) {
// // print("URL_iss: ${url}, InterVal_iss: ${interval}");
// // _timers[url] = Timer.periodic(Duration(minutes: interval), (timer) async {
// // await fetchApiData(url);
// // });
// // });
// // }
// startPeriodicCalls() {
// print("pooja");
// Constants.apiIntervals1.forEach((key, item) {
// print(
// "URL_iss: ${item['url']}, InterVal_iss: ${item['intervals']}, HiveName: ${item['hivename']}");
// _timers[item['url']] =
// Timer.periodic(Duration(minutes: item['intervals']), (timer) async {
// await fetchApiData(item['url'], item['hivename'], item['hivetype']);
// });
// });
// }
// PostApiCall(url, methodName, sendPostData) async {
// try {
// final response = await Dio().post(
// url,
// data: sendPostData,
// options: Options(
// headers: {
// 'Content-Type': 'application/json',
// },
// ),
// );
// if (response.statusCode == 200) {
// debugPrint("Response_is : ${response.data}");
// return response;
// } else {
// return 'Failed to load data';
// }
// } catch (e) {
// print('Error fetching data123 from $url: $e');
// }
// }
// Future<void> fetchApiData(String url, String hivename, String hivetype) async {
// print("Post_Url_iss: ${url}, ${hivename} , ${hivetype}");
// var box, postdata;
// // var box = Hive.box(hivename);
// switch (hivename) {
// case 'InteractionDataBox':
// box = await Hive.openBox<SaveInteraction>(hivename);
// final provider = ViewInteractionProvider();
// final prov = InteractionProvider();
// postdata = await provider.getAllRecordsforIntervalSync(hivename);
// postdata.forEach((item) async {
// PostApiCall(url, "post", prov.formJson(item));
// });
// break;
// default:
// box = Hive.box<String>(hivename);
// postdata = box.values.toList();
// postdata.forEach((item) async {
// PostApiCall(url, "post", item);
// });
// break;
// }
// }
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'dart:ui';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:dio/dio.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_remote_config/firebase_remote_config.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:konectar_events/contacts_module/constants.dart';
import 'package:konectar_events/contacts_module/provider_class/affiliationsprovider.dart';
import 'package:konectar_events/contacts_module/provider_class/certificate_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/educationprovider.dart';
import 'package:konectar_events/contacts_module/provider_class/email_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/engagement_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/events_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/hcp%20_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_add_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_aff_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_awards_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_certificate_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_education_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_email_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_event_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_list_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_locationprovider.dart';
import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_pno_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/k2_provider/kol_training_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/location_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/medicalinsightprovider.dart';
import 'package:konectar_events/contacts_module/provider_class/nih_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/patent_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/phoneno_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/procedureprovider.dart';
import 'package:konectar_events/contacts_module/provider_class/publications_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/single_hcpprovider.dart';
import 'package:konectar_events/contacts_module/provider_class/speaker_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/training_provider.dart';
import 'package:konectar_events/contacts_module/provider_class/trials_provider.dart';
import 'package:konectar_events/contacts_module/service.dart/service.dart';
import 'package:konectar_events/contacts_module/storage_hive/aff_data/aff_model_hive.dart';
import 'package:konectar_events/contacts_module/storage_hive/awa_data/awa_model_hive.dart';
import 'package:konectar_events/contacts_module/storage_hive/cer_hive/cer_model_hive.dart';
import 'package:konectar_events/contacts_module/storage_hive/edu_data/edu_model_hive.dart';
import 'package:konectar_events/contacts_module/storage_hive/email_data/email_model_hive.dart';
import 'package:konectar_events/contacts_module/storage_hive/events_data/event_model_hive.dart';
import 'package:konectar_events/contacts_module/storage_hive/kol_info/kol_info_model_hive.dart';
import 'package:konectar_events/contacts_module/storage_hive/loc_data/location_model_hive.dart';
import 'package:konectar_events/contacts_module/storage_hive/nih_grant_data/nih_model_hive.dart';
import 'package:konectar_events/contacts_module/storage_hive/note_data/note_model_hive.dart';
import 'package:konectar_events/contacts_module/storage_hive/patent_data/patent_model_hive.dart';
import 'package:konectar_events/contacts_module/storage_hive/pno_data/pno_model_hive.dart';
import 'package:konectar_events/contacts_module/storage_hive/procedure_data/pro_model_hive.dart';
import 'package:konectar_events/contacts_module/storage_hive/pub_data/pub_model_hive.dart';
import 'package:konectar_events/contacts_module/storage_hive/speaker_data/speaker_model_hive.dart';
import 'package:konectar_events/contacts_module/storage_hive/traning_data/traning_model_hive.dart';
import 'package:konectar_events/contacts_module/storage_hive/trials_data/trial_model_hive.dart';
import 'package:konectar_events/contacts_module/ui_screen/interactionform/interactionprovider.dart';
import 'package:konectar_events/contacts_module/ui_screen/interactionform/model/interaction_config_data.dart';
import 'package:konectar_events/contacts_module/ui_screen/interactionform/model/interaction_data.dart';
import 'package:konectar_events/contacts_module/ui_screen/interactionform/model/json_form_data.dart';
import 'package:konectar_events/contacts_module/ui_screen/interactionform/model/save_interaction.dart';
import 'package:konectar_events/contacts_module/ui_screen/interactionform/repository/hive_repository.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/firebaseexample.dart';
import 'package:konectar_events/model/hive_api_constants.dart';
import 'package:konectar_events/model/myeventsmodel.dart';
import 'package:konectar_events/model/neweventsmodel.dart';
import 'package:konectar_events/model/sessionnotesmodel.dart';
import 'package:konectar_events/model/userdata_model.dart';
import 'package:konectar_events/utils/apicall.dart';
import 'package:konectar_events/utils/sessionmanager.dart';
import 'package:konectar_events/view/home.dart';
import 'package:konectar_events/view/login.dart';
import 'package:konectar_events/view/login_components/intropaging.dart';
import 'package:konectar_events/view/navigation_home_screen.dart';
import 'package:konectar_events/viewmodel/eventsprovider.dart';
import 'package:konectar_events/viewmodel/hcpprofprovider.dart';
import 'package:konectar_events/viewmodel/loginprovider.dart';
import 'package:overlay_support/overlay_support.dart';
import 'package:provider/provider.dart';
import 'package:openid_client/openid_client.dart';
import 'package:flutter_web_plugins/url_strategy.dart';
import 'package:shared_preferences/shared_preferences.dart';
//import 'openid/openid_io.dart' if (dart.library.html) 'openid_browser.dart';
import 'contacts_module/provider_class/award_provider.dart';
import 'firebase_options.dart';
import 'package:flutter_background_service/flutter_background_service.dart';
Future main() async {
WidgetsFlutterBinding.ensureInitialized();
// startPeriodicCalls();
await Hive.initFlutter();
await initializeService();
Hive.registerAdapter(UserDataAdapter());
Hive.registerAdapter(EventsListAdapter());
Hive.registerAdapter(SessionNotesModelAdapter());
Hive.registerAdapter(MyEventsModelAdapter());
Hive.registerAdapter(SaveInteractionAdapter());
Hive.registerAdapter(InteractionConfigDataAdapter());
Hive.registerAdapter(InteractionResultDataAdapter());
Hive.registerAdapter(FormFieldDataAdapter());
Hive.registerAdapter(ValidationAdapter());
Hive.registerAdapter(SectionListAdapter());
Hive.registerAdapter(InputClassAdapter());
Hive.registerAdapter(InteractionWidgetAdapter());
// Hive.registerAdapter(UserDataAdapter());
Hive.registerAdapter(SendSaveJsonAdapter());
Hive.registerAdapter(MultipleSectionListAdapter());
Hive.registerAdapter(SaveAdapter());
Hive.registerAdapter(SaveInteractionFormJsonAdapter());
await Hive.openBox<SaveInteraction>('InteractionDataBox');
var boxhive =
await Hive.openBox<InteractionConfigData>('InteractionConfigDataBox');
var box = await Hive.openBox('mycontact');
var box1 = await Hive.openBox('myfilter');
await Hive.openBox('checkvalue');
await Hive.openBox('hcpdata');
await Hive.openBox<Note>('notehive');
// Hive.registerAdapter(NoteAdapter());
Hive.registerAdapter(AffiliationAdapter());
// await Hive.openBox<Affiliation>('affiliationshive');
Hive.registerAdapter(KolInfoAdapter());
Hive.registerAdapter(PublicationAdapter());
Hive.registerAdapter(EventsAdapter());
Hive.registerAdapter(TrialsAdapter());
Hive.registerAdapter(LocationAdapter());
Hive.registerAdapter(PhoneNoAdapter());
Hive.registerAdapter(EmailAdapter());
Hive.registerAdapter(EduAdapter());
Hive.registerAdapter(AwaAdapter());
Hive.registerAdapter(CerAdapter());
Hive.registerAdapter(PatentAdapter());
Hive.registerAdapter(NihAdapter());
Hive.registerAdapter(ProAdapter());
Hive.registerAdapter(Training1Adapter());
Hive.registerAdapter(SpeAdapter());
Hive.registerAdapter(HiveApiConstantsAdapter());
// Hive.registerAdapter(NoteAdapter());
await Hive.openBox<UserData>("UserDataBox");
await Hive.openBox<EventsList>("EventsListBox");
await Hive.openBox<SessionNotesModel>("SessionNotesModelBox");
await Hive.openBox<MyEventsModel>("MyEventsBox");
await Hive.openBox<HiveApiConstants>("hiveApiConstants");
WidgetsFlutterBinding.ensureInitialized();
usePathUrlStrategy();
SharedPreferences.getInstance().then((instance) {
bool isloggedIn = instance.getBool('isloggedin') ?? false;
print("checkhere before:$isloggedIn");
String secretkey = instance.getString('secretkey') ?? "";
OverlaySupportEntry entry;
Connectivity().onConnectivityChanged.listen((event) {
print("CHECK INTERNET");
print(event);
if (event.toString().contains("ConnectivityResult.none")) {
entry = showOverlayNotification((context) {
return Text("this is a message from simple notification");
}, duration: Duration(hours: 1));
}
});
OverlaySupport overlaySupport = OverlaySupport.global(
child: Text("ONLINE"),
);
runApp(
MultiProvider(
providers: [
ChangeNotifierProvider(create: (_) => LoginProvider()),
ChangeNotifierProvider(create: (_) => EventsProvider()),
ChangeNotifierProvider(create: (_) => HcpProfileProvider()),
//Contacts
ChangeNotifierProvider(create: (_) => InteractionProvider()),
ChangeNotifierProvider(create: (_) => ViewInteractionProvider()),
ChangeNotifierProvider(create: (_) => hcpProvider()),
ChangeNotifierProvider(create: (_) => Singlehcpdetails()),
ChangeNotifierProvider(create: (_) => AffiliationsProvider()),
ChangeNotifierProvider(create: (_) => PublicatioProvider()),
ChangeNotifierProvider(create: (_) => EventProvider()),
ChangeNotifierProvider(create: (_) => TrialsProvider()),
ChangeNotifierProvider(create: (_) => MediacalInsightProvider()),
ChangeNotifierProvider(create: (_) => SpekerEvalutionProvider()),
ChangeNotifierProvider(create: (_) => EnagagementProvider()),
ChangeNotifierProvider(create: (_) => LocationProvider()),
ChangeNotifierProvider(create: (_) => PhonenoProvider()),
ChangeNotifierProvider(create: (_) => EmailProvider()),
ChangeNotifierProvider(create: (_) => PatentProvider()),
ChangeNotifierProvider(create: (_) => TrainigProvider()),
ChangeNotifierProvider(create: (_) => EducationProvider()),
ChangeNotifierProvider(create: (_) => AwardProvider()),
ChangeNotifierProvider(create: (_) => CertificateProvider()),
ChangeNotifierProvider(create: (_) => NIHGrantsProvider()),
ChangeNotifierProvider(create: (_) => ProcedureProvider()),
//K2 Provider
ChangeNotifierProvider(create: (_) => KolListProvider()),
ChangeNotifierProvider(create: (_) => LocationKolProvider()),
ChangeNotifierProvider(create: (_) => PhonenoProviderK2()),
ChangeNotifierProvider(create: (_) => EmailProviderK2()),
ChangeNotifierProvider(create: (_) => EducationProviderK2()),
ChangeNotifierProvider(create: (_) => TrainigProviderK2()),
ChangeNotifierProvider(create: (_) => AwardProviderK2()),
ChangeNotifierProvider(create: (_) => CertificateProviderK2()),
ChangeNotifierProvider(create: (_) => AffiliationsProviderk2()),
ChangeNotifierProvider(create: (_) => EventProviderK2()),
ChangeNotifierProvider(create: (_) => AddNotesProvider()),
ChangeNotifierProvider<HiveDataRepository>(
create: (_) => HiveDataRepository(
Hive.box<InteractionConfigData>('InteractionConfigDataBox'))),
],
child: SafeArea(
top: true,
child: MaterialApp(
theme: ThemeData(
//fontFamily: "SourceSerif",
),
debugShowCheckedModeBanner: false,
title: 'Dynamic Links Example',
initialRoute: '/',
routes: <String, WidgetBuilder>{
'/': (BuildContext context) => FutureBuilder<bool>(
future: SessionManager().isLoggedIn(),
builder: (context, snapshot) {
print("Data_is : $snapshot");
if (snapshot.connectionState == ConnectionState.waiting) {
return const CircularProgressIndicator();
} else if (snapshot.hasError) {
return Text('Error: ${snapshot.error}');
} else {
final isLoggedIn = snapshot.data ?? false;
print("isLoggedIn_is : $isLoggedIn");
print("secret : $secretkey");
return isLoggedIn
? IntroductionAnimationScreen()
: IntroductionAnimationScreen();
}
},
), //userInfo != null ? const Home() : OpenidScreen(credential: credential,),
// '/details': (BuildContext context) => const HomeScreen(),
},
),
),
),
);
});
}
Future<void> initializeService() async {
final service = FlutterBackgroundService();
await service.configure(
androidConfiguration: AndroidConfiguration(
// this will be executed when app is in foreground or background in separated isolate
onStart: onStart,
// auto start service
autoStart: true,
isForegroundMode: false,
),
iosConfiguration: IosConfiguration(
// auto start service
autoStart: true,
// this will be executed when app is in foreground in separated isolate
onForeground: onStart,
// you have to enable background fetch capability on xcode project
onBackground: onIosBackground,
),
);
await service.startService();
}
@pragma('vm:entry-point')
Future<bool> onIosBackground(ServiceInstance service) async {
WidgetsFlutterBinding.ensureInitialized();
DartPluginRegistrant.ensureInitialized();
SharedPreferences preferences = await SharedPreferences.getInstance();
await preferences.reload();
final log = preferences.getStringList('log') ?? <String>[];
log.add(DateTime.now().toIso8601String());
await preferences.setStringList('log', log);
return true;
}
@pragma('vm:entry-point')
void onStart(ServiceInstance service) async {
print("Background service started");
if (service is AndroidServiceInstance) {
// callApiInBackground;
service.on('setAsForeground').listen((event) {
service.setAsForegroundService();
print("Hey Hi i am foground");
});
service.on('setAsBackground').listen((event) {
service.setAsBackgroundService();
print("Hey Hi i am background");
});
}
print('NewwwFLUTTER BACKGROUND SERVICE: ${DateTime.now()}');
service.on('stopService').listen((event) {
service.stopSelf();
});
startPeriodicCalls();
}
Map<String, Timer> _timers = {};
startPeriodicCalls() {
print("pooja");
Constants.apiIntervals1.forEach((key, item) {
print(
"URL_iss: ${item['url']}, InterVal_iss: ${item['intervals']}, HiveName: ${item['hivename']}");
_timers[item['url']] =
Timer.periodic(Duration(minutes: item['intervals']), (timer) async {
await fetchApiData(item['url'], item['hivename'], item['hivetype']);
});
});
}
PostApiCall(url, methodName, sendPostData) async {
try {
final response = await Dio().post(
url,
data: sendPostData,
options: Options(
headers: {
'Content-Type': 'application/json',
},
),
);
if (response.statusCode == 200) {
debugPrint("Response_is : ${response.data}");
return response;
} else {
return 'Failed to load data';
}
} catch (e) {
print('Error fetching data123 from $url: $e');
}
}
Future<void> fetchApiData(String url, String hivename, String hivetype) async {
print("Post_Url_iss: ${url}, ${hivename} , ${hivetype}");
var box, postdata;
// var box = Hive.box(hivename);
switch (hivename) {
case 'InteractionDataBox':
box = await Hive.openBox<SaveInteraction>(hivename);
final provider = ViewInteractionProvider();
final prov = InteractionProvider();
postdata = await provider.getAllRecordsforIntervalSync(hivename);
postdata.forEach((item) async {
PostApiCall(url, "post", prov.formJson(item));
});
break;
default:
box = Hive.box<Note>(hivename);
postdata = box.values.toList();
print("PostData_isss: $postdata");
postdata.forEach((item) async {
PostApiCall(url, "post", item);
});
break;
}
}