Update Qlyra application
Build Android (FCM) / build-android-fcm (push) Canceled after 0s
Build Android / build-android (push) Canceled after 0s
Build iOS / build-ios (push) Canceled after 0s
Build Linux / build-linux (push) Canceled after 0s
Build macOS / build-macos (push) Canceled after 0s
Build Windows / build-windows (push) Canceled after 0s
Release (main) / android (oneme) (push) Canceled after 0s
Release (main) / android (qlyra) (push) Canceled after 0s
Release (main) / windows (push) Canceled after 0s
Release (main) / linux (push) Canceled after 0s
Release (main) / macos (push) Canceled after 0s
Release (main) / ios (push) Canceled after 0s
Release (main) / release (push) Canceled after 0s
Build Android (FCM) / build-android-fcm (push) Canceled after 0s
Build Android / build-android (push) Canceled after 0s
Build iOS / build-ios (push) Canceled after 0s
Build Linux / build-linux (push) Canceled after 0s
Build macOS / build-macos (push) Canceled after 0s
Build Windows / build-windows (push) Canceled after 0s
Release (main) / android (oneme) (push) Canceled after 0s
Release (main) / android (qlyra) (push) Canceled after 0s
Release (main) / windows (push) Canceled after 0s
Release (main) / linux (push) Canceled after 0s
Release (main) / macos (push) Canceled after 0s
Release (main) / ios (push) Canceled after 0s
Release (main) / release (push) Canceled after 0s
This commit is contained in:
@@ -140,8 +140,12 @@ class _UpdateProgressDialogState extends State<_UpdateProgressDialog> {
|
||||
Navigator.pop(context);
|
||||
if (!result.ok) {
|
||||
final l10n = AppLocalizations.of(context)!;
|
||||
showCustomNotification(context, l10n.updateDownloadFailed);
|
||||
await openExternalUrl(context, widget.info.url);
|
||||
if (result.status == UpdateInstallStatus.integrityFailed) {
|
||||
showCustomNotification(context, l10n.updateIntegrityFailed);
|
||||
} else {
|
||||
showCustomNotification(context, l10n.updateDownloadFailed);
|
||||
await openExternalUrl(context, widget.info.url);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
|
||||
import '../../core/config/app_shape.dart';
|
||||
import '../screens/webapp/web_app_security_policy.dart';
|
||||
|
||||
String _resourceLabel(PermissionResourceType type) {
|
||||
if (type == PermissionResourceType.CAMERA) return 'камера';
|
||||
@@ -14,14 +15,22 @@ String _resourceLabel(PermissionResourceType type) {
|
||||
|
||||
Future<PermissionResponse> askWebViewPermission(
|
||||
BuildContext context,
|
||||
PermissionRequest request,
|
||||
) async {
|
||||
PermissionRequest request, {
|
||||
required WebAppSecurityPolicy policy,
|
||||
required Uri? currentUrl,
|
||||
}) async {
|
||||
PermissionResponse deny() => PermissionResponse(
|
||||
resources: request.resources,
|
||||
action: PermissionResponseAction.DENY,
|
||||
);
|
||||
|
||||
if (!context.mounted) return deny();
|
||||
if (!context.mounted ||
|
||||
!policy.allowsPermission(
|
||||
Uri.parse(request.origin.toString()),
|
||||
currentUrl,
|
||||
)) {
|
||||
return deny();
|
||||
}
|
||||
|
||||
final labels = <String>{
|
||||
for (final r in request.resources) _resourceLabel(r),
|
||||
|
||||
Reference in New Issue
Block a user