diff --git a/lib/main.dart b/lib/main.dart index f8bea45..95f1429 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -7,18 +7,15 @@ import 'package:firebase_crashlytics/firebase_crashlytics.dart'; import 'package:firebase_performance/firebase_performance.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_inappwebview/flutter_inappwebview.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:html/parser.dart'; // ignore_for_file: public_member_api_docs import 'package:my_intra/home.dart'; -import 'package:my_intra/model/notifications.dart'; +import 'package:my_intra/utils/background_workers.dart'; import 'package:my_intra/utils/check_for_events.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:webview_cookie_manager/webview_cookie_manager.dart'; -import 'package:webview_cookie_manager/webview_cookie_manager.dart' - as webview_cookie; import 'package:webview_flutter/webview_flutter.dart'; import 'package:webview_flutter_android/webview_flutter_android.dart'; import 'package:webview_flutter_wkwebview/webview_flutter_wkwebview.dart'; @@ -237,11 +234,11 @@ Page resource error: backgroundColor: Colors.white, appBar: null, body: SafeArea(child: WebViewWidget(controller: _controller)), - floatingActionButton: favoriteButton(), + floatingActionButton: helpBtn(), ); } - Widget favoriteButton() { + Widget helpBtn() { return ElevatedButton( onPressed: () async { showDialogConnexionIntra(context); @@ -268,120 +265,3 @@ void onDidReceiveNotificationResponse(NotificationResponse details) { if (kDebugMode) {} } -Future setAllNotifsToSent() async { - Completer loadingCompleter = Completer(); - final prefs = await SharedPreferences.getInstance(); - List list = []; - String? data = prefs.getString("notifications"); - if (data != null) { - final jsonList = json.decode(data) as List; - list = jsonList.map((jsonObj) => Notifications.fromJson(jsonObj)).toList(); - } - for (var notification in list) { - notification.notifSent = true; - } - List> mapList = []; - for (Notifications obj in list) { - mapList.add(obj.toJson()); - } - final jsonValue = json.encode(mapList); - await prefs - .setString("notifications", jsonValue) - .then((value) => loadingCompleter.complete()); - await loadingCompleter.future; -} - -Future setAllNotifsToRead() async { - Completer loadingCompleter = Completer(); - final prefs = await SharedPreferences.getInstance(); - List list = []; - String? data = prefs.getString("notifications"); - if (data != null) { - final jsonList = json.decode(data) as List; - list = jsonList.map((jsonObj) => Notifications.fromJson(jsonObj)).toList(); - } - for (var notification in list) { - notification.read = true; - } - List> mapList = []; - for (Notifications obj in list) { - mapList.add(obj.toJson()); - } - final jsonValue = json.encode(mapList); - await prefs - .setString("notifications", jsonValue) - .then((value) => loadingCompleter.complete()); - await loadingCompleter.future; -} - -Future getNewCookie() async { - final prefs = await SharedPreferences.getInstance(); - String? email = prefs.getString("email"); - if (email == null) { - return; - } - HeadlessInAppWebView? headlessWebView; - Completer loadingCompleter = Completer(); - CookieManager cookieManager = CookieManager.instance(); - final webViewCookie = webview_cookie.WebviewCookieManager(); - final cookies = - await webViewCookie.getCookies('https://login.microsoftonline.com/'); - final all = await webViewCookie.getCookies(null); - final cookiesSts = await webViewCookie.getCookies('https://sts.epitech.eu'); - await cookieManager.deleteCookies( - url: WebUri.uri(Uri.parse("https://intra.epitech.eu"))); - for (var cookie in cookies) { - await cookieManager.setCookie( - url: WebUri.uri(Uri.parse("login.microsoftonline.com")), - name: cookie.name, - value: cookie.value, - isSecure: cookie.secure, - isHttpOnly: cookie.httpOnly); - } - for (var cookie in cookiesSts) { - await cookieManager.setCookie( - url: WebUri.uri(Uri.parse("sts.epitech.eu")), - name: cookie.name, - value: cookie.value, - isSecure: cookie.secure, - isHttpOnly: cookie.httpOnly); - } - for (var cookie in all) { - await cookieManager.setCookie( - url: WebUri.uri(Uri.parse(cookie.domain!)), - name: cookie.name, - value: cookie.value, - isSecure: cookie.secure, - isHttpOnly: cookie.httpOnly); - } - headlessWebView = HeadlessInAppWebView( - initialUrlRequest: URLRequest( - url: WebUri.uri(Uri.parse( - "https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=e05d4149-1624-4627-a5ba-7472a39e43ab&redirect_uri=https%3A%2F%2Fintra.epitech.eu%2Fauth%2Foffice365&state=%2F&HSU=1&login_hint=$email"))), - onLoadStop: (controller, url) async { - if (url == WebUri("https://intra.epitech.eu/")) { - loadingCompleter.complete(); - var userCookie = await cookieManager.getCookies( - url: WebUri.uri(Uri.parse("https://intra.epitech.eu/"))); - final prefs = await SharedPreferences.getInstance(); - Map cookies = {}; - for (var item in userCookie) { - cookies[item.name] = item.value; - } - await prefs.setString("cookies", json.encode(cookies)); - if (kDebugMode) { - print("cookies in back : $cookies"); - } - } - }, - ); - await headlessWebView.run(); - await loadingCompleter.future; - await headlessWebView.dispose(); - var userCookie = await cookieManager.getCookie( - url: WebUri.uri(Uri.parse("https://intra.epitech.eu")), name: "user"); - if (userCookie == null) { - return; - } - prefs.setString("user", userCookie.value); -} diff --git a/lib/notifications_widget.dart b/lib/notifications_widget.dart index 3d33355..cca1671 100644 --- a/lib/notifications_widget.dart +++ b/lib/notifications_widget.dart @@ -5,10 +5,10 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:html/parser.dart' show parseFragment; import 'package:my_intra/home.dart'; -import 'package:my_intra/main.dart'; import 'package:my_intra/model/notifications.dart'; import 'package:my_intra/model/profile.dart'; import 'package:my_intra/model/projects.dart'; +import 'package:my_intra/utils/background_workers.dart'; import 'package:my_intra/utils/fetch_data.dart'; import 'package:shared_preferences/shared_preferences.dart'; diff --git a/lib/utils/background_workers.dart b/lib/utils/background_workers.dart new file mode 100644 index 0000000..3e4f9df --- /dev/null +++ b/lib/utils/background_workers.dart @@ -0,0 +1,137 @@ +import 'dart:async'; +import 'dart:convert'; + +import 'package:firebase_remote_config/firebase_remote_config.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_inappwebview/flutter_inappwebview.dart'; +import 'package:my_intra/model/notifications.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:webview_cookie_manager/webview_cookie_manager.dart' + as webview_cookie; + +Future setAllNotifsToSent() async { + Completer loadingCompleter = Completer(); + final prefs = await SharedPreferences.getInstance(); + List list = []; + String? data = prefs.getString("notifications"); + if (data != null) { + final jsonList = json.decode(data) as List; + list = jsonList.map((jsonObj) => Notifications.fromJson(jsonObj)).toList(); + } + for (var notification in list) { + notification.notifSent = true; + } + List> mapList = []; + for (Notifications obj in list) { + mapList.add(obj.toJson()); + } + final jsonValue = json.encode(mapList); + await prefs + .setString("notifications", jsonValue) + .then((value) => loadingCompleter.complete()); + await loadingCompleter.future; +} + +Future setAllNotifsToRead() async { + Completer loadingCompleter = Completer(); + final prefs = await SharedPreferences.getInstance(); + List list = []; + String? data = prefs.getString("notifications"); + if (data != null) { + final jsonList = json.decode(data) as List; + list = jsonList.map((jsonObj) => Notifications.fromJson(jsonObj)).toList(); + } + for (var notification in list) { + notification.read = true; + } + List> mapList = []; + for (Notifications obj in list) { + mapList.add(obj.toJson()); + } + final jsonValue = json.encode(mapList); + await prefs + .setString("notifications", jsonValue) + .then((value) => loadingCompleter.complete()); + await loadingCompleter.future; +} + +Future getNewCookie() async { + final prefs = await SharedPreferences.getInstance(); + String? email = prefs.getString("email"); + if (email == null) { + return; + } + final remoteConfig = FirebaseRemoteConfig.instance; + await remoteConfig.setConfigSettings(RemoteConfigSettings( + fetchTimeout: const Duration(minutes: 1), + minimumFetchInterval: const Duration(hours: 1), + )); + await remoteConfig.setDefaults({ + "microsoft_login_url": + "https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=e05d4149-1624-4627-a5ba-7472a39e43ab&redirect_uri=https%3A%2F%2Fintra.epitech.eu%2Fauth%2Foffice365&state=%2F&HSU=1&login_hint=" + }); + String microsoftUrl = remoteConfig.getString("microsoft_login_url"); + HeadlessInAppWebView? headlessWebView; + Completer loadingCompleter = Completer(); + CookieManager cookieManager = CookieManager.instance(); + final webViewCookie = webview_cookie.WebviewCookieManager(); + final cookies = + await webViewCookie.getCookies('https://login.microsoftonline.com/'); + final all = await webViewCookie.getCookies(null); + final cookiesSts = await webViewCookie.getCookies('https://sts.epitech.eu'); + await cookieManager.deleteCookies( + url: WebUri.uri(Uri.parse("https://intra.epitech.eu"))); + for (var cookie in cookies) { + await cookieManager.setCookie( + url: WebUri.uri(Uri.parse("login.microsoftonline.com")), + name: cookie.name, + value: cookie.value, + isSecure: cookie.secure, + isHttpOnly: cookie.httpOnly); + } + for (var cookie in cookiesSts) { + await cookieManager.setCookie( + url: WebUri.uri(Uri.parse("sts.epitech.eu")), + name: cookie.name, + value: cookie.value, + isSecure: cookie.secure, + isHttpOnly: cookie.httpOnly); + } + for (var cookie in all) { + await cookieManager.setCookie( + url: WebUri.uri(Uri.parse(cookie.domain!)), + name: cookie.name, + value: cookie.value, + isSecure: cookie.secure, + isHttpOnly: cookie.httpOnly); + } + headlessWebView = HeadlessInAppWebView( + initialUrlRequest: + URLRequest(url: WebUri.uri(Uri.parse("$microsoftUrl$email"))), + onLoadStop: (controller, url) async { + if (url == WebUri("https://intra.epitech.eu/")) { + loadingCompleter.complete(); + var userCookie = await cookieManager.getCookies( + url: WebUri.uri(Uri.parse("https://intra.epitech.eu/"))); + final prefs = await SharedPreferences.getInstance(); + Map cookies = {}; + for (var item in userCookie) { + cookies[item.name] = item.value; + } + await prefs.setString("cookies", json.encode(cookies)); + if (kDebugMode) { + print("cookies in back : $cookies"); + } + } + }, + ); + await headlessWebView.run(); + await loadingCompleter.future; + await headlessWebView.dispose(); + var userCookie = await cookieManager.getCookie( + url: WebUri.uri(Uri.parse("https://intra.epitech.eu")), name: "user"); + if (userCookie == null) { + return; + } + prefs.setString("user", userCookie.value); +} diff --git a/lib/utils/fetch_data.dart b/lib/utils/fetch_data.dart index f34728e..1679384 100644 --- a/lib/utils/fetch_data.dart +++ b/lib/utils/fetch_data.dart @@ -3,7 +3,7 @@ import 'dart:io'; import 'package:firebase_performance/firebase_performance.dart'; import 'package:flutter/foundation.dart'; -import 'package:my_intra/main.dart'; +import 'package:my_intra/utils/background_workers.dart'; import 'package:shared_preferences/shared_preferences.dart'; Future fetchData(String url) async { diff --git a/pubspec.lock b/pubspec.lock index 5907613..ab131b5 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,18 +5,18 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "4eec93681221723a686ad580c2e7d960e1017cf1a4e0a263c2573c2c6b0bf5cd" + sha256: "554f148e71e9e016d9c04d4af6b103ca3f74a1ceed7d7307b70a0f41e991eb77" url: "https://pub.dev" source: hosted - version: "1.3.25" + version: "1.3.26" args: dependency: transitive description: name: args - sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 + sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.0" async: dependency: transitive description: @@ -61,26 +61,26 @@ packages: dependency: "direct main" description: name: cloud_firestore - sha256: "31cfa4d65d6e9ea837234fffe121304034c30c9214c06207b4a35867e3757900" + sha256: "621afb8a3752732f865ea2d25e2f5cd01ed16ee5691f5a33958876d0a1cae846" url: "https://pub.dev" source: hosted - version: "4.15.8" + version: "4.15.9" cloud_firestore_platform_interface: dependency: transitive description: name: cloud_firestore_platform_interface - sha256: a0097a26569b015faf8142e159e855241609ea9a1738b5fd1c40bfe8411b41a0 + sha256: d200d82314548a11a02056ca96861d216ff814a1efe7bcc6595d404202f5212c url: "https://pub.dev" source: hosted - version: "6.1.9" + version: "6.1.10" cloud_firestore_web: dependency: transitive description: name: cloud_firestore_web - sha256: ed680ece29a5750985119c09cdc276b460c3a2fa80e8c12f9b7241f6b4a7ca16 + sha256: "3b3046c23eccc1064328ab010cff4df470b6b1cfd648b82e08a84f5fb210bcb9" url: "https://pub.dev" source: hosted - version: "3.10.8" + version: "3.10.9" collection: dependency: transitive description: @@ -93,58 +93,58 @@ packages: dependency: transitive description: name: cookie_jar - sha256: a6ac027d3ed6ed756bfce8f3ff60cb479e266f3b0fdabd6242b804b6765e52de + sha256: "253920541bf248e4eda6eac5df6aa00c19c183e1fe333629925d8df666a27815" url: "https://pub.dev" source: hosted - version: "4.0.8" + version: "4.0.1" crypto: dependency: transitive description: name: crypto - sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.2" csslib: dependency: transitive description: name: csslib - sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb" + sha256: b36c7f7e24c0bdf1bf9a3da461c837d1de64b9f8beb190c9011d8c72a3dfd745 url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "0.17.2" cupertino_icons: dependency: "direct main" description: name: cupertino_icons - sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d + sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be url: "https://pub.dev" source: hosted - version: "1.0.6" + version: "1.0.5" dbus: dependency: transitive description: name: dbus - sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac" + sha256: "6f07cba3f7b3448d42d015bfd3d53fe12e5b36da2423f23838efc1d5fb31a263" url: "https://pub.dev" source: hosted - version: "0.7.10" + version: "0.7.8" dio: dependency: "direct main" description: name: dio - sha256: "49af28382aefc53562459104f64d16b9dfd1e8ef68c862d5af436cc8356ce5a8" + sha256: "0894a098594263fe1caaba3520e3016d8a855caeb010a882273189cca10f11e9" url: "https://pub.dev" source: hosted - version: "5.4.1" + version: "5.1.1" dio_cookie_manager: dependency: "direct main" description: name: dio_cookie_manager - sha256: e79498b0f632897ff0c28d6e8178b4bc6e9087412401f618c31fa0904ace050d + sha256: ff1755fd56d02485146d95a589fb4ace1f0ae0c0f3ca702a817de2dc1fbb835e url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.0.0" fake_async: dependency: transitive description: @@ -165,42 +165,42 @@ packages: dependency: transitive description: name: file - sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" url: "https://pub.dev" source: hosted - version: "7.0.0" + version: "6.1.4" firebase_analytics: dependency: "direct main" description: name: firebase_analytics - sha256: b13cbf1ee78744ca5e6b762e9218db3bd3967a0edfed75f58339907892a2ccb9 + sha256: ddfcb2aadec496e3ae2c49aa77c11b416ff705c38a3faa837fcbddceb2e049fa url: "https://pub.dev" source: hosted - version: "10.8.9" + version: "10.8.10" firebase_analytics_platform_interface: dependency: transitive description: name: firebase_analytics_platform_interface - sha256: "416b33d62033db5ecd2df719fcb657ad04e9995fa0fc392ffdab4ca0e76cb679" + sha256: "0a83107f585a630592e8b9113a7e0f2bd6fb72cdb331026ed45744f80686658d" url: "https://pub.dev" source: hosted - version: "3.9.9" + version: "3.9.10" firebase_analytics_web: dependency: transitive description: name: firebase_analytics_web - sha256: "9dca9d8d468172444ef18cabb73fe99f7aae24733bfad67115bd36bffd2d65c1" + sha256: "920da330f32a3958af929084aa114eaceb3d3a267ab784b814d1bdfb622a8a9a" url: "https://pub.dev" source: hosted - version: "0.5.5+21" + version: "0.5.5+22" firebase_core: dependency: "direct main" description: name: firebase_core - sha256: "53316975310c8af75a96e365f9fccb67d1c544ef0acdbf0d88bbe30eedd1c4f9" + sha256: "67bf0d5fd78f12f51c6b54a72f6141314136a1a90e98b1b7c45e7fac883254ed" url: "https://pub.dev" source: hosted - version: "2.27.0" + version: "2.27.1" firebase_core_platform_interface: dependency: transitive description: @@ -213,98 +213,98 @@ packages: dependency: transitive description: name: firebase_core_web - sha256: c8e1d59385eee98de63c92f961d2a7062c5d9a65e7f45bdc7f1b0b205aab2492 + sha256: "5377eaac3b9fe8aaf22638d87f92b62784f23572e132dfc029195e84d6cb37de" url: "https://pub.dev" source: hosted - version: "2.11.5" + version: "2.12.0" firebase_crashlytics: dependency: "direct main" description: name: firebase_crashlytics - sha256: c4f1b723d417bc9c4774810e774ff91df8fb0032d33fb2888b2c887e865581b8 + sha256: cf120df5b473f5f8cd24f9de663edc8aed3a1888d29d805076be0448bdee249e url: "https://pub.dev" source: hosted - version: "3.4.18" + version: "3.4.19" firebase_crashlytics_platform_interface: dependency: transitive description: name: firebase_crashlytics_platform_interface - sha256: c5a11fca3df76a98e3fa68fde8b10a08aacb9a7639f619fbfd4dad6c67a08643 + sha256: "99656cc39228e8f2b845cddb4d43307bb44294a03e7d00b4d8e35536889bc65c" url: "https://pub.dev" source: hosted - version: "3.6.25" + version: "3.6.26" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: e41586e0fd04fe9a40424f8b0053d0832e6d04f49e020cdaf9919209a28497e9 + sha256: "34fac43b70d5c41dc864eeb52417128da1f68b0a48604a0c56cd3190f0f609b8" url: "https://pub.dev" source: hosted - version: "14.7.19" + version: "14.7.20" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: f7a9d74ff7fc588a924f6b2eaeaa148b0db521b13a9db55f6ad45864fa98c06e + sha256: "1dcf7d0d6776396bb2e488c53b0e4cc671c45a65717a73d881e52190d23aca3c" url: "https://pub.dev" source: hosted - version: "4.5.27" + version: "4.5.28" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: fc21e771166860c55b103701c5ac7cdb2eec28897b97c42e6e5703cbedf9e02e + sha256: ceabccf24d15d03c89dfd6c7eaef11c58fbf00b9c76ebc94028408943b8d2bfd url: "https://pub.dev" source: hosted - version: "3.6.8" + version: "3.7.0" firebase_performance: dependency: "direct main" description: name: firebase_performance - sha256: "28cf10f0b0b8b7416b4ec800f81847ac684eb4d009a9386a7b0b5e39858be790" + sha256: fe1c1ba132044db21b1fe0f753f63f56791b7746b55edbf987d9676d20de5a56 url: "https://pub.dev" source: hosted - version: "0.9.3+17" + version: "0.9.3+18" firebase_performance_platform_interface: dependency: transitive description: name: firebase_performance_platform_interface - sha256: "85332a719cfc5c7c7af7c56821690a2db361931b70e7bbb86d3b454e9ecf9996" + sha256: e2e62602af953bf6954fbf10552f50e34cfe580e929a52e397cd8f8c1dc1e0be url: "https://pub.dev" source: hosted - version: "0.1.4+25" + version: "0.1.4+26" firebase_performance_web: dependency: transitive description: name: firebase_performance_web - sha256: dccc79b6eb4a1160e52d766a2fb751803b74ae76449ae3346864eb203adfad33 + sha256: c5ce5ea25542a6850c286cbcf65289cd6fbaaab7e0c54d63d4b9753e3ecfe276 url: "https://pub.dev" source: hosted - version: "0.1.4+25" + version: "0.1.4+26" firebase_remote_config: dependency: "direct main" description: name: firebase_remote_config - sha256: b085a72c007bd8f177a7ab98b8292d764659b07fb6b0561b84125239ee656efc + sha256: ec95cc5b024cc7014a37bf2e269c677284807caa7ef8081a4d08ae2b4b717123 url: "https://pub.dev" source: hosted - version: "4.3.17" + version: "4.3.18" firebase_remote_config_platform_interface: dependency: transitive description: name: firebase_remote_config_platform_interface - sha256: c589e007156b2c9f903253764c108abb96c1b56dd17cf0b91afc4b72ccab7bb6 + sha256: be4829ea3f36b31752905e0fec189b98f1e070ce552d193b9a212434f97c1892 url: "https://pub.dev" source: hosted - version: "1.4.25" + version: "1.4.26" firebase_remote_config_web: dependency: transitive description: name: firebase_remote_config_web - sha256: "92443c70e2721ab9d4beb23eb1d9f971da7381332451daee04f619b0f9204569" + sha256: d9cb08f8cf86f098e20574fb54a6d90596d945fb2c425eadfbb2a3aec51e3c8d url: "https://pub.dev" source: hosted - version: "1.4.25" + version: "1.4.26" flutter: dependency: "direct main" description: flutter @@ -394,26 +394,26 @@ packages: dependency: transitive description: name: flutter_local_notifications_linux - sha256: "33f741ef47b5f63cc7f78fe75eeeac7e19f171ff3c3df054d84c1e38bedb6a03" + sha256: "909bb95de05a2e793503a2437146285a2f600cd0b3f826e26b870a334d8586d7" url: "https://pub.dev" source: hosted - version: "4.0.0+1" + version: "4.0.0" flutter_local_notifications_platform_interface: dependency: transitive description: name: flutter_local_notifications_platform_interface - sha256: "7cf643d6d5022f3baed0be777b0662cce5919c0a7b86e700299f22dc4ae660ef" + sha256: "63235c42de5b6c99846969a27ad0209c401e6b77b0498939813725b5791c107c" url: "https://pub.dev" source: hosted - version: "7.0.0+1" + version: "7.0.0" flutter_svg: dependency: "direct main" description: name: flutter_svg - sha256: "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2" + sha256: f991fdb1533c3caeee0cdc14b04f50f0c3916f0dbcbc05237ccbe4e3c6b93f3f url: "https://pub.dev" source: hosted - version: "2.0.10+1" + version: "2.0.5" flutter_test: dependency: "direct dev" description: flutter @@ -436,18 +436,18 @@ packages: dependency: "direct main" description: name: html - sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a" + sha256: "79d498e6d6761925a34ee5ea8fa6dfef38607781d2fa91e37523474282af55cb" url: "https://pub.dev" source: hosted - version: "0.15.4" + version: "0.15.2" http: dependency: "direct main" description: name: http - sha256: a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba + sha256: "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.1.0" http_parser: dependency: transitive description: @@ -460,10 +460,10 @@ packages: dependency: "direct main" description: name: in_app_update - sha256: b6ccb757281a96a4b18536f68fe2567aeca865134218719364212da8fe94615c + sha256: "0be3b79405409d77999b57075322ae4703af7871d83529b5b52c246ada9861fe" url: "https://pub.dev" source: hosted - version: "4.2.2" + version: "4.0.1" intl: dependency: "direct main" description: @@ -564,74 +564,74 @@ packages: dependency: "direct main" description: name: path_provider - sha256: b27217933eeeba8ff24845c34003b003b2b22151de3c908d0e679e8fe1aa078b + sha256: c7edf82217d4b2952b2129a61d3ad60f1075b9299e629e149a8d2e39c2e6aad4 url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.0.14" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: "477184d672607c0a3bf68fbbf601805f92ef79c82b64b4d6eb318cbca4c48668" + sha256: "019f18c9c10ae370b08dce1f3e3b73bc9f58e7f087bb5e921f06529438ac0ae7" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.0.24" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f" + sha256: ad4c4d011830462633f03eb34445a45345673dfd4faf1ab0b4735fbd93b19183 url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.2.2" path_provider_linux: dependency: transitive description: name: path_provider_linux - sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + sha256: "2ae08f2216225427e64ad224a24354221c2c7907e448e6e0e8b57b1eb9f10ad1" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.1.10" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface - sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.0.6" path_provider_windows: dependency: transitive description: name: path_provider_windows - sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" + sha256: f53720498d5a543f9607db4b0e997c4b5438884de25b0f73098cc2671a51b130 url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.1.5" petitparser: dependency: transitive description: name: petitparser - sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4" url: "https://pub.dev" source: hosted - version: "6.0.2" + version: "5.1.0" pie_chart: dependency: "direct main" description: name: pie_chart - sha256: "58e6a46999ac938bfa1c3e5be414d6e149f037647197dca03ba3614324c12c82" + sha256: "5dba6d0eb4718e8ed00a9079361cd8947c3f84ac5a5d76f05a27f4ec5e27589e" url: "https://pub.dev" source: hosted - version: "5.4.0" + version: "5.3.2" platform: dependency: transitive description: name: platform - sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" + sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" url: "https://pub.dev" source: hosted - version: "3.1.4" + version: "3.1.0" plugin_platform_interface: dependency: transitive description: @@ -640,70 +640,78 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.8" + process: + dependency: transitive + description: + name: process + sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + url: "https://pub.dev" + source: hosted + version: "4.2.4" shared_preferences: dependency: "direct main" description: name: shared_preferences - sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02" + sha256: "858aaa72d8f61637d64e776aca82e1c67e6d9ee07979123c5d17115031c1b13b" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.1.0" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06" + sha256: "8304d8a1f7d21a429f91dee552792249362b68a331ac5c3c1caf370f658873f6" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.1.0" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c" + sha256: cf2a42fb20148502022861f71698db12d937c7459345a1bdaa88fc91a91b3603 url: "https://pub.dev" source: hosted - version: "2.3.5" + version: "2.2.0" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" + sha256: "9d387433ca65717bbf1be88f4d5bb18f10508917a8fa2fb02e0fd0d7479a9afa" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.2.0" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface - sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b" + sha256: fb5cf25c0235df2d0640ac1b1174f6466bd311f621574997ac59018a6664548d url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.2.0" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - sha256: "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21" + sha256: "74083203a8eae241e0de4a0d597dbedab3b8fef5563f33cf3c12d7e93c655ca5" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.1.0" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows - sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" + sha256: "5e588e2efef56916a3b229c3bfe81e6a525665a454519ca51dbcc4236a274173" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.2.0" simple_gesture_detector: dependency: transitive description: name: simple_gesture_detector - sha256: ba2cd5af24ff20a0b8d609cec3f40e5b0744d2a71804a2616ae086b9c19d19a3 + sha256: "86d08f85f1f58583b7b4b941d989f48ea6ce08c1724a1d10954a277c2ec36592" url: "https://pub.dev" source: hosted - version: "0.2.1" + version: "0.2.0" sky_engine: dependency: transitive description: flutter @@ -801,82 +809,74 @@ packages: dependency: transitive description: name: typed_data - sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c - url: "https://pub.dev" - source: hosted - version: "1.3.2" - universal_io: - dependency: transitive - description: - name: universal_io - sha256: "1722b2dcc462b4b2f3ee7d188dad008b6eb4c40bbd03a3de451d82c78bba9aad" + sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "1.3.1" url_launcher: dependency: "direct main" description: name: url_launcher - sha256: "0ecc004c62fd3ed36a2ffcbe0dd9700aee63bd7532d0b642a488b1ec310f492e" + sha256: "75f2846facd11168d007529d6cd8fcb2b750186bea046af9711f10b907e1587e" url: "https://pub.dev" source: hosted - version: "6.2.5" + version: "6.1.10" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: d4ed0711849dd8e33eb2dd69c25db0d0d3fdc37e0a62e629fe32f57a22db2745 + sha256: a52628068d282d01a07cd86e6ba99e497aa45ce8c91159015b2416907d78e411 url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.0.27" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03" + sha256: "9af7ea73259886b92199f9e42c116072f05ff9bea2dcb339ab935dfc957392c2" url: "https://pub.dev" source: hosted - version: "6.2.4" + version: "6.1.4" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811 + sha256: "206fb8334a700ef7754d6a9ed119e7349bc830448098f21a69bf1b4ed038cabc" url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.0.4" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234 + sha256: "91ee3e75ea9dadf38036200c5d3743518f4a5eb77a8d13fda1ee5764373f185e" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.0.5" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface - sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" + sha256: "6c9ca697a5ae218ce56cece69d46128169a58aa8653c1b01d26fcd4aad8c4370" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.1.2" url_launcher_web: dependency: transitive description: name: url_launcher_web - sha256: fff0932192afeedf63cdd50ecbb1bc825d31aed259f02bb8dba0f3b729a5e88b + sha256: "81fe91b6c4f84f222d186a9d23c73157dc4c8e1c71489c4d08be1ad3b228f1aa" url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.0.16" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7 + sha256: a83ba3607a507758669cfafb03f9de09bf6e6280c14d9b9cb18f013e406dcacd url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.0.5" uuid: dependency: transitive description: @@ -889,26 +889,26 @@ packages: dependency: transitive description: name: vector_graphics - sha256: "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3" + sha256: ea8d3fc7b2e0f35de38a7465063ecfcf03d8217f7962aa2a6717132cb5d43a79 url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.5" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da + sha256: a5eaa5d19e123ad4f61c3718ca1ed921c4e6254238d9145f82aa214955d9aced url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.5" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81" + sha256: "15edc42f7eaa478ce854eaf1fbb9062a899c0e4e56e775dd73b7f4709c97c4ca" url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.5" vector_math: dependency: transitive description: @@ -929,10 +929,10 @@ packages: dependency: transitive description: name: web - sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 + sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" url: "https://pub.dev" source: hosted - version: "0.3.0" + version: "0.5.1" webview_cookie_manager: dependency: "direct main" description: @@ -945,26 +945,26 @@ packages: dependency: "direct main" description: name: webview_flutter - sha256: d81b68e88cc353e546afb93fb38958e3717282c5ac6e5d3be4a4aef9fc3c1413 + sha256: "47663d51a9061451aa3880a214ee9a65dcbb933b77bc44388e194279ab3ccaf6" url: "https://pub.dev" source: hosted - version: "4.5.0" + version: "4.0.7" webview_flutter_android: dependency: "direct main" description: name: webview_flutter_android - sha256: f038ee2fae73b509dde1bc9d2c5a50ca92054282de17631a9a3d515883740934 + sha256: "161af93c2abaf94ef2192bffb53a3658b2d721a3bf99b69aa1e47814ee18cc96" url: "https://pub.dev" source: hosted - version: "3.16.0" + version: "3.13.2" webview_flutter_platform_interface: dependency: transitive description: name: webview_flutter_platform_interface - sha256: d937581d6e558908d7ae3dc1989c4f87b786891ab47bb9df7de548a151779d8d + sha256: dbe745ee459a16b6fec296f7565a8ef430d0d681001d8ae521898b9361854943 url: "https://pub.dev" source: hosted - version: "2.10.0" + version: "2.9.0" webview_flutter_wkwebview: dependency: "direct main" description: @@ -977,34 +977,34 @@ packages: dependency: transitive description: name: win32 - sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" + sha256: a6f0236dbda0f63aa9a25ad1ff9a9d8a4eaaa5012da0dc59d21afdb1dc361ca4 url: "https://pub.dev" source: hosted - version: "5.2.0" + version: "3.1.4" workmanager: dependency: "direct main" description: name: workmanager - sha256: ed13530cccd28c5c9959ad42d657cd0666274ca74c56dea0ca183ddd527d3a00 + sha256: e0be7e35d644643f164ee45d2ce14414f0e0fdde19456aa66065f35a0b1d2ea1 url: "https://pub.dev" source: hosted - version: "0.5.2" + version: "0.5.1" xdg_directories: dependency: transitive description: name: xdg_directories - sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d + sha256: ee1505df1426458f7f60aac270645098d318a8b4766d85fde75f76f2e21807d1 url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.0" xml: dependency: transitive description: name: xml - sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + sha256: "979ee37d622dec6365e2efa4d906c37470995871fe9ae080d967e192d88286b5" url: "https://pub.dev" source: hosted - version: "6.5.0" + version: "6.2.2" sdks: - dart: ">=3.2.0 <4.0.0" + dart: ">=3.3.0 <4.0.0" flutter: ">=3.19.2" diff --git a/pubspec.yaml b/pubspec.yaml index c55ad2f..e08a55f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 0.1.35+64 +version: 0.1.36+66 environment: sdk: ">=2.19.3 <3.0.0" @@ -55,7 +55,7 @@ dependencies: firebase_messaging: ^14.4.1 flutter_local_notifications: ^17.0.0 workmanager: ^0.5.1 - firebase_remote_config: ^4.0.2 + firebase_remote_config: ^4.3.18 firebase_crashlytics: ^3.1.2 flutter_isolate: ^2.0.4 open_file_plus: ^3.4.1