feat(all): Add db support for GroupchatDetails.
Signed-off-by: Ikjot Singh Dhody <ikjotsd@gmail.com>
This commit is contained in:
parent
f0a79ca0e0
commit
7880f51b76
@ -42,6 +42,7 @@ import 'package:moxxyv2/service/database/migrations/0002_reactions_2.dart';
|
|||||||
import 'package:moxxyv2/service/database/migrations/0002_shared_media.dart';
|
import 'package:moxxyv2/service/database/migrations/0002_shared_media.dart';
|
||||||
import 'package:moxxyv2/service/database/migrations/0002_sticker_metadata.dart';
|
import 'package:moxxyv2/service/database/migrations/0002_sticker_metadata.dart';
|
||||||
import 'package:moxxyv2/service/database/migrations/0003_avatar_hashes.dart';
|
import 'package:moxxyv2/service/database/migrations/0003_avatar_hashes.dart';
|
||||||
|
import 'package:moxxyv2/service/database/migrations/0003_groupchat_details_nick.dart';
|
||||||
import 'package:moxxyv2/service/database/migrations/0003_new_omemo.dart';
|
import 'package:moxxyv2/service/database/migrations/0003_new_omemo.dart';
|
||||||
import 'package:moxxyv2/service/database/migrations/0003_new_omemo_pseudo_messages.dart';
|
import 'package:moxxyv2/service/database/migrations/0003_new_omemo_pseudo_messages.dart';
|
||||||
import 'package:moxxyv2/service/database/migrations/0003_remove_subscriptions.dart';
|
import 'package:moxxyv2/service/database/migrations/0003_remove_subscriptions.dart';
|
||||||
@ -152,6 +153,7 @@ const List<DatabaseMigration<Database>> migrations = [
|
|||||||
DatabaseMigration(39, upgradeFromV38ToV39),
|
DatabaseMigration(39, upgradeFromV38ToV39),
|
||||||
DatabaseMigration(40, upgradeFromV39ToV40),
|
DatabaseMigration(40, upgradeFromV39ToV40),
|
||||||
DatabaseMigration(41, upgradeFromV40ToV41),
|
DatabaseMigration(41, upgradeFromV40ToV41),
|
||||||
|
DatabaseMigration(42, upgradeFromV41ToV42),
|
||||||
];
|
];
|
||||||
|
|
||||||
class DatabaseService {
|
class DatabaseService {
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
import 'package:moxxyv2/service/database/constants.dart';
|
||||||
|
import 'package:sqflite_sqlcipher/sqflite.dart';
|
||||||
|
|
||||||
|
Future<void> upgradeFromV41ToV42(Database db) async {
|
||||||
|
await db.execute(
|
||||||
|
'ALTER TABLE $conversationsTable ADD COLUMN nick TEXT DEFAULT NULL;',
|
||||||
|
);
|
||||||
|
}
|
@ -12,7 +12,7 @@ class GroupchatService {
|
|||||||
final conn = GetIt.I.get<XmppConnection>();
|
final conn = GetIt.I.get<XmppConnection>();
|
||||||
final mm = conn.getManagerById<MUCManager>(mucManager)!;
|
final mm = conn.getManagerById<MUCManager>(mucManager)!;
|
||||||
final result = await mm.queryRoomInformation(roomJID);
|
final result = await mm.queryRoomInformation(roomJID);
|
||||||
if (result is RoomInformation) {
|
if (result.isType<RoomInformation>()) {
|
||||||
return result.get<RoomInformation>();
|
return result.get<RoomInformation>();
|
||||||
}
|
}
|
||||||
throw Exception(result.get<MUCError>());
|
throw Exception(result.get<MUCError>());
|
||||||
@ -26,7 +26,7 @@ class GroupchatService {
|
|||||||
throw Exception(GroupchatErrorType.roomPasswordProtected);
|
throw Exception(GroupchatErrorType.roomPasswordProtected);
|
||||||
}
|
}
|
||||||
final result = await mm.joinRoom(muc, nick);
|
final result = await mm.joinRoom(muc, nick);
|
||||||
if (result is MUCError) {
|
if (result.isType<MUCError>()) {
|
||||||
throw Exception(GroupchatErrorType.fromException(result.get<MUCError>()));
|
throw Exception(GroupchatErrorType.fromException(result.get<MUCError>()));
|
||||||
} else {
|
} else {
|
||||||
return result.get<bool>();
|
return result.get<bool>();
|
||||||
|
@ -79,6 +79,20 @@ class ConversationTypeConverter
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class GroupchatDetailsConverter
|
||||||
|
extends JsonConverter<GroupchatDetails, Map<String, dynamic>> {
|
||||||
|
const GroupchatDetailsConverter();
|
||||||
|
|
||||||
|
@override
|
||||||
|
GroupchatDetails fromJson(Map<String, dynamic> json) =>
|
||||||
|
GroupchatDetails(json['nick'] as String);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Map<String, dynamic> toJson(GroupchatDetails object) => <String, dynamic>{
|
||||||
|
'nick': object.nick,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
@freezed
|
@freezed
|
||||||
class Conversation with _$Conversation {
|
class Conversation with _$Conversation {
|
||||||
factory Conversation(
|
factory Conversation(
|
||||||
@ -98,7 +112,7 @@ class Conversation with _$Conversation {
|
|||||||
String jid,
|
String jid,
|
||||||
|
|
||||||
// The nick with which the MUC is joined...
|
// The nick with which the MUC is joined...
|
||||||
GroupchatDetails? nick,
|
@GroupchatDetailsConverter() GroupchatDetails? nick,
|
||||||
|
|
||||||
// The number of unread messages.
|
// The number of unread messages.
|
||||||
int unreadCounter,
|
int unreadCounter,
|
||||||
@ -163,7 +177,8 @@ class Conversation with _$Conversation {
|
|||||||
..remove('id')
|
..remove('id')
|
||||||
..remove('chatState')
|
..remove('chatState')
|
||||||
..remove('showAddToRoster')
|
..remove('showAddToRoster')
|
||||||
..remove('lastMessage');
|
..remove('lastMessage')
|
||||||
|
..remove('nick');
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...map,
|
...map,
|
||||||
|
Loading…
Reference in New Issue
Block a user