From 71c9affd1608231d3d47870f57e732f7fe41b924 Mon Sep 17 00:00:00 2001 From: Fabian Freund Date: Wed, 12 Jun 2024 09:13:57 +0200 Subject: [PATCH] apply incognito mode to keyboard --- .../features/bangs/presentation/screens/search.dart | 6 ++++++ .../presentation/widgets/tabs/assistant_tab.dart | 7 +++++++ .../presentation/widgets/tabs/search_tab.dart | 7 +++++++ .../presentation/widgets/tabs/summarize_tab.dart | 11 +++++++++-- .../presentation/widgets/web_page_dialog.dart | 7 +++++++ 5 files changed, 36 insertions(+), 2 deletions(-) diff --git a/app/lib/features/bangs/presentation/screens/search.dart b/app/lib/features/bangs/presentation/screens/search.dart index 85677923..9bf58d46 100644 --- a/app/lib/features/bangs/presentation/screens/search.dart +++ b/app/lib/features/bangs/presentation/screens/search.dart @@ -6,6 +6,7 @@ import 'package:bang_navigator/features/bangs/presentation/widgets/bang_details. import 'package:bang_navigator/features/search_browser/domain/entities/modes.dart'; import 'package:bang_navigator/features/search_browser/domain/entities/sheet.dart'; import 'package:bang_navigator/features/search_browser/domain/providers.dart'; +import 'package:bang_navigator/features/settings/data/repositories/settings_repository.dart'; import 'package:bang_navigator/presentation/hooks/listenable_callback.dart'; import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; @@ -18,6 +19,10 @@ class BangSearchScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final resultsAsync = ref.watch(bangSearchProvider); + final incognitoEnabled = ref.watch( + settingsRepositoryProvider + .select((value) => value.valueOrNull?.incognitoMode ?? false), + ); final textEditingController = useTextEditingController(); @@ -32,6 +37,7 @@ class BangSearchScreen extends HookConsumerWidget { return Scaffold( appBar: AppBar( title: TextField( + enableIMEPersonalizedLearning: !incognitoEnabled, controller: textEditingController, autofocus: true, autocorrect: false, diff --git a/app/lib/features/search_browser/presentation/widgets/tabs/assistant_tab.dart b/app/lib/features/search_browser/presentation/widgets/tabs/assistant_tab.dart index 7a158b5b..50da14f0 100644 --- a/app/lib/features/search_browser/presentation/widgets/tabs/assistant_tab.dart +++ b/app/lib/features/search_browser/presentation/widgets/tabs/assistant_tab.dart @@ -3,6 +3,7 @@ import 'package:bang_navigator/features/search_browser/presentation/widgets/shee import 'package:bang_navigator/features/search_browser/presentation/widgets/speech_to_text_button.dart'; import 'package:bang_navigator/features/search_browser/utils/url_builder.dart' as uri_builder; +import 'package:bang_navigator/features/settings/data/repositories/settings_repository.dart'; import 'package:bang_navigator/features/share_intent/domain/entities/shared_content.dart'; import 'package:bang_navigator/presentation/hooks/sync_page_tab.dart'; import 'package:expandable_page_view/expandable_page_view.dart'; @@ -23,6 +24,11 @@ class AssistantTab extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { + final incognitoEnabled = ref.watch( + settingsRepositoryProvider + .select((value) => value.valueOrNull?.incognitoMode ?? false), + ); + useAutomaticKeepAlive(); final formKey = useMemoized(() => GlobalKey()); @@ -127,6 +133,7 @@ class AssistantTab extends HookConsumerWidget { ), TextFormField( controller: textController, + enableIMEPersonalizedLearning: !incognitoEnabled, decoration: InputDecoration( label: const Text('Prompt'), hintText: 'Enter your prompt...', diff --git a/app/lib/features/search_browser/presentation/widgets/tabs/search_tab.dart b/app/lib/features/search_browser/presentation/widgets/tabs/search_tab.dart index d1324dfc..cf99fe07 100644 --- a/app/lib/features/search_browser/presentation/widgets/tabs/search_tab.dart +++ b/app/lib/features/search_browser/presentation/widgets/tabs/search_tab.dart @@ -6,6 +6,7 @@ import 'package:bang_navigator/features/search_browser/domain/providers.dart'; import 'package:bang_navigator/features/search_browser/presentation/widgets/bang_chips.dart'; import 'package:bang_navigator/features/search_browser/presentation/widgets/sheets/shared_content_sheet.dart'; import 'package:bang_navigator/features/search_browser/presentation/widgets/speech_to_text_button.dart'; +import 'package:bang_navigator/features/settings/data/repositories/settings_repository.dart'; import 'package:bang_navigator/features/share_intent/domain/entities/shared_content.dart'; import 'package:bang_navigator/presentation/widgets/autocomplete.dart'; import 'package:flutter/material.dart'; @@ -103,6 +104,11 @@ class SearchTab extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { + final incognitoEnabled = ref.watch( + settingsRepositoryProvider + .select((value) => value.valueOrNull?.incognitoMode ?? false), + ); + useAutomaticKeepAlive(); final formKey = useMemoized(() => GlobalKey()); @@ -199,6 +205,7 @@ class SearchTab extends HookConsumerWidget { ) { return TextFormField( controller: textEditingController, + enableIMEPersonalizedLearning: !incognitoEnabled, focusNode: focusNode, decoration: InputDecoration( prefixIcon: (activeBang != null) diff --git a/app/lib/features/search_browser/presentation/widgets/tabs/summarize_tab.dart b/app/lib/features/search_browser/presentation/widgets/tabs/summarize_tab.dart index 35ffcd97..a0c453eb 100644 --- a/app/lib/features/search_browser/presentation/widgets/tabs/summarize_tab.dart +++ b/app/lib/features/search_browser/presentation/widgets/tabs/summarize_tab.dart @@ -4,6 +4,7 @@ import 'package:bang_navigator/features/search_browser/domain/entities/modes.dar import 'package:bang_navigator/features/search_browser/presentation/widgets/sheets/shared_content_sheet.dart'; import 'package:bang_navigator/features/search_browser/utils/url_builder.dart' as uri_builder; +import 'package:bang_navigator/features/settings/data/repositories/settings_repository.dart'; import 'package:bang_navigator/features/share_intent/domain/entities/shared_content.dart'; import 'package:bang_navigator/presentation/widgets/website_title_tile.dart'; import 'package:bang_navigator/utils/uri_parser.dart' as uri_parser; @@ -14,15 +15,21 @@ import 'package:flutter_material_design_icons/flutter_material_design_icons.dart import 'package:flutter_pdf_text/flutter_pdf_text.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -class _InputField extends StatelessWidget { +class _InputField extends ConsumerWidget { final TextEditingController? controller; const _InputField({required this.controller, super.key}); @override - Widget build(BuildContext context) { + Widget build(BuildContext context, WidgetRef ref) { + final incognitoEnabled = ref.watch( + settingsRepositoryProvider + .select((value) => value.valueOrNull?.incognitoMode ?? false), + ); + return TextFormField( controller: controller, + enableIMEPersonalizedLearning: !incognitoEnabled, decoration: const InputDecoration( label: Text('Document'), hintText: 'Enter URL or text to summarize', diff --git a/app/lib/features/web_view/presentation/widgets/web_page_dialog.dart b/app/lib/features/web_view/presentation/widgets/web_page_dialog.dart index 12fb776c..98b730d9 100644 --- a/app/lib/features/web_view/presentation/widgets/web_page_dialog.dart +++ b/app/lib/features/web_view/presentation/widgets/web_page_dialog.dart @@ -2,6 +2,7 @@ import 'package:bang_navigator/domain/entities/web_page_info.dart'; import 'package:bang_navigator/features/search_browser/domain/entities/modes.dart'; import 'package:bang_navigator/features/search_browser/utils/url_builder.dart' as uri_builder; +import 'package:bang_navigator/features/settings/data/repositories/settings_repository.dart'; import 'package:bang_navigator/features/share_intent/domain/entities/shared_content.dart'; import 'package:bang_navigator/features/web_view/presentation/controllers/switch_new_tab.dart'; import 'package:bang_navigator/features/web_view/presentation/widgets/favicon.dart'; @@ -53,6 +54,11 @@ class WebPageDialog extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { + final incognitoEnabled = ref.watch( + settingsRepositoryProvider + .select((value) => value.valueOrNull?.incognitoMode ?? false), + ); + final formKey = useMemoized(() => GlobalKey()); final urlTextController = useTextEditingController(text: page.url.toString()); @@ -89,6 +95,7 @@ class WebPageDialog extends HookConsumerWidget { key: formKey, child: TextFormField( controller: urlTextController, + enableIMEPersonalizedLearning: !incognitoEnabled, decoration: InputDecoration( suffixIcon: (webViewController != null) ? IconButton(