multiple runtime bugfixes for 1.5.5+65
This commit is contained in:
@@ -4,7 +4,6 @@ import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:persistent_bottom_nav_bar_v2/persistent_bottom_nav_bar_v2.dart';
|
||||
import 'package:url_launcher/url_launcher_string.dart';
|
||||
|
||||
import '../api/marianumcloud/talk/room/get_room_response.dart';
|
||||
import '../api/marianumconnect/marianumconnect_endpoint.dart';
|
||||
@@ -18,6 +17,7 @@ import '../state/app/modules/app_modules.dart';
|
||||
import '../state/app/modules/chat/bloc/chat_bloc.dart';
|
||||
import '../state/app/modules/chat_list/bloc/chat_list_bloc.dart';
|
||||
import '../state/app/modules/marianum_message/bloc/marianum_message_state.dart';
|
||||
import '../utils/url_opener.dart';
|
||||
import '../view/login/nextcloud_login_flow_page.dart';
|
||||
import '../view/pages/files/files.dart';
|
||||
import '../view/pages/files/sharing/sharee_picker_page.dart';
|
||||
@@ -228,7 +228,7 @@ class AppRoutes {
|
||||
openTickerPage(context, slug: slug);
|
||||
return;
|
||||
}
|
||||
unawaited(openExternalUrl(href));
|
||||
unawaited(UrlOpener.openUrl(href));
|
||||
}
|
||||
|
||||
/// Extracts the ticker page slug from a link that points at another ticker
|
||||
@@ -250,24 +250,13 @@ class AppRoutes {
|
||||
return Uri.decodeComponent(rest);
|
||||
}
|
||||
|
||||
/// Launches an external URL, restricted to safe schemes (http/https/mailto/tel).
|
||||
static Future<void> openExternalUrl(String url) async {
|
||||
final uri = Uri.tryParse(url);
|
||||
if (uri == null) return;
|
||||
const allowed = {'http', 'https', 'mailto', 'tel'};
|
||||
if (!allowed.contains(uri.scheme.toLowerCase())) return;
|
||||
if (await canLaunchUrlString(url)) {
|
||||
await launchUrlString(url, mode: LaunchMode.externalApplication);
|
||||
}
|
||||
}
|
||||
|
||||
/// Opens a possibly site-relative web URL (e.g. the ticker `webUrl`) by
|
||||
/// prefixing the active Marianum-Connect base URL when needed.
|
||||
static Future<void> openWebUrl(String relativeOrAbsolute) {
|
||||
if (relativeOrAbsolute.startsWith('http')) {
|
||||
return openExternalUrl(relativeOrAbsolute);
|
||||
return UrlOpener.openUrl(relativeOrAbsolute);
|
||||
}
|
||||
return openExternalUrl(
|
||||
return UrlOpener.openUrl(
|
||||
'${MarianumConnectEndpoint.current()}$relativeOrAbsolute',
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user