diff --git a/lib/controls/visibility_dialog.dart b/lib/controls/visibility_dialog.dart index 54c4831..561178e 100644 --- a/lib/controls/visibility_dialog.dart +++ b/lib/controls/visibility_dialog.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import '../../models/visibility.dart' as v; +import '../models/timeline_grouping_list_data.dart'; import '../services/connections_manager.dart'; Future showVisibilityDialog( @@ -8,7 +9,9 @@ Future showVisibilityDialog( ConnectionsManager cm, v.Visibility visibility, ) async { - final circlesMap = {for (var item in cm.getMyCircles()) item.id: item}; + final circlesMap = { + for (var item in cm.getGroupingListData(GroupingType.circle)) item.id: item + }; final allowedCircles = visibility.allowedCircleIds.map((c) { if (c == '~') { diff --git a/lib/screens/circle_add_users_screen.dart b/lib/screens/circle_add_users_screen.dart index e160381..8db937f 100644 --- a/lib/screens/circle_add_users_screen.dart +++ b/lib/screens/circle_add_users_screen.dart @@ -36,8 +36,10 @@ class _CircleAddUsersScreenState extends State { super.initState(); final manager = getIt>().activeEntry.value; - circleData = - manager.getMyCircles().where((g) => g.id == widget.circleId).first; + circleData = manager + .getGroupingListData(GroupingType.circle) + .where((g) => g.id == widget.circleId) + .first; } Future addUserToCircle( diff --git a/lib/screens/circle_editor_screen.dart b/lib/screens/circle_editor_screen.dart index 427ba36..3cd83ac 100644 --- a/lib/screens/circle_editor_screen.dart +++ b/lib/screens/circle_editor_screen.dart @@ -93,7 +93,7 @@ class _CircleEditorScreenState extends State { final manager = getIt>().activeEntry.value; circleData = manager - .getMyCircles() + .getGroupingListData(GroupingType.circle) .where( (g) => g.id == widget.circleId, ) diff --git a/lib/screens/circle_management_screen.dart b/lib/screens/circle_management_screen.dart index 7badb83..872adaf 100644 --- a/lib/screens/circle_management_screen.dart +++ b/lib/screens/circle_management_screen.dart @@ -4,6 +4,7 @@ import 'package:provider/provider.dart'; import '../controls/responsive_max_width.dart'; import '../controls/standard_appbar.dart'; +import '../models/timeline_grouping_list_data.dart'; import '../routes.dart'; import '../services/connections_manager.dart'; import '../utils/active_profile_selector.dart'; @@ -17,7 +18,7 @@ class CircleManagementScreen extends StatelessWidget { .watch>() .activeEntry .value; - final circles = manager.getMyCircles(); + final circles = manager.getGroupingListData(GroupingType.circle); circles.sort((g1, g2) => g1.name.compareTo(g2.name)); return Scaffold( appBar: StandardAppBar.build( diff --git a/lib/screens/editor.dart b/lib/screens/editor.dart index 74f8ec9..3ebeb29 100644 --- a/lib/screens/editor.dart +++ b/lib/screens/editor.dart @@ -607,10 +607,10 @@ class _EditorScreenState extends State { circleMenuItems.add(DropdownMenuItem( value: TimelineGroupingListData.followersPseudoCircle, child: Text(TimelineGroupingListData.followersPseudoCircle.name))); - circleMenuItems.add(DropdownMenuItem( - value: TimelineGroupingListData('', ''), + circleMenuItems.add(const DropdownMenuItem( + value: TimelineGroupingListData.empty, enabled: false, - child: const Divider())); + child: Divider())); circleMenuItems.addAll(circles.map((g) => DropdownMenuItem( value: g, child: Text(g.name), diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 60abc59..7d6bdd1 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -139,7 +139,9 @@ class _HomeScreenState extends ConsumerState { )), ...circles .map((c) => TimelineIdentifiers( - timeline: TimelineType.circle, auxData: c.id, label: c.name)) + timeline: TimelineType.circle, + auxData: c.id, + label: '${c.name} - ${c.groupingType.name}')) .map((e) => DropdownMenuItem( value: e, child: Text( diff --git a/lib/screens/user_profile_screen.dart b/lib/screens/user_profile_screen.dart index 2087a28..b8102c5 100644 --- a/lib/screens/user_profile_screen.dart +++ b/lib/screens/user_profile_screen.dart @@ -152,7 +152,7 @@ class _UserProfileScreenState extends State { Connection profile, ConnectionsManager manager, ) { - final myCircles = manager.getMyCircles(); + final myCircles = manager.getGroupingListData(GroupingType.circle); final usersCircles = manager.getCirclesForUser(profile.id).fold( onSuccess: (circles) => circles.toSet(), onError: (error) { diff --git a/lib/services/connections_manager.dart b/lib/services/connections_manager.dart index 0adcf1a..c559950 100644 --- a/lib/services/connections_manager.dart +++ b/lib/services/connections_manager.dart @@ -238,13 +238,16 @@ class ConnectionsManager extends ChangeNotifier { notifyListeners(); } - List getMyCircles() { + List getGroupingListData(GroupingType type) { if (circlesNotInitialized) { circlesNotInitialized = false; - _updateMyCircles(true); + _updateMyGroupingListData(true); } - return circlesRepo.getMyCircles(); + return circlesRepo + .getMyCircles() + .where((e) => e.groupingType == type) + .toList(); } Result, ExecError> getCircleMembers( @@ -293,7 +296,7 @@ class ConnectionsManager extends ChangeNotifier { } void refreshCircles() { - _updateMyCircles(true); + _updateMyGroupingListData(true); } Future refreshCircleMemberships(TimelineGroupingListData circle) async { @@ -399,7 +402,7 @@ class ConnectionsManager extends ChangeNotifier { Connection connection, { bool withNotifications = true, }) async { - await _updateMyCircles(false); + await _updateMyGroupingListData(false); await _refreshCircleListData(connection.id, false); await _refreshConnection(connection, false); if (withNotifications) { @@ -442,7 +445,7 @@ class ConnectionsManager extends ChangeNotifier { ); } - Future _updateMyCircles(bool withNotification) async { + Future _updateMyGroupingListData(bool withNotification) async { _logger.finest('Refreshing my circles list'); await TimelineGroupingListClient(profile) .getTimelineGroupingListData() diff --git a/macos/Runner/AppDelegate.swift b/macos/Runner/AppDelegate.swift index d53ef64..8e02df2 100644 --- a/macos/Runner/AppDelegate.swift +++ b/macos/Runner/AppDelegate.swift @@ -1,7 +1,7 @@ import Cocoa import FlutterMacOS -@NSApplicationMain +@main class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true