changed link to directly open the chat
This commit is contained in:
10
lib/utils/UrlOpener.dart
Normal file
10
lib/utils/UrlOpener.dart
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import 'package:flutter_linkify/flutter_linkify.dart';
|
||||||
|
import 'package:url_launcher/url_launcher_string.dart';
|
||||||
|
|
||||||
|
class UrlOpener {
|
||||||
|
static Future<void> onOpen(LinkableElement link) async {
|
||||||
|
if(await canLaunchUrlString(link.url)) {
|
||||||
|
await launchUrlString(link.url);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -315,7 +315,8 @@ class _ChatBubbleState extends State<ChatBubble> with SingleTickerProviderStateM
|
|||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
children: [
|
children: [
|
||||||
PollOptionsList(
|
PollOptionsList(
|
||||||
pollData: pollData
|
pollData: pollData,
|
||||||
|
chatToken: widget.chatData.token
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -2,12 +2,12 @@
|
|||||||
import 'package:cached_network_image/cached_network_image.dart';
|
import 'package:cached_network_image/cached_network_image.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_linkify/flutter_linkify.dart';
|
import 'package:flutter_linkify/flutter_linkify.dart';
|
||||||
import 'package:url_launcher/url_launcher_string.dart';
|
|
||||||
|
|
||||||
import '../../../../api/marianumcloud/talk/chat/getChatResponse.dart';
|
import '../../../../api/marianumcloud/talk/chat/getChatResponse.dart';
|
||||||
import '../../../../api/marianumcloud/talk/chat/richObjectStringProcessor.dart';
|
import '../../../../api/marianumcloud/talk/chat/richObjectStringProcessor.dart';
|
||||||
import '../../../../model/accountData.dart';
|
import '../../../../model/accountData.dart';
|
||||||
import '../../../../model/endpointData.dart';
|
import '../../../../model/endpointData.dart';
|
||||||
|
import '../../../../utils/UrlOpener.dart';
|
||||||
|
|
||||||
class ChatMessage {
|
class ChatMessage {
|
||||||
String originalMessage;
|
String originalMessage;
|
||||||
@@ -29,7 +29,7 @@ class ChatMessage {
|
|||||||
|
|
||||||
var contentWidget = Linkify(
|
var contentWidget = Linkify(
|
||||||
text: content,
|
text: content,
|
||||||
onOpen: onOpen,
|
onOpen: UrlOpener.onOpen,
|
||||||
);
|
);
|
||||||
|
|
||||||
if(originalData?['object']?.type == RichObjectStringObjectType.talkPoll) {
|
if(originalData?['object']?.type == RichObjectStringObjectType.talkPoll) {
|
||||||
@@ -73,10 +73,4 @@ class ChatMessage {
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> onOpen(LinkableElement link) async {
|
|
||||||
if(await canLaunchUrlString(link.url)) {
|
|
||||||
await launchUrlString(link.url);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,12 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_linkify/flutter_linkify.dart';
|
import 'package:flutter_linkify/flutter_linkify.dart';
|
||||||
|
|
||||||
import '../../../../api/marianumcloud/talk/getPoll/getPollStateResponse.dart';
|
import '../../../../api/marianumcloud/talk/getPoll/getPollStateResponse.dart';
|
||||||
|
import '../../../../utils/UrlOpener.dart';
|
||||||
|
|
||||||
class PollOptionsList extends StatefulWidget {
|
class PollOptionsList extends StatefulWidget {
|
||||||
final GetPollStateResponseObject pollData;
|
final GetPollStateResponseObject pollData;
|
||||||
const PollOptionsList({super.key, required this.pollData});
|
final String chatToken;
|
||||||
|
const PollOptionsList({super.key, required this.pollData, required this.chatToken});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<PollOptionsList> createState() => _PollOptionsListState();
|
State<PollOptionsList> createState() => _PollOptionsListState();
|
||||||
@@ -54,7 +56,8 @@ class _PollOptionsListState extends State<PollOptionsList> {
|
|||||||
}),
|
}),
|
||||||
ListTile(
|
ListTile(
|
||||||
title: Linkify(
|
title: Linkify(
|
||||||
text: 'Wenn du abstimmen möchtest, verwende die Webversion unter https://cloud.marianum-fulda.de',
|
text: 'Wenn du abstimmen möchtest, verwende die Webversion unter https://cloud.marianum-fulda.de/call/${widget.chatToken}',
|
||||||
|
onOpen: UrlOpener.onOpen,
|
||||||
style: Theme.of(context).textTheme.bodySmall,
|
style: Theme.of(context).textTheme.bodySmall,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user