Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(nextcloud)!: Support server 31 #2775

Draft
wants to merge 6 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@
[submodule "external/openapi-specification"]
path = external/openapi-specification
url = https://github.com/OAI/OpenAPI-Specification.git
[submodule "external/nextcloud-openapi-extractor"]
path = external/nextcloud-openapi-extractor
url = https://github.com/nextcloud/openapi-extractor.git
[submodule "external/nextcloud-drop_account"]
path = external/nextcloud-drop_account
url = https://framagit.org/framasoft/nextcloud/drop_account.git
Expand Down
2 changes: 1 addition & 1 deletion external/nextcloud-drop_account
Submodule nextcloud-drop_account updated from 56e325 to ebb33b
2 changes: 1 addition & 1 deletion external/nextcloud-notifications
1 change: 0 additions & 1 deletion external/nextcloud-openapi-extractor
Submodule nextcloud-openapi-extractor deleted from 2d4303
2 changes: 1 addition & 1 deletion external/nextcloud-server
Submodule nextcloud-server updated 6727 files
2 changes: 1 addition & 1 deletion external/nextcloud-spreed
Submodule nextcloud-spreed updated 740 files
2 changes: 1 addition & 1 deletion external/nextcloud-tables
Submodule nextcloud-tables updated 263 files
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ class _TalkMainPageState extends State<TalkMainPage> {
Widget? subtitle;
Widget? trailing;

final lastChatMessage = room.lastMessage.chatMessage;
final lastChatMessage = room.lastMessage?.chatMessage;
if (lastChatMessage != null) {
subtitle = TalkMessagePreview(
actorId: room.actorId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,7 @@ extension $ReactionInterfaceHelpers on spreed.$ReactionInterface {
/// Returns if the Talk [feature] is supported on the instance.
bool hasFeature(BuildContext context, String feature) {
final capabilitiesBloc = NeonProvider.of<CapabilitiesBloc>(context);
final capabilities = capabilitiesBloc
.capabilities.valueOrNull?.data?.capabilities.spreedPublicCapabilities?.spreedPublicCapabilities0?.spreed;
final capabilities = capabilitiesBloc.capabilities.valueOrNull?.data?.capabilities.spreedPublicCapabilities?.spreed;

if (capabilities == null) {
return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import 'package:nextcloud/spreed.dart' as spreed;

/// Displays an avatar for the actor.
///
/// In case the [actorType] is [spreed.ActorType.users] the user avatar will be shown, otherwise an appropriate icon is displayed.
/// In case the [actorType] is [spreed.ActorTypes.users] the user avatar will be shown, otherwise an appropriate icon is displayed.
class TalkActorAvatar extends StatelessWidget {
/// Creates a new Talk actor avatar.
const TalkActorAvatar({
Expand All @@ -20,22 +20,22 @@ class TalkActorAvatar extends StatelessWidget {
final String actorId;

/// The type of the actor.
final spreed.ActorType actorType;
final spreed.ActorTypes actorType;

@override
Widget build(BuildContext context) {
return switch (actorType) {
spreed.ActorType.users => NeonUserAvatar(
spreed.ActorTypes.users => NeonUserAvatar(
username: actorId,
account: NeonProvider.of<Account>(context),
),
spreed.ActorType.groups || spreed.ActorType.circles => CircleAvatar(
spreed.ActorTypes.groups || spreed.ActorTypes.circles => CircleAvatar(
child: Icon(AdaptiveIcons.group),
),
spreed.ActorType.emails => CircleAvatar(
spreed.ActorTypes.emails => CircleAvatar(
child: Icon(AdaptiveIcons.email),
),
spreed.ActorType.bots => CircleAvatar(
spreed.ActorTypes.bots => CircleAvatar(
child: Icon(AdaptiveIcons.automation),
),
_ => CircleAvatar(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ typedef TalkMessageAction = ({Widget icon, Widget child, VoidCallback onPressed}
String getActorDisplayName(TalkLocalizations localizations, spreed.$ChatMessageInterface chatMessage) {
final actorDisplayName = chatMessage.actorDisplayName;

if (actorDisplayName.isEmpty && chatMessage.actorType == spreed.ActorType.guests) {
if (actorDisplayName.isEmpty && chatMessage.actorType == spreed.ActorTypes.guests) {
return localizations.actorGuest;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ void main() {
FakeNeonStorage.setup();
});

for (final type in spreed.ActorType.values) {
final avatarMatcher = type == spreed.ActorType.users ? findsOne : findsNothing;
final iconMatcher = type == spreed.ActorType.users ? findsNothing : findsOne;
for (final type in spreed.ActorTypes.values) {
final avatarMatcher = type == spreed.ActorTypes.users ? findsOne : findsNothing;
final iconMatcher = type == spreed.ActorTypes.users ? findsNothing : findsOne;

testWidgets('$type', (tester) async {
final account = MockAccount();
Expand Down
35 changes: 16 additions & 19 deletions packages/neon_framework/packages/talk_app/test/message_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,9 @@ core.OcsGetCapabilitiesResponseApplicationJson_Ocs_Data buildCapabilities(core.S
provisioningApiCapabilities: null,
sharebymailCapabilities: null,
spreedCapabilities: null,
spreedPublicCapabilities: (
builtListNever: null,
spreedPublicCapabilities0: core.SpreedPublicCapabilities0(
(b) => b.spreed.replace(spreedCapabilities),
),
) as core.SpreedPublicCapabilities,
spreedPublicCapabilities: core.SpreedPublicCapabilities(
(b) => b.spreed.replace(spreedCapabilities),
),
systemtagsCapabilities: null,
tablesCapabilities: null,
themingPublicCapabilities: null,
Expand Down Expand Up @@ -158,7 +155,7 @@ void main() {
test('Guest without name', () {
final chatMessage = MockChatMessage();
when(() => chatMessage.actorDisplayName).thenReturn('');
when(() => chatMessage.actorType).thenReturn(spreed.ActorType.guests);
when(() => chatMessage.actorType).thenReturn(spreed.ActorTypes.guests);

expect(getActorDisplayName(localizations, chatMessage), localizations.actorGuest);
});
Expand Down Expand Up @@ -315,7 +312,7 @@ void main() {
when(() => chatMessage.messageType).thenReturn(spreed.MessageType.comment);
when(() => chatMessage.timestamp).thenReturn(0);
when(() => chatMessage.actorId).thenReturn('');
when(() => chatMessage.actorType).thenReturn(spreed.ActorType.users);
when(() => chatMessage.actorType).thenReturn(spreed.ActorTypes.users);
when(() => chatMessage.actorDisplayName).thenReturn('');
when(() => chatMessage.message).thenReturn('');
when(() => chatMessage.reactions).thenReturn(BuiltMap());
Expand Down Expand Up @@ -397,7 +394,7 @@ void main() {
when(() => chatMessage.messageType).thenReturn(spreed.MessageType.comment);
when(() => chatMessage.timestamp).thenReturn(0);
when(() => chatMessage.actorId).thenReturn('test');
when(() => chatMessage.actorType).thenReturn(spreed.ActorType.users);
when(() => chatMessage.actorType).thenReturn(spreed.ActorTypes.users);
when(() => chatMessage.actorDisplayName).thenReturn('test');
when(() => chatMessage.message).thenReturn('abc');
when(() => chatMessage.reactions).thenReturn(BuiltMap());
Expand Down Expand Up @@ -432,7 +429,7 @@ void main() {
final chatMessage = MockChatMessage();
when(() => chatMessage.timestamp).thenReturn(0);
when(() => chatMessage.actorId).thenReturn('test');
when(() => chatMessage.actorType).thenReturn(spreed.ActorType.users);
when(() => chatMessage.actorType).thenReturn(spreed.ActorTypes.users);
when(() => chatMessage.actorDisplayName).thenReturn('test');
when(() => chatMessage.messageType).thenReturn(spreed.MessageType.comment);
when(() => chatMessage.message).thenReturn('abc');
Expand Down Expand Up @@ -484,7 +481,7 @@ void main() {
final chatMessage = MockChatMessage();
when(() => chatMessage.timestamp).thenReturn(0);
when(() => chatMessage.actorId).thenReturn('test');
when(() => chatMessage.actorType).thenReturn(spreed.ActorType.users);
when(() => chatMessage.actorType).thenReturn(spreed.ActorTypes.users);
when(() => chatMessage.actorDisplayName).thenReturn('test');
when(() => chatMessage.messageType).thenReturn(spreed.MessageType.comment);
when(() => chatMessage.message).thenReturn('abc');
Expand Down Expand Up @@ -536,7 +533,7 @@ void main() {
final chatMessage = MockChatMessage();
when(() => chatMessage.timestamp).thenReturn(0);
when(() => chatMessage.actorId).thenReturn('test');
when(() => chatMessage.actorType).thenReturn(spreed.ActorType.users);
when(() => chatMessage.actorType).thenReturn(spreed.ActorTypes.users);
when(() => chatMessage.actorDisplayName).thenReturn('test');
when(() => chatMessage.messageType).thenReturn(spreed.MessageType.commentDeleted);
when(() => chatMessage.message).thenReturn('abc');
Expand Down Expand Up @@ -624,7 +621,7 @@ void main() {
final chatMessage = MockChatMessageWithParent();
when(() => chatMessage.timestamp).thenReturn(0);
when(() => chatMessage.actorId).thenReturn('test');
when(() => chatMessage.actorType).thenReturn(spreed.ActorType.users);
when(() => chatMessage.actorType).thenReturn(spreed.ActorTypes.users);
when(() => chatMessage.actorDisplayName).thenReturn('test');
when(() => chatMessage.messageType).thenReturn(spreed.MessageType.comment);
when(() => chatMessage.message).thenReturn('abc');
Expand Down Expand Up @@ -695,7 +692,7 @@ void main() {
when(() => chatMessage.id).thenReturn(0);
when(() => chatMessage.timestamp).thenReturn(0);
when(() => chatMessage.actorId).thenReturn('test');
when(() => chatMessage.actorType).thenReturn(spreed.ActorType.users);
when(() => chatMessage.actorType).thenReturn(spreed.ActorTypes.users);
when(() => chatMessage.actorDisplayName).thenReturn('test');
when(() => chatMessage.messageType).thenReturn(spreed.MessageType.comment);
when(() => chatMessage.message).thenReturn('a b c');
Expand Down Expand Up @@ -760,7 +757,7 @@ void main() {
final chatMessage = MockChatMessage();
when(() => chatMessage.timestamp).thenReturn(0);
when(() => chatMessage.actorId).thenReturn('test');
when(() => chatMessage.actorType).thenReturn(spreed.ActorType.users);
when(() => chatMessage.actorType).thenReturn(spreed.ActorTypes.users);
when(() => chatMessage.actorDisplayName).thenReturn('test');
when(() => chatMessage.messageType).thenReturn(spreed.MessageType.comment);
when(() => chatMessage.message).thenReturn('abc');
Expand Down Expand Up @@ -810,7 +807,7 @@ void main() {
final chatMessage = MockChatMessage();
when(() => chatMessage.timestamp).thenReturn(300);
when(() => chatMessage.actorId).thenReturn('test');
when(() => chatMessage.actorType).thenReturn(spreed.ActorType.users);
when(() => chatMessage.actorType).thenReturn(spreed.ActorTypes.users);
when(() => chatMessage.actorDisplayName).thenReturn('test');
when(() => chatMessage.messageType).thenReturn(spreed.MessageType.comment);
when(() => chatMessage.message).thenReturn('abc');
Expand Down Expand Up @@ -859,7 +856,7 @@ void main() {
final chatMessage = MockChatMessage();
when(() => chatMessage.timestamp).thenReturn(0);
when(() => chatMessage.actorId).thenReturn('test');
when(() => chatMessage.actorType).thenReturn(spreed.ActorType.users);
when(() => chatMessage.actorType).thenReturn(spreed.ActorTypes.users);
when(() => chatMessage.actorDisplayName).thenReturn('test');
when(() => chatMessage.messageType).thenReturn(spreed.MessageType.comment);
when(() => chatMessage.message).thenReturn('abc');
Expand Down Expand Up @@ -909,7 +906,7 @@ void main() {
final chatMessage = MockChatMessage();
when(() => chatMessage.timestamp).thenReturn(0);
when(() => chatMessage.actorId).thenReturn('test');
when(() => chatMessage.actorType).thenReturn(spreed.ActorType.users);
when(() => chatMessage.actorType).thenReturn(spreed.ActorTypes.users);
when(() => chatMessage.actorDisplayName).thenReturn('test');
when(() => chatMessage.messageType).thenReturn(spreed.MessageType.comment);
when(() => chatMessage.message).thenReturn('abc');
Expand Down Expand Up @@ -964,7 +961,7 @@ void main() {
chatMessage = MockChatMessage();
when(() => chatMessage.timestamp).thenReturn(0);
when(() => chatMessage.actorId).thenReturn('test');
when(() => chatMessage.actorType).thenReturn(spreed.ActorType.users);
when(() => chatMessage.actorType).thenReturn(spreed.ActorTypes.users);
when(() => chatMessage.actorDisplayName).thenReturn('test');
when(() => chatMessage.messageType).thenReturn(spreed.MessageType.comment);
when(() => chatMessage.message).thenReturn('abc');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,19 +35,19 @@ void main() {
when(() => chatMessage.systemMessage).thenReturn('');

final reaction1 = MockReaction();
when(() => reaction1.actorType).thenReturn(spreed.ActorType.users);
when(() => reaction1.actorType).thenReturn(spreed.ActorTypes.users);
when(() => reaction1.actorId).thenReturn('user1');
when(() => reaction1.actorDisplayName).thenReturn('User One');
when(() => reaction1.timestamp).thenReturn(60);

final reaction2 = MockReaction();
when(() => reaction2.actorType).thenReturn(spreed.ActorType.users);
when(() => reaction2.actorType).thenReturn(spreed.ActorTypes.users);
when(() => reaction2.actorId).thenReturn('user2');
when(() => reaction2.actorDisplayName).thenReturn('User Two');
when(() => reaction2.timestamp).thenReturn(120);

final reaction3 = MockReaction();
when(() => reaction3.actorType).thenReturn(spreed.ActorType.users);
when(() => reaction3.actorType).thenReturn(spreed.ActorTypes.users);
when(() => reaction3.actorId).thenReturn('user3');
when(() => reaction3.actorDisplayName).thenReturn('User Three');
when(() => reaction3.timestamp).thenReturn(180);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import 'testing.dart';

spreed.Reaction getReaction() {
final reaction = MockReaction();
when(() => reaction.actorType).thenReturn(spreed.ActorType.users);
when(() => reaction.actorType).thenReturn(spreed.ActorTypes.users);
when(() => reaction.actorId).thenReturn('actorId');
when(() => reaction.actorDisplayName).thenReturn('actorDisplayName');
when(() => reaction.timestamp).thenReturn(0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,7 @@ void main() {
]),
);
expect(
roomBloc.room.transformResult((e) => e.lastMessage.chatMessage?.id),
roomBloc.room.transformResult((e) => e.lastMessage?.chatMessage?.id),
emitsInOrder([
Result<int>.loading(),
Result.success(null),
Expand Down Expand Up @@ -727,7 +727,7 @@ void main() {
]),
);
expect(
roomBloc.room.transformResult((e) => e.lastMessage.chatMessage?.id),
roomBloc.room.transformResult((e) => e.lastMessage?.chatMessage?.id),
emitsInOrder([
Result<int>.loading(),
Result.success(null),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ void main() {
when(() => chatMessage1.id).thenReturn(1);
when(() => chatMessage1.timestamp).thenReturn((1 * 24 - 1) * 60 * 60);
when(() => chatMessage1.actorId).thenReturn('test');
when(() => chatMessage1.actorType).thenReturn(spreed.ActorType.users);
when(() => chatMessage1.actorType).thenReturn(spreed.ActorTypes.users);
when(() => chatMessage1.actorDisplayName).thenReturn('test');
when(() => chatMessage1.messageType).thenReturn(spreed.MessageType.comment);
when(() => chatMessage1.message).thenReturn('abc');
Expand All @@ -126,7 +126,7 @@ void main() {
when(() => chatMessage2.id).thenReturn(2);
when(() => chatMessage2.timestamp).thenReturn((2 * 24 - 1) * 60 * 60);
when(() => chatMessage2.actorId).thenReturn('test');
when(() => chatMessage2.actorType).thenReturn(spreed.ActorType.users);
when(() => chatMessage2.actorType).thenReturn(spreed.ActorTypes.users);
when(() => chatMessage2.actorDisplayName).thenReturn('test');
when(() => chatMessage2.messageType).thenReturn(spreed.MessageType.comment);
when(() => chatMessage2.message).thenReturn('abc');
Expand All @@ -139,7 +139,7 @@ void main() {
when(() => chatMessage3.id).thenReturn(3);
when(() => chatMessage3.timestamp).thenReturn((3 * 24 - 1) * 60 * 60 - 1);
when(() => chatMessage3.actorId).thenReturn('test');
when(() => chatMessage3.actorType).thenReturn(spreed.ActorType.users);
when(() => chatMessage3.actorType).thenReturn(spreed.ActorTypes.users);
when(() => chatMessage3.actorDisplayName).thenReturn('test');
when(() => chatMessage3.messageType).thenReturn(spreed.MessageType.comment);
when(() => chatMessage3.message).thenReturn('abc');
Expand Down Expand Up @@ -244,7 +244,7 @@ void main() {
chatMessage = MockChatMessageWithParent();
when(() => chatMessage.timestamp).thenReturn(0);
when(() => chatMessage.actorId).thenReturn('test');
when(() => chatMessage.actorType).thenReturn(spreed.ActorType.users);
when(() => chatMessage.actorType).thenReturn(spreed.ActorTypes.users);
when(() => chatMessage.actorDisplayName).thenReturn('test');
when(() => chatMessage.messageType).thenReturn(spreed.MessageType.comment);
when(() => chatMessage.message).thenReturn('abc');
Expand Down
4 changes: 2 additions & 2 deletions packages/neon_framework/packages/talk_app/test/testing.dart
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Map<String, dynamic> getRoom({
}) =>
{
'actorId': '',
'actorType': spreed.ActorType.users.name,
'actorType': spreed.ActorTypes.users.name,
'attendeeId': 0,
'attendeePermissions': 0,
'avatarVersion': '',
Expand Down Expand Up @@ -88,7 +88,7 @@ Map<String, dynamic> getChatMessage({
{
'actorDisplayName': '',
'actorId': '',
'actorType': spreed.ActorType.users.value,
'actorType': spreed.ActorTypes.users.value,
'expirationTimestamp': 0,
'id': id ?? 0,
'isReplyable': false,
Expand Down
Loading