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 'package:flutter/material.dart';
|
||||||
|
|
||||||
import '../../models/visibility.dart' as v;
|
import '../../models/visibility.dart' as v;
|
||||||
|
import '../models/timeline_grouping_list_data.dart';
|
||||||
import '../services/connections_manager.dart';
|
import '../services/connections_manager.dart';
|
||||||
|
|
||||||
Future<bool?> showVisibilityDialog(
|
Future<bool?> showVisibilityDialog(
|
||||||
|
@ -8,7 +9,9 @@ Future<bool?> showVisibilityDialog(
|
||||||
ConnectionsManager cm,
|
ConnectionsManager cm,
|
||||||
v.Visibility visibility,
|
v.Visibility visibility,
|
||||||
) async {
|
) 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) {
|
final allowedCircles = visibility.allowedCircleIds.map((c) {
|
||||||
if (c == '~') {
|
if (c == '~') {
|
||||||
|
|
|
@ -36,8 +36,10 @@ class _CircleAddUsersScreenState extends State<CircleAddUsersScreen> {
|
||||||
super.initState();
|
super.initState();
|
||||||
final manager =
|
final manager =
|
||||||
getIt<ActiveProfileSelector<ConnectionsManager>>().activeEntry.value;
|
getIt<ActiveProfileSelector<ConnectionsManager>>().activeEntry.value;
|
||||||
circleData =
|
circleData = manager
|
||||||
manager.getMyCircles().where((g) => g.id == widget.circleId).first;
|
.getGroupingListData(GroupingType.circle)
|
||||||
|
.where((g) => g.id == widget.circleId)
|
||||||
|
.first;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> addUserToCircle(
|
Future<void> addUserToCircle(
|
||||||
|
|
|
@ -93,7 +93,7 @@ class _CircleEditorScreenState extends State<CircleEditorScreen> {
|
||||||
final manager =
|
final manager =
|
||||||
getIt<ActiveProfileSelector<ConnectionsManager>>().activeEntry.value;
|
getIt<ActiveProfileSelector<ConnectionsManager>>().activeEntry.value;
|
||||||
circleData = manager
|
circleData = manager
|
||||||
.getMyCircles()
|
.getGroupingListData(GroupingType.circle)
|
||||||
.where(
|
.where(
|
||||||
(g) => g.id == widget.circleId,
|
(g) => g.id == widget.circleId,
|
||||||
)
|
)
|
||||||
|
|
|
@ -4,6 +4,7 @@ import 'package:provider/provider.dart';
|
||||||
|
|
||||||
import '../controls/responsive_max_width.dart';
|
import '../controls/responsive_max_width.dart';
|
||||||
import '../controls/standard_appbar.dart';
|
import '../controls/standard_appbar.dart';
|
||||||
|
import '../models/timeline_grouping_list_data.dart';
|
||||||
import '../routes.dart';
|
import '../routes.dart';
|
||||||
import '../services/connections_manager.dart';
|
import '../services/connections_manager.dart';
|
||||||
import '../utils/active_profile_selector.dart';
|
import '../utils/active_profile_selector.dart';
|
||||||
|
@ -17,7 +18,7 @@ class CircleManagementScreen extends StatelessWidget {
|
||||||
.watch<ActiveProfileSelector<ConnectionsManager>>()
|
.watch<ActiveProfileSelector<ConnectionsManager>>()
|
||||||
.activeEntry
|
.activeEntry
|
||||||
.value;
|
.value;
|
||||||
final circles = manager.getMyCircles();
|
final circles = manager.getGroupingListData(GroupingType.circle);
|
||||||
circles.sort((g1, g2) => g1.name.compareTo(g2.name));
|
circles.sort((g1, g2) => g1.name.compareTo(g2.name));
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: StandardAppBar.build(
|
appBar: StandardAppBar.build(
|
||||||
|
|
|
@ -607,10 +607,10 @@ class _EditorScreenState extends State<EditorScreen> {
|
||||||
circleMenuItems.add(DropdownMenuItem(
|
circleMenuItems.add(DropdownMenuItem(
|
||||||
value: TimelineGroupingListData.followersPseudoCircle,
|
value: TimelineGroupingListData.followersPseudoCircle,
|
||||||
child: Text(TimelineGroupingListData.followersPseudoCircle.name)));
|
child: Text(TimelineGroupingListData.followersPseudoCircle.name)));
|
||||||
circleMenuItems.add(DropdownMenuItem(
|
circleMenuItems.add(const DropdownMenuItem(
|
||||||
value: TimelineGroupingListData('', ''),
|
value: TimelineGroupingListData.empty,
|
||||||
enabled: false,
|
enabled: false,
|
||||||
child: const Divider()));
|
child: Divider()));
|
||||||
circleMenuItems.addAll(circles.map((g) => DropdownMenuItem(
|
circleMenuItems.addAll(circles.map((g) => DropdownMenuItem(
|
||||||
value: g,
|
value: g,
|
||||||
child: Text(g.name),
|
child: Text(g.name),
|
||||||
|
|
|
@ -139,7 +139,9 @@ class _HomeScreenState extends ConsumerState<HomeScreen> {
|
||||||
)),
|
)),
|
||||||
...circles
|
...circles
|
||||||
.map((c) => TimelineIdentifiers(
|
.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(
|
.map((e) => DropdownMenuItem(
|
||||||
value: e,
|
value: e,
|
||||||
child: Text(
|
child: Text(
|
||||||
|
|
|
@ -152,7 +152,7 @@ class _UserProfileScreenState extends State<UserProfileScreen> {
|
||||||
Connection profile,
|
Connection profile,
|
||||||
ConnectionsManager manager,
|
ConnectionsManager manager,
|
||||||
) {
|
) {
|
||||||
final myCircles = manager.getMyCircles();
|
final myCircles = manager.getGroupingListData(GroupingType.circle);
|
||||||
final usersCircles = manager.getCirclesForUser(profile.id).fold(
|
final usersCircles = manager.getCirclesForUser(profile.id).fold(
|
||||||
onSuccess: (circles) => circles.toSet(),
|
onSuccess: (circles) => circles.toSet(),
|
||||||
onError: (error) {
|
onError: (error) {
|
||||||
|
|
|
@ -238,13 +238,16 @@ class ConnectionsManager extends ChangeNotifier {
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
List<TimelineGroupingListData> getMyCircles() {
|
List<TimelineGroupingListData> getGroupingListData(GroupingType type) {
|
||||||
if (circlesNotInitialized) {
|
if (circlesNotInitialized) {
|
||||||
circlesNotInitialized = false;
|
circlesNotInitialized = false;
|
||||||
_updateMyCircles(true);
|
_updateMyGroupingListData(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
return circlesRepo.getMyCircles();
|
return circlesRepo
|
||||||
|
.getMyCircles()
|
||||||
|
.where((e) => e.groupingType == type)
|
||||||
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
Result<List<Connection>, ExecError> getCircleMembers(
|
Result<List<Connection>, ExecError> getCircleMembers(
|
||||||
|
@ -293,7 +296,7 @@ class ConnectionsManager extends ChangeNotifier {
|
||||||
}
|
}
|
||||||
|
|
||||||
void refreshCircles() {
|
void refreshCircles() {
|
||||||
_updateMyCircles(true);
|
_updateMyGroupingListData(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> refreshCircleMemberships(TimelineGroupingListData circle) async {
|
Future<void> refreshCircleMemberships(TimelineGroupingListData circle) async {
|
||||||
|
@ -399,7 +402,7 @@ class ConnectionsManager extends ChangeNotifier {
|
||||||
Connection connection, {
|
Connection connection, {
|
||||||
bool withNotifications = true,
|
bool withNotifications = true,
|
||||||
}) async {
|
}) async {
|
||||||
await _updateMyCircles(false);
|
await _updateMyGroupingListData(false);
|
||||||
await _refreshCircleListData(connection.id, false);
|
await _refreshCircleListData(connection.id, false);
|
||||||
await _refreshConnection(connection, false);
|
await _refreshConnection(connection, false);
|
||||||
if (withNotifications) {
|
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');
|
_logger.finest('Refreshing my circles list');
|
||||||
await TimelineGroupingListClient(profile)
|
await TimelineGroupingListClient(profile)
|
||||||
.getTimelineGroupingListData()
|
.getTimelineGroupingListData()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import Cocoa
|
import Cocoa
|
||||||
import FlutterMacOS
|
import FlutterMacOS
|
||||||
|
|
||||||
@NSApplicationMain
|
@main
|
||||||
class AppDelegate: FlutterAppDelegate {
|
class AppDelegate: FlutterAppDelegate {
|
||||||
override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
|
override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
|
||||||
return true
|
return true
|
||||||
|
|
Loading…
Reference in a new issue