show decoded url's to the user
This commit is contained in:
+2
-1
@@ -29,6 +29,7 @@ import 'package:flutter_mozilla_components/flutter_mozilla_components.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:share_plus/share_plus.dart';
|
||||
import 'package:skeletonizer/skeletonizer.dart';
|
||||
import 'package:weblibre/extensions/uri.dart';
|
||||
import 'package:weblibre/features/geckoview/domain/providers/tab_session.dart';
|
||||
import 'package:weblibre/features/geckoview/domain/providers/tab_state.dart';
|
||||
import 'package:weblibre/features/geckoview/features/browser/presentation/dialogs/qr_code.dart';
|
||||
@@ -271,7 +272,7 @@ class _ShareHeader extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
url,
|
||||
url.uriDisplayString,
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: TextStyle(
|
||||
|
||||
+2
-1
@@ -24,6 +24,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
import 'package:flutter_material_design_icons/flutter_material_design_icons.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:weblibre/extensions/uri.dart';
|
||||
import 'package:weblibre/features/geckoview/features/open_link_tools/presentation/utils/open_in_custom_tab.dart';
|
||||
import 'package:weblibre/features/settings/presentation/controllers/save_settings.dart';
|
||||
import 'package:weblibre/features/settings/presentation/widgets/sections.dart';
|
||||
@@ -203,7 +204,7 @@ class _AttributionLinkRow extends StatelessWidget {
|
||||
width: 96,
|
||||
child: Text(label, style: Theme.of(context).textTheme.bodySmall),
|
||||
),
|
||||
Expanded(child: Text(url, style: linkStyle)),
|
||||
Expanded(child: Text(url.uriDisplayString, style: linkStyle)),
|
||||
const SizedBox(width: 8),
|
||||
Icon(
|
||||
Icons.open_in_new,
|
||||
|
||||
+2
-1
@@ -23,6 +23,7 @@ import 'package:flutter_material_design_icons/flutter_material_design_icons.dart
|
||||
import 'package:flutter_mozilla_components/flutter_mozilla_components.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:weblibre/core/logger.dart';
|
||||
import 'package:weblibre/extensions/uri.dart';
|
||||
import 'package:weblibre/features/geckoview/features/browser/domain/repositories/tracking_protection.dart';
|
||||
import 'package:weblibre/features/settings/presentation/dialogs/delete_all_exceptions_dialog.dart';
|
||||
import 'package:weblibre/presentation/widgets/url_icon.dart';
|
||||
@@ -151,7 +152,7 @@ class _ExceptionTile extends StatelessWidget {
|
||||
leading: uri != null
|
||||
? UrlIcon([uri], iconSize: 24)
|
||||
: const Icon(MdiIcons.shieldOutline),
|
||||
title: Text(exception.url),
|
||||
title: Text(exception.url.uriDisplayString),
|
||||
trailing: IconButton(
|
||||
icon: const Icon(Icons.close),
|
||||
onPressed: onDelete,
|
||||
|
||||
@@ -22,6 +22,7 @@ import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
import 'package:flutter_material_design_icons/flutter_material_design_icons.dart';
|
||||
import 'package:flutter_mozilla_components/flutter_mozilla_components.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:weblibre/extensions/uri.dart';
|
||||
import 'package:weblibre/features/settings/presentation/controllers/save_settings.dart';
|
||||
import 'package:weblibre/features/user/data/models/engine_settings.dart';
|
||||
import 'package:weblibre/features/user/domain/repositories/engine_settings.dart';
|
||||
@@ -112,7 +113,7 @@ class DohSettingsContent extends HookConsumerWidget {
|
||||
(provider) => RadioListTile.adaptive(
|
||||
value: provider.url,
|
||||
title: Text(provider.name),
|
||||
subtitle: Text(provider.url),
|
||||
subtitle: Text(provider.url.uriDisplayString),
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
|
||||
@@ -22,6 +22,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:nullability/nullability.dart';
|
||||
import 'package:skeletonizer/skeletonizer.dart';
|
||||
import 'package:weblibre/core/routing/routes.dart';
|
||||
import 'package:weblibre/extensions/uri.dart';
|
||||
import 'package:weblibre/features/web_feed/domain/providers.dart';
|
||||
import 'package:weblibre/presentation/widgets/failure_widget.dart';
|
||||
|
||||
@@ -54,7 +55,7 @@ class SelectFeedDialog extends HookConsumerWidget {
|
||||
title: Text(
|
||||
data.feedData.title.whenNotEmpty ?? 'Unnamed Feed',
|
||||
),
|
||||
subtitle: Text(uri.toString()),
|
||||
subtitle: Text(uri.displayString),
|
||||
trailing: const Icon(Icons.add),
|
||||
onTap: () {
|
||||
FeedCreateRoute(feedId: uri).pushReplacement(context);
|
||||
@@ -72,7 +73,7 @@ class SelectFeedDialog extends HookConsumerWidget {
|
||||
loading: () => Skeletonizer(
|
||||
child: ListTile(
|
||||
title: Text(BoneMock.title),
|
||||
subtitle: Skeleton.keep(child: Text(uri.toString())),
|
||||
subtitle: Skeleton.keep(child: Text(uri.displayString)),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user