diff --git a/packages/neon/neon_dashboard/lib/neon_dashboard.dart b/packages/neon/neon_dashboard/lib/neon_dashboard.dart index 782f7a22f0c..83f68756440 100644 --- a/packages/neon/neon_dashboard/lib/neon_dashboard.dart +++ b/packages/neon/neon_dashboard/lib/neon_dashboard.dart @@ -11,7 +11,7 @@ import 'package:neon_dashboard/src/options.dart'; import 'package:neon_dashboard/src/pages/main.dart'; import 'package:neon_dashboard/src/routes.dart'; import 'package:neon_framework/models.dart'; -import 'package:nextcloud/nextcloud.dart'; +import 'package:nextcloud/dashboard.dart' as dashboard; /// Implementation of the server `dashboard` app. class DashboardApp extends AppImplementation { @@ -19,7 +19,7 @@ class DashboardApp extends AppImplementation { DashboardApp(); @override - final String id = AppIDs.dashboard; + final String id = dashboard.appID; @override final LocalizationsDelegate localizationsDelegate = DashboardLocalizations.delegate; diff --git a/packages/neon/neon_dashboard/lib/src/routes.dart b/packages/neon/neon_dashboard/lib/src/routes.dart index feeaa867f50..7872d58ef54 100644 --- a/packages/neon/neon_dashboard/lib/src/routes.dart +++ b/packages/neon/neon_dashboard/lib/src/routes.dart @@ -2,14 +2,14 @@ import 'package:flutter/widgets.dart'; import 'package:go_router/go_router.dart'; import 'package:neon_dashboard/src/pages/main.dart'; import 'package:neon_framework/utils.dart'; -import 'package:nextcloud/nextcloud.dart'; +import 'package:nextcloud/dashboard.dart' as dashboard; part 'routes.g.dart'; /// Route for the dashboard app. @TypedGoRoute( - path: '$appsBaseRoutePrefix${AppIDs.dashboard}', - name: AppIDs.dashboard, + path: '$appsBaseRoutePrefix${dashboard.appID}', + name: dashboard.appID, ) @immutable class DashboardAppRoute extends NeonBaseAppRoute { diff --git a/packages/neon/neon_files/lib/neon_files.dart b/packages/neon/neon_files/lib/neon_files.dart index b2b5e6750dc..096814b68be 100644 --- a/packages/neon/neon_files/lib/neon_files.dart +++ b/packages/neon/neon_files/lib/neon_files.dart @@ -11,13 +11,13 @@ import 'package:neon_files/src/options.dart'; import 'package:neon_files/src/pages/main.dart'; import 'package:neon_files/src/routes.dart'; import 'package:neon_framework/models.dart'; -import 'package:nextcloud/nextcloud.dart'; +import 'package:nextcloud/files.dart' as files; class FilesApp extends AppImplementation { FilesApp(); @override - final String id = AppIDs.files; + final String id = files.appID; @override final LocalizationsDelegate localizationsDelegate = FilesLocalizations.delegate; diff --git a/packages/neon/neon_files/lib/src/routes.dart b/packages/neon/neon_files/lib/src/routes.dart index d47b6803a34..4e219dbb0c6 100644 --- a/packages/neon/neon_files/lib/src/routes.dart +++ b/packages/neon/neon_files/lib/src/routes.dart @@ -2,13 +2,13 @@ import 'package:flutter/widgets.dart'; import 'package:go_router/go_router.dart'; import 'package:neon_files/src/pages/main.dart'; import 'package:neon_framework/utils.dart'; -import 'package:nextcloud/nextcloud.dart'; +import 'package:nextcloud/files.dart' as files; part 'routes.g.dart'; @TypedGoRoute( - path: '$appsBaseRoutePrefix${AppIDs.files}', - name: AppIDs.files, + path: '$appsBaseRoutePrefix${files.appID}', + name: files.appID, ) @immutable class FilesAppRoute extends NeonBaseAppRoute { diff --git a/packages/neon/neon_news/lib/neon_news.dart b/packages/neon/neon_news/lib/neon_news.dart index 7fafdc42384..eb17a4704a7 100644 --- a/packages/neon/neon_news/lib/neon_news.dart +++ b/packages/neon/neon_news/lib/neon_news.dart @@ -22,7 +22,7 @@ class NewsApp extends AppImplementation { NewsApp(); @override - final String id = AppIDs.news; + final String id = news.appID; @override final LocalizationsDelegate localizationsDelegate = NewsLocalizations.delegate; diff --git a/packages/neon/neon_news/lib/src/routes.dart b/packages/neon/neon_news/lib/src/routes.dart index f99fb1d463d..b3199f4e150 100644 --- a/packages/neon/neon_news/lib/src/routes.dart +++ b/packages/neon/neon_news/lib/src/routes.dart @@ -2,13 +2,13 @@ import 'package:flutter/widgets.dart'; import 'package:go_router/go_router.dart'; import 'package:neon_framework/utils.dart'; import 'package:neon_news/src/pages/main.dart'; -import 'package:nextcloud/nextcloud.dart'; +import 'package:nextcloud/news.dart' as news; part 'routes.g.dart'; @TypedGoRoute( - path: '$appsBaseRoutePrefix${AppIDs.news}', - name: AppIDs.news, + path: '$appsBaseRoutePrefix${news.appID}', + name: news.appID, ) @immutable class NewsAppRoute extends NeonBaseAppRoute { diff --git a/packages/neon/neon_notes/lib/neon_notes.dart b/packages/neon/neon_notes/lib/neon_notes.dart index 6a2b2c5ff71..bb022d20bc4 100644 --- a/packages/neon/neon_notes/lib/neon_notes.dart +++ b/packages/neon/neon_notes/lib/neon_notes.dart @@ -19,7 +19,7 @@ class NotesApp extends AppImplementation { NotesApp(); @override - final String id = AppIDs.notes; + final String id = notes.appID; @override final List supportedLocales = NotesLocalizations.supportedLocales; diff --git a/packages/neon/neon_notes/lib/src/routes.dart b/packages/neon/neon_notes/lib/src/routes.dart index 785c2cf6325..446f105e2e6 100644 --- a/packages/neon/neon_notes/lib/src/routes.dart +++ b/packages/neon/neon_notes/lib/src/routes.dart @@ -2,13 +2,13 @@ import 'package:flutter/widgets.dart'; import 'package:go_router/go_router.dart'; import 'package:neon_framework/utils.dart'; import 'package:neon_notes/src/pages/main.dart'; -import 'package:nextcloud/nextcloud.dart'; +import 'package:nextcloud/notes.dart' as notes; part 'routes.g.dart'; @TypedGoRoute( - path: '$appsBaseRoutePrefix${AppIDs.notes}', - name: AppIDs.notes, + path: '$appsBaseRoutePrefix${notes.appID}', + name: notes.appID, ) @immutable class NotesAppRoute extends NeonBaseAppRoute { diff --git a/packages/neon/neon_notifications/lib/neon_notifications.dart b/packages/neon/neon_notifications/lib/neon_notifications.dart index df92fe23b5a..37cc132d803 100644 --- a/packages/neon/neon_notifications/lib/neon_notifications.dart +++ b/packages/neon/neon_notifications/lib/neon_notifications.dart @@ -11,7 +11,7 @@ import 'package:neon_notifications/src/blocs/notifications.dart'; import 'package:neon_notifications/src/options.dart'; import 'package:neon_notifications/src/pages/main.dart'; import 'package:neon_notifications/src/routes.dart'; -import 'package:nextcloud/nextcloud.dart'; +import 'package:nextcloud/notifications.dart' as notifications; import 'package:rxdart/rxdart.dart'; class NotificationsApp extends AppImplementation @@ -21,7 +21,7 @@ class NotificationsApp extends AppImplementation localizationsDelegate = NotificationsLocalizations.delegate; diff --git a/packages/neon/neon_notifications/lib/src/routes.dart b/packages/neon/neon_notifications/lib/src/routes.dart index 19c8e311c48..b054b3685ee 100644 --- a/packages/neon/neon_notifications/lib/src/routes.dart +++ b/packages/neon/neon_notifications/lib/src/routes.dart @@ -2,13 +2,13 @@ import 'package:flutter/widgets.dart'; import 'package:go_router/go_router.dart'; import 'package:neon_framework/utils.dart'; import 'package:neon_notifications/src/pages/main.dart'; -import 'package:nextcloud/nextcloud.dart'; +import 'package:nextcloud/notifications.dart' as notifications; part 'routes.g.dart'; @TypedGoRoute( - path: '$appsBaseRoutePrefix${AppIDs.notifications}', - name: AppIDs.notifications, + path: '$appsBaseRoutePrefix${notifications.appID}', + name: notifications.appID, ) @immutable class NotificationsAppRoute extends NeonBaseAppRoute { diff --git a/packages/neon/neon_talk/lib/neon_talk.dart b/packages/neon/neon_talk/lib/neon_talk.dart index 9c0f99b528c..0870d5c124e 100644 --- a/packages/neon/neon_talk/lib/neon_talk.dart +++ b/packages/neon/neon_talk/lib/neon_talk.dart @@ -16,7 +16,7 @@ import 'package:neon_talk/src/routes.dart'; import 'package:neon_talk/src/theme.dart'; import 'package:nextcloud/core.dart' as core; import 'package:nextcloud/nextcloud.dart'; -import 'package:nextcloud/spreed.dart'; +import 'package:nextcloud/spreed.dart' as spreed; import 'package:rxdart/rxdart.dart'; /// Implementation of the server `talk` app. @@ -29,7 +29,7 @@ class TalkApp extends AppImplementation { final String id = 'talk'; @override - final BuiltSet additionalMatchingIDs = BuiltSet([AppIDs.spreed]); + final BuiltSet additionalMatchingIDs = BuiltSet([spreed.appID]); @override final LocalizationsDelegate localizationsDelegate = TalkLocalizations.delegate; diff --git a/packages/neon_framework/lib/src/app.dart b/packages/neon_framework/lib/src/app.dart index a7873b91ea0..67c9a95001a 100644 --- a/packages/neon_framework/lib/src/app.dart +++ b/packages/neon_framework/lib/src/app.dart @@ -28,7 +28,7 @@ import 'package:neon_framework/src/utils/localizations.dart'; import 'package:neon_framework/src/utils/provider.dart'; import 'package:neon_framework/src/utils/push_utils.dart'; import 'package:neon_framework/src/widgets/options_collection_builder.dart'; -import 'package:nextcloud/nextcloud.dart'; +import 'package:nextcloud/notifications.dart' as notifications; import 'package:provider/provider.dart'; import 'package:quick_actions/quick_actions.dart'; import 'package:universal_io/io.dart'; @@ -117,7 +117,7 @@ class _NeonAppState extends State with WidgetsBindingObserver, WindowLi } final allAppImplementations = NeonProvider.of>(context); - final app = allAppImplementations.tryFind(AppIDs.notifications) as NotificationsAppInterface?; + final app = allAppImplementations.tryFind(notifications.appID) as NotificationsAppInterface?; if (app == null) { return; @@ -134,7 +134,7 @@ class _NeonAppState extends State with WidgetsBindingObserver, WindowLi final allAppImplementations = NeonProvider.of>(context); - final notificationsApp = allAppImplementations.tryFind(AppIDs.notifications) as NotificationsAppInterface?; + final notificationsApp = allAppImplementations.tryFind(notifications.appID) as NotificationsAppInterface?; if (notificationsApp != null) { _accountsBloc .getAppsBlocFor(account) diff --git a/packages/neon_framework/lib/src/blocs/apps.dart b/packages/neon_framework/lib/src/blocs/apps.dart index 7956fc07794..b78a081161c 100644 --- a/packages/neon_framework/lib/src/blocs/apps.dart +++ b/packages/neon_framework/lib/src/blocs/apps.dart @@ -13,7 +13,10 @@ import 'package:neon_framework/src/utils/account_options.dart'; import 'package:neon_framework/src/utils/findable.dart'; import 'package:neon_framework/src/utils/request_manager.dart'; import 'package:nextcloud/core.dart' as core; +import 'package:nextcloud/dashboard.dart' as dashboard; +import 'package:nextcloud/files.dart' as files; import 'package:nextcloud/nextcloud.dart'; +import 'package:nextcloud/notifications.dart' as notifications; import 'package:provider/provider.dart'; import 'package:rxdart/rxdart.dart'; @@ -116,7 +119,7 @@ class _AppsBloc extends InteractiveBloc implements AppsBloc { final notificationsCapabilities = capabilitiesResult.requireData.capabilities.notificationsCapabilities?.notifications; if (notificationsCapabilities != null) { - final notificationsApp = allAppImplementations.firstWhereOrNull((a) => a.id == AppIDs.notifications); + final notificationsApp = allAppImplementations.firstWhereOrNull((a) => a.id == notifications.appID); if (notificationsApp != null) { appImplementationsBuilder.add(notificationsApp); } @@ -167,7 +170,7 @@ class _AppsBloc extends InteractiveBloc implements AppsBloc { return null; } - for (final fallback in {accountOptions.initialApp.value, AppIDs.dashboard, AppIDs.files}) { + for (final fallback in {accountOptions.initialApp.value, dashboard.appID, files.appID}) { if (supportedApps.tryFind(fallback) != null) { return fallback; } diff --git a/packages/neon_framework/lib/src/storage/keys.dart b/packages/neon_framework/lib/src/storage/keys.dart index a2f6ef6f439..cf80c4c48bd 100644 --- a/packages/neon_framework/lib/src/storage/keys.dart +++ b/packages/neon_framework/lib/src/storage/keys.dart @@ -1,5 +1,4 @@ import 'package:meta/meta.dart'; -import 'package:nextcloud/nextcloud.dart'; /// Interface of a storable element. /// @@ -36,7 +35,7 @@ enum StorageKeys implements Storable { firstLaunch._('first-launch'), /// The key for the `PushUtils`. - notifications._(AppIDs.notifications); + notifications._('notifications'); const StorageKeys._(this.value); diff --git a/packages/neon_framework/test/apps_bloc_test.dart b/packages/neon_framework/test/apps_bloc_test.dart index 4f845006be6..4b22f86f750 100644 --- a/packages/neon_framework/test/apps_bloc_test.dart +++ b/packages/neon_framework/test/apps_bloc_test.dart @@ -10,7 +10,9 @@ import 'package:neon_framework/models.dart'; import 'package:neon_framework/src/utils/account_options.dart'; import 'package:neon_framework/testing.dart'; import 'package:nextcloud/core.dart' as core; +import 'package:nextcloud/dashboard.dart' as dashboard; import 'package:nextcloud/nextcloud.dart'; +import 'package:nextcloud/notifications.dart' as notifications; import 'package:rxdart/rxdart.dart'; import 'package:version/version.dart'; @@ -47,7 +49,7 @@ Account mockAppsAccount() { 'unread': 0, }, { - 'id': AppIDs.dashboard, + 'id': dashboard.appID, 'order': 2, 'href': '', 'icon': '', @@ -254,7 +256,7 @@ void main() { when(() => appImplementation1.blocsCache).thenReturn(MockAccountCache()); final appImplementation2 = MockAppImplementation(); - when(() => appImplementation2.id).thenReturn(AppIDs.dashboard); + when(() => appImplementation2.id).thenReturn(dashboard.appID); when(() => appImplementation2.blocsCache).thenReturn(MockAccountCache()); final allAppImplementation = BuiltSet([ @@ -293,7 +295,7 @@ void main() { when(() => appImplementation1.blocsCache).thenReturn(MockAccountCache()); final appImplementation2 = MockAppImplementation(); - when(() => appImplementation2.id).thenReturn(AppIDs.notifications); + when(() => appImplementation2.id).thenReturn(notifications.appID); when(() => appImplementation2.blocsCache).thenReturn(MockAccountCache()); final allAppImplementation = BuiltSet([ diff --git a/packages/nextcloud/generate_exports.dart b/packages/nextcloud/generate_exports.dart index 9dd6b2909d9..b732f534eba 100644 --- a/packages/nextcloud/generate_exports.dart +++ b/packages/nextcloud/generate_exports.dart @@ -57,6 +57,8 @@ void main() { final library = Library((b) { final appIDBuilder = ClassBuilder() ..docs.add('/// IDs of the apps.') + ..annotations + .add(refer('Deprecated').call([refer("\"Use 'appID' from 'package:nextcloud/.dart' instead.\"")])) ..name = 'AppIDs' ..modifier = ClassModifier.final$; diff --git a/packages/nextcloud/lib/src/app_ids.dart b/packages/nextcloud/lib/src/app_ids.dart index 3e07d314f4e..0dfa2ccb4fc 100644 --- a/packages/nextcloud/lib/src/app_ids.dart +++ b/packages/nextcloud/lib/src/app_ids.dart @@ -28,6 +28,7 @@ import 'package:nextcloud/user_status.dart' as _user_status; import 'package:nextcloud/weather_status.dart' as _weather_status; /// IDs of the apps. +@Deprecated("Use 'appID' from 'package:nextcloud/.dart' instead.") final class AppIDs { /// ID for the comments app. static const String comments = _comments.appID;