diff --git a/README.md b/README.md index 5481ec0c..eb8f6101 100644 --- a/README.md +++ b/README.md @@ -18,12 +18,17 @@ ## 套件 -| Name | pub.dev | 說明 | -|----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|---------------------| -| `ap_common` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common/) | 函式庫與相關介面共用 | -| `ap_common_plugin` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_plugin.svg?style=flat-square)](https://pub.dev/packages/ap_common_plugin/) | 課表小工具 | -| `ap_common_firebase` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_firebase.svg?style=flat-square)](https://pub.dev/packages/ap_common_firebase/) | 服務 `Firebase` 的整合實作 | +| Name | pub.dev | 說明 | +|-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------| +| `ap_common` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common/) | 函式庫與相關介面共用 | +| `ap_common_core` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common_core/) | 純 Dart 的基本類別 | +| `ap_common_flutter_core` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_core.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_core/) | 基於 Flutter 框架的核心基本類別 | +| `ap_common_flutter_platform` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_platform.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_platform/) | 原生功能實作 | +| `ap_common_flutter_ui` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_ui.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_ui/) | UI 實作但不包含原生功能整合 | +| `ap_common_flutter_announcement_ui` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_announcement_ui.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_announcement_ui/) | 最新消息服務相關的介面實作 | +| `ap_common_plugin` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_plugin.svg?style=flat-square)](https://pub.dev/packages/ap_common_plugin/) | 課表小工具 | +| `ap_common_firebase` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_firebase.svg?style=flat-square)](https://pub.dev/packages/ap_common_firebase/) | 服務 `Firebase` 的整合實作 | ## 套件使用要求 -- Flutter `v1.20` 以上 +- Flutter `v3.22` 以上 diff --git a/apps/example/ios/Podfile.lock b/apps/example/ios/Podfile.lock index a86b503b..03f1e83d 100644 --- a/apps/example/ios/Podfile.lock +++ b/apps/example/ios/Podfile.lock @@ -57,7 +57,7 @@ PODS: - FlutterMacOS - sign_in_with_apple (0.0.1): - Flutter - - sqflite (0.0.3): + - sqflite_darwin (0.0.4): - Flutter - FlutterMacOS - url_launcher_ios (0.0.1): @@ -81,7 +81,7 @@ DEPENDENCIES: - share_plus (from `.symlinks/plugins/share_plus/ios`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - sign_in_with_apple (from `.symlinks/plugins/sign_in_with_apple/ios`) - - sqflite (from `.symlinks/plugins/sqflite/darwin`) + - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) SPEC REPOS: @@ -126,8 +126,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/shared_preferences_foundation/darwin" sign_in_with_apple: :path: ".symlinks/plugins/sign_in_with_apple/ios" - sqflite: - :path: ".symlinks/plugins/sqflite/darwin" + sqflite_darwin: + :path: ".symlinks/plugins/sqflite_darwin/darwin" url_launcher_ios: :path: ".symlinks/plugins/url_launcher_ios/ios" @@ -153,7 +153,7 @@ SPEC CHECKSUMS: share_plus: 8875f4f2500512ea181eef553c3e27dba5135aad shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 sign_in_with_apple: f3bf75217ea4c2c8b91823f225d70230119b8440 - sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec + sqflite_darwin: a553b1fd6fe66f53bbb0fe5b4f5bab93f08d7a13 url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe PODFILE CHECKSUM: c9ef12c3fd571f251c0b25e8bb818e50ec70ffe1 diff --git a/apps/example/lib/app.dart b/apps/example/lib/app.dart index b30352ab..a8d333e5 100644 --- a/apps/example/lib/app.dart +++ b/apps/example/lib/app.dart @@ -1,8 +1,4 @@ -import 'package:ap_common/pages/about_us_page.dart'; -import 'package:ap_common/pages/announcement/home_page.dart'; -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/utils/ap_localizations.dart'; -import 'package:ap_common/utils/preferences.dart'; +import 'package:ap_common/ap_common.dart'; import 'package:ap_common_example/config/constants.dart'; import 'package:ap_common_example/pages/home_page.dart'; import 'package:ap_common_example/utils/app_localizations.dart'; @@ -36,8 +32,8 @@ class MyAppState extends State with WidgetsBindingObserver { @override void initState() { - themeMode = ThemeMode - .values[Preferences.getInt(Constants.PREF_THEME_MODE_INDEX, 0)]; + themeMode = ThemeMode.values[ + PreferenceUtil.instance.getInt(Constants.PREF_THEME_MODE_INDEX, 0)]; WidgetsBinding.instance.addObserver(this); Future.microtask(() async { SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge); @@ -72,7 +68,7 @@ class MyAppState extends State with WidgetsBindingObserver { child: MaterialApp( localeResolutionCallback: (Locale? locale, Iterable supportedLocales) { - final String languageCode = Preferences.getString( + final String languageCode = PreferenceUtil.instance.getString( Constants.PREF_LANGUAGE_CODE, ApSupportLanguageConstants.system, ); diff --git a/apps/example/lib/main.dart b/apps/example/lib/main.dart index 108ed880..2a12889e 100644 --- a/apps/example/lib/main.dart +++ b/apps/example/lib/main.dart @@ -1,7 +1,6 @@ import 'dart:io'; -import 'package:ap_common/resources/ap_icon.dart'; -import 'package:ap_common/utils/preferences.dart'; +import 'package:ap_common/ap_common.dart'; import 'package:ap_common_example/app.dart'; import 'package:ap_common_example/config/constants.dart'; import 'package:flutter/cupertino.dart'; @@ -12,13 +11,16 @@ import 'package:google_sign_in_dartio/google_sign_in_dartio.dart'; // ignore_for_file: lines_longer_than_80_chars Future main() async { WidgetsFlutterBinding.ensureInitialized(); - await Preferences.init(key: Constants.key, iv: Constants.iv); + registerOneForAll(); + await (PreferenceUtil.instance as ApPreferenceUtil) + .init(key: Constants.key, iv: Constants.iv); if (!kIsWeb && (Platform.isMacOS || Platform.isWindows || Platform.isLinux)) { GoogleSignInDart.register( - clientId: - '141403473068-9gii2blqbggijifq0ijoqkqv8oj2i2ff.apps.googleusercontent.com',); + clientId: + '141403473068-9gii2blqbggijifq0ijoqkqv8oj2i2ff.apps.googleusercontent.com', + ); } - ApIcon.code = - Preferences.getString(Constants.PREF_ICON_STYLE_CODE, ApIcon.outlined); + ApIcon.code = PreferenceUtil.instance + .getString(Constants.PREF_ICON_STYLE_CODE, ApIcon.outlined); runApp(const MyApp()); } diff --git a/apps/example/lib/pages/diolog_utils_page.dart b/apps/example/lib/pages/diolog_utils_page.dart index da8698e5..3f04124c 100644 --- a/apps/example/lib/pages/diolog_utils_page.dart +++ b/apps/example/lib/pages/diolog_utils_page.dart @@ -1,8 +1,4 @@ -import 'package:ap_common/models/version_info.dart'; -import 'package:ap_common/utils/ap_utils.dart'; -import 'package:ap_common/utils/app_tracking_utils.dart'; -import 'package:ap_common/utils/dialog_utils.dart'; -import 'package:ap_common/utils/notification_utils.dart'; +import 'package:ap_common/ap_common.dart'; import 'package:ap_common_example/config/constants.dart'; import 'package:ap_common_example/utils/app_localizations.dart'; import 'package:flutter/material.dart'; @@ -15,7 +11,6 @@ class DialogUtilsTestPage extends StatefulWidget { class _DialogUtilsTestPageState extends State { late AppLocalizations app; - Day day = NotificationUtils.getDay(DateTime.now().weekday); TimeOfDay time = TimeOfDay.now(); @override diff --git a/apps/example/lib/pages/home_page.dart b/apps/example/lib/pages/home_page.dart index 7c57f0a9..df2f8f52 100644 --- a/apps/example/lib/pages/home_page.dart +++ b/apps/example/lib/pages/home_page.dart @@ -1,16 +1,4 @@ -import 'package:ap_common/api/announcement_helper.dart'; -import 'package:ap_common/models/user_info.dart'; -import 'package:ap_common/pages/about_us_page.dart'; -import 'package:ap_common/pages/announcement/home_page.dart'; -import 'package:ap_common/pages/announcement_content_page.dart'; -import 'package:ap_common/resources/ap_icon.dart'; -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/scaffold/home_page_scaffold.dart'; -import 'package:ap_common/utils/ap_localizations.dart'; -import 'package:ap_common/utils/ap_utils.dart'; -import 'package:ap_common/utils/notification_utils.dart'; -import 'package:ap_common/utils/preferences.dart'; -import 'package:ap_common/widgets/ap_drawer.dart'; +import 'package:ap_common/ap_common.dart'; import 'package:ap_common_example/config/constants.dart'; import 'package:ap_common_example/pages/diolog_utils_page.dart'; import 'package:ap_common_example/pages/login_page.dart'; @@ -88,7 +76,7 @@ class HomePageState extends State { @override void initState() { _getAnnouncements(); - if (Preferences.getBool(Constants.PREF_AUTO_LOGIN, false)) { + if (PreferenceUtil.instance.getBool(Constants.PREF_AUTO_LOGIN, false)) { _login(); } else { checkLogin(); @@ -126,8 +114,8 @@ class HomePageState extends State { content: content, drawer: ApDrawer( userInfo: userInfo, - displayPicture: - Preferences.getBool(Constants.PREF_DISPLAY_PICTURE, true), + displayPicture: PreferenceUtil.instance + .getBool(Constants.PREF_DISPLAY_PICTURE, true), imageAsset: drawerIcon, onTapHeader: () { if (isLogin) { @@ -194,7 +182,7 @@ class HomePageState extends State { SchoolInfoPage(), ), ), - if (NotificationUtils.isSupport) + if (NotificationUtil.instance.isSupport) DrawerItem( icon: ApIcon.dateRange, title: app.localNotificationTest, @@ -228,7 +216,8 @@ class HomePageState extends State { icon: ApIcon.powerSettingsNew, title: ap.logout, onTap: () async { - await Preferences.setBool(Constants.PREF_AUTO_LOGIN, false); + await PreferenceUtil.instance + .setBool(Constants.PREF_AUTO_LOGIN, false); isLogin = false; userInfo = null; content = null; @@ -283,7 +272,7 @@ class HomePageState extends State { break; } } else { - ApUtils.showToast(context, ap.notLogin); + UiUtil.instance.showToast(context, ap.notLogin); } } @@ -337,7 +326,7 @@ class HomePageState extends State { setState(() { this.userInfo = userInfo; }); - if (Preferences.getBool(Constants.PREF_DISPLAY_PICTURE, true)) { + if (PreferenceUtil.instance.getBool(Constants.PREF_DISPLAY_PICTURE, true)) { _getUserPicture(); } } @@ -362,12 +351,12 @@ class HomePageState extends State { Future _login() async { await Future.delayed(const Duration(microseconds: 30)); - // var username = Preferences.getString(Constants.PREF_USERNAME, ''); + // var username = PreferenceUtil.instance.getString(Constants.PREF_USERNAME, ''); // ignore: lines_longer_than_80_chars - // var password = Preferences.getStringSecurity(Constants.PREF_PASSWORD, ''); + // var password = PreferenceUtil.instance.getStringSecurity(Constants.PREF_PASSWORD, ''); //to login isLogin = true; - Preferences.setBool(Constants.PREF_IS_OFFLINE_LOGIN, false); + PreferenceUtil.instance.setBool(Constants.PREF_IS_OFFLINE_LOGIN, false); _getUserInfo(); if (state != HomeState.finish) { _getAnnouncements(); @@ -418,7 +407,7 @@ class HomePageState extends State { void _openPage(Widget page, {bool needLogin = false}) { if (!isTablet) Navigator.of(context).pop(); if (needLogin && !isLogin) { - ApUtils.showToast( + UiUtil.instance.showToast( context, ApLocalizations.of(context).notLoginHint, ); diff --git a/apps/example/lib/pages/login_page.dart b/apps/example/lib/pages/login_page.dart index 89750ecf..fb526afc 100644 --- a/apps/example/lib/pages/login_page.dart +++ b/apps/example/lib/pages/login_page.dart @@ -1,8 +1,4 @@ -import 'package:ap_common/scaffold/login_scaffold.dart'; -import 'package:ap_common/utils/ap_localizations.dart'; -import 'package:ap_common/utils/ap_utils.dart'; -import 'package:ap_common/utils/preferences.dart'; -import 'package:ap_common/widgets/progress_dialog.dart'; +import 'package:ap_common/ap_common.dart'; import 'package:ap_common_example/config/constants.dart'; import 'package:ap_common_example/res/assets.dart'; import 'package:flutter/material.dart'; @@ -107,7 +103,7 @@ class LoginPageState extends State { // setState(() { // _username.text = username; // }); -// ApUtils.showToast(context, ap.firstLoginHint); +// UiUtil.instance.showToast(context, ap.firstLoginHint); // } // }, // ) @@ -119,8 +115,8 @@ class LoginPageState extends State { setState(() { isRememberPassword = value; if (!isRememberPassword!) isAutoLogin = false; - Preferences.setBool(Constants.PREF_AUTO_LOGIN, isAutoLogin!); - Preferences.setBool( + PreferenceUtil.instance.setBool(Constants.PREF_AUTO_LOGIN, isAutoLogin!); + PreferenceUtil.instance.setBool( Constants.PREF_REMEMBER_PASSWORD, isRememberPassword!, ); @@ -131,8 +127,8 @@ class LoginPageState extends State { setState(() { isAutoLogin = value; isRememberPassword = isAutoLogin; - Preferences.setBool(Constants.PREF_AUTO_LOGIN, isAutoLogin!); - Preferences.setBool( + PreferenceUtil.instance.setBool(Constants.PREF_AUTO_LOGIN, isAutoLogin!); + PreferenceUtil.instance.setBool( Constants.PREF_REMEMBER_PASSWORD, isRememberPassword!, ); @@ -141,19 +137,22 @@ class LoginPageState extends State { Future _getPreference() async { isRememberPassword = - Preferences.getBool(Constants.PREF_REMEMBER_PASSWORD, true); - isAutoLogin = Preferences.getBool(Constants.PREF_AUTO_LOGIN, false); + PreferenceUtil.instance.getBool(Constants.PREF_REMEMBER_PASSWORD, true); + isAutoLogin = + PreferenceUtil.instance.getBool(Constants.PREF_AUTO_LOGIN, false); setState(() { - _username.text = Preferences.getString(Constants.PREF_USERNAME, ''); + _username.text = + PreferenceUtil.instance.getString(Constants.PREF_USERNAME, ''); _password.text = isRememberPassword! - ? Preferences.getStringSecurity(Constants.PREF_PASSWORD, '') + ? PreferenceUtil.instance + .getStringSecurity(Constants.PREF_PASSWORD, '') : ''; }); } Future _login() async { if (_username.text.isEmpty || _password.text.isEmpty) { - ApUtils.showToast(context, ap.doNotEmpty, gravity: gravity); + UiUtil.instance.showToast(context, ap.doNotEmpty, gravity: gravity); } else { asyncLogin(); } @@ -168,36 +167,38 @@ class LoginPageState extends State { ), barrierDismissible: false, ); - Preferences.setString(Constants.PREF_USERNAME, _username.text); + PreferenceUtil.instance.setString(Constants.PREF_USERNAME, _username.text); Navigator.of(context, rootNavigator: true).pop(); - Preferences.setString(Constants.PREF_USERNAME, _username.text); + PreferenceUtil.instance.setString(Constants.PREF_USERNAME, _username.text); if (isRememberPassword!) { - Preferences.setStringSecurity(Constants.PREF_PASSWORD, _password.text); + PreferenceUtil.instance + .setStringSecurity(Constants.PREF_PASSWORD, _password.text); } - Preferences.setBool(Constants.PREF_IS_OFFLINE_LOGIN, false); + PreferenceUtil.instance.setBool(Constants.PREF_IS_OFFLINE_LOGIN, false); TextInput.finishAutofillContext(); Navigator.of(context).pop(true); } Future _offlineLogin() async { - final String username = Preferences.getString(Constants.PREF_USERNAME, ''); + final String username = + PreferenceUtil.instance.getString(Constants.PREF_USERNAME, ''); final String password = - Preferences.getStringSecurity(Constants.PREF_PASSWORD, ''); + PreferenceUtil.instance.getStringSecurity(Constants.PREF_PASSWORD, ''); if (username.isEmpty || password.isEmpty) { - ApUtils.showToast(context, ap.noOfflineLoginData); + UiUtil.instance.showToast(context, ap.noOfflineLoginData); } else { if (username != _username.text || password != _password.text) { - ApUtils.showToast(context, ap.offlineLoginPasswordError); + UiUtil.instance.showToast(context, ap.offlineLoginPasswordError); } else { - Preferences.setBool(Constants.PREF_IS_OFFLINE_LOGIN, true); - ApUtils.showToast(context, ap.loadOfflineData); + PreferenceUtil.instance.setBool(Constants.PREF_IS_OFFLINE_LOGIN, true); + UiUtil.instance.showToast(context, ap.loadOfflineData); Navigator.of(context).pop(true); } } } Future clearSetting() async { - Preferences.setBool(Constants.PREF_AUTO_LOGIN, false); + PreferenceUtil.instance.setBool(Constants.PREF_AUTO_LOGIN, false); setState(() { isAutoLogin = false; }); diff --git a/apps/example/lib/pages/notification_utils_page.dart b/apps/example/lib/pages/notification_utils_page.dart index 74515cc7..af3c78e2 100644 --- a/apps/example/lib/pages/notification_utils_page.dart +++ b/apps/example/lib/pages/notification_utils_page.dart @@ -1,9 +1,6 @@ import 'dart:math'; -import 'package:ap_common/utils/ap_localizations.dart'; -import 'package:ap_common/utils/dialog_utils.dart'; -import 'package:ap_common/utils/notification_utils.dart'; -import 'package:ap_common/widgets/option_dialog.dart'; +import 'package:ap_common/ap_common.dart'; import 'package:ap_common_example/utils/app_localizations.dart'; import 'package:flutter/material.dart'; import 'package:sprintf/sprintf.dart'; @@ -17,7 +14,7 @@ class NotificationUtilsTestPage extends StatefulWidget { class _NotificationUtilsTestPageState extends State { late AppLocalizations app; - Day day = NotificationUtils.getDay(DateTime.now().weekday); + int weekday = DateTime.now().weekday; TimeOfDay time = TimeOfDay.now(); @override @@ -39,7 +36,7 @@ class _NotificationUtilsTestPageState extends State { const Divider(height: 0.0), ListTile( onTap: () { - NotificationUtils.show( + NotificationUtil.instance.show( id: 1, androidChannelId: '1', androidChannelDescription: 'Test', @@ -48,7 +45,7 @@ class _NotificationUtilsTestPageState extends State { ); }, title: Text(app.showNow), - subtitle: const Text('NotificationUtils.show'), + subtitle: const Text('NotificationUtil.instance.show'), ), const Divider(height: 0.0), const Padding( @@ -60,7 +57,7 @@ class _NotificationUtilsTestPageState extends State { ), ListTile( onTap: () { - NotificationUtils.schedule( + NotificationUtil.instance.schedule( id: 2, androidChannelId: '1', androidChannelDescription: 'Test', @@ -72,7 +69,7 @@ class _NotificationUtilsTestPageState extends State { ); }, title: Text(app.showInFiveSeconds), - subtitle: const Text('NotificationUtils.schedule'), + subtitle: const Text('NotificationUtil.instance.schedule'), ), const Divider(height: 0.0), const Padding( @@ -89,9 +86,9 @@ class _NotificationUtilsTestPageState extends State { builder: (_) => SimpleOptionDialog( title: app.setWeekDay, items: ApLocalizations.of(context).weekdays, - index: day.value - 1, + index: weekday - 1, onSelected: (int index) { - setState(() => day = Day.values[index]); + setState(() => weekday = index + 1); }, ), ); @@ -116,7 +113,7 @@ class _NotificationUtilsTestPageState extends State { ListTile( onTap: () { final int id = Random().nextInt(10000); - NotificationUtils.scheduleWeeklyNotify( + NotificationUtil.instance.scheduleWeeklyNotify( id: id, androidChannelId: '1', androidChannelDescription: 'Schedule Weekly Notify', @@ -124,11 +121,11 @@ class _NotificationUtilsTestPageState extends State { content: sprintf( app.scheduleWeeklyNotifyContent, [ - ApLocalizations.of(context).weekdays[day.value - 1], + ApLocalizations.of(context).weekdaysCourse[weekday - 1], time.format(context), ], ), - day: day, + weekday: weekday, time: TimeOfDay( hour: time.hour, minute: time.minute, @@ -139,12 +136,13 @@ class _NotificationUtilsTestPageState extends State { sprintf( app.scheduleWeeklyNotifyContent, [ - ApLocalizations.of(context).weekdays[day.value - 1], + ApLocalizations.of(context).weekdaysCourse[weekday - 1], time.format(context), ], ), ), - subtitle: const Text('NotificationUtils.scheduleWeeklyNotify'), + subtitle: + const Text('NotificationUtil.instance.scheduleWeeklyNotify'), ), const Divider(height: 0.0), const Padding( @@ -156,7 +154,8 @@ class _NotificationUtilsTestPageState extends State { ), ListTile( onTap: () async { - final bool? result = await NotificationUtils.requestPermissions(); + final bool? result = + await NotificationUtil.instance.requestPermissions(); if (result != null) { //ignore: use_build_context_synchronously if (!context.mounted) return; @@ -171,42 +170,43 @@ class _NotificationUtilsTestPageState extends State { }, title: Text(app.requestPermission), subtitle: const Text( - 'NotificationUtils.requestPermissions (iOS & macOS limit)', + 'NotificationUtil.instance.requestPermissions (iOS & macOS limit)', ), ), - ListTile( - onTap: () async { - final List list = - await NotificationUtils.getPendingNotificationList(); - //ignore: use_build_context_synchronously - if (!context.mounted) return; - showDialog( - context: context, - builder: (_) => SimpleOptionDialog( - title: app.getPendingNotificationList, - items: [ - for (final PendingNotificationRequest item in list) - 'id = ${item.id}, ' + - 'title = ${item.title}\n body = ${item.body}', - ], - index: -1, - onSelected: (int index) { - NotificationUtils.cancelCourseNotify(id: list[index].id); - }, - ), - ); - }, - title: Text(app.getPendingNotificationList), - subtitle: - const Text('NotificationUtils.getPendingNotificationList'), - ), + // ListTile( + // onTap: () async { + // final List list = + // await NotificationUtil.instance.getPendingNotificationList(); + // //ignore: use_build_context_synchronously + // if (!context.mounted) return; + // showDialog( + // context: context, + // builder: (_) => SimpleOptionDialog( + // title: app.getPendingNotificationList, + // items: [ + // for (final PendingNotificationRequest item in list) + // 'id = ${item.id}, ' + + // 'title = ${item.title}\n body = ${item.body}', + // ], + // index: -1, + // onSelected: (int index) { + // NotificationUtil.instance + // .cancelCourseNotify(id: list[index].id); + // }, + // ), + // ); + // }, + // title: Text(app.getPendingNotificationList), + // subtitle: const Text( + // 'NotificationUtil.instance.getPendingNotificationList'), + // ), const Divider(height: 0.0), ListTile( onTap: () { - NotificationUtils.cancelAll(); + NotificationUtil.instance.cancelAll(); }, title: Text(app.cancelAll), - subtitle: const Text('NotificationUtils.cancelAll'), + subtitle: const Text('NotificationUtil.instance.cancelAll'), ), ], ), diff --git a/apps/example/lib/pages/setting_page.dart b/apps/example/lib/pages/setting_page.dart index c16075b7..f2b428ff 100644 --- a/apps/example/lib/pages/setting_page.dart +++ b/apps/example/lib/pages/setting_page.dart @@ -1,13 +1,6 @@ -import 'dart:io'; - -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/utils/ap_localizations.dart'; -import 'package:ap_common/utils/ap_utils.dart'; -import 'package:ap_common/utils/preferences.dart'; -import 'package:ap_common/widgets/setting_page_widgets.dart'; +import 'package:ap_common/ap_common.dart'; import 'package:ap_common_example/config/constants.dart'; import 'package:ap_common_example/widgets/share_data_widget.dart'; -import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; class SettingPage extends StatefulWidget { @@ -73,7 +66,7 @@ class SettingPageState extends State { setState(() { displayPicture = !displayPicture; }); - Preferences.setBool( + PreferenceUtil.instance.setBool( Constants.PREF_DISPLAY_PICTURE, displayPicture, ); @@ -118,17 +111,20 @@ class SettingPageState extends State { } Future _getPreference() async { - PackageInfo? packageInfo; - if (!kIsWeb && (Platform.isAndroid || Platform.isIOS || Platform.isMacOS)) { - packageInfo = await PackageInfo.fromPlatform(); - } + // PackageInfo? packageInfo; + // if (!kIsWeb && (Platform.isAndroid || Platform.isIOS || Platform.isMacOS)) { + // packageInfo = await PackageInfo.fromPlatform(); + // } setState(() { - isOffline = Preferences.getBool(Constants.PREF_IS_OFFLINE_LOGIN, false); - appVersion = packageInfo?.version ?? '3.4.2'; - courseNotify = Preferences.getBool(Constants.PREF_COURSE_NOTIFY, false); + isOffline = PreferenceUtil.instance + .getBool(Constants.PREF_IS_OFFLINE_LOGIN, false); + appVersion = '3.4.2'; + courseNotify = + PreferenceUtil.instance.getBool(Constants.PREF_COURSE_NOTIFY, false); displayPicture = - Preferences.getBool(Constants.PREF_DISPLAY_PICTURE, true); - busNotify = Preferences.getBool(Constants.PREF_BUS_NOTIFY, false); + PreferenceUtil.instance.getBool(Constants.PREF_DISPLAY_PICTURE, true); + busNotify = + PreferenceUtil.instance.getBool(Constants.PREF_BUS_NOTIFY, false); }); } } diff --git a/apps/example/lib/pages/shcool_info_page.dart b/apps/example/lib/pages/shcool_info_page.dart index ab70046b..8ea9e85a 100644 --- a/apps/example/lib/pages/shcool_info_page.dart +++ b/apps/example/lib/pages/shcool_info_page.dart @@ -1,13 +1,4 @@ -import 'package:ap_common/callback/general_callback.dart'; -import 'package:ap_common/models/notification_data.dart'; -import 'package:ap_common/models/phone_model.dart'; -import 'package:ap_common/resources/ap_icon.dart'; -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/utils/analytics_utils.dart'; -import 'package:ap_common/utils/ap_localizations.dart'; -import 'package:ap_common/views/notification_list_view.dart'; -import 'package:ap_common/views/pdf_view.dart'; -import 'package:ap_common/views/phone_list_view.dart'; +import 'package:ap_common/ap_common.dart'; import 'package:ap_common_example/res/assets.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -73,7 +64,7 @@ class SchoolInfoPageState extends State @override void initState() { - AnalyticsUtils.instance?.setCurrentScreen( + AnalyticsUtil.instance?.setCurrentScreen( 'SchoolInfoPage', 'school_info_page.dart', ); @@ -167,7 +158,8 @@ class SchoolInfoPageState extends State Future _getSchedules() async { downloadFdf( - 'https://raw.githubusercontent.com/NKUST-ITC/NKUST-AP-Flutter/master/school_schedule.pdf',); + 'https://raw.githubusercontent.com/NKUST-ITC/NKUST-AP-Flutter/master/school_schedule.pdf', + ); } Future downloadFdf(String url) async { diff --git a/apps/example/lib/pages/study/course_page.dart b/apps/example/lib/pages/study/course_page.dart index 3e555624..ff825905 100644 --- a/apps/example/lib/pages/study/course_page.dart +++ b/apps/example/lib/pages/study/course_page.dart @@ -1,9 +1,4 @@ -import 'package:ap_common/config/ap_constants.dart'; -import 'package:ap_common/models/course_notify_data.dart'; -import 'package:ap_common/models/semester_data.dart'; -import 'package:ap_common/scaffold/course_scaffold.dart'; -import 'package:ap_common/utils/ap_localizations.dart'; -import 'package:ap_common/utils/preferences.dart'; +import 'package:ap_common/ap_common.dart'; import 'package:ap_common_example/config/constants.dart'; import 'package:ap_common_example/res/assets.dart'; import 'package:flutter/material.dart'; @@ -31,7 +26,7 @@ class CoursePageState extends State { String customStateHint = ''; - String get courseNotifyCacheKey => Preferences.getString( + String get courseNotifyCacheKey => PreferenceUtil.instance.getString( ApConstants.currentSemesterCode, ApConstants.semesterLatest, ); @@ -87,7 +82,7 @@ class CoursePageState extends State { Future _getCourseTables() async { final String rawString = await rootBundle.loadString(FileAssets.courses); courseData = CourseData.fromRawJson(rawString); - Preferences.setString( + PreferenceUtil.instance.setString( ApConstants.currentSemesterCode, ApConstants.semesterLatest, ); diff --git a/apps/example/lib/pages/study/score_page.dart b/apps/example/lib/pages/study/score_page.dart index ab68b60e..ea608023 100644 --- a/apps/example/lib/pages/study/score_page.dart +++ b/apps/example/lib/pages/study/score_page.dart @@ -1,7 +1,4 @@ -import 'package:ap_common/models/score_data.dart'; -import 'package:ap_common/models/semester_data.dart'; -import 'package:ap_common/scaffold/score_scaffold.dart'; -import 'package:ap_common/utils/ap_localizations.dart'; +import 'package:ap_common/ap_common.dart'; import 'package:ap_common_example/res/assets.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; diff --git a/apps/example/lib/pages/user_info_page.dart b/apps/example/lib/pages/user_info_page.dart index 6070c3d4..6cb5e16c 100644 --- a/apps/example/lib/pages/user_info_page.dart +++ b/apps/example/lib/pages/user_info_page.dart @@ -1,5 +1,4 @@ -import 'package:ap_common/models/user_info.dart'; -import 'package:ap_common/scaffold/user_info_scaffold.dart'; +import 'package:ap_common/ap_common.dart'; import 'package:ap_common_example/res/assets.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; diff --git a/apps/example/macos/Flutter/GeneratedPluginRegistrant.swift b/apps/example/macos/Flutter/GeneratedPluginRegistrant.swift index 8c3d7feb..c06c46fe 100644 --- a/apps/example/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/apps/example/macos/Flutter/GeneratedPluginRegistrant.swift @@ -17,7 +17,7 @@ import printing import share_plus import shared_preferences_foundation import sign_in_with_apple -import sqflite +import sqflite_darwin import url_launcher_macos func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { diff --git a/apps/example/pubspec.lock b/apps/example/pubspec.lock index 5f6bfd03..d2e10af4 100644 --- a/apps/example/pubspec.lock +++ b/apps/example/pubspec.lock @@ -15,7 +15,42 @@ packages: path: "../../packages/ap_common" relative: true source: path - version: "0.25.3" + version: "0.26.0-dev.0" + ap_common_announcement_ui: + dependency: "direct overridden" + description: + path: "../../packages/ap_common_announcement_ui" + relative: true + source: path + version: "0.0.1" + ap_common_core: + dependency: "direct overridden" + description: + path: "../../packages/ap_common_core" + relative: true + source: path + version: "0.0.2" + ap_common_flutter_core: + dependency: "direct overridden" + description: + path: "../../packages/ap_common_flutter_core" + relative: true + source: path + version: "0.0.1" + ap_common_flutter_platform: + dependency: "direct overridden" + description: + path: "../../packages/ap_common_flutter_platform" + relative: true + source: path + version: "0.0.1" + ap_common_flutter_ui: + dependency: "direct overridden" + description: + path: "../../packages/ap_common_flutter_ui" + relative: true + source: path + version: "0.0.1" ap_common_plugin: dependency: "direct main" description: @@ -587,6 +622,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.5" + injector: + dependency: transitive + description: + name: injector + sha256: d692c37788872bfd4bd7c01b864b0712190a25ae5a346431ff69949d5728a2e1 + url: "https://pub.dev" + source: hosted + version: "4.0.0" intl: dependency: "direct overridden" description: @@ -996,18 +1039,42 @@ packages: dependency: transitive description: name: sqflite - sha256: ff5a2436ef8ebdfda748fbfe957f9981524cb5ff11e7bafa8c42771840e8a788 + sha256: "79a297dc3cc137e758c6a4baf83342b039e5a6d2436fcdf3f96a00adaaf2ad62" + url: "https://pub.dev" + source: hosted + version: "2.4.0" + sqflite_android: + dependency: transitive + description: + name: sqflite_android + sha256: "78f489aab276260cdd26676d2169446c7ecd3484bbd5fead4ca14f3ed4dd9ee3" url: "https://pub.dev" source: hosted - version: "2.3.3+2" + version: "2.4.0" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: "2d8e607db72e9cb7748c9c6e739e2c9618320a5517de693d5a24609c4671b1a4" + sha256: "4468b24876d673418a7b7147e5a08a715b4998a7ae69227acafaab762e0e5490" + url: "https://pub.dev" + source: hosted + version: "2.5.4+5" + sqflite_darwin: + dependency: transitive + description: + name: sqflite_darwin + sha256: "769733dddf94622d5541c73e4ddc6aa7b252d865285914b6fcd54a63c4b4f027" + url: "https://pub.dev" + source: hosted + version: "2.4.1-1" + sqflite_platform_interface: + dependency: transitive + description: + name: sqflite_platform_interface + sha256: b62ab81e1284341783222aefbbb44f984ebf4663d672ae10408c9a8ddab4bfb6 url: "https://pub.dev" source: hosted - version: "2.5.4+4" + version: "2.4.0-0" stack_trace: dependency: transitive description: diff --git a/apps/example/pubspec_overrides.yaml b/apps/example/pubspec_overrides.yaml index fcbe03e3..f6d91941 100644 --- a/apps/example/pubspec_overrides.yaml +++ b/apps/example/pubspec_overrides.yaml @@ -1,7 +1,17 @@ -# melos_managed_dependency_overrides: ap_common,ap_common_plugin,intl +# melos_managed_dependency_overrides: ap_common,ap_common_plugin,intl,ap_common_core,ap_common_flutter_core,ap_common_flutter_platform,ap_common_announcement_ui,ap_common_flutter_ui dependency_overrides: ap_common: path: ../../packages/ap_common + ap_common_announcement_ui: + path: ../../packages/ap_common_announcement_ui + ap_common_core: + path: ../../packages/ap_common_core + ap_common_flutter_core: + path: ../../packages/ap_common_flutter_core + ap_common_flutter_platform: + path: ../../packages/ap_common_flutter_platform + ap_common_flutter_ui: + path: ../../packages/ap_common_flutter_ui ap_common_plugin: path: ../../packages/ap_common_plugin intl: 0.18.0 diff --git a/packages/ap_common/.gitignore b/packages/ap_common/.gitignore index a5b4dbbf..eb70f8bf 100644 --- a/packages/ap_common/.gitignore +++ b/packages/ap_common/.gitignore @@ -22,56 +22,24 @@ # Flutter/Dart/Pub related **/doc/api/ +**/ios/Flutter/.last_build_id .dart_tool/ .flutter-plugins .flutter-plugins-dependencies .packages .pub-cache/ .pub/ -build/ +/build/ -# Android related -**/android/**/gradle-wrapper.jar -**/android/.gradle -**/android/captures/ -**/android/gradlew -**/android/gradlew.bat -**/android/local.properties -**/android/**/GeneratedPluginRegistrant.java +# Web related -# iOS/XCode related -**/ios/**/*.mode1v3 -**/ios/**/*.mode2v3 -**/ios/**/*.moved-aside -**/ios/**/*.pbxuser -**/ios/**/*.perspectivev3 -**/ios/**/*sync/ -**/ios/**/.sconsign.dblite -**/ios/**/.tags* -**/ios/**/.vagrant/ -**/ios/**/DerivedData/ -**/ios/**/Icon? -**/ios/**/Pods/ -**/ios/**/.symlinks/ -**/ios/**/profile -**/ios/**/xcuserdata -**/ios/.generated/ -**/ios/Flutter/App.framework -**/ios/Flutter/Flutter.framework -**/ios/Flutter/Flutter.podspec -**/ios/Flutter/Generated.xcconfig -**/ios/Flutter/app.flx -**/ios/Flutter/app.zip -**/ios/Flutter/flutter_assets/ -**/ios/Flutter/flutter_export_environment.sh -**/ios/ServiceDefinitions.json -**/ios/Runner/GeneratedPluginRegistrant.* +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json # Exceptions to above rules. -!**/ios/**/default.mode1v3 -!**/ios/**/default.mode2v3 -!**/ios/**/default.pbxuser -!**/ios/**/default.perspectivev3 !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages # FVM Version Cache diff --git a/packages/ap_common/CHANGELOG.md b/packages/ap_common/CHANGELOG.md index 7fb847e3..5ceca56f 100644 --- a/packages/ap_common/CHANGELOG.md +++ b/packages/ap_common/CHANGELOG.md @@ -1,3 +1,8 @@ +## [0.26.0-dev.0] - 2024/10/09 +### 基於 Flutter v3.24 開發 + +* 套件拆分第一個版本 + ## [0.25.3] - 2024/09/25 ### 基於 Flutter v3.24 開發 diff --git a/packages/ap_common/LICENSE b/packages/ap_common/LICENSE index 3198f648..d25d4a88 100644 --- a/packages/ap_common/LICENSE +++ b/packages/ap_common/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2020 RainVisitor +Copyright (c) 2024 RainVisitor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/packages/ap_common/README.md b/packages/ap_common/README.md index b0c36825..eb8f6101 100644 --- a/packages/ap_common/README.md +++ b/packages/ap_common/README.md @@ -1,16 +1,34 @@ -## Getting Started +# 校務通系列介面與函式共用 -在 `pubspec.yaml` 中加入 package +[![](https://img.shields.io/badge/Flutter-v3.24-blue)](https://github.com/flutter/flutter) +[![](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common/) +[![melos](https://img.shields.io/badge/maintained%20with-melos-f700ff.svg?style=flat-square)](https://github.com/invertase/melos) -```yaml - # 官方多國語套件 - flutter_localizations: - sdk: flutter - ap_common: ^0.21.0 -``` +長期校務通相關系列的app,介面與相關功能都極為相似,將相關的介面與函式庫,製作此套件以方便維護。 -執行加入套件 +[展示網頁](https://abc873693.github.io/ap_common/#/) +[文件](https://ap-common.web.app/) -```bash - $ flutter package get -``` +## 相關專案 + +- [高科校務通](https://github.com/NKUST-ITC/NKUST-AP-Flutter) +- [中山校務通](https://github.com/abc873693/NSYSU-AP) +- [文藻校務通](https://github.com/abc873693/WTUC-AP) +- [台科校務通(已下架)](https://github.com/abc873693/NTUST-AP) + +## 套件 + +| Name | pub.dev | 說明 | +|-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------| +| `ap_common` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common/) | 函式庫與相關介面共用 | +| `ap_common_core` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common_core/) | 純 Dart 的基本類別 | +| `ap_common_flutter_core` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_core.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_core/) | 基於 Flutter 框架的核心基本類別 | +| `ap_common_flutter_platform` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_platform.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_platform/) | 原生功能實作 | +| `ap_common_flutter_ui` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_ui.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_ui/) | UI 實作但不包含原生功能整合 | +| `ap_common_flutter_announcement_ui` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_announcement_ui.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_announcement_ui/) | 最新消息服務相關的介面實作 | +| `ap_common_plugin` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_plugin.svg?style=flat-square)](https://pub.dev/packages/ap_common_plugin/) | 課表小工具 | +| `ap_common_firebase` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_firebase.svg?style=flat-square)](https://pub.dev/packages/ap_common_firebase/) | 服務 `Firebase` 的整合實作 | + +## 套件使用要求 + +- Flutter `v3.22` 以上 diff --git a/packages/ap_common/lib/ap_common.dart b/packages/ap_common/lib/ap_common.dart index 298576d8..4f8d150d 100644 --- a/packages/ap_common/lib/ap_common.dart +++ b/packages/ap_common/lib/ap_common.dart @@ -1,5 +1,20 @@ -/// A Calculator. -class Calculator { - /// Returns [value] plus 1. - int addOne(int value) => value + 1; +import 'package:ap_common_flutter_platform/ap_common_flutter_platform.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; + +export 'package:ap_common_announcement_ui/ap_common_announcement_ui.dart'; +export 'package:ap_common_flutter_platform/ap_common_flutter_platform.dart'; +export 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; + +void registerOneForAll() { + registerApCommonFlutter( + ui: ApUiUtil(), + platform: ApPlatformUtil(), + media: ApMediaUtil(), + platformCalendar: ApPlatformCalendarUtil(), + notification: ApNotificationUtil(), + appStore: ApAppStoreUtil(), + ); + registerApCommonCore( + preference: ApPreferenceUtil(), + ); } diff --git a/packages/ap_common/lib/resources/ap_image_assets.dart b/packages/ap_common/lib/resources/ap_image_assets.dart deleted file mode 100644 index f17d3095..00000000 --- a/packages/ap_common/lib/resources/ap_image_assets.dart +++ /dev/null @@ -1,25 +0,0 @@ -part of 'resources.dart'; - -class ApImageAssets { - ApImageAssets._(); - - static const String email = 'packages/ap_common/assets/images/email.webp'; - static const String github = 'packages/ap_common/assets/images/github.webp'; - static const String drawerBackgroundLight = - 'packages/ap_common/assets/images/drawer_background_light.webp'; - static const String drawerBackgroundDark = - 'packages/ap_common/assets/images/drawer_background_dark.webp'; - static const String nkutstItc = - 'packages/ap_common/assets/images/nkutst_itc.webp'; - static const String gdgOnCampusNkustItc = - 'packages/ap_common/assets/images/gdg_on_campus_nkust_itc.jpg'; - static const String nsysuGdsc = - 'packages/ap_common/assets/images/nsysu_gdsc.png'; - static const String fb = 'packages/ap_common/assets/images/fb.webp'; - static const String instagram = - 'packages/ap_common/assets/images/instagram.png'; - static const String dashLineDark = - 'packages/ap_common/assets/images/dash_line_dark.webp'; - static const String dashLineLight = - 'packages/ap_common/assets/images/dash_line_light.webp'; -} diff --git a/packages/ap_common/lib/resources/ap_image_icons.dart b/packages/ap_common/lib/resources/ap_image_icons.dart deleted file mode 100644 index a1a840f1..00000000 --- a/packages/ap_common/lib/resources/ap_image_icons.dart +++ /dev/null @@ -1,10 +0,0 @@ -part of 'resources.dart'; - -class ApImageIcons { - ApImageIcons._(); - - static const String calendarImport = - 'packages/ap_common/assets/icons/calendar_import.png'; - static const String qrcode = 'packages/ap_common/assets/icons/qrcode.png'; - static const String barcode = 'packages/ap_common/assets/icons/barcode.png'; -} diff --git a/packages/ap_common/pubspec.lock b/packages/ap_common/pubspec.lock deleted file mode 100644 index 04cd2501..00000000 --- a/packages/ap_common/pubspec.lock +++ /dev/null @@ -1,1513 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - _fe_analyzer_shared: - dependency: transitive - description: - name: _fe_analyzer_shared - sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 - url: "https://pub.dev" - source: hosted - version: "72.0.0" - _macros: - dependency: transitive - description: dart - source: sdk - version: "0.3.2" - add_2_calendar: - dependency: transitive - description: - name: add_2_calendar - sha256: "8d7a82aba607d35f2a5bc913419e12f865a96a350a8ad2509a59322bc161f200" - url: "https://pub.dev" - source: hosted - version: "3.0.1" - analyzer: - dependency: transitive - description: - name: analyzer - sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 - url: "https://pub.dev" - source: hosted - version: "6.7.0" - ansicolor: - dependency: transitive - description: - name: ansicolor - sha256: "50e982d500bc863e1d703448afdbf9e5a72eb48840a4f766fa361ffd6877055f" - url: "https://pub.dev" - source: hosted - version: "2.0.3" - ap_common_core: - dependency: "direct main" - description: - path: "../ap_common_core" - relative: true - source: path - version: "0.0.2" - ap_common_flutter_core: - dependency: "direct main" - description: - path: "../ap_common_flutter_core" - relative: true - source: path - version: "0.0.1" - ap_common_flutter_platform: - dependency: "direct main" - description: - path: "../ap_common_flutter_platform" - relative: true - source: path - version: "0.0.1" - app_tracking_transparency: - dependency: transitive - description: - name: app_tracking_transparency - sha256: "64d9745931e565790abdea91b518ac8dc3cebe6d0d0aaf7119343271b983259a" - url: "https://pub.dev" - source: hosted - version: "2.0.6" - archive: - dependency: transitive - description: - name: archive - sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d - url: "https://pub.dev" - source: hosted - version: "3.6.1" - args: - dependency: transitive - description: - name: args - sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" - url: "https://pub.dev" - source: hosted - version: "2.5.0" - asn1lib: - dependency: transitive - description: - name: asn1lib - sha256: "58082b3f0dca697204dbab0ef9ff208bfaea7767ea771076af9a343488428dda" - url: "https://pub.dev" - source: hosted - version: "1.5.3" - async: - dependency: transitive - description: - name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" - url: "https://pub.dev" - source: hosted - version: "2.11.0" - auto_size_text_pk: - dependency: "direct main" - description: - name: auto_size_text_pk - sha256: ced55de5336fa7f438c1f5a9aa234e25d7a120c1d40d376a7cdc2af28cdb6995 - url: "https://pub.dev" - source: hosted - version: "3.0.0" - barcode: - dependency: "direct main" - description: - name: barcode - sha256: ab180ce22c6555d77d45f0178a523669db67f95856e3378259ef2ffeb43e6003 - url: "https://pub.dev" - source: hosted - version: "2.2.8" - barcode_widget: - dependency: "direct main" - description: - name: barcode_widget - sha256: "6f2c5b08659b1a5f4d88d183e6007133ea2f96e50e7b8bb628f03266c3931427" - url: "https://pub.dev" - source: hosted - version: "2.0.4" - bidi: - dependency: transitive - description: - name: bidi - sha256: "1a7d0c696324b2089f72e7671fd1f1f64fef44c980f3cebc84e803967c597b63" - url: "https://pub.dev" - source: hosted - version: "2.0.10" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - build: - dependency: transitive - description: - name: build - sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" - url: "https://pub.dev" - source: hosted - version: "2.4.1" - build_config: - dependency: transitive - description: - name: build_config - sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 - url: "https://pub.dev" - source: hosted - version: "1.1.1" - build_daemon: - dependency: transitive - description: - name: build_daemon - sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - build_resolvers: - dependency: transitive - description: - name: build_resolvers - sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" - url: "https://pub.dev" - source: hosted - version: "2.4.2" - build_runner: - dependency: "direct dev" - description: - name: build_runner - sha256: dd09dd4e2b078992f42aac7f1a622f01882a8492fef08486b27ddde929c19f04 - url: "https://pub.dev" - source: hosted - version: "2.4.12" - build_runner_core: - dependency: transitive - description: - name: build_runner_core - sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0 - url: "https://pub.dev" - source: hosted - version: "7.3.2" - built_collection: - dependency: transitive - description: - name: built_collection - sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" - url: "https://pub.dev" - source: hosted - version: "5.1.1" - built_value: - dependency: transitive - description: - name: built_value - sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb - url: "https://pub.dev" - source: hosted - version: "8.9.2" - cached_network_image: - dependency: transitive - description: - name: cached_network_image - sha256: "4a5d8d2c728b0f3d0245f69f921d7be90cae4c2fd5288f773088672c0893f819" - url: "https://pub.dev" - source: hosted - version: "3.4.0" - cached_network_image_platform_interface: - dependency: transitive - description: - name: cached_network_image_platform_interface - sha256: "35814b016e37fbdc91f7ae18c8caf49ba5c88501813f73ce8a07027a395e2829" - url: "https://pub.dev" - source: hosted - version: "4.1.1" - cached_network_image_web: - dependency: transitive - description: - name: cached_network_image_web - sha256: "6322dde7a5ad92202e64df659241104a43db20ed594c41ca18de1014598d7996" - url: "https://pub.dev" - source: hosted - version: "1.3.0" - characters: - dependency: transitive - description: - name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" - url: "https://pub.dev" - source: hosted - version: "1.3.0" - checked_yaml: - dependency: transitive - description: - name: checked_yaml - sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff - url: "https://pub.dev" - source: hosted - version: "2.0.3" - clock: - dependency: transitive - description: - name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf - url: "https://pub.dev" - source: hosted - version: "1.1.1" - code_builder: - dependency: transitive - description: - name: code_builder - sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 - url: "https://pub.dev" - source: hosted - version: "4.10.0" - collection: - dependency: transitive - description: - name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a - url: "https://pub.dev" - source: hosted - version: "1.18.0" - convert: - dependency: transitive - description: - name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.dev" - source: hosted - version: "3.1.1" - cookie_jar: - dependency: "direct main" - description: - name: cookie_jar - sha256: a6ac027d3ed6ed756bfce8f3ff60cb479e266f3b0fdabd6242b804b6765e52de - url: "https://pub.dev" - source: hosted - version: "4.0.8" - cross_file: - dependency: transitive - description: - name: cross_file - sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" - url: "https://pub.dev" - source: hosted - version: "0.3.4+2" - crypto: - dependency: transitive - description: - name: crypto - sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 - url: "https://pub.dev" - source: hosted - version: "3.0.5" - csslib: - dependency: transitive - description: - name: csslib - sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb" - url: "https://pub.dev" - source: hosted - version: "1.0.0" - cupertino_back_gesture: - dependency: "direct main" - description: - name: cupertino_back_gesture - sha256: "64f68f3aadb98e19d85c8c1dd9595a56b5b53b05f455e32df1c52edadad456d8" - url: "https://pub.dev" - source: hosted - version: "0.1.0" - dart_style: - dependency: transitive - description: - name: dart_style - sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9" - url: "https://pub.dev" - source: hosted - version: "2.3.6" - dbus: - dependency: transitive - description: - name: dbus - sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac" - url: "https://pub.dev" - source: hosted - version: "0.7.10" - dio: - dependency: "direct main" - description: - name: dio - sha256: "0dfb6b6a1979dac1c1245e17cef824d7b452ea29bd33d3467269f9bef3715fb0" - url: "https://pub.dev" - source: hosted - version: "5.6.0" - dio_cookie_manager: - dependency: "direct main" - description: - name: dio_cookie_manager - sha256: e79498b0f632897ff0c28d6e8178b4bc6e9087412401f618c31fa0904ace050d - url: "https://pub.dev" - source: hosted - version: "3.1.1" - dio_web_adapter: - dependency: transitive - description: - name: dio_web_adapter - sha256: "33259a9276d6cea88774a0000cfae0d861003497755969c92faa223108620dc8" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - encrypt: - dependency: "direct main" - description: - name: encrypt - sha256: "62d9aa4670cc2a8798bab89b39fc71b6dfbacf615de6cf5001fb39f7e4a996a2" - url: "https://pub.dev" - source: hosted - version: "5.0.3" - fake_async: - dependency: transitive - description: - name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - ffi: - dependency: transitive - description: - name: ffi - sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" - url: "https://pub.dev" - source: hosted - version: "2.1.3" - file: - dependency: transitive - description: - name: file - sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" - url: "https://pub.dev" - source: hosted - version: "7.0.0" - file_saver: - dependency: transitive - description: - name: file_saver - sha256: d375b351e3331663abbaf99747abd72f159260c58fbbdbca9f926f02c01bdc48 - url: "https://pub.dev" - source: hosted - version: "0.2.13" - file_selector_linux: - dependency: transitive - description: - name: file_selector_linux - sha256: "045d372bf19b02aeb69cacf8b4009555fb5f6f0b7ad8016e5f46dd1387ddd492" - url: "https://pub.dev" - source: hosted - version: "0.9.2+1" - file_selector_macos: - dependency: transitive - description: - name: file_selector_macos - sha256: f42eacb83b318e183b1ae24eead1373ab1334084404c8c16e0354f9a3e55d385 - url: "https://pub.dev" - source: hosted - version: "0.9.4" - file_selector_platform_interface: - dependency: transitive - description: - name: file_selector_platform_interface - sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b - url: "https://pub.dev" - source: hosted - version: "2.6.2" - file_selector_windows: - dependency: transitive - description: - name: file_selector_windows - sha256: "2ad726953f6e8affbc4df8dc78b77c3b4a060967a291e528ef72ae846c60fb69" - url: "https://pub.dev" - source: hosted - version: "0.9.3+2" - fixnum: - dependency: transitive - description: - name: fixnum - sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" - url: "https://pub.dev" - source: hosted - version: "1.1.0" - flutter: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - flutter_cache_manager: - dependency: transitive - description: - name: flutter_cache_manager - sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386" - url: "https://pub.dev" - source: hosted - version: "3.4.1" - flutter_keyboard_visibility: - dependency: transitive - description: - name: flutter_keyboard_visibility - sha256: "98664be7be0e3ffca00de50f7f6a287ab62c763fc8c762e0a21584584a3ff4f8" - url: "https://pub.dev" - source: hosted - version: "6.0.0" - flutter_keyboard_visibility_linux: - dependency: transitive - description: - name: flutter_keyboard_visibility_linux - sha256: "6fba7cd9bb033b6ddd8c2beb4c99ad02d728f1e6e6d9b9446667398b2ac39f08" - url: "https://pub.dev" - source: hosted - version: "1.0.0" - flutter_keyboard_visibility_macos: - dependency: transitive - description: - name: flutter_keyboard_visibility_macos - sha256: c5c49b16fff453dfdafdc16f26bdd8fb8d55812a1d50b0ce25fc8d9f2e53d086 - url: "https://pub.dev" - source: hosted - version: "1.0.0" - flutter_keyboard_visibility_platform_interface: - dependency: transitive - description: - name: flutter_keyboard_visibility_platform_interface - sha256: e43a89845873f7be10cb3884345ceb9aebf00a659f479d1c8f4293fcb37022a4 - url: "https://pub.dev" - source: hosted - version: "2.0.0" - flutter_keyboard_visibility_web: - dependency: transitive - description: - name: flutter_keyboard_visibility_web - sha256: d3771a2e752880c79203f8d80658401d0c998e4183edca05a149f5098ce6e3d1 - url: "https://pub.dev" - source: hosted - version: "2.0.0" - flutter_keyboard_visibility_windows: - dependency: transitive - description: - name: flutter_keyboard_visibility_windows - sha256: fc4b0f0b6be9b93ae527f3d527fb56ee2d918cd88bbca438c478af7bcfd0ef73 - url: "https://pub.dev" - source: hosted - version: "1.0.0" - flutter_linkify: - dependency: "direct main" - description: - name: flutter_linkify - sha256: "74669e06a8f358fee4512b4320c0b80e51cffc496607931de68d28f099254073" - url: "https://pub.dev" - source: hosted - version: "6.0.0" - flutter_local_notifications: - dependency: transitive - description: - name: flutter_local_notifications - sha256: c500d5d9e7e553f06b61877ca6b9c8b92c570a4c8db371038702e8ce57f8a50f - url: "https://pub.dev" - source: hosted - version: "17.2.2" - flutter_local_notifications_linux: - dependency: transitive - description: - name: flutter_local_notifications_linux - sha256: c49bd06165cad9beeb79090b18cd1eb0296f4bf4b23b84426e37dd7c027fc3af - url: "https://pub.dev" - source: hosted - version: "4.0.1" - flutter_local_notifications_platform_interface: - dependency: transitive - description: - name: flutter_local_notifications_platform_interface - sha256: "85f8d07fe708c1bdcf45037f2c0109753b26ae077e9d9e899d55971711a4ea66" - url: "https://pub.dev" - source: hosted - version: "7.2.0" - flutter_localizations: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - flutter_plugin_android_lifecycle: - dependency: transitive - description: - name: flutter_plugin_android_lifecycle - sha256: "9d98bd47ef9d34e803d438f17fd32b116d31009f534a6fa5ce3a1167f189a6de" - url: "https://pub.dev" - source: hosted - version: "2.0.21" - flutter_test: - dependency: "direct dev" - description: flutter - source: sdk - version: "0.0.0" - flutter_web_plugins: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - frontend_server_client: - dependency: transitive - description: - name: frontend_server_client - sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 - url: "https://pub.dev" - source: hosted - version: "4.0.0" - glob: - dependency: transitive - description: - name: glob - sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" - url: "https://pub.dev" - source: hosted - version: "2.1.2" - google_identity_services_web: - dependency: transitive - description: - name: google_identity_services_web - sha256: "5be191523702ba8d7a01ca97c17fca096822ccf246b0a9f11923a6ded06199b6" - url: "https://pub.dev" - source: hosted - version: "0.3.1+4" - google_sign_in: - dependency: transitive - description: - name: google_sign_in - sha256: "0b8787cb9c1a68ad398e8010e8c8766bfa33556d2ab97c439fb4137756d7308f" - url: "https://pub.dev" - source: hosted - version: "6.2.1" - google_sign_in_android: - dependency: transitive - description: - name: google_sign_in_android - sha256: "5a47ebec9af97daf0822e800e4f101c3340b5ebc3f6898cf860c1a71b53cf077" - url: "https://pub.dev" - source: hosted - version: "6.1.28" - google_sign_in_ios: - dependency: transitive - description: - name: google_sign_in_ios - sha256: a058c9880be456f21e2e8571c1126eaacd570bdc5b6c6d9d15aea4bdf22ca9fe - url: "https://pub.dev" - source: hosted - version: "5.7.6" - google_sign_in_platform_interface: - dependency: transitive - description: - name: google_sign_in_platform_interface - sha256: "1f6e5787d7a120cc0359ddf315c92309069171306242e181c09472d1b00a2971" - url: "https://pub.dev" - source: hosted - version: "2.4.5" - google_sign_in_web: - dependency: transitive - description: - name: google_sign_in_web - sha256: "042805a21127a85b0dc46bba98a37926f17d2439720e8a459d27045d8ef68055" - url: "https://pub.dev" - source: hosted - version: "0.12.4+2" - graphs: - dependency: transitive - description: - name: graphs - sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" - url: "https://pub.dev" - source: hosted - version: "2.3.2" - html: - dependency: transitive - description: - name: html - sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a" - url: "https://pub.dev" - source: hosted - version: "0.15.4" - http: - dependency: transitive - description: - name: http - sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 - url: "https://pub.dev" - source: hosted - version: "1.2.2" - http_multi_server: - dependency: transitive - description: - name: http_multi_server - sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" - url: "https://pub.dev" - source: hosted - version: "3.2.1" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.dev" - source: hosted - version: "4.0.2" - image: - dependency: transitive - description: - name: image - sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8" - url: "https://pub.dev" - source: hosted - version: "4.2.0" - image_picker: - dependency: transitive - description: - name: image_picker - sha256: "021834d9c0c3de46bf0fe40341fa07168407f694d9b2bb18d532dc1261867f7a" - url: "https://pub.dev" - source: hosted - version: "1.1.2" - image_picker_android: - dependency: transitive - description: - name: image_picker_android - sha256: "8c5abf0dcc24fe6e8e0b4a5c0b51a5cf30cefdf6407a3213dae61edc75a70f56" - url: "https://pub.dev" - source: hosted - version: "0.8.12+12" - image_picker_for_web: - dependency: transitive - description: - name: image_picker_for_web - sha256: "65d94623e15372c5c51bebbcb820848d7bcb323836e12dfdba60b5d3a8b39e50" - url: "https://pub.dev" - source: hosted - version: "3.0.5" - image_picker_ios: - dependency: transitive - description: - name: image_picker_ios - sha256: "6703696ad49f5c3c8356d576d7ace84d1faf459afb07accbb0fae780753ff447" - url: "https://pub.dev" - source: hosted - version: "0.8.12" - image_picker_linux: - dependency: transitive - description: - name: image_picker_linux - sha256: "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa" - url: "https://pub.dev" - source: hosted - version: "0.2.1+1" - image_picker_macos: - dependency: transitive - description: - name: image_picker_macos - sha256: "3f5ad1e8112a9a6111c46d0b57a7be2286a9a07fc6e1976fdf5be2bd31d4ff62" - url: "https://pub.dev" - source: hosted - version: "0.2.1+1" - image_picker_platform_interface: - dependency: transitive - description: - name: image_picker_platform_interface - sha256: "9ec26d410ff46f483c5519c29c02ef0e02e13a543f882b152d4bfd2f06802f80" - url: "https://pub.dev" - source: hosted - version: "2.10.0" - image_picker_windows: - dependency: transitive - description: - name: image_picker_windows - sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb" - url: "https://pub.dev" - source: hosted - version: "0.2.1+1" - in_app_review: - dependency: transitive - description: - name: in_app_review - sha256: "99869244d09adc76af16bf8fd731dd13cef58ecafd5917847589c49f378cbb30" - url: "https://pub.dev" - source: hosted - version: "2.0.9" - in_app_review_platform_interface: - dependency: transitive - description: - name: in_app_review_platform_interface - sha256: fed2c755f2125caa9ae10495a3c163aa7fab5af3585a9c62ef4a6920c5b45f10 - url: "https://pub.dev" - source: hosted - version: "2.0.5" - injector: - dependency: transitive - description: - name: injector - sha256: d692c37788872bfd4bd7c01b864b0712190a25ae5a346431ff69949d5728a2e1 - url: "https://pub.dev" - source: hosted - version: "4.0.0" - intl: - dependency: "direct main" - description: - name: intl - sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf - url: "https://pub.dev" - source: hosted - version: "0.19.0" - io: - dependency: transitive - description: - name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.dev" - source: hosted - version: "1.0.4" - js: - dependency: transitive - description: - name: js - sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf - url: "https://pub.dev" - source: hosted - version: "0.7.1" - json_annotation: - dependency: "direct main" - description: - name: json_annotation - sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" - url: "https://pub.dev" - source: hosted - version: "4.9.0" - json_serializable: - dependency: "direct dev" - description: - name: json_serializable - sha256: ea1432d167339ea9b5bb153f0571d0039607a873d6e04e0117af043f14a1fd4b - url: "https://pub.dev" - source: hosted - version: "6.8.0" - jwt_decoder: - dependency: "direct main" - description: - name: jwt_decoder - sha256: "54774aebf83f2923b99e6416b4ea915d47af3bde56884eb622de85feabbc559f" - url: "https://pub.dev" - source: hosted - version: "2.0.1" - leak_tracker: - dependency: transitive - description: - name: leak_tracker - sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" - url: "https://pub.dev" - source: hosted - version: "10.0.5" - leak_tracker_flutter_testing: - dependency: transitive - description: - name: leak_tracker_flutter_testing - sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" - url: "https://pub.dev" - source: hosted - version: "3.0.5" - leak_tracker_testing: - dependency: transitive - description: - name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" - url: "https://pub.dev" - source: hosted - version: "3.0.1" - linkify: - dependency: transitive - description: - name: linkify - sha256: "4139ea77f4651ab9c315b577da2dd108d9aa0bd84b5d03d33323f1970c645832" - url: "https://pub.dev" - source: hosted - version: "5.0.0" - logging: - dependency: transitive - description: - name: logging - sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - macros: - dependency: transitive - description: - name: macros - sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" - url: "https://pub.dev" - source: hosted - version: "0.1.2-main.4" - matcher: - dependency: transitive - description: - name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb - url: "https://pub.dev" - source: hosted - version: "0.12.16+1" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec - url: "https://pub.dev" - source: hosted - version: "0.11.1" - meta: - dependency: transitive - description: - name: meta - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 - url: "https://pub.dev" - source: hosted - version: "1.15.0" - mime: - dependency: transitive - description: - name: mime - sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" - url: "https://pub.dev" - source: hosted - version: "1.0.5" - multiple_localization: - dependency: "direct main" - description: - name: multiple_localization - sha256: "8b071f538bdf087a7bf13cd8b78a1a041994960c8e9f0a1aaaaf0cfb39845019" - url: "https://pub.dev" - source: hosted - version: "0.5.0" - octo_image: - dependency: transitive - description: - name: octo_image - sha256: "34faa6639a78c7e3cbe79be6f9f96535867e879748ade7d17c9b1ae7536293bd" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - package_config: - dependency: transitive - description: - name: package_config - sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - package_info_plus: - dependency: transitive - description: - name: package_info_plus - sha256: a75164ade98cb7d24cfd0a13c6408927c6b217fa60dee5a7ff5c116a58f28918 - url: "https://pub.dev" - source: hosted - version: "8.0.2" - package_info_plus_platform_interface: - dependency: transitive - description: - name: package_info_plus_platform_interface - sha256: ac1f4a4847f1ade8e6a87d1f39f5d7c67490738642e2542f559ec38c37489a66 - url: "https://pub.dev" - source: hosted - version: "3.0.1" - path: - dependency: transitive - description: - name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - path_parsing: - dependency: transitive - description: - name: path_parsing - sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf - url: "https://pub.dev" - source: hosted - version: "1.0.1" - path_provider: - dependency: transitive - description: - name: path_provider - sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 - url: "https://pub.dev" - source: hosted - version: "2.1.4" - path_provider_android: - dependency: transitive - description: - name: path_provider_android - sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7" - url: "https://pub.dev" - source: hosted - version: "2.2.10" - path_provider_foundation: - dependency: transitive - description: - name: path_provider_foundation - sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 - url: "https://pub.dev" - source: hosted - version: "2.4.0" - path_provider_linux: - dependency: transitive - description: - name: path_provider_linux - sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 - url: "https://pub.dev" - source: hosted - version: "2.2.1" - path_provider_platform_interface: - dependency: transitive - description: - name: path_provider_platform_interface - sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" - url: "https://pub.dev" - source: hosted - version: "2.1.2" - path_provider_windows: - dependency: transitive - description: - name: path_provider_windows - sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 - url: "https://pub.dev" - source: hosted - version: "2.3.0" - pdf: - dependency: "direct main" - description: - name: pdf - sha256: "05df53f8791587402493ac97b9869d3824eccbc77d97855f4545cf72df3cae07" - url: "https://pub.dev" - source: hosted - version: "3.11.1" - pdf_widget_wrapper: - dependency: transitive - description: - name: pdf_widget_wrapper - sha256: c930860d987213a3d58c7ec3b7ecf8085c3897f773e8dc23da9cae60a5d6d0f5 - url: "https://pub.dev" - source: hosted - version: "1.0.4" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 - url: "https://pub.dev" - source: hosted - version: "6.0.2" - photo_manager: - dependency: transitive - description: - name: photo_manager - sha256: "1e8bbe46a6858870e34c976aafd85378bed221ce31c1201961eba9ad3d94df9f" - url: "https://pub.dev" - source: hosted - version: "3.2.3" - photo_view: - dependency: "direct main" - description: - name: photo_view - sha256: "1fc3d970a91295fbd1364296575f854c9863f225505c28c46e0a03e48960c75e" - url: "https://pub.dev" - source: hosted - version: "0.15.0" - platform: - dependency: transitive - description: - name: platform - sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" - url: "https://pub.dev" - source: hosted - version: "3.1.5" - plugin_platform_interface: - dependency: transitive - description: - name: plugin_platform_interface - sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" - url: "https://pub.dev" - source: hosted - version: "2.1.8" - pointycastle: - dependency: transitive - description: - name: pointycastle - sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe" - url: "https://pub.dev" - source: hosted - version: "3.9.1" - pool: - dependency: transitive - description: - name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.dev" - source: hosted - version: "1.5.1" - printing: - dependency: transitive - description: - name: printing - sha256: cc4b256a5a89d5345488e3318897b595867f5181b8c5ed6fc63bfa5f2044aec3 - url: "https://pub.dev" - source: hosted - version: "5.13.1" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" - url: "https://pub.dev" - source: hosted - version: "2.1.4" - pubspec_parse: - dependency: transitive - description: - name: pubspec_parse - sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 - url: "https://pub.dev" - source: hosted - version: "1.3.0" - qr: - dependency: transitive - description: - name: qr - sha256: "5a1d2586170e172b8a8c8470bbbffd5eb0cd38a66c0d77155ea138d3af3a4445" - url: "https://pub.dev" - source: hosted - version: "3.0.2" - rxdart: - dependency: transitive - description: - name: rxdart - sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" - url: "https://pub.dev" - source: hosted - version: "0.28.0" - share_plus: - dependency: transitive - description: - name: share_plus - sha256: "59dfd53f497340a0c3a81909b220cfdb9b8973a91055c4e5ab9b9b9ad7c513c0" - url: "https://pub.dev" - source: hosted - version: "10.0.0" - share_plus_platform_interface: - dependency: transitive - description: - name: share_plus_platform_interface - sha256: "6ababf341050edff57da8b6990f11f4e99eaba837865e2e6defe16d039619db5" - url: "https://pub.dev" - source: hosted - version: "5.0.0" - shared_preferences: - dependency: transitive - description: - name: shared_preferences - sha256: "746e5369a43170c25816cc472ee016d3a66bc13fcf430c0bc41ad7b4b2922051" - url: "https://pub.dev" - source: hosted - version: "2.3.2" - shared_preferences_android: - dependency: transitive - description: - name: shared_preferences_android - sha256: a7e8467e9181cef109f601e3f65765685786c1a738a83d7fbbde377589c0d974 - url: "https://pub.dev" - source: hosted - version: "2.3.1" - shared_preferences_foundation: - dependency: transitive - description: - name: shared_preferences_foundation - sha256: c4b35f6cb8f63c147312c054ce7c2254c8066745125264f0c88739c417fc9d9f - url: "https://pub.dev" - source: hosted - version: "2.5.2" - shared_preferences_linux: - dependency: transitive - description: - name: shared_preferences_linux - sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" - url: "https://pub.dev" - source: hosted - version: "2.4.1" - shared_preferences_platform_interface: - dependency: transitive - description: - name: shared_preferences_platform_interface - sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" - url: "https://pub.dev" - source: hosted - version: "2.4.1" - shared_preferences_web: - dependency: transitive - description: - name: shared_preferences_web - sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e - url: "https://pub.dev" - source: hosted - version: "2.4.2" - shared_preferences_windows: - dependency: transitive - description: - name: shared_preferences_windows - sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" - url: "https://pub.dev" - source: hosted - version: "2.4.1" - shelf: - dependency: transitive - description: - name: shelf - sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 - url: "https://pub.dev" - source: hosted - version: "1.4.1" - shelf_web_socket: - dependency: transitive - description: - name: shelf_web_socket - sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - sign_in_with_apple: - dependency: transitive - description: - name: sign_in_with_apple - sha256: "5c34c601d6910d7db0077063001ccd9d9329ee58b9038ee07153ffcdd76e91bd" - url: "https://pub.dev" - source: hosted - version: "6.1.1" - sign_in_with_apple_platform_interface: - dependency: transitive - description: - name: sign_in_with_apple_platform_interface - sha256: c2ef2ce6273fce0c61acd7e9ff5be7181e33d7aa2b66508b39418b786cca2119 - url: "https://pub.dev" - source: hosted - version: "1.1.0" - sign_in_with_apple_web: - dependency: transitive - description: - name: sign_in_with_apple_web - sha256: c009e9beeb6c376e86aaa154fcc8b4e075d4bad90c56286b9668a51cdb6129ea - url: "https://pub.dev" - source: hosted - version: "2.1.0" - sky_engine: - dependency: transitive - description: flutter - source: sdk - version: "0.0.99" - source_gen: - dependency: transitive - description: - name: source_gen - sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" - url: "https://pub.dev" - source: hosted - version: "1.5.0" - source_helper: - dependency: transitive - description: - name: source_helper - sha256: "6adebc0006c37dd63fe05bca0a929b99f06402fc95aa35bf36d67f5c06de01fd" - url: "https://pub.dev" - source: hosted - version: "1.3.4" - source_span: - dependency: transitive - description: - name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" - url: "https://pub.dev" - source: hosted - version: "1.10.0" - spider: - dependency: "direct dev" - description: - name: spider - sha256: c2ea0d56c98ec7c9a50f180ddfff841b7fe6231e128db616ea726aef38e5f4df - url: "https://pub.dev" - source: hosted - version: "4.2.2" - sprintf: - dependency: "direct main" - description: - name: sprintf - sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" - url: "https://pub.dev" - source: hosted - version: "7.0.0" - sqflite: - dependency: transitive - description: - name: sqflite - sha256: a43e5a27235518c03ca238e7b4732cf35eabe863a369ceba6cbefa537a66f16d - url: "https://pub.dev" - source: hosted - version: "2.3.3+1" - sqflite_common: - dependency: transitive - description: - name: sqflite_common - sha256: "7b41b6c3507854a159e24ae90a8e3e9cc01eb26a477c118d6dca065b5f55453e" - url: "https://pub.dev" - source: hosted - version: "2.5.4+2" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" - url: "https://pub.dev" - source: hosted - version: "1.11.1" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 - url: "https://pub.dev" - source: hosted - version: "2.1.2" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.dev" - source: hosted - version: "2.1.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - synchronized: - dependency: transitive - description: - name: synchronized - sha256: a824e842b8a054f91a728b783c177c1e4731f6b124f9192468457a8913371255 - url: "https://pub.dev" - source: hosted - version: "3.2.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - test_api: - dependency: transitive - description: - name: test_api - sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" - url: "https://pub.dev" - source: hosted - version: "0.7.2" - timezone: - dependency: "direct main" - description: - name: timezone - sha256: "2236ec079a174ce07434e89fcd3fcda430025eb7692244139a9cf54fdcf1fc7d" - url: "https://pub.dev" - source: hosted - version: "0.9.4" - timing: - dependency: transitive - description: - name: timing - sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" - url: "https://pub.dev" - source: hosted - version: "1.0.1" - typed_data: - 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" - url: "https://pub.dev" - source: hosted - version: "2.2.2" - url_launcher: - dependency: transitive - description: - name: url_launcher - sha256: "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3" - url: "https://pub.dev" - source: hosted - version: "6.3.0" - url_launcher_android: - dependency: transitive - description: - name: url_launcher_android - sha256: f0c73347dfcfa5b3db8bc06e1502668265d39c08f310c29bff4e28eea9699f79 - url: "https://pub.dev" - source: hosted - version: "6.3.9" - url_launcher_ios: - dependency: transitive - description: - name: url_launcher_ios - sha256: e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e - url: "https://pub.dev" - source: hosted - version: "6.3.1" - url_launcher_linux: - dependency: transitive - description: - name: url_launcher_linux - sha256: e2b9622b4007f97f504cd64c0128309dfb978ae66adbe944125ed9e1750f06af - url: "https://pub.dev" - source: hosted - version: "3.2.0" - url_launcher_macos: - dependency: transitive - description: - name: url_launcher_macos - sha256: "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de" - url: "https://pub.dev" - source: hosted - version: "3.2.0" - url_launcher_platform_interface: - dependency: transitive - description: - name: url_launcher_platform_interface - sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" - url: "https://pub.dev" - source: hosted - version: "2.3.2" - url_launcher_web: - dependency: transitive - description: - name: url_launcher_web - sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e" - url: "https://pub.dev" - source: hosted - version: "2.3.3" - url_launcher_windows: - dependency: transitive - description: - name: url_launcher_windows - sha256: "49c10f879746271804767cb45551ec5592cdab00ee105c06dddde1a98f73b185" - url: "https://pub.dev" - source: hosted - version: "3.1.2" - uuid: - dependency: transitive - description: - name: uuid - sha256: "83d37c7ad7aaf9aa8e275490669535c8080377cfa7a7004c24dfac53afffaa90" - url: "https://pub.dev" - source: hosted - version: "4.4.2" - vector_math: - dependency: transitive - description: - name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" - url: "https://pub.dev" - source: hosted - version: "2.1.4" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" - url: "https://pub.dev" - source: hosted - version: "14.2.5" - watcher: - dependency: transitive - description: - name: watcher - sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" - url: "https://pub.dev" - source: hosted - version: "1.1.0" - web: - dependency: transitive - description: - name: web - sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" - url: "https://pub.dev" - source: hosted - version: "0.5.1" - web_socket: - dependency: transitive - description: - name: web_socket - sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" - url: "https://pub.dev" - source: hosted - version: "0.1.6" - web_socket_channel: - dependency: transitive - description: - name: web_socket_channel - sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" - url: "https://pub.dev" - source: hosted - version: "3.0.1" - win32: - dependency: transitive - description: - name: win32 - sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a" - url: "https://pub.dev" - source: hosted - version: "5.5.4" - xdg_directories: - dependency: transitive - description: - name: xdg_directories - sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d - url: "https://pub.dev" - source: hosted - version: "1.0.4" - xml: - dependency: transitive - description: - name: xml - sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 - url: "https://pub.dev" - source: hosted - version: "6.5.0" - yaml: - dependency: transitive - description: - name: yaml - sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" - url: "https://pub.dev" - source: hosted - version: "3.1.2" -sdks: - dart: ">=3.5.0 <4.0.0" - flutter: ">=3.22.0" diff --git a/packages/ap_common/pubspec.yaml b/packages/ap_common/pubspec.yaml index 19a6d7fd..de962ab5 100644 --- a/packages/ap_common/pubspec.yaml +++ b/packages/ap_common/pubspec.yaml @@ -1,6 +1,6 @@ name: ap_common description: The school affairs(AP) series shares the engineering kit, rapid development of the school affairs series(AP) app -version: 0.25.3 +version: 0.26.0-dev.0 homepage: https://github.com/abc873693/ap_common repository: https://github.com/abc873693/ap_common/tree/master/packages/ap_common @@ -13,29 +13,9 @@ dependencies: flutter_localizations: sdk: flutter - ap_common_core: ^0.0.1 - ap_common_flutter_core: ^0.0.1 + ap_common_flutter_ui: ^0.0.1 ap_common_flutter_platform: ^0.0.1 - - # Dart Packages - sprintf: ^7.0.0 - intl: ">=0.16.0 <1.0.0" - multiple_localization: ^0.5.0 - encrypt: ^5.0.1 - dio: ">=5.4.1 <6.0.0" - dio_cookie_manager: ^3.1.1 - cookie_jar: ^4.0.0 - timezone: ^0.9.4 - jwt_decoder: ^2.0.1 - json_annotation: ^4.6.0 - # Flutter UI Package - photo_view: ^0.15.0 - barcode_widget: ^2.0.1 - barcode: ^2.2.1 - pdf: ^3.8.1 - auto_size_text_pk: ^3.0.0 - flutter_linkify: ^6.0.0 - cupertino_back_gesture: ^0.1.0 + ap_common_announcement_ui: ^0.0.1 #dependency_overrides: # ap_common_core: @@ -46,14 +26,6 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^2.0.3 - json_serializable: ^6.3.0 - spider: ^4.2.2 - -flutter: - assets: - - assets/images/ - - assets/icons/ false_secrets: - /example/lib/main.dart diff --git a/packages/ap_common/test/ap_common_test.dart b/packages/ap_common/test/ap_common_test.dart deleted file mode 100644 index a34bdb2d..00000000 --- a/packages/ap_common/test/ap_common_test.dart +++ /dev/null @@ -1,11 +0,0 @@ -import 'package:ap_common/ap_common.dart'; -import 'package:flutter_test/flutter_test.dart'; - -void main() { - test('adds one to input values', () { - final Calculator calculator = Calculator(); - expect(calculator.addOne(2), 3); - expect(calculator.addOne(-7), -6); - expect(calculator.addOne(0), 1); - }); -} diff --git a/packages/ap_common/test/model_test.dart b/packages/ap_common/test/model_test.dart index 48ba4139..73bf9758 100644 --- a/packages/ap_common/test/model_test.dart +++ b/packages/ap_common/test/model_test.dart @@ -1,4 +1,4 @@ -import 'package:ap_common_core/ap_common_core.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:flutter_test/flutter_test.dart'; //ignore_for_file: lines_longer_than_80_chars diff --git a/packages/ap_common_announcement_ui/.flutter-plugins b/packages/ap_common_announcement_ui/.flutter-plugins new file mode 100644 index 00000000..195583e0 --- /dev/null +++ b/packages/ap_common_announcement_ui/.flutter-plugins @@ -0,0 +1,22 @@ +# This is a generated file; do not edit or check into version control. +flutter_keyboard_visibility=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility-6.0.0/ +flutter_keyboard_visibility_linux=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_linux-1.0.0/ +flutter_keyboard_visibility_macos=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_macos-1.0.0/ +flutter_keyboard_visibility_web=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_web-2.0.0/ +flutter_keyboard_visibility_windows=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_windows-1.0.0/ +google_sign_in=/Users/rainvisitor/.pub-cache/hosted/pub.dev/google_sign_in-6.2.1/ +google_sign_in_android=/Users/rainvisitor/.pub-cache/hosted/pub.dev/google_sign_in_android-6.1.33/ +google_sign_in_ios=/Users/rainvisitor/.pub-cache/hosted/pub.dev/google_sign_in_ios-5.7.8/ +google_sign_in_web=/Users/rainvisitor/.pub-cache/hosted/pub.dev/google_sign_in_web-0.12.4+2/ +package_info_plus=/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/ +path_provider=/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider-2.1.4/ +path_provider_android=/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_android-2.2.12/ +path_provider_foundation=/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.0/ +path_provider_linux=/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/ +path_provider_windows=/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/ +printing=/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.3/ +sign_in_with_apple=/Users/rainvisitor/.pub-cache/hosted/pub.dev/sign_in_with_apple-6.1.3/ +sign_in_with_apple_web=/Users/rainvisitor/.pub-cache/hosted/pub.dev/sign_in_with_apple_web-2.1.0/ +sqflite=/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite-2.4.0/ +sqflite_android=/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite_android-2.4.0-1/ +sqflite_darwin=/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.1-0/ diff --git a/packages/ap_common_announcement_ui/.flutter-plugins-dependencies b/packages/ap_common_announcement_ui/.flutter-plugins-dependencies new file mode 100644 index 00000000..01e20b83 --- /dev/null +++ b/packages/ap_common_announcement_ui/.flutter-plugins-dependencies @@ -0,0 +1 @@ +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_keyboard_visibility","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility-6.0.0/","native_build":true,"dependencies":[]},{"name":"google_sign_in_ios","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/google_sign_in_ios-5.7.8/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.0/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.3/","native_build":true,"dependencies":[]},{"name":"sign_in_with_apple","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/sign_in_with_apple-6.1.3/","native_build":true,"dependencies":[]},{"name":"sqflite_darwin","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.1-0/","shared_darwin_source":true,"native_build":true,"dependencies":[]}],"android":[{"name":"flutter_keyboard_visibility","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility-6.0.0/","native_build":true,"dependencies":[]},{"name":"google_sign_in_android","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/google_sign_in_android-6.1.33/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_android-2.2.12/","native_build":true,"dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.3/","native_build":true,"dependencies":[]},{"name":"sign_in_with_apple","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/sign_in_with_apple-6.1.3/","native_build":true,"dependencies":[]},{"name":"sqflite_android","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite_android-2.4.0-1/","native_build":true,"dependencies":[]}],"macos":[{"name":"flutter_keyboard_visibility_macos","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_macos-1.0.0/","native_build":false,"dependencies":[]},{"name":"google_sign_in_ios","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/google_sign_in_ios-5.7.8/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.0/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.3/","native_build":true,"dependencies":[]},{"name":"sign_in_with_apple","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/sign_in_with_apple-6.1.3/","native_build":true,"dependencies":[]},{"name":"sqflite_darwin","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.1-0/","shared_darwin_source":true,"native_build":true,"dependencies":[]}],"linux":[{"name":"flutter_keyboard_visibility_linux","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_linux-1.0.0/","native_build":false,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":false,"dependencies":[]},{"name":"path_provider_linux","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.3/","native_build":true,"dependencies":[]}],"windows":[{"name":"flutter_keyboard_visibility_windows","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_windows-1.0.0/","native_build":false,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":false,"dependencies":[]},{"name":"path_provider_windows","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.3/","native_build":true,"dependencies":[]}],"web":[{"name":"flutter_keyboard_visibility_web","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_web-2.0.0/","dependencies":[]},{"name":"google_sign_in_web","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/google_sign_in_web-0.12.4+2/","dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.3/","dependencies":[]},{"name":"sign_in_with_apple_web","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/sign_in_with_apple_web-2.1.0/","dependencies":[]}]},"dependencyGraph":[{"name":"flutter_keyboard_visibility","dependencies":["flutter_keyboard_visibility_linux","flutter_keyboard_visibility_macos","flutter_keyboard_visibility_web","flutter_keyboard_visibility_windows"]},{"name":"flutter_keyboard_visibility_linux","dependencies":[]},{"name":"flutter_keyboard_visibility_macos","dependencies":[]},{"name":"flutter_keyboard_visibility_web","dependencies":[]},{"name":"flutter_keyboard_visibility_windows","dependencies":[]},{"name":"google_sign_in","dependencies":["google_sign_in_android","google_sign_in_ios","google_sign_in_web"]},{"name":"google_sign_in_android","dependencies":[]},{"name":"google_sign_in_ios","dependencies":[]},{"name":"google_sign_in_web","dependencies":[]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"printing","dependencies":[]},{"name":"sign_in_with_apple","dependencies":["sign_in_with_apple_web"]},{"name":"sign_in_with_apple_web","dependencies":[]},{"name":"sqflite","dependencies":["sqflite_android","sqflite_darwin"]},{"name":"sqflite_android","dependencies":[]},{"name":"sqflite_darwin","dependencies":[]}],"date_created":"2024-10-08 19:09:24.277488","version":"3.24.3","swift_package_manager_enabled":false} \ No newline at end of file diff --git a/packages/ap_common_announcement_ui/.gitignore b/packages/ap_common_announcement_ui/.gitignore new file mode 100644 index 00000000..ac5aa989 --- /dev/null +++ b/packages/ap_common_announcement_ui/.gitignore @@ -0,0 +1,29 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. +/pubspec.lock +**/doc/api/ +.dart_tool/ +build/ diff --git a/packages/ap_common_announcement_ui/.metadata b/packages/ap_common_announcement_ui/.metadata new file mode 100644 index 00000000..24472f12 --- /dev/null +++ b/packages/ap_common_announcement_ui/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "2663184aa79047d0a33a14a3b607954f8fdd8730" + channel: "stable" + +project_type: package diff --git a/packages/ap_common_announcement_ui/CHANGELOG.md b/packages/ap_common_announcement_ui/CHANGELOG.md new file mode 100644 index 00000000..a2c5ec04 --- /dev/null +++ b/packages/ap_common_announcement_ui/CHANGELOG.md @@ -0,0 +1,3 @@ +## 0.0.1 + +* initial release from `ap_common` package separate. \ No newline at end of file diff --git a/packages/ap_common_announcement_ui/LICENSE b/packages/ap_common_announcement_ui/LICENSE new file mode 100644 index 00000000..d25d4a88 --- /dev/null +++ b/packages/ap_common_announcement_ui/LICENSE @@ -0,0 +1,9 @@ +The MIT License (MIT) + +Copyright (c) 2024 RainVisitor + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/packages/ap_common_announcement_ui/README.md b/packages/ap_common_announcement_ui/README.md new file mode 100644 index 00000000..eb8f6101 --- /dev/null +++ b/packages/ap_common_announcement_ui/README.md @@ -0,0 +1,34 @@ +# 校務通系列介面與函式共用 + +[![](https://img.shields.io/badge/Flutter-v3.24-blue)](https://github.com/flutter/flutter) +[![](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common/) +[![melos](https://img.shields.io/badge/maintained%20with-melos-f700ff.svg?style=flat-square)](https://github.com/invertase/melos) + +長期校務通相關系列的app,介面與相關功能都極為相似,將相關的介面與函式庫,製作此套件以方便維護。 + +[展示網頁](https://abc873693.github.io/ap_common/#/) +[文件](https://ap-common.web.app/) + +## 相關專案 + +- [高科校務通](https://github.com/NKUST-ITC/NKUST-AP-Flutter) +- [中山校務通](https://github.com/abc873693/NSYSU-AP) +- [文藻校務通](https://github.com/abc873693/WTUC-AP) +- [台科校務通(已下架)](https://github.com/abc873693/NTUST-AP) + +## 套件 + +| Name | pub.dev | 說明 | +|-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------| +| `ap_common` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common/) | 函式庫與相關介面共用 | +| `ap_common_core` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common_core/) | 純 Dart 的基本類別 | +| `ap_common_flutter_core` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_core.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_core/) | 基於 Flutter 框架的核心基本類別 | +| `ap_common_flutter_platform` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_platform.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_platform/) | 原生功能實作 | +| `ap_common_flutter_ui` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_ui.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_ui/) | UI 實作但不包含原生功能整合 | +| `ap_common_flutter_announcement_ui` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_announcement_ui.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_announcement_ui/) | 最新消息服務相關的介面實作 | +| `ap_common_plugin` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_plugin.svg?style=flat-square)](https://pub.dev/packages/ap_common_plugin/) | 課表小工具 | +| `ap_common_firebase` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_firebase.svg?style=flat-square)](https://pub.dev/packages/ap_common_firebase/) | 服務 `Firebase` 的整合實作 | + +## 套件使用要求 + +- Flutter `v3.22` 以上 diff --git a/packages/ap_common_announcement_ui/lib/ap_common_announcement_ui.dart b/packages/ap_common_announcement_ui/lib/ap_common_announcement_ui.dart new file mode 100644 index 00000000..396e21b6 --- /dev/null +++ b/packages/ap_common_announcement_ui/lib/ap_common_announcement_ui.dart @@ -0,0 +1,5 @@ +export 'src/api/announcement_helper.dart'; +export 'src/ui/announcement_content_page.dart'; +export 'src/ui/black_list_page.dart'; +export 'src/ui/edit_page.dart'; +export 'src/ui/home_page.dart'; diff --git a/packages/ap_common/lib/api/announcement_helper.dart b/packages/ap_common_announcement_ui/lib/src/api/announcement_helper.dart similarity index 100% rename from packages/ap_common/lib/api/announcement_helper.dart rename to packages/ap_common_announcement_ui/lib/src/api/announcement_helper.dart diff --git a/packages/ap_common/lib/api/github_helper.dart b/packages/ap_common_announcement_ui/lib/src/api/github_helper.dart similarity index 100% rename from packages/ap_common/lib/api/github_helper.dart rename to packages/ap_common_announcement_ui/lib/src/api/github_helper.dart diff --git a/packages/ap_common/lib/api/imgur_helper.dart b/packages/ap_common_announcement_ui/lib/src/api/imgur_helper.dart similarity index 100% rename from packages/ap_common/lib/api/imgur_helper.dart rename to packages/ap_common_announcement_ui/lib/src/api/imgur_helper.dart diff --git a/packages/ap_common/lib/pages/announcement_content_page.dart b/packages/ap_common_announcement_ui/lib/src/ui/announcement_content_page.dart similarity index 94% rename from packages/ap_common/lib/pages/announcement_content_page.dart rename to packages/ap_common_announcement_ui/lib/src/ui/announcement_content_page.dart index b59a717d..864965de 100644 --- a/packages/ap_common/lib/pages/announcement_content_page.dart +++ b/packages/ap_common_announcement_ui/lib/src/ui/announcement_content_page.dart @@ -1,9 +1,4 @@ -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/utils/ap_utils.dart'; -import 'package:ap_common/widgets/ap_network_image.dart'; -import 'package:ap_common/widgets/hint_content.dart'; -import 'package:ap_common_core/ap_common_core.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_linkify/flutter_linkify.dart'; diff --git a/packages/ap_common/lib/pages/announcement/black_list_page.dart b/packages/ap_common_announcement_ui/lib/src/ui/black_list_page.dart similarity index 92% rename from packages/ap_common/lib/pages/announcement/black_list_page.dart rename to packages/ap_common_announcement_ui/lib/src/ui/black_list_page.dart index 5aa28376..f3731aef 100644 --- a/packages/ap_common/lib/pages/announcement/black_list_page.dart +++ b/packages/ap_common_announcement_ui/lib/src/ui/black_list_page.dart @@ -1,8 +1,5 @@ -import 'package:ap_common/api/announcement_helper.dart'; -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/utils/ap_utils.dart'; -import 'package:ap_common/widgets/hint_content.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_announcement_ui/src/api/announcement_helper.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:flutter/material.dart'; enum _State { loading, done, error } diff --git a/packages/ap_common/lib/pages/announcement/edit_page.dart b/packages/ap_common_announcement_ui/lib/src/ui/edit_page.dart similarity index 98% rename from packages/ap_common/lib/pages/announcement/edit_page.dart rename to packages/ap_common_announcement_ui/lib/src/ui/edit_page.dart index 8b8d9e20..1d626b06 100644 --- a/packages/ap_common/lib/pages/announcement/edit_page.dart +++ b/packages/ap_common_announcement_ui/lib/src/ui/edit_page.dart @@ -1,12 +1,8 @@ -import 'package:ap_common/api/announcement_helper.dart'; -import 'package:ap_common/api/imgur_helper.dart'; -import 'package:ap_common/pages/announcement/home_page.dart' show TagColors; -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/widgets/ap_network_image.dart'; -import 'package:ap_common/widgets/default_dialog.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_announcement_ui/src/api/announcement_helper.dart'; +import 'package:ap_common_announcement_ui/src/api/imgur_helper.dart'; +import 'package:ap_common_announcement_ui/src/ui/home_page.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart'; enum _ImgurUploadState { noFile, uploading, done } diff --git a/packages/ap_common/lib/pages/announcement/home_page.dart b/packages/ap_common_announcement_ui/lib/src/ui/home_page.dart similarity index 98% rename from packages/ap_common/lib/pages/announcement/home_page.dart rename to packages/ap_common_announcement_ui/lib/src/ui/home_page.dart index e5f75eb1..dd52124d 100644 --- a/packages/ap_common/lib/pages/announcement/home_page.dart +++ b/packages/ap_common_announcement_ui/lib/src/ui/home_page.dart @@ -1,15 +1,9 @@ import 'dart:io'; -import 'package:ap_common/api/announcement_helper.dart'; -import 'package:ap_common/pages/announcement/black_list_page.dart'; -import 'package:ap_common/pages/announcement/edit_page.dart'; -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/scaffold/login_scaffold.dart'; -import 'package:ap_common/utils/ap_utils.dart'; -import 'package:ap_common/widgets/hint_content.dart'; -import 'package:ap_common/widgets/progress_dialog.dart'; -import 'package:ap_common/widgets/yes_no_dialog.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_announcement_ui/src/api/announcement_helper.dart'; +import 'package:ap_common_announcement_ui/src/ui/black_list_page.dart'; +import 'package:ap_common_announcement_ui/src/ui/edit_page.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; diff --git a/packages/ap_common_announcement_ui/pubspec.yaml b/packages/ap_common_announcement_ui/pubspec.yaml new file mode 100644 index 00000000..78f4d891 --- /dev/null +++ b/packages/ap_common_announcement_ui/pubspec.yaml @@ -0,0 +1,35 @@ +name: ap_common_announcement_ui +description: "The school affairs(AP) series shares the engineering kit, rapid development of the school affairs series(AP) app" +version: 0.0.1 +homepage: https://github.com/abc873693/ap_common +repository: https://github.com/abc873693/ap_common/tree/master/packages/ap_common_announcement_ui + + +environment: + sdk: ^3.4.0 + flutter: ">=3.22.0" + +dependencies: + flutter: + sdk: flutter + ap_common_core: '>=0.0.1 <1.0.0' + ap_common_flutter_core: '>=0.0.1 <1.0.0' + ap_common_flutter_ui: '>=0.0.1 <1.0.0' + # Dart Packages + path: ^1.9.0 + dio_cookie_manager: ^3.1.1 + cookie_jar: ^4.0.0 + sprintf: ^7.0.0 + # UI Package + photo_view: ^0.15.0 + cached_network_image: ^3.3.1 + flutter_linkify: ^6.0.0 + # Third-party Login Package + google_sign_in: ^6.2.1 + sign_in_with_apple: ^6.1.1 + +dev_dependencies: + flutter_test: + sdk: flutter + +flutter: diff --git a/packages/ap_common_core/README.md b/packages/ap_common_core/README.md index 5481ec0c..eb8f6101 100644 --- a/packages/ap_common_core/README.md +++ b/packages/ap_common_core/README.md @@ -18,12 +18,17 @@ ## 套件 -| Name | pub.dev | 說明 | -|----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|---------------------| -| `ap_common` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common/) | 函式庫與相關介面共用 | -| `ap_common_plugin` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_plugin.svg?style=flat-square)](https://pub.dev/packages/ap_common_plugin/) | 課表小工具 | -| `ap_common_firebase` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_firebase.svg?style=flat-square)](https://pub.dev/packages/ap_common_firebase/) | 服務 `Firebase` 的整合實作 | +| Name | pub.dev | 說明 | +|-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------| +| `ap_common` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common/) | 函式庫與相關介面共用 | +| `ap_common_core` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common_core/) | 純 Dart 的基本類別 | +| `ap_common_flutter_core` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_core.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_core/) | 基於 Flutter 框架的核心基本類別 | +| `ap_common_flutter_platform` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_platform.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_platform/) | 原生功能實作 | +| `ap_common_flutter_ui` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_ui.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_ui/) | UI 實作但不包含原生功能整合 | +| `ap_common_flutter_announcement_ui` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_announcement_ui.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_announcement_ui/) | 最新消息服務相關的介面實作 | +| `ap_common_plugin` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_plugin.svg?style=flat-square)](https://pub.dev/packages/ap_common_plugin/) | 課表小工具 | +| `ap_common_firebase` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_firebase.svg?style=flat-square)](https://pub.dev/packages/ap_common_firebase/) | 服務 `Firebase` 的整合實作 | ## 套件使用要求 -- Flutter `v1.20` 以上 +- Flutter `v3.22` 以上 diff --git a/packages/ap_common_core/lib/ap_common_core.dart b/packages/ap_common_core/lib/ap_common_core.dart index 283bbdd3..f7a291e0 100644 --- a/packages/ap_common_core/lib/ap_common_core.dart +++ b/packages/ap_common_core/lib/ap_common_core.dart @@ -1,3 +1,6 @@ +import 'package:ap_common_core/ap_common_core.dart'; +import 'package:ap_common_core/injector.dart'; + export 'src/config/analytics_constants.dart'; export 'src/config/ap_constants.dart'; export 'src/models/announcement_data.dart'; @@ -18,3 +21,18 @@ export 'src/models/version_info.dart'; export 'src/utilities/analytics_utils.dart'; export 'src/utilities/crashlytics_utils.dart'; export 'src/utilities/preference_util.dart'; + +void registerApCommonService({ + required AnalyticsUtil analytics, + required CrashlyticsUtil crashlytics, +}) { + injector + ..registerSingleton(() => analytics) + ..registerSingleton(() => crashlytics); +} + +void registerApCommonCore({ + required PreferenceUtil preference, +}) { + injector.registerSingleton(() => preference); +} diff --git a/packages/ap_common_core/lib/injector.dart b/packages/ap_common_core/lib/injector.dart index 49c13f81..3410c7fd 100644 --- a/packages/ap_common_core/lib/injector.dart +++ b/packages/ap_common_core/lib/injector.dart @@ -1,4 +1,6 @@ // Use this static instance import 'package:injector/injector.dart'; +export 'package:injector/injector.dart'; + final Injector injector = Injector.appInstance; diff --git a/packages/ap_common_core/pubspec.yaml b/packages/ap_common_core/pubspec.yaml index 92605d23..3fac8004 100644 --- a/packages/ap_common_core/pubspec.yaml +++ b/packages/ap_common_core/pubspec.yaml @@ -10,11 +10,9 @@ environment: dependencies: sprintf: ^7.0.0 intl: ">=0.16.0 <1.0.0" - encrypt: ^5.0.1 dio: ">=5.4.1 <6.0.0" dio_cookie_manager: ^3.1.1 cookie_jar: ^4.0.0 - timezone: ^0.9.4 jwt_decoder: ^2.0.1 json_annotation: ^4.6.0 injector: ^4.0.0 diff --git a/packages/ap_common_firebase/lib/src/utils/firebase_analytics_utils.dart b/packages/ap_common_firebase/lib/src/utils/firebase_analytics_utils.dart index f65161ad..44a77ca2 100644 --- a/packages/ap_common_firebase/lib/src/utils/firebase_analytics_utils.dart +++ b/packages/ap_common_firebase/lib/src/utils/firebase_analytics_utils.dart @@ -1,7 +1,6 @@ import 'dart:async'; import 'dart:io'; -import 'package:ap_common/resources/ap_theme.dart'; import 'package:ap_common_core/ap_common_core.dart'; import 'package:ap_common_firebase/src/utils/firebase_utils.dart'; import 'package:firebase_analytics/firebase_analytics.dart'; @@ -182,7 +181,7 @@ class FirebaseAnalyticsUtils extends AnalyticsUtil { } setUserProperty( AnalyticsConstants.theme, - brightness == Brightness.light ? ApTheme.LIGHT : ApTheme.DARK, + brightness == Brightness.light ? 'light' : 'dart', ); } } diff --git a/packages/ap_common_flutter_core/README.md b/packages/ap_common_flutter_core/README.md index 5481ec0c..eb8f6101 100644 --- a/packages/ap_common_flutter_core/README.md +++ b/packages/ap_common_flutter_core/README.md @@ -18,12 +18,17 @@ ## 套件 -| Name | pub.dev | 說明 | -|----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|---------------------| -| `ap_common` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common/) | 函式庫與相關介面共用 | -| `ap_common_plugin` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_plugin.svg?style=flat-square)](https://pub.dev/packages/ap_common_plugin/) | 課表小工具 | -| `ap_common_firebase` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_firebase.svg?style=flat-square)](https://pub.dev/packages/ap_common_firebase/) | 服務 `Firebase` 的整合實作 | +| Name | pub.dev | 說明 | +|-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------| +| `ap_common` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common/) | 函式庫與相關介面共用 | +| `ap_common_core` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common_core/) | 純 Dart 的基本類別 | +| `ap_common_flutter_core` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_core.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_core/) | 基於 Flutter 框架的核心基本類別 | +| `ap_common_flutter_platform` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_platform.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_platform/) | 原生功能實作 | +| `ap_common_flutter_ui` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_ui.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_ui/) | UI 實作但不包含原生功能整合 | +| `ap_common_flutter_announcement_ui` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_announcement_ui.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_announcement_ui/) | 最新消息服務相關的介面實作 | +| `ap_common_plugin` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_plugin.svg?style=flat-square)](https://pub.dev/packages/ap_common_plugin/) | 課表小工具 | +| `ap_common_firebase` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_firebase.svg?style=flat-square)](https://pub.dev/packages/ap_common_firebase/) | 服務 `Firebase` 的整合實作 | ## 套件使用要求 -- Flutter `v1.20` 以上 +- Flutter `v3.22` 以上 diff --git a/packages/ap_common_flutter_core/lib/ap_common_flutter_core.dart b/packages/ap_common_flutter_core/lib/ap_common_flutter_core.dart index a080f1a9..b52f06ef 100644 --- a/packages/ap_common_flutter_core/lib/ap_common_flutter_core.dart +++ b/packages/ap_common_flutter_core/lib/ap_common_flutter_core.dart @@ -1,3 +1,6 @@ +import 'package:ap_common_core/injector.dart'; +import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; + export 'package:cross_file/cross_file.dart'; export 'src/callback/general_callback.dart'; @@ -10,3 +13,20 @@ export 'src/utilities/notification_util.dart'; export 'src/utilities/platform_calendar_util.dart'; export 'src/utilities/platform_util.dart'; export 'src/utilities/ui_util.dart'; + +void registerApCommonFlutter({ + required UiUtil ui, + required PlatformUtil platform, + required MediaUtil media, + required PlatformCalendarUtil platformCalendar, + required NotificationUtil notification, + required AppStoreUtil appStore, +}) { + injector + ..registerSingleton(() => ui) + ..registerSingleton(() => platform) + ..registerSingleton(() => media) + ..registerSingleton(() => platformCalendar) + ..registerSingleton(() => notification) + ..registerSingleton(() => appStore); +} diff --git a/packages/ap_common_flutter_core/pubspec.yaml b/packages/ap_common_flutter_core/pubspec.yaml index 059fa445..954ce9dc 100644 --- a/packages/ap_common_flutter_core/pubspec.yaml +++ b/packages/ap_common_flutter_core/pubspec.yaml @@ -6,7 +6,7 @@ repository: https://github.com/abc873693/ap_common/tree/master/packages/ap_commo environment: - sdk: ^3.5.3 + sdk: ^3.4.0 flutter: ">=3.22.0" dependencies: diff --git a/packages/ap_common_flutter_platform/.flutter-plugins b/packages/ap_common_flutter_platform/.flutter-plugins index 1392b849..850b7555 100644 --- a/packages/ap_common_flutter_platform/.flutter-plugins +++ b/packages/ap_common_flutter_platform/.flutter-plugins @@ -5,18 +5,9 @@ file_saver=/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_saver-0.2.13/ file_selector_linux=/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.3/ file_selector_macos=/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.4+2/ file_selector_windows=/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3+3/ -flutter_keyboard_visibility=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility-6.0.0/ -flutter_keyboard_visibility_linux=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_linux-1.0.0/ -flutter_keyboard_visibility_macos=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_macos-1.0.0/ -flutter_keyboard_visibility_web=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_web-2.0.0/ -flutter_keyboard_visibility_windows=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_windows-1.0.0/ flutter_local_notifications=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_local_notifications-17.2.3/ flutter_local_notifications_linux=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_local_notifications_linux-4.0.1/ flutter_plugin_android_lifecycle=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.23/ -google_sign_in=/Users/rainvisitor/.pub-cache/hosted/pub.dev/google_sign_in-6.2.1/ -google_sign_in_android=/Users/rainvisitor/.pub-cache/hosted/pub.dev/google_sign_in_android-6.1.33/ -google_sign_in_ios=/Users/rainvisitor/.pub-cache/hosted/pub.dev/google_sign_in_ios-5.7.8/ -google_sign_in_web=/Users/rainvisitor/.pub-cache/hosted/pub.dev/google_sign_in_web-0.12.4+2/ image_picker=/Users/rainvisitor/.pub-cache/hosted/pub.dev/image_picker-1.1.2/ image_picker_android=/Users/rainvisitor/.pub-cache/hosted/pub.dev/image_picker_android-0.8.12+15/ image_picker_for_web=/Users/rainvisitor/.pub-cache/hosted/pub.dev/image_picker_for_web-3.0.5/ @@ -32,7 +23,6 @@ path_provider_foundation=/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provi path_provider_linux=/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/ path_provider_windows=/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/ photo_manager=/Users/rainvisitor/.pub-cache/hosted/pub.dev/photo_manager-3.5.0/ -printing=/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.1/ share_plus=/Users/rainvisitor/.pub-cache/hosted/pub.dev/share_plus-10.0.0/ shared_preferences=/Users/rainvisitor/.pub-cache/hosted/pub.dev/shared_preferences-2.3.2/ shared_preferences_android=/Users/rainvisitor/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.3/ @@ -40,11 +30,6 @@ shared_preferences_foundation=/Users/rainvisitor/.pub-cache/hosted/pub.dev/share shared_preferences_linux=/Users/rainvisitor/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/ shared_preferences_web=/Users/rainvisitor/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.2/ shared_preferences_windows=/Users/rainvisitor/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/ -sign_in_with_apple=/Users/rainvisitor/.pub-cache/hosted/pub.dev/sign_in_with_apple-6.1.3/ -sign_in_with_apple_web=/Users/rainvisitor/.pub-cache/hosted/pub.dev/sign_in_with_apple_web-2.1.0/ -sqflite=/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite-2.4.0/ -sqflite_android=/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite_android-2.4.0-1/ -sqflite_darwin=/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.1-0/ url_launcher=/Users/rainvisitor/.pub-cache/hosted/pub.dev/url_launcher-6.3.0/ url_launcher_android=/Users/rainvisitor/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.12/ url_launcher_ios=/Users/rainvisitor/.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.1/ diff --git a/packages/ap_common_flutter_platform/.flutter-plugins-dependencies b/packages/ap_common_flutter_platform/.flutter-plugins-dependencies index 99d6b30a..51baf631 100644 --- a/packages/ap_common_flutter_platform/.flutter-plugins-dependencies +++ b/packages/ap_common_flutter_platform/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"add_2_calendar","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/add_2_calendar-3.0.1/","native_build":true,"dependencies":[]},{"name":"app_tracking_transparency","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/app_tracking_transparency-2.0.6/","native_build":true,"dependencies":[]},{"name":"file_saver","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_saver-0.2.13/","native_build":true,"dependencies":[]},{"name":"flutter_keyboard_visibility","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility-6.0.0/","native_build":true,"dependencies":[]},{"name":"flutter_local_notifications","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_local_notifications-17.2.3/","native_build":true,"dependencies":[]},{"name":"google_sign_in_ios","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/google_sign_in_ios-5.7.8/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12/","native_build":true,"dependencies":[]},{"name":"in_app_review","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/in_app_review-2.0.9/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.0/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"photo_manager","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/photo_manager-3.5.0/","native_build":true,"dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.1/","native_build":true,"dependencies":[]},{"name":"share_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/share_plus-10.0.0/","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.3/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sign_in_with_apple","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/sign_in_with_apple-6.1.3/","native_build":true,"dependencies":[]},{"name":"sqflite_darwin","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.1-0/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.1/","native_build":true,"dependencies":[]}],"android":[{"name":"add_2_calendar","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/add_2_calendar-3.0.1/","native_build":true,"dependencies":[]},{"name":"file_saver","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_saver-0.2.13/","native_build":true,"dependencies":[]},{"name":"flutter_keyboard_visibility","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility-6.0.0/","native_build":true,"dependencies":[]},{"name":"flutter_local_notifications","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_local_notifications-17.2.3/","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.23/","native_build":true,"dependencies":[]},{"name":"google_sign_in_android","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/google_sign_in_android-6.1.33/","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/image_picker_android-0.8.12+15/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"in_app_review","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/in_app_review-2.0.9/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_android-2.2.12/","native_build":true,"dependencies":[]},{"name":"photo_manager","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/photo_manager-3.5.0/","native_build":true,"dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.1/","native_build":true,"dependencies":[]},{"name":"share_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/share_plus-10.0.0/","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.3/","native_build":true,"dependencies":[]},{"name":"sign_in_with_apple","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/sign_in_with_apple-6.1.3/","native_build":true,"dependencies":[]},{"name":"sqflite_android","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite_android-2.4.0-1/","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.12/","native_build":true,"dependencies":[]}],"macos":[{"name":"file_saver","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_saver-0.2.13/","native_build":true,"dependencies":[]},{"name":"file_selector_macos","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.4+2/","native_build":true,"dependencies":[]},{"name":"flutter_keyboard_visibility_macos","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_macos-1.0.0/","native_build":false,"dependencies":[]},{"name":"flutter_local_notifications","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_local_notifications-17.2.3/","native_build":true,"dependencies":[]},{"name":"google_sign_in_ios","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/google_sign_in_ios-5.7.8/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1+1/","native_build":false,"dependencies":["file_selector_macos"]},{"name":"in_app_review","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/in_app_review-2.0.9/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.0/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"photo_manager","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/photo_manager-3.5.0/","native_build":true,"dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.1/","native_build":true,"dependencies":[]},{"name":"share_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/share_plus-10.0.0/","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.3/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sign_in_with_apple","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/sign_in_with_apple-6.1.3/","native_build":true,"dependencies":[]},{"name":"sqflite_darwin","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.1-0/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.1/","native_build":true,"dependencies":[]}],"linux":[{"name":"file_saver","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_saver-0.2.13/","native_build":true,"dependencies":["path_provider_linux"]},{"name":"file_selector_linux","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.3/","native_build":true,"dependencies":[]},{"name":"flutter_keyboard_visibility_linux","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_linux-1.0.0/","native_build":false,"dependencies":[]},{"name":"flutter_local_notifications_linux","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_local_notifications_linux-4.0.1/","native_build":false,"dependencies":[]},{"name":"image_picker_linux","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/","native_build":false,"dependencies":["file_selector_linux"]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":false,"dependencies":[]},{"name":"path_provider_linux","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.1/","native_build":true,"dependencies":[]},{"name":"share_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/share_plus-10.0.0/","native_build":false,"dependencies":["url_launcher_linux"]},{"name":"shared_preferences_linux","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/","native_build":false,"dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.0/","native_build":true,"dependencies":[]}],"windows":[{"name":"file_saver","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_saver-0.2.13/","native_build":true,"dependencies":["path_provider_windows"]},{"name":"file_selector_windows","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3+3/","native_build":true,"dependencies":[]},{"name":"flutter_keyboard_visibility_windows","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_windows-1.0.0/","native_build":false,"dependencies":[]},{"name":"image_picker_windows","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1+1/","native_build":false,"dependencies":["file_selector_windows"]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":false,"dependencies":[]},{"name":"path_provider_windows","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.1/","native_build":true,"dependencies":[]},{"name":"share_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/share_plus-10.0.0/","native_build":true,"dependencies":["url_launcher_windows"]},{"name":"shared_preferences_windows","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/","native_build":false,"dependencies":["path_provider_windows"]},{"name":"url_launcher_windows","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.2/","native_build":true,"dependencies":[]}],"web":[{"name":"file_saver","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_saver-0.2.13/","dependencies":[]},{"name":"flutter_keyboard_visibility_web","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_web-2.0.0/","dependencies":[]},{"name":"google_sign_in_web","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/google_sign_in_web-0.12.4+2/","dependencies":[]},{"name":"image_picker_for_web","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/image_picker_for_web-3.0.5/","dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.1/","dependencies":[]},{"name":"share_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/share_plus-10.0.0/","dependencies":["url_launcher_web"]},{"name":"shared_preferences_web","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.2/","dependencies":[]},{"name":"sign_in_with_apple_web","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/sign_in_with_apple_web-2.1.0/","dependencies":[]},{"name":"url_launcher_web","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/url_launcher_web-2.3.3/","dependencies":[]}]},"dependencyGraph":[{"name":"add_2_calendar","dependencies":[]},{"name":"app_tracking_transparency","dependencies":[]},{"name":"file_saver","dependencies":["path_provider","path_provider_windows","path_provider_linux"]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_keyboard_visibility","dependencies":["flutter_keyboard_visibility_linux","flutter_keyboard_visibility_macos","flutter_keyboard_visibility_web","flutter_keyboard_visibility_windows"]},{"name":"flutter_keyboard_visibility_linux","dependencies":[]},{"name":"flutter_keyboard_visibility_macos","dependencies":[]},{"name":"flutter_keyboard_visibility_web","dependencies":[]},{"name":"flutter_keyboard_visibility_windows","dependencies":[]},{"name":"flutter_local_notifications","dependencies":["flutter_local_notifications_linux"]},{"name":"flutter_local_notifications_linux","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"google_sign_in","dependencies":["google_sign_in_android","google_sign_in_ios","google_sign_in_web"]},{"name":"google_sign_in_android","dependencies":[]},{"name":"google_sign_in_ios","dependencies":[]},{"name":"google_sign_in_web","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"in_app_review","dependencies":[]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"photo_manager","dependencies":[]},{"name":"printing","dependencies":[]},{"name":"share_plus","dependencies":["url_launcher_web","url_launcher_windows","url_launcher_linux"]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"sign_in_with_apple","dependencies":["sign_in_with_apple_web"]},{"name":"sign_in_with_apple_web","dependencies":[]},{"name":"sqflite","dependencies":["sqflite_android","sqflite_darwin"]},{"name":"sqflite_android","dependencies":[]},{"name":"sqflite_darwin","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2024-10-08 14:30:41.254330","version":"3.24.3","swift_package_manager_enabled":false} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"add_2_calendar","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/add_2_calendar-3.0.1/","native_build":true,"dependencies":[]},{"name":"app_tracking_transparency","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/app_tracking_transparency-2.0.6/","native_build":true,"dependencies":[]},{"name":"file_saver","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_saver-0.2.13/","native_build":true,"dependencies":[]},{"name":"flutter_local_notifications","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_local_notifications-17.2.3/","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.12/","native_build":true,"dependencies":[]},{"name":"in_app_review","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/in_app_review-2.0.9/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.0/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"photo_manager","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/photo_manager-3.5.0/","native_build":true,"dependencies":[]},{"name":"share_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/share_plus-10.0.0/","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.3/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.1/","native_build":true,"dependencies":[]}],"android":[{"name":"add_2_calendar","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/add_2_calendar-3.0.1/","native_build":true,"dependencies":[]},{"name":"file_saver","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_saver-0.2.13/","native_build":true,"dependencies":[]},{"name":"flutter_local_notifications","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_local_notifications-17.2.3/","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.23/","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/image_picker_android-0.8.12+15/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"in_app_review","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/in_app_review-2.0.9/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_android-2.2.12/","native_build":true,"dependencies":[]},{"name":"photo_manager","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/photo_manager-3.5.0/","native_build":true,"dependencies":[]},{"name":"share_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/share_plus-10.0.0/","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.3/","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.12/","native_build":true,"dependencies":[]}],"macos":[{"name":"file_saver","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_saver-0.2.13/","native_build":true,"dependencies":[]},{"name":"file_selector_macos","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.4+2/","native_build":true,"dependencies":[]},{"name":"flutter_local_notifications","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_local_notifications-17.2.3/","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1+1/","native_build":false,"dependencies":["file_selector_macos"]},{"name":"in_app_review","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/in_app_review-2.0.9/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.0/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"photo_manager","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/photo_manager-3.5.0/","native_build":true,"dependencies":[]},{"name":"share_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/share_plus-10.0.0/","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.3/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.1/","native_build":true,"dependencies":[]}],"linux":[{"name":"file_saver","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_saver-0.2.13/","native_build":true,"dependencies":["path_provider_linux"]},{"name":"file_selector_linux","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.3/","native_build":true,"dependencies":[]},{"name":"flutter_local_notifications_linux","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_local_notifications_linux-4.0.1/","native_build":false,"dependencies":[]},{"name":"image_picker_linux","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/","native_build":false,"dependencies":["file_selector_linux"]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":false,"dependencies":[]},{"name":"path_provider_linux","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[]},{"name":"share_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/share_plus-10.0.0/","native_build":false,"dependencies":["url_launcher_linux"]},{"name":"shared_preferences_linux","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/","native_build":false,"dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.0/","native_build":true,"dependencies":[]}],"windows":[{"name":"file_saver","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_saver-0.2.13/","native_build":true,"dependencies":["path_provider_windows"]},{"name":"file_selector_windows","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3+3/","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1+1/","native_build":false,"dependencies":["file_selector_windows"]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":false,"dependencies":[]},{"name":"path_provider_windows","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[]},{"name":"share_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/share_plus-10.0.0/","native_build":true,"dependencies":["url_launcher_windows"]},{"name":"shared_preferences_windows","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/","native_build":false,"dependencies":["path_provider_windows"]},{"name":"url_launcher_windows","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.2/","native_build":true,"dependencies":[]}],"web":[{"name":"file_saver","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/file_saver-0.2.13/","dependencies":[]},{"name":"image_picker_for_web","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/image_picker_for_web-3.0.5/","dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","dependencies":[]},{"name":"share_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/share_plus-10.0.0/","dependencies":["url_launcher_web"]},{"name":"shared_preferences_web","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.2/","dependencies":[]},{"name":"url_launcher_web","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/url_launcher_web-2.3.3/","dependencies":[]}]},"dependencyGraph":[{"name":"add_2_calendar","dependencies":[]},{"name":"app_tracking_transparency","dependencies":[]},{"name":"file_saver","dependencies":["path_provider","path_provider_windows","path_provider_linux"]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_local_notifications","dependencies":["flutter_local_notifications_linux"]},{"name":"flutter_local_notifications_linux","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"in_app_review","dependencies":[]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"photo_manager","dependencies":[]},{"name":"share_plus","dependencies":["url_launcher_web","url_launcher_windows","url_launcher_linux"]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2024-10-08 19:09:31.110602","version":"3.24.3","swift_package_manager_enabled":false} \ No newline at end of file diff --git a/packages/ap_common_flutter_platform/CHANGELOG.md b/packages/ap_common_flutter_platform/CHANGELOG.md index 41cc7d81..a2c5ec04 100644 --- a/packages/ap_common_flutter_platform/CHANGELOG.md +++ b/packages/ap_common_flutter_platform/CHANGELOG.md @@ -1,3 +1,3 @@ ## 0.0.1 -* TODO: Describe initial release. +* initial release from `ap_common` package separate. \ No newline at end of file diff --git a/packages/ap_common_flutter_platform/LICENSE b/packages/ap_common_flutter_platform/LICENSE index ba75c69f..d25d4a88 100644 --- a/packages/ap_common_flutter_platform/LICENSE +++ b/packages/ap_common_flutter_platform/LICENSE @@ -1 +1,9 @@ -TODO: Add your license here. +The MIT License (MIT) + +Copyright (c) 2024 RainVisitor + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/packages/ap_common_flutter_platform/README.md b/packages/ap_common_flutter_platform/README.md index 4a260d8d..eb8f6101 100644 --- a/packages/ap_common_flutter_platform/README.md +++ b/packages/ap_common_flutter_platform/README.md @@ -1,39 +1,34 @@ - +長期校務通相關系列的app,介面與相關功能都極為相似,將相關的介面與函式庫,製作此套件以方便維護。 -TODO: Put a short description of the package here that helps potential users -know whether this package might be useful for them. +[展示網頁](https://abc873693.github.io/ap_common/#/) +[文件](https://ap-common.web.app/) -## Features +## 相關專案 -TODO: List what your package can do. Maybe include images, gifs, or videos. +- [高科校務通](https://github.com/NKUST-ITC/NKUST-AP-Flutter) +- [中山校務通](https://github.com/abc873693/NSYSU-AP) +- [文藻校務通](https://github.com/abc873693/WTUC-AP) +- [台科校務通(已下架)](https://github.com/abc873693/NTUST-AP) -## Getting started +## 套件 -TODO: List prerequisites and provide or point to information on how to -start using the package. +| Name | pub.dev | 說明 | +|-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------| +| `ap_common` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common/) | 函式庫與相關介面共用 | +| `ap_common_core` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common_core/) | 純 Dart 的基本類別 | +| `ap_common_flutter_core` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_core.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_core/) | 基於 Flutter 框架的核心基本類別 | +| `ap_common_flutter_platform` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_platform.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_platform/) | 原生功能實作 | +| `ap_common_flutter_ui` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_ui.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_ui/) | UI 實作但不包含原生功能整合 | +| `ap_common_flutter_announcement_ui` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_announcement_ui.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_announcement_ui/) | 最新消息服務相關的介面實作 | +| `ap_common_plugin` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_plugin.svg?style=flat-square)](https://pub.dev/packages/ap_common_plugin/) | 課表小工具 | +| `ap_common_firebase` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_firebase.svg?style=flat-square)](https://pub.dev/packages/ap_common_firebase/) | 服務 `Firebase` 的整合實作 | -## Usage +## 套件使用要求 -TODO: Include short and useful examples for package users. Add longer examples -to `/example` folder. - -```dart -const like = 'sample'; -``` - -## Additional information - -TODO: Tell users more about the package: where to find more information, how to -contribute to the package, how to file issues, what response they can expect -from the package authors, and more. +- Flutter `v3.22` 以上 diff --git a/packages/ap_common_flutter_platform/pubspec.yaml b/packages/ap_common_flutter_platform/pubspec.yaml index 91c427fe..049cb714 100644 --- a/packages/ap_common_flutter_platform/pubspec.yaml +++ b/packages/ap_common_flutter_platform/pubspec.yaml @@ -11,24 +11,24 @@ environment: dependencies: flutter: sdk: flutter - ap_common_core: ^0.0.1 - ap_common_flutter_core: ^0.0.1 + ap_common_core: '>=0.0.1 <1.0.0' + ap_common_flutter_core: '>=0.0.1 <1.0.0' + # Dart Package + encrypt: ^5.0.1 + timezone: ^0.9.4 + sprintf: ^7.0.0 + # Flutter Native Plugin app_tracking_transparency: ^2.0.2+4 flutter_local_notifications: ^17.2.2 shared_preferences: ^2.2.2 url_launcher: ^6.2.5 share_plus: ">=9.0.0 <=10.0.0" package_info_plus: ^8.0.2 - cached_network_image: ^3.3.1 - flutter_keyboard_visibility: ^6.0.0 add_2_calendar: ^3.0.1 in_app_review: ^2.0.3 - printing: ^5.10.4 path: ^1.7.0 path_provider: ^2.1.2 - google_sign_in: ^6.2.1 - sign_in_with_apple: ^6.1.1 image_picker: ^1.0.7 photo_manager: ^3.0.0 file_saver: ^0.2.12 @@ -36,5 +36,3 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - -flutter: diff --git a/packages/ap_common_flutter_ui/.flutter-plugins b/packages/ap_common_flutter_ui/.flutter-plugins new file mode 100644 index 00000000..81d3e322 --- /dev/null +++ b/packages/ap_common_flutter_ui/.flutter-plugins @@ -0,0 +1,16 @@ +# This is a generated file; do not edit or check into version control. +flutter_keyboard_visibility=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility-6.0.0/ +flutter_keyboard_visibility_linux=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_linux-1.0.0/ +flutter_keyboard_visibility_macos=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_macos-1.0.0/ +flutter_keyboard_visibility_web=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_web-2.0.0/ +flutter_keyboard_visibility_windows=/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_windows-1.0.0/ +package_info_plus=/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/ +path_provider=/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider-2.1.4/ +path_provider_android=/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_android-2.2.12/ +path_provider_foundation=/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.0/ +path_provider_linux=/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/ +path_provider_windows=/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/ +printing=/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.3/ +sqflite=/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite-2.4.0/ +sqflite_android=/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite_android-2.4.0-1/ +sqflite_darwin=/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.1-0/ diff --git a/packages/ap_common_flutter_ui/.flutter-plugins-dependencies b/packages/ap_common_flutter_ui/.flutter-plugins-dependencies new file mode 100644 index 00000000..11f41873 --- /dev/null +++ b/packages/ap_common_flutter_ui/.flutter-plugins-dependencies @@ -0,0 +1 @@ +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_keyboard_visibility","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility-6.0.0/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.0/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.3/","native_build":true,"dependencies":[]},{"name":"sqflite_darwin","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.1-0/","shared_darwin_source":true,"native_build":true,"dependencies":[]}],"android":[{"name":"flutter_keyboard_visibility","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility-6.0.0/","native_build":true,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_android-2.2.12/","native_build":true,"dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.3/","native_build":true,"dependencies":[]},{"name":"sqflite_android","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite_android-2.4.0-1/","native_build":true,"dependencies":[]}],"macos":[{"name":"flutter_keyboard_visibility_macos","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_macos-1.0.0/","native_build":false,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.0/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.3/","native_build":true,"dependencies":[]},{"name":"sqflite_darwin","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/sqflite_darwin-2.4.1-0/","shared_darwin_source":true,"native_build":true,"dependencies":[]}],"linux":[{"name":"flutter_keyboard_visibility_linux","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_linux-1.0.0/","native_build":false,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":false,"dependencies":[]},{"name":"path_provider_linux","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.3/","native_build":true,"dependencies":[]}],"windows":[{"name":"flutter_keyboard_visibility_windows","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_windows-1.0.0/","native_build":false,"dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","native_build":false,"dependencies":[]},{"name":"path_provider_windows","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.3/","native_build":true,"dependencies":[]}],"web":[{"name":"flutter_keyboard_visibility_web","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/flutter_keyboard_visibility_web-2.0.0/","dependencies":[]},{"name":"package_info_plus","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/package_info_plus-8.0.2/","dependencies":[]},{"name":"printing","path":"/Users/rainvisitor/.pub-cache/hosted/pub.dev/printing-5.13.3/","dependencies":[]}]},"dependencyGraph":[{"name":"flutter_keyboard_visibility","dependencies":["flutter_keyboard_visibility_linux","flutter_keyboard_visibility_macos","flutter_keyboard_visibility_web","flutter_keyboard_visibility_windows"]},{"name":"flutter_keyboard_visibility_linux","dependencies":[]},{"name":"flutter_keyboard_visibility_macos","dependencies":[]},{"name":"flutter_keyboard_visibility_web","dependencies":[]},{"name":"flutter_keyboard_visibility_windows","dependencies":[]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"printing","dependencies":[]},{"name":"sqflite","dependencies":["sqflite_android","sqflite_darwin"]},{"name":"sqflite_android","dependencies":[]},{"name":"sqflite_darwin","dependencies":[]}],"date_created":"2024-10-08 19:09:32.401288","version":"3.24.3","swift_package_manager_enabled":false} \ No newline at end of file diff --git a/packages/ap_common_flutter_ui/.gitignore b/packages/ap_common_flutter_ui/.gitignore new file mode 100644 index 00000000..ac5aa989 --- /dev/null +++ b/packages/ap_common_flutter_ui/.gitignore @@ -0,0 +1,29 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. +/pubspec.lock +**/doc/api/ +.dart_tool/ +build/ diff --git a/packages/ap_common_flutter_ui/.metadata b/packages/ap_common_flutter_ui/.metadata new file mode 100644 index 00000000..24472f12 --- /dev/null +++ b/packages/ap_common_flutter_ui/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "2663184aa79047d0a33a14a3b607954f8fdd8730" + channel: "stable" + +project_type: package diff --git a/packages/ap_common_flutter_ui/CHANGELOG.md b/packages/ap_common_flutter_ui/CHANGELOG.md new file mode 100644 index 00000000..a2c5ec04 --- /dev/null +++ b/packages/ap_common_flutter_ui/CHANGELOG.md @@ -0,0 +1,3 @@ +## 0.0.1 + +* initial release from `ap_common` package separate. \ No newline at end of file diff --git a/packages/ap_common_flutter_ui/LICENSE b/packages/ap_common_flutter_ui/LICENSE new file mode 100644 index 00000000..d25d4a88 --- /dev/null +++ b/packages/ap_common_flutter_ui/LICENSE @@ -0,0 +1,9 @@ +The MIT License (MIT) + +Copyright (c) 2024 RainVisitor + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/packages/ap_common_flutter_ui/README.md b/packages/ap_common_flutter_ui/README.md new file mode 100644 index 00000000..eb8f6101 --- /dev/null +++ b/packages/ap_common_flutter_ui/README.md @@ -0,0 +1,34 @@ +# 校務通系列介面與函式共用 + +[![](https://img.shields.io/badge/Flutter-v3.24-blue)](https://github.com/flutter/flutter) +[![](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common/) +[![melos](https://img.shields.io/badge/maintained%20with-melos-f700ff.svg?style=flat-square)](https://github.com/invertase/melos) + +長期校務通相關系列的app,介面與相關功能都極為相似,將相關的介面與函式庫,製作此套件以方便維護。 + +[展示網頁](https://abc873693.github.io/ap_common/#/) +[文件](https://ap-common.web.app/) + +## 相關專案 + +- [高科校務通](https://github.com/NKUST-ITC/NKUST-AP-Flutter) +- [中山校務通](https://github.com/abc873693/NSYSU-AP) +- [文藻校務通](https://github.com/abc873693/WTUC-AP) +- [台科校務通(已下架)](https://github.com/abc873693/NTUST-AP) + +## 套件 + +| Name | pub.dev | 說明 | +|-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------| +| `ap_common` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common/) | 函式庫與相關介面共用 | +| `ap_common_core` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common.svg?style=flat-square)](https://pub.dev/packages/ap_common_core/) | 純 Dart 的基本類別 | +| `ap_common_flutter_core` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_core.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_core/) | 基於 Flutter 框架的核心基本類別 | +| `ap_common_flutter_platform` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_platform.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_platform/) | 原生功能實作 | +| `ap_common_flutter_ui` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_ui.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_ui/) | UI 實作但不包含原生功能整合 | +| `ap_common_flutter_announcement_ui` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_flutter_announcement_ui.svg?style=flat-square)](https://pub.dev/packages/ap_common_flutter_announcement_ui/) | 最新消息服務相關的介面實作 | +| `ap_common_plugin` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_plugin.svg?style=flat-square)](https://pub.dev/packages/ap_common_plugin/) | 課表小工具 | +| `ap_common_firebase` | [![ap_common pub.dev badge](https://img.shields.io/pub/v/ap_common_firebase.svg?style=flat-square)](https://pub.dev/packages/ap_common_firebase/) | 服務 `Firebase` 的整合實作 | + +## 套件使用要求 + +- Flutter `v3.22` 以上 diff --git a/packages/ap_common/assets/icons/barcode.png b/packages/ap_common_flutter_ui/assets/icons/barcode.png similarity index 100% rename from packages/ap_common/assets/icons/barcode.png rename to packages/ap_common_flutter_ui/assets/icons/barcode.png diff --git a/packages/ap_common/assets/icons/calendar_import.png b/packages/ap_common_flutter_ui/assets/icons/calendar_import.png similarity index 100% rename from packages/ap_common/assets/icons/calendar_import.png rename to packages/ap_common_flutter_ui/assets/icons/calendar_import.png diff --git a/packages/ap_common/assets/icons/qrcode.png b/packages/ap_common_flutter_ui/assets/icons/qrcode.png similarity index 100% rename from packages/ap_common/assets/icons/qrcode.png rename to packages/ap_common_flutter_ui/assets/icons/qrcode.png diff --git a/packages/ap_common/assets/images/dash_line_dark.webp b/packages/ap_common_flutter_ui/assets/images/dash_line_dark.webp similarity index 100% rename from packages/ap_common/assets/images/dash_line_dark.webp rename to packages/ap_common_flutter_ui/assets/images/dash_line_dark.webp diff --git a/packages/ap_common/assets/images/dash_line_light.webp b/packages/ap_common_flutter_ui/assets/images/dash_line_light.webp similarity index 100% rename from packages/ap_common/assets/images/dash_line_light.webp rename to packages/ap_common_flutter_ui/assets/images/dash_line_light.webp diff --git a/packages/ap_common/assets/images/drawer_background_dark.webp b/packages/ap_common_flutter_ui/assets/images/drawer_background_dark.webp similarity index 100% rename from packages/ap_common/assets/images/drawer_background_dark.webp rename to packages/ap_common_flutter_ui/assets/images/drawer_background_dark.webp diff --git a/packages/ap_common/assets/images/drawer_background_light.webp b/packages/ap_common_flutter_ui/assets/images/drawer_background_light.webp similarity index 100% rename from packages/ap_common/assets/images/drawer_background_light.webp rename to packages/ap_common_flutter_ui/assets/images/drawer_background_light.webp diff --git a/packages/ap_common/assets/images/email.webp b/packages/ap_common_flutter_ui/assets/images/email.webp similarity index 100% rename from packages/ap_common/assets/images/email.webp rename to packages/ap_common_flutter_ui/assets/images/email.webp diff --git a/packages/ap_common/assets/images/fb.webp b/packages/ap_common_flutter_ui/assets/images/fb.webp similarity index 100% rename from packages/ap_common/assets/images/fb.webp rename to packages/ap_common_flutter_ui/assets/images/fb.webp diff --git a/packages/ap_common/assets/images/gdg_on_campus_nkust_itc.jpg b/packages/ap_common_flutter_ui/assets/images/gdg_on_campus_nkust_itc.jpg similarity index 100% rename from packages/ap_common/assets/images/gdg_on_campus_nkust_itc.jpg rename to packages/ap_common_flutter_ui/assets/images/gdg_on_campus_nkust_itc.jpg diff --git a/packages/ap_common/assets/images/github.webp b/packages/ap_common_flutter_ui/assets/images/github.webp similarity index 100% rename from packages/ap_common/assets/images/github.webp rename to packages/ap_common_flutter_ui/assets/images/github.webp diff --git a/packages/ap_common/assets/images/instagram.png b/packages/ap_common_flutter_ui/assets/images/instagram.png similarity index 100% rename from packages/ap_common/assets/images/instagram.png rename to packages/ap_common_flutter_ui/assets/images/instagram.png diff --git a/packages/ap_common/assets/images/nkutst_itc.webp b/packages/ap_common_flutter_ui/assets/images/nkutst_itc.webp similarity index 100% rename from packages/ap_common/assets/images/nkutst_itc.webp rename to packages/ap_common_flutter_ui/assets/images/nkutst_itc.webp diff --git a/packages/ap_common/assets/images/nsysu_gdsc.png b/packages/ap_common_flutter_ui/assets/images/nsysu_gdsc.png similarity index 100% rename from packages/ap_common/assets/images/nsysu_gdsc.png rename to packages/ap_common_flutter_ui/assets/images/nsysu_gdsc.png diff --git a/packages/ap_common_flutter_ui/lib/ap_common_flutter_ui.dart b/packages/ap_common_flutter_ui/lib/ap_common_flutter_ui.dart new file mode 100644 index 00000000..71bd401a --- /dev/null +++ b/packages/ap_common_flutter_ui/lib/ap_common_flutter_ui.dart @@ -0,0 +1,31 @@ +export 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +export 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; + +export 'src/pages/about_us_page.dart'; +export 'src/resources/ap_colors.dart'; +export 'src/resources/ap_theme.dart'; +export 'src/resources/resources.dart'; +export 'src/scaffold/course_scaffold.dart'; +export 'src/scaffold/home_page_scaffold.dart'; +export 'src/scaffold/image_viewer_scaffold.dart'; +export 'src/scaffold/login_scaffold.dart'; +export 'src/scaffold/score_scaffold.dart'; +export 'src/scaffold/user_info_scaffold.dart'; +export 'src/utils/ap_ui_util.dart'; +export 'src/utils/ap_utils.dart'; +export 'src/utils/app_tracking_utils.dart'; +export 'src/utils/dialog_utils.dart'; +export 'src/utils/toast.dart'; +export 'src/views/notification_list_view.dart'; +export 'src/views/pdf_view.dart'; +export 'src/views/phone_list_view.dart'; +export 'src/widgets/ap_drawer.dart'; +export 'src/widgets/ap_network_image.dart'; +export 'src/widgets/default_dialog.dart'; +export 'src/widgets/dialog_option.dart'; +export 'src/widgets/hint_content.dart'; +export 'src/widgets/item_picker.dart'; +export 'src/widgets/option_dialog.dart'; +export 'src/widgets/progress_dialog.dart'; +export 'src/widgets/setting_page_widgets.dart'; +export 'src/widgets/yes_no_dialog.dart'; diff --git a/packages/ap_common/lib/pages/about_us_page.dart b/packages/ap_common_flutter_ui/lib/src/pages/about_us_page.dart similarity index 97% rename from packages/ap_common/lib/pages/about_us_page.dart rename to packages/ap_common_flutter_ui/lib/src/pages/about_us_page.dart index 966f1fa8..60ee0c68 100644 --- a/packages/ap_common/lib/pages/about_us_page.dart +++ b/packages/ap_common_flutter_ui/lib/src/pages/about_us_page.dart @@ -1,7 +1,4 @@ -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/resources/resources.dart'; -import 'package:ap_common_core/ap_common_core.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:flutter/material.dart'; import 'package:flutter_linkify/flutter_linkify.dart'; diff --git a/packages/ap_common/lib/resources/ap_colors.dart b/packages/ap_common_flutter_ui/lib/src/resources/ap_colors.dart similarity index 100% rename from packages/ap_common/lib/resources/ap_colors.dart rename to packages/ap_common_flutter_ui/lib/src/resources/ap_colors.dart diff --git a/packages/ap_common_flutter_ui/lib/src/resources/ap_image_assets.dart b/packages/ap_common_flutter_ui/lib/src/resources/ap_image_assets.dart new file mode 100644 index 00000000..d0a5d94e --- /dev/null +++ b/packages/ap_common_flutter_ui/lib/src/resources/ap_image_assets.dart @@ -0,0 +1,28 @@ +part of 'resources.dart'; + +class ApImageAssets { + ApImageAssets._(); + + static const String email = + 'packages/ap_common_flutter_ui/src/assets/images/email.webp'; + static const String github = + 'packages/ap_common_flutter_ui/src/assets/images/github.webp'; + static const String drawerBackgroundLight = + 'packages/ap_common_flutter_ui/src/assets/images/drawer_background_light.webp'; + static const String drawerBackgroundDark = + 'packages/ap_common_flutter_ui/src/assets/images/drawer_background_dark.webp'; + static const String nkutstItc = + 'packages/ap_common_flutter_ui/src/assets/images/nkutst_itc.webp'; + static const String gdgOnCampusNkustItc = + 'packages/ap_common_flutter_ui/src/assets/images/gdg_on_campus_nkust_itc.jpg'; + static const String nsysuGdsc = + 'packages/ap_common_flutter_ui/src/assets/images/nsysu_gdsc.png'; + static const String fb = + 'packages/ap_common_flutter_ui/src/assets/images/fb.webp'; + static const String instagram = + 'packages/ap_common_flutter_ui/src/assets/images/instagram.png'; + static const String dashLineDark = + 'packages/ap_common_flutter_ui/src/assets/images/dash_line_dark.webp'; + static const String dashLineLight = + 'packages/ap_common_flutter_ui/src/assets/images/dash_line_light.webp'; +} diff --git a/packages/ap_common_flutter_ui/lib/src/resources/ap_image_icons.dart b/packages/ap_common_flutter_ui/lib/src/resources/ap_image_icons.dart new file mode 100644 index 00000000..5448c660 --- /dev/null +++ b/packages/ap_common_flutter_ui/lib/src/resources/ap_image_icons.dart @@ -0,0 +1,12 @@ +part of 'resources.dart'; + +class ApImageIcons { + ApImageIcons._(); + + static const String calendarImport = + 'packages/ap_common_flutter_ui/src/assets/icons/calendar_import.png'; + static const String qrcode = + 'packages/ap_common_flutter_ui/src/assets/icons/qrcode.png'; + static const String barcode = + 'packages/ap_common_flutter_ui/src/assets/icons/barcode.png'; +} diff --git a/packages/ap_common/lib/resources/ap_theme.dart b/packages/ap_common_flutter_ui/lib/src/resources/ap_theme.dart similarity index 98% rename from packages/ap_common/lib/resources/ap_theme.dart rename to packages/ap_common_flutter_ui/lib/src/resources/ap_theme.dart index 724183fe..3cc6ec86 100644 --- a/packages/ap_common/lib/resources/ap_theme.dart +++ b/packages/ap_common_flutter_ui/lib/src/resources/ap_theme.dart @@ -1,5 +1,5 @@ -import 'package:ap_common/resources/ap_colors.dart'; -import 'package:ap_common/resources/resources.dart'; +import 'package:ap_common_flutter_ui/src/resources/ap_colors.dart'; +import 'package:ap_common_flutter_ui/src/resources/resources.dart'; import 'package:cupertino_back_gesture/cupertino_back_gesture.dart'; import 'package:flutter/material.dart'; diff --git a/packages/ap_common/lib/resources/resources.dart b/packages/ap_common_flutter_ui/lib/src/resources/resources.dart similarity index 100% rename from packages/ap_common/lib/resources/resources.dart rename to packages/ap_common_flutter_ui/lib/src/resources/resources.dart diff --git a/packages/ap_common/lib/scaffold/course_scaffold.dart b/packages/ap_common_flutter_ui/lib/src/scaffold/course_scaffold.dart similarity index 98% rename from packages/ap_common/lib/scaffold/course_scaffold.dart rename to packages/ap_common_flutter_ui/lib/src/scaffold/course_scaffold.dart index ab3dfcd0..1440fbb4 100644 --- a/packages/ap_common/lib/scaffold/course_scaffold.dart +++ b/packages/ap_common_flutter_ui/lib/src/scaffold/course_scaffold.dart @@ -1,16 +1,7 @@ import 'dart:io'; import 'dart:ui' as ui; -import 'package:ap_common/resources/ap_colors.dart'; -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/resources/resources.dart'; -import 'package:ap_common/utils/ap_utils.dart'; -import 'package:ap_common/widgets/default_dialog.dart'; -import 'package:ap_common/widgets/hint_content.dart'; -import 'package:ap_common/widgets/item_picker.dart'; -import 'package:ap_common/widgets/option_dialog.dart'; -import 'package:ap_common_core/ap_common_core.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:auto_size_text_pk/auto_size_text_pk.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; diff --git a/packages/ap_common/lib/scaffold/home_page_scaffold.dart b/packages/ap_common_flutter_ui/lib/src/scaffold/home_page_scaffold.dart similarity index 96% rename from packages/ap_common/lib/scaffold/home_page_scaffold.dart rename to packages/ap_common_flutter_ui/lib/src/scaffold/home_page_scaffold.dart index 58dae05f..62111564 100644 --- a/packages/ap_common/lib/scaffold/home_page_scaffold.dart +++ b/packages/ap_common_flutter_ui/lib/src/scaffold/home_page_scaffold.dart @@ -1,12 +1,7 @@ import 'dart:async'; import 'dart:io'; -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/widgets/ap_network_image.dart'; -import 'package:ap_common/widgets/hint_content.dart'; -import 'package:ap_common/widgets/yes_no_dialog.dart'; -import 'package:ap_common_core/ap_common_core.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; diff --git a/packages/ap_common/lib/scaffold/image_viewer_scaffold.dart b/packages/ap_common_flutter_ui/lib/src/scaffold/image_viewer_scaffold.dart similarity index 96% rename from packages/ap_common/lib/scaffold/image_viewer_scaffold.dart rename to packages/ap_common_flutter_ui/lib/src/scaffold/image_viewer_scaffold.dart index df6c7a23..666d2c69 100644 --- a/packages/ap_common/lib/scaffold/image_viewer_scaffold.dart +++ b/packages/ap_common_flutter_ui/lib/src/scaffold/image_viewer_scaffold.dart @@ -1,4 +1,4 @@ -import 'package:ap_common/resources/ap_theme.dart'; +import 'package:ap_common_flutter_ui/src/resources/ap_theme.dart'; import 'package:flutter/material.dart'; import 'package:photo_view/photo_view.dart'; diff --git a/packages/ap_common/lib/scaffold/login_scaffold.dart b/packages/ap_common_flutter_ui/lib/src/scaffold/login_scaffold.dart similarity index 98% rename from packages/ap_common/lib/scaffold/login_scaffold.dart rename to packages/ap_common_flutter_ui/lib/src/scaffold/login_scaffold.dart index acc84417..760343fe 100644 --- a/packages/ap_common/lib/scaffold/login_scaffold.dart +++ b/packages/ap_common_flutter_ui/lib/src/scaffold/login_scaffold.dart @@ -1,5 +1,5 @@ -import 'package:ap_common/resources/ap_colors.dart'; -import 'package:ap_common/resources/ap_theme.dart'; +import 'package:ap_common_flutter_ui/src/resources/ap_colors.dart'; +import 'package:ap_common_flutter_ui/src/resources/ap_theme.dart'; import 'package:flutter/material.dart'; import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart'; diff --git a/packages/ap_common/lib/scaffold/score_scaffold.dart b/packages/ap_common_flutter_ui/lib/src/scaffold/score_scaffold.dart similarity index 97% rename from packages/ap_common/lib/scaffold/score_scaffold.dart rename to packages/ap_common_flutter_ui/lib/src/scaffold/score_scaffold.dart index ef554f2a..233693c4 100644 --- a/packages/ap_common/lib/scaffold/score_scaffold.dart +++ b/packages/ap_common_flutter_ui/lib/src/scaffold/score_scaffold.dart @@ -1,9 +1,4 @@ -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/widgets/hint_content.dart'; -import 'package:ap_common/widgets/item_picker.dart'; -import 'package:ap_common/widgets/option_dialog.dart'; -import 'package:ap_common_core/ap_common_core.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:flutter/material.dart'; enum ScoreState { loading, finish, error, empty, offlineEmpty, custom } diff --git a/packages/ap_common/lib/scaffold/user_info_scaffold.dart b/packages/ap_common_flutter_ui/lib/src/scaffold/user_info_scaffold.dart similarity index 96% rename from packages/ap_common/lib/scaffold/user_info_scaffold.dart rename to packages/ap_common_flutter_ui/lib/src/scaffold/user_info_scaffold.dart index 9bdfcb9d..db6dfed2 100644 --- a/packages/ap_common/lib/scaffold/user_info_scaffold.dart +++ b/packages/ap_common_flutter_ui/lib/src/scaffold/user_info_scaffold.dart @@ -1,7 +1,4 @@ -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/resources/resources.dart'; -import 'package:ap_common_core/ap_common_core.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:barcode_widget/barcode_widget.dart'; import 'package:flutter/material.dart'; diff --git a/packages/ap_common/lib/utils/ap_ui_util.dart b/packages/ap_common_flutter_ui/lib/src/utils/ap_ui_util.dart similarity index 63% rename from packages/ap_common/lib/utils/ap_ui_util.dart rename to packages/ap_common_flutter_ui/lib/src/utils/ap_ui_util.dart index 9448ce32..66e4b4bb 100644 --- a/packages/ap_common/lib/utils/ap_ui_util.dart +++ b/packages/ap_common_flutter_ui/lib/src/utils/ap_ui_util.dart @@ -1,8 +1,10 @@ -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/utils/toast.dart'; +import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/src/resources/ap_theme.dart'; +import 'package:ap_common_flutter_ui/src/utils/toast.dart'; import 'package:flutter/material.dart'; -class ApUiUtil { +class ApUiUtil extends UiUtil { + @override void showToast( BuildContext context, String? message, { diff --git a/packages/ap_common/lib/utils/ap_utils.dart b/packages/ap_common_flutter_ui/lib/src/utils/ap_utils.dart similarity index 96% rename from packages/ap_common/lib/utils/ap_utils.dart rename to packages/ap_common_flutter_ui/lib/src/utils/ap_utils.dart index a43a3b6d..4782980f 100644 --- a/packages/ap_common/lib/utils/ap_utils.dart +++ b/packages/ap_common_flutter_ui/lib/src/utils/ap_utils.dart @@ -1,13 +1,11 @@ import 'dart:io'; -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/widgets/yes_no_dialog.dart'; import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/src/resources/ap_theme.dart'; +import 'package:ap_common_flutter_ui/src/widgets/yes_no_dialog.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -export 'package:dio/dio.dart'; - export 'toast.dart'; class ApUtils { diff --git a/packages/ap_common/lib/utils/app_tracking_utils.dart b/packages/ap_common_flutter_ui/lib/src/utils/app_tracking_utils.dart similarity index 94% rename from packages/ap_common/lib/utils/app_tracking_utils.dart rename to packages/ap_common_flutter_ui/lib/src/utils/app_tracking_utils.dart index dcd21e45..4fb0f4ec 100644 --- a/packages/ap_common/lib/utils/app_tracking_utils.dart +++ b/packages/ap_common_flutter_ui/lib/src/utils/app_tracking_utils.dart @@ -1,6 +1,4 @@ -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/widgets/default_dialog.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; diff --git a/packages/ap_common/lib/utils/dialog_utils.dart b/packages/ap_common_flutter_ui/lib/src/utils/dialog_utils.dart similarity index 95% rename from packages/ap_common/lib/utils/dialog_utils.dart rename to packages/ap_common_flutter_ui/lib/src/utils/dialog_utils.dart index db480f5c..4d8b6872 100644 --- a/packages/ap_common/lib/utils/dialog_utils.dart +++ b/packages/ap_common_flutter_ui/lib/src/utils/dialog_utils.dart @@ -1,11 +1,7 @@ import 'dart:convert'; import 'dart:io'; -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/widgets/default_dialog.dart'; -import 'package:ap_common/widgets/yes_no_dialog.dart'; -import 'package:ap_common_core/ap_common_core.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:flutter/material.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:sprintf/sprintf.dart'; diff --git a/packages/ap_common/lib/utils/toast.dart b/packages/ap_common_flutter_ui/lib/src/utils/toast.dart similarity index 100% rename from packages/ap_common/lib/utils/toast.dart rename to packages/ap_common_flutter_ui/lib/src/utils/toast.dart diff --git a/packages/ap_common/lib/views/notification_list_view.dart b/packages/ap_common_flutter_ui/lib/src/views/notification_list_view.dart similarity index 94% rename from packages/ap_common/lib/views/notification_list_view.dart rename to packages/ap_common_flutter_ui/lib/src/views/notification_list_view.dart index 0ae2b50d..6779520a 100644 --- a/packages/ap_common/lib/views/notification_list_view.dart +++ b/packages/ap_common_flutter_ui/lib/src/views/notification_list_view.dart @@ -1,8 +1,4 @@ -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/utils/ap_utils.dart'; -import 'package:ap_common/widgets/hint_content.dart'; -import 'package:ap_common_core/ap_common_core.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:flutter/material.dart'; enum NotificationState { loading, finish, loadingMore, error, empty, offline } diff --git a/packages/ap_common/lib/views/pdf_view.dart b/packages/ap_common_flutter_ui/lib/src/views/pdf_view.dart similarity index 93% rename from packages/ap_common/lib/views/pdf_view.dart rename to packages/ap_common_flutter_ui/lib/src/views/pdf_view.dart index 26daa0ef..4f149be0 100644 --- a/packages/ap_common/lib/views/pdf_view.dart +++ b/packages/ap_common_flutter_ui/lib/src/views/pdf_view.dart @@ -1,8 +1,6 @@ import 'dart:typed_data'; -import 'package:ap_common/widgets/hint_content.dart'; -import 'package:ap_common_core/ap_common_core.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:flutter/material.dart'; import 'package:pdf/pdf.dart'; import 'package:printing/printing.dart'; diff --git a/packages/ap_common/lib/views/phone_list_view.dart b/packages/ap_common_flutter_ui/lib/src/views/phone_list_view.dart similarity index 95% rename from packages/ap_common/lib/views/phone_list_view.dart rename to packages/ap_common_flutter_ui/lib/src/views/phone_list_view.dart index b6e4f851..0106d94c 100644 --- a/packages/ap_common/lib/views/phone_list_view.dart +++ b/packages/ap_common_flutter_ui/lib/src/views/phone_list_view.dart @@ -1,8 +1,4 @@ -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/utils/ap_utils.dart'; -import 'package:ap_common/widgets/hint_content.dart'; -import 'package:ap_common_core/ap_common_core.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:flutter/material.dart'; enum PhoneState { loading, finish, error } diff --git a/packages/ap_common/lib/widgets/ap_drawer.dart b/packages/ap_common_flutter_ui/lib/src/widgets/ap_drawer.dart similarity index 98% rename from packages/ap_common/lib/widgets/ap_drawer.dart rename to packages/ap_common_flutter_ui/lib/src/widgets/ap_drawer.dart index da9fa1c4..587ba75e 100644 --- a/packages/ap_common/lib/widgets/ap_drawer.dart +++ b/packages/ap_common_flutter_ui/lib/src/widgets/ap_drawer.dart @@ -1,8 +1,8 @@ import 'dart:typed_data'; -import 'package:ap_common/resources/ap_theme.dart'; import 'package:ap_common_core/ap_common_core.dart'; import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/src/resources/ap_theme.dart'; import 'package:flutter/material.dart'; class ApDrawer extends StatefulWidget { diff --git a/packages/ap_common/lib/widgets/ap_network_image.dart b/packages/ap_common_flutter_ui/lib/src/widgets/ap_network_image.dart similarity index 87% rename from packages/ap_common/lib/widgets/ap_network_image.dart rename to packages/ap_common_flutter_ui/lib/src/widgets/ap_network_image.dart index c5cb3319..4b1c04f6 100644 --- a/packages/ap_common/lib/widgets/ap_network_image.dart +++ b/packages/ap_common_flutter_ui/lib/src/widgets/ap_network_image.dart @@ -1,5 +1,4 @@ -import 'package:ap_common/utils/ap_utils.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; diff --git a/packages/ap_common/lib/widgets/default_dialog.dart b/packages/ap_common_flutter_ui/lib/src/widgets/default_dialog.dart similarity index 97% rename from packages/ap_common/lib/widgets/default_dialog.dart rename to packages/ap_common_flutter_ui/lib/src/widgets/default_dialog.dart index 12a1550d..f572aaf1 100644 --- a/packages/ap_common/lib/widgets/default_dialog.dart +++ b/packages/ap_common_flutter_ui/lib/src/widgets/default_dialog.dart @@ -1,4 +1,4 @@ -import 'package:ap_common/resources/ap_theme.dart'; +import 'package:ap_common_flutter_ui/src/resources/ap_theme.dart'; import 'package:flutter/material.dart'; class DefaultDialog extends StatelessWidget { diff --git a/packages/ap_common/lib/widgets/dialog_option.dart b/packages/ap_common_flutter_ui/lib/src/widgets/dialog_option.dart similarity index 89% rename from packages/ap_common/lib/widgets/dialog_option.dart rename to packages/ap_common_flutter_ui/lib/src/widgets/dialog_option.dart index 46152813..8f52a7f5 100644 --- a/packages/ap_common/lib/widgets/dialog_option.dart +++ b/packages/ap_common_flutter_ui/lib/src/widgets/dialog_option.dart @@ -1,5 +1,4 @@ -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:flutter/material.dart'; class DialogOption extends StatelessWidget { diff --git a/packages/ap_common/lib/widgets/hint_content.dart b/packages/ap_common_flutter_ui/lib/src/widgets/hint_content.dart similarity index 93% rename from packages/ap_common/lib/widgets/hint_content.dart rename to packages/ap_common_flutter_ui/lib/src/widgets/hint_content.dart index 777661b5..9d0d0344 100644 --- a/packages/ap_common/lib/widgets/hint_content.dart +++ b/packages/ap_common_flutter_ui/lib/src/widgets/hint_content.dart @@ -1,4 +1,4 @@ -import 'package:ap_common/resources/ap_theme.dart'; +import 'package:ap_common_flutter_ui/src/resources/ap_theme.dart'; import 'package:flutter/material.dart'; class HintContent extends StatelessWidget { diff --git a/packages/ap_common/lib/widgets/item_picker.dart b/packages/ap_common_flutter_ui/lib/src/widgets/item_picker.dart similarity index 87% rename from packages/ap_common/lib/widgets/item_picker.dart rename to packages/ap_common_flutter_ui/lib/src/widgets/item_picker.dart index 675b5967..3532f59c 100644 --- a/packages/ap_common/lib/widgets/item_picker.dart +++ b/packages/ap_common_flutter_ui/lib/src/widgets/item_picker.dart @@ -1,7 +1,4 @@ -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/widgets/option_dialog.dart'; -import 'package:ap_common_core/ap_common_core.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:flutter/material.dart'; class ItemPicker extends StatelessWidget { diff --git a/packages/ap_common/lib/widgets/option_dialog.dart b/packages/ap_common_flutter_ui/lib/src/widgets/option_dialog.dart similarity index 96% rename from packages/ap_common/lib/widgets/option_dialog.dart rename to packages/ap_common_flutter_ui/lib/src/widgets/option_dialog.dart index 4ae66809..e0db06ba 100644 --- a/packages/ap_common/lib/widgets/option_dialog.dart +++ b/packages/ap_common_flutter_ui/lib/src/widgets/option_dialog.dart @@ -1,4 +1,4 @@ -import 'package:ap_common/widgets/dialog_option.dart'; +import 'package:ap_common_flutter_ui/src/widgets/dialog_option.dart'; import 'package:flutter/material.dart'; class SimpleOptionDialog extends StatelessWidget { diff --git a/packages/ap_common/lib/widgets/progress_dialog.dart b/packages/ap_common_flutter_ui/lib/src/widgets/progress_dialog.dart similarity index 93% rename from packages/ap_common/lib/widgets/progress_dialog.dart rename to packages/ap_common_flutter_ui/lib/src/widgets/progress_dialog.dart index 65d64d01..5ad565c2 100644 --- a/packages/ap_common/lib/widgets/progress_dialog.dart +++ b/packages/ap_common_flutter_ui/lib/src/widgets/progress_dialog.dart @@ -1,4 +1,4 @@ -import 'package:ap_common/resources/ap_theme.dart'; +import 'package:ap_common_flutter_ui/src/resources/ap_theme.dart'; import 'package:flutter/material.dart'; class ProgressDialog extends StatelessWidget { diff --git a/packages/ap_common/lib/widgets/setting_page_widgets.dart b/packages/ap_common_flutter_ui/lib/src/widgets/setting_page_widgets.dart similarity index 97% rename from packages/ap_common/lib/widgets/setting_page_widgets.dart rename to packages/ap_common_flutter_ui/lib/src/widgets/setting_page_widgets.dart index 50240589..0cf915d5 100644 --- a/packages/ap_common/lib/widgets/setting_page_widgets.dart +++ b/packages/ap_common_flutter_ui/lib/src/widgets/setting_page_widgets.dart @@ -1,7 +1,4 @@ -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common/widgets/option_dialog.dart'; -import 'package:ap_common_core/ap_common_core.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:flutter/material.dart'; class SettingTitle extends StatelessWidget { diff --git a/packages/ap_common/lib/widgets/yes_no_dialog.dart b/packages/ap_common_flutter_ui/lib/src/widgets/yes_no_dialog.dart similarity index 97% rename from packages/ap_common/lib/widgets/yes_no_dialog.dart rename to packages/ap_common_flutter_ui/lib/src/widgets/yes_no_dialog.dart index 6093d19e..c171ec10 100644 --- a/packages/ap_common/lib/widgets/yes_no_dialog.dart +++ b/packages/ap_common_flutter_ui/lib/src/widgets/yes_no_dialog.dart @@ -1,5 +1,4 @@ -import 'package:ap_common/resources/ap_theme.dart'; -import 'package:ap_common_flutter_core/ap_common_flutter_core.dart'; +import 'package:ap_common_flutter_ui/ap_common_flutter_ui.dart'; import 'package:flutter/material.dart'; class YesNoDialog extends StatelessWidget { diff --git a/packages/ap_common_flutter_ui/pubspec.yaml b/packages/ap_common_flutter_ui/pubspec.yaml new file mode 100644 index 00000000..14a61181 --- /dev/null +++ b/packages/ap_common_flutter_ui/pubspec.yaml @@ -0,0 +1,40 @@ +name: ap_common_flutter_ui +description: "The school affairs(AP) series shares the engineering kit, rapid development of the school affairs series(AP) app" +version: 0.0.1 +homepage: https://github.com/abc873693/ap_common +repository: https://github.com/abc873693/ap_common/tree/master/packages/ap_common_flutter_ui + +environment: + sdk: ^3.4.0 + flutter: ">=3.22.0" + +dependencies: + flutter: + sdk: flutter + ap_common_core: '>=0.0.1 <1.0.0' + ap_common_flutter_core: '>=0.0.1 <1.0.0' + # Dart Package + sprintf: ^7.0.0 + # Flutter UI Package + photo_view: ^0.15.0 + barcode_widget: ^2.0.1 + barcode: ^2.2.1 + pdf: ^3.8.1 + auto_size_text_pk: ^3.0.0 + flutter_linkify: ^6.0.0 + cupertino_back_gesture: ^0.1.0 + # Flutter Native Plugin + package_info_plus: ^8.0.2 + flutter_keyboard_visibility: ^6.0.0 + printing: ^5.10.4 + cached_network_image: ^3.3.1 + +dev_dependencies: + flutter_test: + sdk: flutter + spider: ^4.2.2 + +flutter: + assets: + - assets/images/ + - assets/icons/ \ No newline at end of file