mirror of
https://github.com/krille-chan/fluffychat
synced 2024-09-10 11:05:10 +00:00
fix: Open URIs
This commit is contained in:
parent
6731517d70
commit
0ecbe842a5
3 changed files with 17 additions and 12 deletions
|
@ -130,9 +130,9 @@ class ChatListController extends State<ChatList> {
|
|||
void _processIncomingUris(String text) async {
|
||||
if (text == null) return;
|
||||
VRouter.of(context).to('/rooms');
|
||||
text = text.replaceFirst('im.fluffychat://', 'matrix:');
|
||||
UrlLauncher(context, text).openMatrixToUrl();
|
||||
return;
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
UrlLauncher(context, text).openMatrixToUrl();
|
||||
});
|
||||
}
|
||||
|
||||
void _initReceiveSharingIntent() {
|
||||
|
|
|
@ -83,7 +83,7 @@ class NewPrivateChatView extends StatelessWidget {
|
|||
decoration: InputDecoration(
|
||||
labelText: L10n.of(context).typeInInviteLinkManually,
|
||||
hintText: '@username',
|
||||
prefixText: 'https://matrix.to/#/',
|
||||
prefixText: 'matrix.to/#/',
|
||||
suffixIcon: IconButton(
|
||||
icon: const Icon(Icons.send_outlined),
|
||||
onPressed: controller.submitAction,
|
||||
|
|
|
@ -87,6 +87,11 @@ class UrlLauncher {
|
|||
|
||||
void openMatrixToUrl() async {
|
||||
final matrix = Matrix.of(context);
|
||||
final url = this.url.replaceFirst(
|
||||
AppConfig.deepLinkPrefix,
|
||||
AppConfig.inviteLinkPrefix,
|
||||
);
|
||||
|
||||
// The identifier might be a matrix.to url and needs escaping. Or, it might have multiple
|
||||
// identifiers (room id & event id), or it might also have a query part.
|
||||
// All this needs parsing.
|
||||
|
@ -135,6 +140,14 @@ class UrlLauncher {
|
|||
VRouter.of(context).toSegments(['rooms', room.id]);
|
||||
}
|
||||
return;
|
||||
} else {
|
||||
await showModalBottomSheet(
|
||||
context: context,
|
||||
builder: (c) => PublicRoomBottomSheet(
|
||||
roomAlias: identityParts.primaryIdentifier,
|
||||
outerContext: context,
|
||||
),
|
||||
);
|
||||
}
|
||||
if (roomIdOrAlias.sigil == '!') {
|
||||
if (await showOkCancelAlertDialog(
|
||||
|
@ -163,14 +176,6 @@ class UrlLauncher {
|
|||
VRouter.of(context).toSegments(['rooms', response.result]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
await showModalBottomSheet(
|
||||
context: context,
|
||||
builder: (c) => PublicRoomBottomSheet(
|
||||
roomAlias: identityParts.primaryIdentifier,
|
||||
outerContext: context,
|
||||
),
|
||||
);
|
||||
}
|
||||
} else if (identityParts.primaryIdentifier.sigil == '@') {
|
||||
await showModalBottomSheet(
|
||||
|
|
Loading…
Reference in a new issue