getRoomIdFromLink function
Implementation
String? getRoomIdFromLink(Uri uri) {
final link = Uri.decodeFull(uri.toString());
// Match regex for matrix room link
final urlRegexp = RegExp(
r'https://matrix\.to/#/(?<roomId>.+):(?<server>.+)+',
caseSensitive: false,
);
final matches = urlRegexp.firstMatch(link);
//Link is type of matrix room link
if (matches != null) {
final roomId = matches.namedGroup('roomId');
var server = matches.namedGroup('server');
//Check & remove if string contains "?via=<server> pattern"
server = server!.split('?via=').first;
//Create complete roomId with home server information
var roomIdWithServer = '$roomId:$server';
//Return roomId
return roomIdWithServer;
}
//Link is other than matrix room link
return null;
}