mirror of
https://gitlab.com/mysocialportal/relatica
synced 2024-10-18 10:03:31 +00:00
Add awareness of TimelineGroupingListData Type to queries
This commit is contained in:
parent
9c9428a85b
commit
37d3b1a125
9 changed files with 28 additions and 17 deletions
|
@ -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<bool?> showVisibilityDialog(
|
||||
|
@ -8,7 +9,9 @@ Future<bool?> 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 == '~') {
|
||||
|
|
|
@ -36,8 +36,10 @@ class _CircleAddUsersScreenState extends State<CircleAddUsersScreen> {
|
|||
super.initState();
|
||||
final manager =
|
||||
getIt<ActiveProfileSelector<ConnectionsManager>>().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<void> addUserToCircle(
|
||||
|
|
|
@ -93,7 +93,7 @@ class _CircleEditorScreenState extends State<CircleEditorScreen> {
|
|||
final manager =
|
||||
getIt<ActiveProfileSelector<ConnectionsManager>>().activeEntry.value;
|
||||
circleData = manager
|
||||
.getMyCircles()
|
||||
.getGroupingListData(GroupingType.circle)
|
||||
.where(
|
||||
(g) => g.id == widget.circleId,
|
||||
)
|
||||
|
|
|
@ -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<ActiveProfileSelector<ConnectionsManager>>()
|
||||
.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(
|
||||
|
|
|
@ -607,10 +607,10 @@ class _EditorScreenState extends State<EditorScreen> {
|
|||
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),
|
||||
|
|
|
@ -139,7 +139,9 @@ class _HomeScreenState extends ConsumerState<HomeScreen> {
|
|||
)),
|
||||
...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(
|
||||
|
|
|
@ -152,7 +152,7 @@ class _UserProfileScreenState extends State<UserProfileScreen> {
|
|||
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) {
|
||||
|
|
|
@ -238,13 +238,16 @@ class ConnectionsManager extends ChangeNotifier {
|
|||
notifyListeners();
|
||||
}
|
||||
|
||||
List<TimelineGroupingListData> getMyCircles() {
|
||||
List<TimelineGroupingListData> getGroupingListData(GroupingType type) {
|
||||
if (circlesNotInitialized) {
|
||||
circlesNotInitialized = false;
|
||||
_updateMyCircles(true);
|
||||
_updateMyGroupingListData(true);
|
||||
}
|
||||
|
||||
return circlesRepo.getMyCircles();
|
||||
return circlesRepo
|
||||
.getMyCircles()
|
||||
.where((e) => e.groupingType == type)
|
||||
.toList();
|
||||
}
|
||||
|
||||
Result<List<Connection>, ExecError> getCircleMembers(
|
||||
|
@ -293,7 +296,7 @@ class ConnectionsManager extends ChangeNotifier {
|
|||
}
|
||||
|
||||
void refreshCircles() {
|
||||
_updateMyCircles(true);
|
||||
_updateMyGroupingListData(true);
|
||||
}
|
||||
|
||||
Future<void> 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<void> _updateMyCircles(bool withNotification) async {
|
||||
Future<void> _updateMyGroupingListData(bool withNotification) async {
|
||||
_logger.finest('Refreshing my circles list');
|
||||
await TimelineGroupingListClient(profile)
|
||||
.getTimelineGroupingListData()
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Cocoa
|
||||
import FlutterMacOS
|
||||
|
||||
@NSApplicationMain
|
||||
@main
|
||||
class AppDelegate: FlutterAppDelegate {
|
||||
override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
|
||||
return true
|
||||
|
|
Loading…
Reference in a new issue