83 Commits

Author SHA1 Message Date
Bruno Leroux
b2ec34fcb4
Add ProcessTextService (#137145)
## Description

This PR adds `ProcessTextService` on the framework side to communicate with the engine to query and run text processing actions (on the engine side, only Android is supported currently, see https://github.com/flutter/engine/pull/44579).

## Related Issue

Non-UI framework side for https://github.com/flutter/flutter/issues/107603

## Tests

Adds 3 tests.
2023-10-26 11:44:07 +00:00
Andrew Kolos
aa498cd51a
Add API to read flavor from framework at run time (#134179)
Resolves #128046.

Adds a services API that allows flutter app developers to write app code that determines `--flavor` the app was built with.

This is implemented by having the tool adding the value of `--flavor` to its list of dart environment declarations, which will be available to the app at run time. Specifically,`FLUTTER_APP_FLAVOR` is set. I chose this implementation for its simplicity. There is some precedent for this, but only for web ([example](cd2f3f5e78/packages/flutter_tools/lib/src/runner/flutter_command.dart (L1231))).
2023-09-28 17:38:54 +00:00
luckysmg
e0ad12969f
[framework] Add textField OCR support for framework side (#96637)
iOS OCR keyboard input support.
2023-07-06 08:51:06 -07:00
Jami Couch
2a67bf78f0
Add support for iOS UndoManager (#98294)
Add support for iOS UndoManager
2023-03-08 19:45:49 +00:00
Andrew Kolos
fd76ef0f26
Reland "Add API for discovering assets" (#119277)
* add asset manifest bin loading and asset manifest api

* use new api for image resolution

* remove upfront smc data casting

* fix typecasting issue

* remove unused import

* fix tests

* lints

* lints

* fix import

* revert image resolution changes

* Update image_resolution_test.dart

* Update decode_and_parse_asset_manifest.dart

* make targetDevicePixelRatio optional

* Update packages/flutter/lib/src/services/asset_manifest.dart

Co-authored-by: Jonah Williams <jonahwilliams@google.com>

* Update packages/flutter/lib/src/services/asset_manifest.dart

Co-authored-by: Jonah Williams <jonahwilliams@google.com>

* fix immutable not being imported

* return List in AssetManifest methods, fix annotation import

* simplify onError callback

* make AssetManifest methods abstract instead of throwing UnimplementedError

* simplify AssetVariant.key docstring

* tweak _AssetManifestBin docstring

* make AssetManifest and AssetVariant doc strings more specific

* use List.of instead of List.from for type-safety

* adjust import

* change _AssetManifestBin comment from doc comment to normal comment

* revert to callback function for onError in loadStructuredBinaryData

* add more to the docstring of AssetManifest.listAssets and AssetVariant.key

* add tests for CachingAssetBundle caching behavior

* add simple test to ensure loadStructuredBinaryData correctly calls load

* Update asset_manifest.dart

* update docstring for AssetManifest.getAssetVariants

* rename getAssetVariants, have it include main asset

* rename isMainAsset field of AssetMetadata to main

* (slightly) shorten name of describeAssetAndVariants

* rename describeAssetVariants back to getAssetVariants

* add tests for TestAssetBundle

* nits

* fix typo in docstring

* remove no longer necessary non-null asserts

* update gallery and google_fonts versions

---------

Co-authored-by: Jonah Williams <jonahwilliams@google.com>
2023-02-02 15:17:15 +00:00
Tanay Neotia
0e22aca785
Add support for image insertion on Android (#110052)
* Add support for image insertion on Android

* Fix checks

* Use proper Dart syntax on snippet

* Specify type annotation on list

* Fix nits, add some asserts, and improve example code

* Add missing import

* Fix nullsafety error

* Fix nullsafety error

* Remove reference to contentCommitMimeTypes in docs

* Fix nits

* Fix warnings and import

* Add test for content commit in editable_text_test.dart

* Check that URIs are equal in test

* Fix nits and rename functions / classes to be more self-explanatory

* Fix failing debugFillProperties tests

* Add empty implementation to `insertContent` in TextInputClient

* Tweak documentation slightly

* Improve docs for contentInsertionMimeTypes and fix assert

* Rework contentInsertionMimeType asserts

* Add test for onContentInserted example

* Switch implementation to a configuration class for more granularity in setting mime types

* Fix nits

* Improve docs and fix doc tests

* Fix more nits (LongCatIsLooong)

* Fix failing tests

* Make parameters (guaranteed by platform to be non-nullable) non-nullable

* Fix analysis issues
2023-01-31 19:46:18 +00:00
Justin McCandless
17eb2e8aeb
Ability to disable the browser's context menu on web (#118194)
Enables custom context menus on web
2023-01-30 09:03:03 -08:00
Christopher Fujino
a04ab7129b
Revert "Add API for discovering assets (#118410)" (#119273)
This reverts commit 2b8f2d05045590cd4aeb9f02c67baaa69db35e5e.
2023-01-26 20:01:12 +00:00
Andrew Kolos
2b8f2d0504
Add API for discovering assets (#118410)
* add asset manifest bin loading and asset manifest api

* use new api for image resolution

* remove upfront smc data casting

* fix typecasting issue

* remove unused import

* fix tests

* lints

* lints

* fix import

* revert image resolution changes

* Update image_resolution_test.dart

* Update decode_and_parse_asset_manifest.dart

* make targetDevicePixelRatio optional

* Update packages/flutter/lib/src/services/asset_manifest.dart

Co-authored-by: Jonah Williams <jonahwilliams@google.com>

* Update packages/flutter/lib/src/services/asset_manifest.dart

Co-authored-by: Jonah Williams <jonahwilliams@google.com>

* fix immutable not being imported

* return List in AssetManifest methods, fix annotation import

* simplify onError callback

* make AssetManifest methods abstract instead of throwing UnimplementedError

* simplify AssetVariant.key docstring

* tweak _AssetManifestBin docstring

* make AssetManifest and AssetVariant doc strings more specific

* use List.of instead of List.from for type-safety

* adjust import

* change _AssetManifestBin comment from doc comment to normal comment

* revert to callback function for onError in loadStructuredBinaryData

* add more to the docstring of AssetManifest.listAssets and AssetVariant.key

* add tests for CachingAssetBundle caching behavior

* add simple test to ensure loadStructuredBinaryData correctly calls load

* Update asset_manifest.dart

* update docstring for AssetManifest.getAssetVariants

* rename getAssetVariants, have it include main asset

* rename isMainAsset field of AssetMetadata to main

* (slightly) shorten name of describeAssetAndVariants

* rename describeAssetVariants back to getAssetVariants

* add tests for TestAssetBundle

* nits

* fix typo in docstring

* remove no longer necessary non-null asserts

Co-authored-by: Jonah Williams <jonahwilliams@google.com>
2023-01-26 19:05:00 +00:00
Xilai Zhang
338841afd3
Revert "Revert "Revert "Scribble mixin (#104128)" (#114647)" (#114698)" (#115146)
This reverts commit 3cde69e8d9dff7e081cb6daa6cd633c49176cb32.
2022-11-11 10:01:11 -08:00
Justin McCandless
3cde69e8d9
Revert "Revert "Scribble mixin (#104128)" (#114647)" (#114698)
Relands the "Scribble mixin" PR, which was reverted due to breaking a Google test in the last roll.
Breaks the Scribble feature out of TextInputClient in order to avoid breaking changes.
2022-11-07 11:28:27 -08:00
Casey Hillers
009fa69f3c
Revert "Scribble mixin (#104128)" (#114647)
This reverts commit b571abfbfd17b9ab7bdf73ac9758bbd87264979a.
2022-11-03 17:17:30 -07:00
Justin McCandless
b571abfbfd
Scribble mixin (#104128)
Refactors methods related to the iPad Scribble feature out of TextInputClient
2022-10-24 12:46:43 -07:00
chunhtai
bcc1dc6b99
Makes TextBoundary and its subclasses public (#110367) 2022-09-16 22:05:04 +00:00
Kenzie Davisson
a34e6b0792
Create enum for service extensions in services library (#111412) 2022-09-12 15:22:28 -07:00
Camille Simon
7db25c36ad
Re-land Add Spell Check to EditableText (#109643) 2022-08-17 16:16:02 +00:00
Jonah Williams
0ba88d8b43
Revert "Add Spellcheck to EditableText (Android) (#109334)" (#109631)
This reverts commit ff9fe35682e10d1067d918770048d28a1f462e0f.
2022-08-16 14:30:03 -07:00
Camille Simon
ff9fe35682
Add Spellcheck to EditableText (Android) (#109334) 2022-08-16 18:22:45 +00:00
Tong Mu
9970481b7a
[gen_keycodes] Mark generated file names with infix .g. (#106142) 2022-06-30 00:08:08 +00:00
Renzo Olivares
bf66cc2e08
Framework can receive TextEditingDeltas from engine (#88477) 2021-09-15 18:27:04 -07:00
Justin McCandless
2382b4c046
Text Editing Model Refactor (#86736)
Simplifying and refactoring parts of RenderEditable. Functionality is the same.
2021-09-07 14:12:38 -07:00
Tong Mu
caf876cf40
Reland: Keyboard events (#87174) 2021-07-29 14:24:03 -07:00
Tong Mu
2f4f170dd2
Revert "Keyboard events (#83752)" (#87171)
This reverts commit 5f792ba17088b356bf0d030844ab09fd7f2b812e.
2021-07-28 02:32:08 -07:00
Tong Mu
5f792ba170
Keyboard events (#83752) 2021-07-26 12:28:05 -07:00
Tong Mu
fa06b34024
Refactor: Move mouse cursor classes to "services" package (#77751) 2021-03-11 19:45:04 -08:00
Kate Lovett
164671e2b1
Remove deprecated BinaryMessages (#73750) 2021-01-27 21:34:04 -08:00
Gary Qian
49667ba2f5
DeferredComponent utility class for manual handling of Deferred Components (#72895) 2021-01-13 14:04:06 -08:00
puelo
24d3999783
Generate RawKeyEvents for iOS 13.4+ (#65193)
* Added RawKeyEvent support for iOS

* Removed unused remnant

* added some missing keys

* Removed trailing whitespaces

* commit for build

* Added mapping names

* Made iOS keycodes generatable and collectable

* Fixed naming and formatting issues

* fixed raw_keyboard_test
2020-10-22 13:33:51 -07:00
Alexandre Ardhuin
7884420a0a
migrate services to nullsafety (#62513)
NNBD migration for services
2020-07-31 11:20:00 -07:00
Michael Goderbauer
175e5c9aca
Restoration Framework (#60375)
* state restoration

* added example

* typos and analyzer

* whitespace

* more typos

* remove unnecessary import

* whitespace

* fix sample code

* tests for restorationmanager and restorationid

* ++

* typo

* tests for bucket, part1

* rename tests

* more tests

* finished tests for service layer

* remove wrong todo

* ++

* review comments

* tests for Unmanaged and regular scope

* RootRestorationScope tests

* typo

* whitespace

* testing framework

* tests for properties

* last set of tests

* analyzer

* typo

* dan review

* whitespace

* ++

* refactor finalizers

* ++

* ++

* dispose guard

* ++

* ++

* dan review

* add manager assert

* ++

* analyzer

* greg review

* fix typo

* Ian & John review

* ian review

* RestorationID -> String

* revert comment

* Make primitives non-nullable in prep for NNBD
2020-07-28 10:16:36 -07:00
Alexandre Ardhuin
4d7525f05c
Opt out nnbd in packages/flutter (#59186)
* add language version 2.8 in packages/flutter

* enable non-nullable analyzer flag
2020-06-11 14:11:30 +02:00
LongCatIsLooong
e31f708961
Autofill Part 1 (#52126) 2020-04-20 14:45:02 -07:00
Mehmet Fidanboylu
6a983e7341
Revert "Reland "Add API to services package that overrides HTTP ban (#54243)" (#54522)" (#54779)
This reverts commit d1e052815ea1448dcf98ebdc805e89503b3f3c8f.
2020-04-14 14:07:43 -07:00
Mehmet Fidanboylu
d1e052815e
Reland "Add API to services package that overrides HTTP ban (#54243)" (#54522) 2020-04-13 12:30:02 -07:00
Mehmet Fidanboylu
35ed1ccc9a
Revert "Add API to services package that overrides HTTP ban (#54243)" (#54519)
This reverts commit 9eb2a2ad6a59d47bcd53c6b8414b4d540d198892.
2020-04-10 22:18:30 -07:00
Mehmet Fidanboylu
9eb2a2ad6a
Add API to services package that overrides HTTP ban (#54243) 2020-04-10 22:14:42 -07:00
Francisco Magdaleno
a0f7f6ca6d
[windows] Adds support for keyboard mapping. (#54227) 2020-04-08 10:07:02 -07:00
Ian Hickson
449f4a6673
License update (#45373)
* Update project.pbxproj files to say Flutter rather than Chromium

Also, the templates now have an empty organization so that we don't cause people to give their apps a Flutter copyright.

* Update the copyright notice checker to require a standard notice on all files

* Update copyrights on Dart files. (This was a mechanical commit.)

* Fix weird license headers on Dart files that deviate from our conventions; relicense Shrine.

Some were already marked "The Flutter Authors", not clear why. Their
dates have been normalized. Some were missing the blank line after the
license. Some were randomly different in trivial ways for no apparent
reason (e.g. missing the trailing period).

* Clean up the copyrights in non-Dart files. (Manual edits.)

Also, make sure templates don't have copyrights.

* Fix some more ORGANIZATIONNAMEs
2019-11-27 15:04:02 -08:00
Mouad Debbar
e045ef2969
Keymap for Web (#41397) 2019-10-01 14:10:53 -07:00
Greg Spencer
0e6cb28dbe
Add fake keyboard key generation to the testing framework (#40706)
There were four or five different implementations in various tests for sendFakeKeyEvent, which roughly all did the same thing. I was going to add yet another one, and decided that it needed to be generalized and centralized. This replaces those instances with something that just takes a LogicalKeyboardKey so that it's self-documenting, and can be used with multiple platforms.

This adds two functions to widget tester: sendKeyDownEvent and sendKeyUpEvent which simulate key up/down from a physical keyboard. It also adds global functions simulateKeyDownEvent and simulateKeyUpEvent that can be called without a widget tester. All are async functions protected by the async guard.
2019-09-24 08:14:38 -07:00
Harry Terkelsen
13e9bfcc94
Add binaryMessenger constructor argument to platform channels (#30406)
* Deprecates `BinaryMessages` in favor of a default instance of `BinaryMessenger`, called `defaultBinaryMessenger`
* Platform channels use the `defaultBinaryMessenger` for their binaryMessenger default argument.
2019-05-28 11:18:22 -07:00
Francisco Magdaleno
b70d260b3c
Adds the keyboard mapping for Linux (#29993) 2019-03-28 10:04:23 -07:00
Francisco Magdaleno
c163ed9618
Adds macOS raw keyboard mapping (#29231) 2019-03-18 11:12:04 -07:00
Michael Goderbauer
1e5992a3c5
Fuschia -> Fuchsia (#28482) 2019-02-25 22:19:47 -08:00
Greg Spencer
431cfdafd9
Adding support for logical and physical key events (#27627)
This adds support for logical and physical key information inside of RawKeyEvent. This allows developers to differentiate keys in a platform-agnostic way. They are able to tell the physical location of a key (PhysicalKeyboardKey) and a logical meaning of the key (LogicalKeyboardKey), as well as get notified of the character generated by the keypress. All of which is useful for handling keyboard shortcuts.

This PR builds on the previous PR (#27620) which generated the key code mappings and definitions.
2019-02-08 12:42:34 -08:00
Greg Spencer
141d6e1394
Add support for detecting which modifier keys have been pressed on RawKeyboardEvents (#26265)
This adds some functions to the interface for RawKeyEventData and all subclasses that allow the recipient of an event to determine which modifier keys are currently being pressed without needing to know the specific modifier bitmasks for the platform.

Also adds constants for the modifier bitmasks for each platform, for completeness (and because I needed them anyhow to implement the above).

Added tests for the RawKeyEventData subclasses, and modified the raw_keyboard manual test app to show modifier keys being pressed. I also separated the different platform-specific subclasses into separate files.

Fixes #26155.
2019-01-11 13:41:45 -08:00
Jason Simmons
00565c2dda
An API for dynamically loading fonts (#23595)
See https://github.com/flutter/flutter/issues/17910
2018-11-02 09:44:26 -07:00
amirh
48f441723d
Introduce PlatformViewsService for controlling platform views. (#19325)
Currently only Android views are supported.

This also includes a FakePlatformViewsController which is a fake
implementation of the engine side for testing.
2018-07-18 15:45:54 -07:00
Jonah Williams
88cc977384
Remove package:http from Flutter (#15416)
* use HttpOverrides and dart:io HttpClient in flutter

* add missing package:http dependency

* update flutter packages and remove comment about createHttpClient from flutter_test

* move byte loading logic to common class, move string parsing logic to base class

* addAll doesn't work for a Uint8List

* use bytes.setRange

* undo addition to hello_world

* add newline to end of binding.dart

* and a newline for hello world

* refactor to function and add tests

* address comments on unknown length case

* alignment

* sort alaphabetically

* rename convertResponse to consolidateClientHttpClientResponseBytes.  Add header

* fix alignment in test
2018-03-22 08:21:01 -07:00
Ian Hickson
44e228eb9e
Move image logic from services/ to painting/. (#13409)
This allows the scheduler library to depend on the services library
and the painting library to depend on the scheduler library without
the services library having to depend on the scheduler library.

While I was at it I also cleaned up some of the binding logic: the
licenses logic can now be overridden (and the test library does so),
and the image cache can now be overridden as well.
2017-12-07 14:53:08 -08:00